Mermaid Reference
Mermaid diagramming. Flowcharts, sequence diagrams, Gantt charts, state machines, class diagrams, and ER diagrams.
Flowcharts
Basic flowchart with direction and node shapes
graph LR
A[Rectangle] --> B{Diamond}
B -->|Yes| C(Rounded)
B -->|No| D([Stadium])
C --> E[[Subroutine]]
D --> E
Directions: TB (top-bottom), LR (left-right), BT, RL.
Node shapes reference
graph TB
A[Rectangle]
B(Rounded)
C{Diamond}
D([Stadium])
E[[Subroutine]]
F[(Database)]
G((Circle))
H>Asymmetric]
Sequence Diagrams
Request-response sequence with participants
sequenceDiagram
participant C as Client
participant S as Server
participant D as Database
C->>S: POST /api/login
activate S
S->>D: SELECT user WHERE email=?
activate D
D-->>S: user record
deactivate D
alt valid credentials
S-->>C: 200 OK + JWT
else invalid
S-->>C: 401 Unauthorized
end
deactivate S
Arrow types: →> solid with arrow, -→> dashed with arrow, →>+ activate, →>- deactivate.
State Diagrams
State machine with transitions
stateDiagram-v2
[*] --> Idle
Idle --> Processing: start
Processing --> Success: complete
Processing --> Failed: error
Failed --> Processing: retry
Success --> [*]
Gantt Charts
Project timeline with sections and dependencies
gantt
title Project Timeline
dateFormat YYYY-MM-DD
section Foundation
Base install :done, a1, 2026-04-01, 3d
Network config :done, a2, after a1, 2d
section Application
Deploy app :active, b1, after a2, 4d
Testing : b2, after b1, 3d
section Hardening
Security audit : c1, after b2, 2d
Class Diagrams
Class relationships
classDiagram
class Device {
+String hostname
+String ip_address
+connect()
+backup()
}
class Switch {
+int vlan_count
+show_vlans()
}
class Router {
+String routing_protocol
+show_routes()
}
Device <|-- Switch
Device <|-- Router
Entity-Relationship Diagrams
Database schema with relationships
erDiagram
USER ||--o{ SESSION : creates
USER {
int id PK
string username
string email
}
SESSION {
int id PK
int user_id FK
datetime created_at
}
Cardinality: || exactly one, o| zero or one, }| one or more, }o zero or more.
Kroki Integration
Mermaid in AsciiDoc via Kroki
[mermaid,target=auth-flow,format=svg]
....
sequenceDiagram
Client->>Server: Login
Server-->>Client: JWT
....
Renders during make build via local Kroki container.
Styling
Custom theme with CSS variables
%%{init: {'theme': 'dark', 'themeVariables': {
'primaryColor': '#89b4fa',
'primaryTextColor': '#cdd6f4',
'primaryBorderColor': '#585b70',
'lineColor': '#a6adc8',
'secondaryColor': '#313244',
'tertiaryColor': '#1e1e2e'
}}}%%
graph LR
A[Start] --> B[End]
These map to Catppuccin Mocha palette values for visual consistency.
See Also
-
Kroki — renders Mermaid in Antora builds
-
Diagrams as Code — when to use Mermaid vs D2/GraphViz