# mindmapcn
mindmapcn is a free, open-source shadcn-style registry of ready-to-use React mind map components. It is built on Mind Elixir, styled with Tailwind CSS, and intended for projects that already use shadcn/ui. Optimized for presentation-first maps (org charts, knowledge maps, project plans); editing works but is secondary.
Website: https://mindmapcn.mind-elixir.com
Docs: https://mindmapcn.mind-elixir.com/docs
Registry index: https://mindmapcn.mind-elixir.com/mindmaps/registry.json
Source: https://github.com/SSShooter/mindmapcn
## Install the mind map component
Prerequisites: Tailwind CSS and shadcn/ui already set up in the project.
Run:
```bash
npx shadcn@latest add https://mindmapcn.mind-elixir.com/mindmaps/mindmap.json
```
This installs `mind-elixir`, `lucide-react`, and `@mind-elixir/export-mindmap`, and copies the component to `components/ui/mindmap.tsx` by default.
Then import from `@/components/ui/mindmap`:
```tsx
"use client";
import { MindMap, MindMapControls } from "@/components/ui/mindmap";
import type { MindElixirData } from "mind-elixir";
const data: MindElixirData = {
nodeData: {
id: "root",
topic: "Mind Map",
children: [
{ id: "a", topic: "Topic A" },
{ id: "b", topic: "Topic B" },
],
},
};
export function MyMindMap() {
return (
// Give the container an explicit height — the map fills 100% of its parent.
);
}
```
## Usage guidance for agents
- Always wrap `` in a parent with an explicit height (for example `h-[500px]`). The map uses full width/height of its parent; a parent without height collapses to a blank area.
- In the Next.js App Router, the consuming file must be a Client Component (`"use client"`) because the map uses browser APIs.
- Prefer `readonly` for presentation, embedding, org charts, knowledge maps, and other view-only diagrams.
- Leave the map interactive only when the user explicitly needs in-canvas editing. This library is not a full mind-map editor UI (no built-in undo toolbar or inspector).
- Use `fit` (default `true`) so the map scales to the viewport on load.
- Use `compact` for denser layouts in cards or small viewports.
- Use `direction`: `0` left, `1` right, `2` both/side (default).
- Use `theme` only to force light/dark; omit it to follow the document / system theme (works with next-themes).
- Use `markdown` when node topics need rich text — pass a custom parser (for example marked); do not assume a built-in markdown engine.
- The `data` prop accepts either a `MindElixirData` object or a Mind Elixir plaintext string (2-space indented outline); strings are parsed automatically via `plaintextToMindElixir`. The plaintext format is convenient for AI generation and streaming.
- Use `imageProxy` only when export fails due to CORS on remote node images; it is not required for on-screen display.
- For the full instance API (methods, events, advanced options), use `useMindMap().mind` and see Mind Elixir docs: https://github.com/ssshooter/mind-elixir-core
## Components
Install once with `npx shadcn@latest add https://mindmapcn.mind-elixir.com/mindmaps/mindmap.json`, then import these APIs from `@/components/ui/mindmap`:
- [MindMap](/llm/mindmap) - Root Mind Elixir map component for presentation-first diagrams.
- [MindMapControls](/docs/api-reference) - Zoom, fit-to-view, and export controls.
- [useMindMap](/docs/api-reference) - Access the Mind Elixir instance and load state from child components.
## Documentation
- [Introduction](/docs) - Project overview and presentation-first philosophy
- [Installation](/docs/installation) - Install command and first example
- [Usage](/docs/usage) - Readonly, onChange, direction, theme, markdown, compact, imageProxy
- [Plaintext Format](/docs/plaintext) - Pass an indentation-based outline string to `data`
- [Data Structure](/docs/data-structure) - Shape of `MindElixirData` / `nodeData`
- [API Reference](/docs/api-reference) - Component props and `useMindMap`
## Blocks
None yet.