What Mermaid Does
- Flowcharts — TD, LR, RL, BT directions
- Sequence diagrams — actor interactions with arrows
- Class diagrams — UML-style
- State diagrams — state machine flows
- ER diagrams — entity-relationship
- Gantt charts — project timelines
- Pie charts — data distribution
- Git graphs — branch visualization
- Mindmaps — hierarchical thinking
- Timeline — chronological events
- Quadrant charts — 2x2 matrices
- Block diagrams — architecture views
Architecture
Pure JavaScript/TypeScript library. Parses Mermaid syntax → builds internal graph → renders to SVG via dagre (layout algorithm) and D3 (rendering). Can run in browser, Node.js, or CLI.
Self-Hosting
Client-side library, no backend.
Key Features
- 15+ diagram types
- GitHub Markdown native
- Dark and light themes
- CLI for CI/CD rendering
- Customizable via directives
- Live editor (mermaid.live)
- Plugin for Docusaurus, Obsidian, Notion
- SVG and PNG export
- Accessible (ARIA labels)
Comparison
| Tool | Input | Types | Integration |
|---|---|---|---|
| Mermaid | Text | 15+ | GitHub, GitLab, Notion |
| PlantUML | Text | 15+ | Java-based |
| draw.io | GUI | Any | Web, desktop |
| Excalidraw | GUI | Freeform | Web |
| D2 | Text | 10+ | CLI |
常见问题 FAQ
Q: GitHub 里怎么用? A: 直接在 Markdown 文件中写 ````mermaid` 代码块,GitHub 自动渲染。无需安装任何东西。
Q: 和 PlantUML 比? A: Mermaid 纯 JS(浏览器原生),PlantUML 需要 Java 后端。Mermaid 语法更简洁,PlantUML 功能更完整(活动图更强)。
Q: 能定制样式吗?
A: 可以。用 %%{init: {"theme": "forest"}}%% 或 CSS class 绑定。也支持完全自定义 theme JSON。
来源与致谢 Sources
- Docs: https://mermaid.js.org/intro
- GitHub: https://github.com/mermaid-js/mermaid
- License: MIT