Mermaid syntax cheatsheet
Mermaid heeft een uitgebreide referentie en een kleine subset die bijna alles dekt wat mensen tekenen. Deze pagina is die subset: vormen, pijlen, groeperen, kleuren, en één kopieer-plak-voorbeeld per diagramtype. Elk fragment hieronder rendert zoals het is — plak het in de editor om het te zien.
Het kortste diagram dat werkt
Een flowchart heeft één declaratieregel en één pijl nodig. TD betekent van boven naar beneden; gebruik LR voor links naar rechts, wat beter past bij brede processen.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B en C zijn knoop-id's — interne namen, nooit getekend. De tekst tussen haakjes is het label, en de stijl van de haakjes bepaalt de vorm.
Knoopvormen
De vorm wordt bepaald door het scheidingsteken rond het label. Dit zijn de vormen die het onthouden waard zijn:
| Syntax | Vorm | Gebruikelijke betekenis |
|---|---|---|
A[Text] | Rechthoek | Een stap of actie |
A(Text) | Afgerond | Een start- of eindpunt |
A([Text]) | Pil | Een eindpunt |
A[[Text]] | Subroutine | Een aanroep naar een ander proces |
A[(Text)] | Cilinder | Een database of opslag |
A((Text)) | Cirkel | Een knooppunt |
A{Text} | Ruit | Een beslissing |
A{{Text}} | Zeshoek | Een voorbereidingsstap |
A[/Text/] | Parallellogram | In- of uitvoer |
A[/Text\] | Trapezium | Een handmatige bewerking |
Zet het label tussen aanhalingstekens als het haakjes, dubbele punten of aanhalingstekens bevat: A["Load (raw) data"]. Zonder aanhalingstekens ziet de parser je leestekens aan voor syntax.
Pijlen
| Syntax | Resultaat |
|---|---|
A --> B | Pijl |
A --- B | Lijn, zonder pijlpunt |
A -.-> B | Gestippelde pijl |
A ==> B | Dikke pijl |
A -->|label| B | Pijl met een label erop |
A --> B --> C | Keten, op één regel geschreven |
A --> B & C | Eén bron, twee doelen |
De lengte van een pijl is ook betekenisvol: --> is één rang, ---> duwt het doel één rang verder naar beneden. Het is de eenvoudigste layoutcontrole die mermaid biedt.
Groeperen met subgraphs
Een subgraph tekent een gelabeld kader rond knopen. Subgraphs kunnen genest worden, en pijlen mogen vrij hun grenzen kruisen.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QKleur en styling
style kleurt één knoop. classDef plus class kleurt een hele set, wat handig is vanaf een stuk of drie, vier knopen.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badKleuren maken deel uit van de diagrambron, dus ze overleven export en reizen mee met het bestand. Niets hier hangt af van een themainstelling in de tool die het rendert.
Eén voorbeeld per diagramtype
Sequence diagram
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseClass diagram
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogState diagram
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishEntity relationship diagram
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Gantt-diagram
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dWaar mermaid vanzelf rendert
- GitHub — een fenced ```mermaid-blok rendert in issues, pull requests, reacties en README-bestanden.
- GitLab — hetzelfde fenced blok, in issues, merge requests en de wiki.
- Notion — een codeblok met de taal ingesteld op Mermaid rendert naast de bron.
- Obsidian — een fenced mermaid-blok rendert in voorbeeldmodus.
- Docs-sites — Docusaurus, MkDocs Material en VitePress ondersteunen allemaal mermaid-blokken.
Dat is de echte reden om diagrammen als mermaid te bewaren in plaats van als afbeelding: het diagram staat in hetzelfde tekstbestand als wat het beschrijft, en een code review kan zien wat erin veranderd is.
Probeer elk fragment op deze pagina
Plak het in het codetabblad en het rendert direct — of bouw hetzelfde diagram op het canvas en lees de syntax terug.
Veelgestelde vragen
Hoe voeg ik een regeleinde toe binnen een knooplabel?
Gebruik <br> binnen een label tussen aanhalingstekens: A["First line<br>Second line"]. Mermaid rendert het label als HTML, dus de tag werkt ook al is de rest van de syntax geen HTML.
Waarom breekt mijn label het diagram?
Bijna altijd een niet-geciteerd haakje, ronde haak, dubbele punt of aanhalingsteken in het label. Zet het hele label tussen dubbele aanhalingstekens en de parser stopt met je leestekens als syntax te behandelen.
Kan ik de layout beïnvloeden?
Alleen indirect. Kies de richting (TD, LR, BT, RL), gebruik langere pijlen (--->) om knopen verder uit elkaar te duwen, en groepeer gerelateerde knopen in subgraphs. Mermaid berekent de rest — er zijn geen coördinaten.
Welke mermaid-versie gebruikt deze editor?
Mermaid 11, de huidige hoofdversie, dus alles wat gedocumenteerd is voor v10- en v11-syntax rendert hier.