Mermaid Diagrams
Create professional software diagrams using Mermaid's text-based syntax. Diagrams are version-controllable, easy to update, and render automatically in GitHub, GitLab, Notion, and most markdown viewers.
Quick Workflow
- Select diagram type using decision matrix below
- Start with core elements - entities, actors, or components
- Add relationships - connections, flows, interactions
- Validate - check syntax, completeness, clarity
- Style (optional) - apply themes or custom styling
Diagram Type Selection
Use this decision matrix to choose the right diagram type:
| Need to Show |
Diagram Type |
Reference File |
| Process with decisions |
Flowchart |
flowcharts.md |
| API/system interactions |
Sequence Diagram |
sequence-diagrams.md |
| Database structure |
ERD |
erd-diagrams.md |
| Object relationships |
Class Diagram |
class-diagrams.md |
| System architecture |
C4 Diagram |
c4-diagrams.md |
| State transitions |
State Diagram |
state-diagrams.md |
| Project timeline |
Gantt Chart |
gantt-charts.md |
| Version control flow |
Git Graph |
git-graphs.md |
| Data visualization |
Pie/Bar Chart |
charts.md |
Core Syntax Pattern
All Mermaid diagrams follow this pattern:
diagramType
definition content
Key principles:
- First line declares diagram type (e.g.,
classDiagram, sequenceDiagram, flowchart)
- Use
%% for comments
- Line breaks improve readability but aren't required
- Unknown words break diagrams; parameters fail silently
Quick Examples
Flowchart
flowchart TD
Start([Start]) --> Process[Process Data]
Process --> Decision{Valid?}
Decision -->|Yes| Success[Success]
Decision -->|No| Error[Error]
Sequence Diagram
sequenceDiagram
participant User
participant API
User->>API: Request
API-->>User: Response
ERD
erDiagram
USER ||--o{ ORDER : places
USER {
int id PK
string email UK
}
Class Diagram
classDiagram
Title -- Genre
Title *-- Season
class Title {
+string name
+play()
}
Validation Checklist
Before finalizing a diagram, verify:
Common Patterns
See workflows.md for step-by-step workflows and examples.md for common patterns including:
- API request flows
- Authentication sequences
- Error handling flows
- Database schema design
- Architecture documentation
Styling and Theming
Apply themes and custom styling. See advanced-features.md for:
- Built-in themes (default, forest, dark, neutral, base)
- Custom color schemes
- Node styling
- Layout options
Detailed References
For comprehensive syntax and advanced features:
- flowcharts.md - Node shapes, decision logic, subgraphs
- sequence-diagrams.md - Actors, messages, activations, alt/loop blocks
- erd-diagrams.md - Entities, relationships, cardinality, keys
- class-diagrams.md - Relationships, multiplicity, methods/properties
- c4-diagrams.md - Context, container, component levels
- state-diagrams.md - States, transitions, lifecycle
- gantt-charts.md - Tasks, dependencies, timelines
- git-graphs.md - Branches, commits, merges
- charts.md - Pie charts, bar charts, data visualization
- advanced-features.md - Themes, styling, configuration
Best Practices
- Start simple - Begin with core elements, add complexity incrementally
- One diagram, one concept - Keep focused; split large views into multiple diagrams
- Use meaningful names - Clear labels make diagrams self-documenting
- Comment liberally - Use
%% to explain non-obvious relationships
- Version control - Store
.mmd files with code, update as system evolves
- Validate syntax - Test in Mermaid Live before committing
- Keep readable - Don't overcrowd; split if needed (max ~20 nodes recommended)
Export and Rendering
Native support:
- GitHub/GitLab - Automatic rendering in
.md files
- VS Code - With Markdown Mermaid extension
- Notion, Obsidian, Confluence - Built-in support
Export options:
- Mermaid Live Editor - Online editor with PNG/SVG export
- Mermaid CLI -
npm install -g @mermaid-js/mermaid-cli then mmdc -i input.mmd -o output.png
1---2name: mermaid-diagrams3description: Create software diagrams using Mermaid syntax. Use when users need to create, visualize, or document software through diagrams including class diagrams (domain modeling, object-oriented design), sequence diagrams (application flows, API interactions, code execution), flowcharts (processes, algorithms, user journeys), entity relationship diagrams (database schemas), C4 architecture diagrams (system context, containers, components), state diagrams, git graphs, pie charts, gantt charts, or any other diagram type. Triggers include requests to "diagram", "visualize", "model", "map out", "show the flow", or when explaining system architecture, database design, code structure, or user/application flows.4---56# Mermaid Diagrams78Create professional software diagrams using Mermaid's text-based syntax. Diagrams are version-controllable, easy to update, and render automatically in GitHub, GitLab, Notion, and most markdown viewers.910## Quick Workflow11121. **Select diagram type** using decision matrix below132. **Start with core elements** - entities, actors, or components143. **Add relationships** - connections, flows, interactions154. **Validate** - check syntax, completeness, clarity165. **Style** (optional) - apply themes or custom styling1718## Diagram Type Selection1920Use this decision matrix to choose the right diagram type:2122| Need to Show | Diagram Type | Reference File |23|--------------|--------------|----------------|24| Process with decisions | Flowchart | [flowcharts.md](references/flowcharts.md) |25| API/system interactions | Sequence Diagram | [sequence-diagrams.md](references/sequence-diagrams.md) |26| Database structure | ERD | [erd-diagrams.md](references/erd-diagrams.md) |27| Object relationships | Class Diagram | [class-diagrams.md](references/class-diagrams.md) |28| System architecture | C4 Diagram | [c4-diagrams.md](references/c4-diagrams.md) |29| State transitions | State Diagram | [state-diagrams.md](references/state-diagrams.md) |30| Project timeline | Gantt Chart | [gantt-charts.md](references/gantt-charts.md) |31| Version control flow | Git Graph | [git-graphs.md](references/git-graphs.md) |32| Data visualization | Pie/Bar Chart | [charts.md](references/charts.md) |3334## Core Syntax Pattern3536All Mermaid diagrams follow this pattern:3738```mermaid39diagramType40 definition content41```4243**Key principles:**44- First line declares diagram type (e.g., `classDiagram`, `sequenceDiagram`, `flowchart`)45- Use `%%` for comments46- Line breaks improve readability but aren't required47- Unknown words break diagrams; parameters fail silently4849## Quick Examples5051### Flowchart52```mermaid53flowchart TD54 Start([Start]) --> Process[Process Data]55 Process --> Decision{Valid?}56 Decision -->|Yes| Success[Success]57 Decision -->|No| Error[Error]58```5960### Sequence Diagram61```mermaid62sequenceDiagram63 participant User64 participant API65 User->>API: Request66 API-->>User: Response67```6869### ERD70```mermaid71erDiagram72 USER ||--o{ ORDER : places73 USER {74 int id PK75 string email UK76 }77```7879### Class Diagram80```mermaid81classDiagram82 Title -- Genre83 Title *-- Season84 class Title {85 +string name86 +play()87 }88```8990## Validation Checklist9192Before finalizing a diagram, verify:9394- [ ] Diagram type matches content and purpose95- [ ] All entities/components/actors identified96- [ ] Relationships/connections are accurate97- [ ] Syntax is valid (test in [Mermaid Live](https://mermaid.live))98- [ ] Labels are clear and descriptive99- [ ] Flow direction is logical100- [ ] All paths/outcomes are covered (for flowcharts)101- [ ] Start and end states defined (where applicable)102103## Common Patterns104105See [workflows.md](workflows.md) for step-by-step workflows and [examples.md](examples.md) for common patterns including:106- API request flows107- Authentication sequences108- Error handling flows109- Database schema design110- Architecture documentation111112## Styling and Theming113114Apply themes and custom styling. See [advanced-features.md](references/advanced-features.md) for:115- Built-in themes (default, forest, dark, neutral, base)116- Custom color schemes117- Node styling118- Layout options119120## Detailed References121122For comprehensive syntax and advanced features:123124- **[flowcharts.md](references/flowcharts.md)** - Node shapes, decision logic, subgraphs125- **[sequence-diagrams.md](references/sequence-diagrams.md)** - Actors, messages, activations, alt/loop blocks126- **[erd-diagrams.md](references/erd-diagrams.md)** - Entities, relationships, cardinality, keys127- **[class-diagrams.md](references/class-diagrams.md)** - Relationships, multiplicity, methods/properties128- **[c4-diagrams.md](references/c4-diagrams.md)** - Context, container, component levels129- **[state-diagrams.md](references/state-diagrams.md)** - States, transitions, lifecycle130- **[gantt-charts.md](references/gantt-charts.md)** - Tasks, dependencies, timelines131- **[git-graphs.md](references/git-graphs.md)** - Branches, commits, merges132- **[charts.md](references/charts.md)** - Pie charts, bar charts, data visualization133- **[advanced-features.md](references/advanced-features.md)** - Themes, styling, configuration134135## Best Practices1361371. **Start simple** - Begin with core elements, add complexity incrementally1382. **One diagram, one concept** - Keep focused; split large views into multiple diagrams1393. **Use meaningful names** - Clear labels make diagrams self-documenting1404. **Comment liberally** - Use `%%` to explain non-obvious relationships1415. **Version control** - Store `.mmd` files with code, update as system evolves1426. **Validate syntax** - Test in Mermaid Live before committing1437. **Keep readable** - Don't overcrowd; split if needed (max ~20 nodes recommended)144145## Export and Rendering146147**Native support:**148- GitHub/GitLab - Automatic rendering in `.md` files149- VS Code - With Markdown Mermaid extension150- Notion, Obsidian, Confluence - Built-in support151152**Export options:**153- [Mermaid Live Editor](https://mermaid.live) - Online editor with PNG/SVG export154- Mermaid CLI - `npm install -g @mermaid-js/mermaid-cli` then `mmdc -i input.mmd -o output.png`