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| A
Un flowchart à trois nœuds, de haut en bas.

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

SyntaxeFormeSignification habituelle
A[Text]RectangleUne étape ou une action
A(Text)ArrondiUn point de départ ou d'arrivée
A([Text])PiluleUn terminateur
A[[Text]]Sous-routineUn appel vers un autre processus
A[(Text)]CylindreUne base de données ou un stockage
A((Text))CercleUne jonction
A{Text}LosangeUne décision
A{{Text}}HexagoneUne étape de préparation
A[/Text/]ParallélogrammeEntrée ou sortie
A[/Text\]TrapèzeUne 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

SyntaxeRésultat
A --> BFlèche
A --- BLigne, sans pointe
A -.-> BFlèche pointillée
A ==> BFlèche épaisse
A -->|label| BFlèche avec un libellé
A --> B --> CChaîne, écrite sur une ligne
A --> B & CUne 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 --> Q
Deux services, chacun avec son propre stockage.

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

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

Diagramme de classes

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

Diagramme d'état

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

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

Où 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.

Autres guides

  1. Exporter mermaid en PNG ou SVG

    Quatre façons de sortir d'un diagramme mermaid — PNG, SVG, source .mmd et bloc Markdown — et quand choisir chacune.

  2. Diagrammes de séquence mermaid

    Participants, types de flèches, barres d'activation, boucles et blocs alt — toute la syntaxe du diagramme de séquence avec des exemples exécutables.

Ouvrez l'éditeur. Gratuit — sans inscription.

Un canevas vierge, un onglet code et toutes les options d'export — gratuit, dans votre navigateur, dès maintenant.