Aide-mémoire de la syntaxe mermaid
Mermaid a une référence volumineuse et un petit sous-ensemble qui couvre presque tout ce que les gens dessinent. Cette page, c'est ce sous-ensemble : formes, flèches, regroupement, couleurs, et un exemple prêt à coller par type de diagramme. Chaque extrait ci-dessous s'affiche tel quel — collez-le dans l'éditeur pour le voir.
Le plus petit diagramme qui fonctionne
Un flowchart nécessite une ligne de déclaration et une flèche. TD signifie de haut en bas ; utilisez LR pour un sens gauche-droite, mieux adapté aux processus larges.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B et C sont des identifiants de nœuds — des noms internes, jamais affichés. Le texte entre crochets est le libellé, et le style des crochets détermine la forme.
Formes de nœuds
La forme est choisie par la paire de délimiteurs autour du libellé. Voici celles à retenir :
| Syntaxe | Forme | Signification habituelle |
|---|---|---|
A[Text] | Rectangle | Une étape ou une action |
A(Text) | Arrondi | Un point de départ ou d'arrivée |
A([Text]) | Pilule | Un terminateur |
A[[Text]] | Sous-routine | Un appel vers un autre processus |
A[(Text)] | Cylindre | Une base de données ou un stockage |
A((Text)) | Cercle | Une jonction |
A{Text} | Losange | Une décision |
A{{Text}} | Hexagone | Une étape de préparation |
A[/Text/] | Parallélogramme | Entrée ou sortie |
A[/Text\] | Trapèze | Une opération manuelle |
Mettez le libellé entre guillemets s'il contient des crochets, deux-points ou guillemets : A["Load (raw) data"]. Sans guillemets, l'analyseur interprète votre ponctuation comme de la syntaxe.
Flèches
| Syntaxe | Résultat |
|---|---|
A --> B | Flèche |
A --- B | Ligne, sans pointe |
A -.-> B | Flèche pointillée |
A ==> B | Flèche épaisse |
A -->|label| B | Flèche avec un libellé |
A --> B --> C | Chaîne, écrite sur une ligne |
A --> B & C | Une source, deux cibles |
La longueur de la flèche a aussi un sens : --> correspond à un rang, ---> pousse la cible un rang plus loin. C'est le contrôle de mise en page le plus simple que mermaid vous offre.
Regrouper avec des sous-graphes
Un subgraph dessine un cadre étiqueté autour de nœuds. Les sous-graphes s'imbriquent, et les flèches peuvent librement traverser leurs bordures.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QCouleur et style
style colore un seul nœud. classDef associé à class en colore un ensemble, ce qu'il vous faut au-delà de trois ou quatre nœuds.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badLes couleurs font partie de la source du diagramme, elles survivent donc à l'export et voyagent avec le fichier. Rien ici ne dépend d'un paramètre de thème de l'outil qui l'affiche.
Un exemple par type de diagramme
Diagramme de séquence
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseDiagramme de classes
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogDiagramme d'état
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishDiagramme entité-relation
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Diagramme de Gantt
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dOù mermaid s'affiche tout seul
- GitHub — un bloc ```mermaid s'affiche dans les issues, les pull requests, les commentaires et les fichiers README.
- GitLab — le même bloc, dans les issues, les merge requests et le wiki.
- Notion — un bloc de code avec le langage réglé sur Mermaid s'affiche à côté de la source.
- Obsidian — un bloc mermaid s'affiche en mode aperçu.
- Sites de documentation — Docusaurus, MkDocs Material et VitePress prennent tous en charge les blocs mermaid.
C'est la vraie raison de garder les diagrammes en mermaid plutôt qu'en images : le diagramme vit dans le même fichier texte que ce qu'il décrit, et une revue de code peut voir ce qui y a changé.
Essayez n'importe quel extrait de cette page
Collez-le dans l'onglet code et il s'affiche instantanément — ou construisez le même diagramme sur le canevas et relisez la syntaxe générée.
Questions fréquentes
Comment ajouter un saut de ligne dans un libellé de nœud ?
Utilisez <br> dans un libellé entre guillemets : A["First line<br>Second line"]. Mermaid affiche le libellé comme du HTML, donc la balise fonctionne même si le reste de la syntaxe n'est pas du HTML.
Pourquoi mon libellé casse-t-il le diagramme ?
Presque toujours un crochet, une parenthèse, un deux-points ou un guillemet non entouré de guillemets dans le libellé. Entourez tout le libellé de guillemets doubles et l'analyseur cessera de traiter votre ponctuation comme de la syntaxe.
Puis-je contrôler la mise en page ?
Seulement indirectement. Choisissez la direction (TD, LR, BT, RL), utilisez des flèches plus longues (--->) pour espacer davantage les nœuds, et regroupez les nœuds liés dans des sous-graphes. Mermaid calcule le reste — il n'y a pas de coordonnées.
Quelle version de mermaid utilise cet éditeur ?
Mermaid 11, la version majeure actuelle, donc tout ce qui est documenté pour la syntaxe v10 et v11 s'affiche ici.