--- name: mermaid-diagramming type: standard depth: extended description: >- Creates Mermaid v11+ diagrams with ELK layout and YAML frontmatter. Covers 22 diagram types: flowchart, mindmap, block, sequence, journey, state, ER, class, requirement, pie, quadrant, sankey, xy, radar, gantt, treemap, C4, architecture, packet, timeline, gitgraph, kanban. Use when visualizing: logic flow, interactions, state machines, data models, charts, system architecture, or any diagram requiring theming, classDef styling, or accessibility. --- # [H1][MERMAID-DIAGRAMMING] >**Dictum:** *Modern Mermaid syntax produces consistent, styled diagrams.*
Mermaid v11+ diagram creation with frontmatter YAML, ELK layout, Dracula palette. 22 diagram types across 5 semantic categories. **Scope:** - *Create:* New diagrams from requirements. Select category, load syntax reference, apply styling. - *Reference:* Syntax lookup for nodes, edges, relationships, charts, architecture. **Domain Navigation:** - *[CONFIG]* — Frontmatter YAML, ELK 5-phase layout, direction, limits. Load FIRST for all diagrams. - *[STYLING]* — Theme presets, themeVariables, classDef, linkStyle, palette. Load for visual customization. - *[GRAPH]* — Flowchart, mindmap, block. Load for: decision trees, hierarchies, system decomposition. - *[INTERACTION]* — Sequence, journey. Load for: protocols, request-response, user experience. - *[MODELING]* — State, ER, class, requirement. Load for: FSM, data models, OOP structure, traceability. - *[CHARTS]* — Pie, quadrant, sankey, xy, radar, gantt, treemap. Load for: data visualization, project timelines. - *[ARCHITECTURE]* — C4, architecture-beta, packet-beta, timeline, gitgraph, kanban. Load for: system views, infrastructure, network protocols, version control flow, project boards. --- ## [1][INSTRUCTIONS] >**Dictum:** *Progressive loading optimizes context.*
**Required Tasks:** 1. Read [→global-config.md](./references/global-config.md): Frontmatter YAML, ELK layout (required for ALL diagrams). 2. Read [→styling.md](./references/styling.md): Theme, classDef, palette. 3. Select diagram category per §2 table, load corresponding syntax reference. [REFERENCE]: [→index.md](./references/index.md) — Complete file listing. **Guidance:** - `Config First` — Frontmatter YAML must precede diagram declaration. Mermaid parses config before nodes. - `ELK Layout` — ELK provides comprehensive graph layout via five algorithmic phases: cycle breaking, layering, crossing minimization, node placement, edge routing. **Best-Practices:** - *Load Sequence* — global-config.md → styling.md → {category}.md → compose. Never skip configuration. - *Frontmatter Only* — `%%{init:...}%%` directives deprecated v10.5.0. Use YAML frontmatter exclusively. --- ## [2][DIAGRAM_SELECTION] >**Dictum:** *Category determines semantic structure.*
| [CATEGORY] | [TYPES] | [REFERENCE] | | :----------- | ---------------------------------------------------- | --------------------------------------------------------- | | Graph | flowchart, mindmap, block | [→graph.md](./references/graph.md) | | Interaction | sequence, journey | [→interaction.md](./references/interaction.md) | | Modeling | state, ER, class, requirement | [→modeling.md](./references/modeling.md) | | Charts | pie, quadrant, sankey, xy, radar, gantt, treemap | [→charts.md](./references/charts.md) | | Architecture | C4, architecture, packet, timeline, gitgraph, kanban | [→architecture.md](./references/architecture.md) | **Type Headers:** | [INDEX] | [TYPE] | [HEADER] | [DIR] | [CATEGORY] | | :-----: | ------------ | -------------------- | :---: | ------------ | | [1] | Flowchart | `flowchart LR` | LR | Graph | | [2] | Mindmap | `mindmap` | — | Graph | | [3] | Block | `block-beta` | — | Graph | | [4] | Sequence | `sequenceDiagram` | TB | Interaction | | [5] | Journey | `journey` | — | Interaction | | [6] | State | `stateDiagram-v2` | TB | Modeling | | [7] | ER | `erDiagram` | LR | Modeling | | [8] | Class | `classDiagram` | TB | Modeling | | [9] | Requirement | `requirementDiagram` | — | Modeling | | [10] | Pie | `pie` | — | Charts | | [11] | Quadrant | `quadrantChart` | — | Charts | | [12] | Sankey | `sankey-beta` | — | Charts | | [13] | XY | `xychart-beta` | — | Charts | | [14] | Radar | `radar-beta` | — | Charts | | [15] | Gantt | `gantt` | — | Charts | | [16] | Treemap | `treemap-beta` | — | Charts | | [17] | C4 | `C4Context` | — | Architecture | | [18] | Architecture | `architecture-beta` | — | Architecture | | [19] | Packet | `packet-beta` | — | Architecture | | [20] | Timeline | `timeline` | — | Architecture | | [21] | GitGraph | `gitGraph` | — | Architecture | | [22] | Kanban | `kanban` | — | Architecture | **Guidance:** - `LR Default` — Horizontal flow matches reading order. Sequence/State force TB implicitly. - `Beta Status` — block, sankey, xy, radar, treemap, architecture, packet, kanban are beta; syntax may change. **Best-Practices:** - *Category Match* — Select by primary concern: flow→Graph, time→Interaction, structure→Modeling, data→Charts, system→Architecture. --- ## [3][VALIDATION] >**Dictum:** *Gates prevent rendering failures.*
[VERIFY] Before diagram creation: - [ ] Frontmatter: valid YAML with `config:` key (before diagram declaration). - [ ] Direction: LR for flowchart/ER, implicit TB for sequence/state. - [ ] Reserved words avoided: `end`, `default`, `subgraph`, `class` in node IDs. - [ ] classDef: placed at diagram end, after node definitions. - [ ] Accessibility: accTitle/accDescr present after diagram type. [REFERENCE]: [→validation.md](./references/validation.md) — Full validation checklists and anti-patterns.