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| A
Een flowchart met drie knopen, van boven naar beneden.

A, 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:

SyntaxVormGebruikelijke betekenis
A[Text]RechthoekEen stap of actie
A(Text)AfgerondEen start- of eindpunt
A([Text])PilEen eindpunt
A[[Text]]SubroutineEen aanroep naar een ander proces
A[(Text)]CilinderEen database of opslag
A((Text))CirkelEen knooppunt
A{Text}RuitEen beslissing
A{{Text}}ZeshoekEen voorbereidingsstap
A[/Text/]ParallellogramIn- of uitvoer
A[/Text\]TrapeziumEen 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

SyntaxResultaat
A --> BPijl
A --- BLijn, zonder pijlpunt
A -.-> BGestippelde pijl
A ==> BDikke pijl
A -->|label| BPijl met een label erop
A --> B --> CKeten, op één regel geschreven
A --> B & CEé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 --> Q
Twee services, elk met zijn eigen opslag.

Kleur 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 bad

Kleuren 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: response

Class diagram

classDiagram
  class Animal {
    +String name
    +move()
  }
  class Dog {
    +bark()
  }
  Animal <|-- Dog

State diagram

stateDiagram-v2
  [*] --> Idle
  Idle --> Running: start
  Running --> Idle: stop
  Running --> [*]: finish

Entity 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, 5d

Waar 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.

Meer gidsen

  1. Mermaid exporteren naar PNG of SVG

    Vier manieren uit een mermaid-diagram — PNG, SVG, .mmd-broncode en een Markdown-blok — en wanneer elke het juiste antwoord is.

  2. Mermaid sequence diagrams

    Participants, pijltypes, activatiebalken, loops en alt-blokken — de hele sequence diagram-syntax met werkende voorbeelden.

Open de editor. Gratis — geen aanmelding.

Een leeg canvas, een codetabblad en elke exportoptie — gratis, in je browser, nu meteen.