Éditeur et générateur de diagrammes Mermaid en direct

Transformez du texte en diagramme avec l’éditeur ci-dessous. Le guide et ses exemples vous aident à choisir une représentation pour un processus, une explication technique ou un planning.

Chargement de l'outil…

Qu’est-ce que Mermaid ?

Mermaid (en anglais) est un langage de description de diagrammes accompagné d’un moteur de rendu : vous décrivez des étapes, des personnes ou des relations en texte, puis il dessine le diagramme. Par exemple, Review --> Publish relie deux nœuds par une flèche. Vous définissez les relations ; Mermaid calcule la disposition.

Cette approche est souvent appelée diagrammes sous forme de code. La source est du texte ordinaire, que vous pouvez rechercher, copier et versionner avec le document qu’elle explique. Il n’est pas nécessaire d’écrire du JavaScript. Mermaid dessine ce que vous décrivez ; il n’analyse pas votre application et ne vérifie pas qu’un processus est correct.

Choisir un diagramme selon la question à résoudre

Un diagramme utile a un objectif précis. Déterminez ce que le lecteur doit comprendre avant de choisir les formes ou les couleurs.

Votre questionUn diagramme adaptéLes éléments à représenter
Que se passe-t-il ensuite, et où le processus peut-il bifurquer ?OrganigrammeActions, décisions et résultats, par exemple pour valider une note de frais.
Qui communique avec qui, et dans quel ordre ?Diagramme de séquencePersonnes ou services et leurs messages, par exemple lors d’une requête API.
Quels états cet élément peut-il prendre ?Diagramme d’étatsÉtats et événements de transition, par exemple l’ouverture, la résolution et la réouverture d’un ticket.
Comment nos données sont-elles liées ?Diagramme entité-associationEntités, clés et cardinalités, par exemple des clients et leurs commandes.
Quelles sont les dépendances et les dates possibles ?Diagramme de GanttDates, durées et dépendances d’un petit projet.

Pour d’autres besoins, une carte mentale peut organiser des idées, une chronologie résumer des événements et un graphe Git expliquer une stratégie de branches. Consultez la présentation de la syntaxe Mermaid (en anglais) pour explorer d’autres familles. Chacune possède sa propre grammaire : modifier seulement la première ligne ne convertit pas un diagramme dans un autre format.

Cinq exemples à adapter

Chaque onglet contient un diagramme complet et explique un choix de modélisation. Copiez le code dans un éditeur Mermaid pour le visualiser ; la déclaration du type appartient à la source, mais pas les accents graves qui délimitent un bloc Markdown. Les mots-clés Mermaid restent en anglais, tandis que les libellés peuvent être en français.

Montrer le chemin à suivre en cas de problème

Un processus de validation des notes de frais doit expliquer quoi faire lorsqu’un justificatif manque. Cet organigramme renvoie la demande pour correction au lieu de laisser cette situation sans réponse.

flowchart TD
    Submit["Envoyer la note de frais"] --> Check{"Justificatif joint ?"}
    Check -->|Oui| Review["Examen par le responsable"]
    Check -->|Non| Fix["Joindre le justificatif"]
    Fix --> Check
    Review --> Decision{"Demande acceptée ?"}
    Decision -->|Oui| Pay["Rembourser le salarié"]
    Decision -->|Non| Reject["Expliquer le refus"]

TD dispose le flux principal de haut en bas ; essayez LR pour aller de gauche à droite. Check est un identifiant stable, tandis que le texte entre guillemets constitue le libellé visible. Conservez les identifiants lorsque vous reformulez les libellés pour préserver les connexions. Les accolades créent des décisions et |Oui| nomme une flèche. La référence des organigrammes (en anglais) présente les autres formes et le regroupement d’étapes en sous-graphes.

Montrer le parcours d’une requête sans résultat en cache

Un diagramme de séquence aide à suivre une requête entre plusieurs composants. Cet exemple rend explicite l’absence d’un résultat en cache : l’API ne lit la base de données que si le cache ne contient pas le produit.

sequenceDiagram
    participant Browser as Navigateur
    participant API
    participant Cache
    participant DB as Base de données
    Browser->>API: GET /products/42
    API->>Cache: Chercher le produit 42
    alt Présent en cache
        Cache-->>API: Produit
    else Absent du cache
        Cache-->>API: Introuvable
        API->>DB: Lire le produit 42
        DB-->>API: Produit
        API->>Cache: Mémoriser le produit
    end
    API-->>Browser: 200 OK avec le produit

Lisez les messages de haut en bas. Ici, les flèches pleines représentent les requêtes et les pointillés les réponses ; alt et else décrivent des chemins alternatifs. Ajoutez une autre alternative si le produit peut aussi manquer dans la base. Ce diagramme décrit un échange prévu, pas des temps de réponse mesurés ni un test de l’API. La référence des diagrammes de séquence (en anglais) présente les boucles, les notes et les interactions parallèles.

Distinguer l’état d’un élément de l’action qui le modifie

Choisissez un diagramme d’états lorsque la question importante est de savoir si une transition est autorisée. Un ticket peut être résolu puis rouvert ; sa fermeture termine le cycle représenté ici.

stateDiagram-v2
    state "Ouvert" as Open
    state "En cours" as InProgress
    state "En attente" as Waiting
    state "Résolu" as Resolved
    state "Fermé" as Closed
    [*] --> Open
    Open --> InProgress: Attribuer
    InProgress --> Waiting: Demander des précisions
    Waiting --> InProgress: Recevoir la réponse
    InProgress --> Resolved: Fournir une solution
    Resolved --> Open: Rouvrir
    Resolved --> Closed: Confirmer la résolution
    Closed --> [*]

Les libellés après : nomment les événements déclencheurs. [*] indique le début ou la fin selon le sens de la flèche. Demandez au responsable du processus si un ticket fermé peut être rouvert : si oui, il manque une transition. Le diagramme aide à repérer cette question, mais ne décide pas de la règle. La référence des diagrammes d’états (en anglais) décrit aussi les états imbriqués.

Préciser les relations avant de détailler tous les champs

Ce petit modèle de commandes indique qu’un client peut n’avoir aucune commande, mais qu’une commande doit contenir au moins une ligne. Il permet de s’accorder sur ces règles avant de créer les tables ou les données échangées par une API.

erDiagram
    CLIENT ||..o{ COMMANDE : passe
    COMMANDE ||--|{ LIGNE_COMMANDE : contient
    CLIENT {
        int id PK
        string email
    }
    COMMANDE {
        int id PK
        int client_id FK
    }
    LIGNE_COMMANDE {
        int commande_id PK, FK
        int numero_ligne PK
        int quantite
    }

|| signifie exactement un, o{ zéro ou plusieurs et |{ un ou plusieurs. La relation en pointillés indique qu’une commande possède une identité indépendante de celle du client ; la relation pleine représente des lignes identifiées au sein d’une commande. PK et FK annotent les clés primaires et étrangères sans créer de contraintes dans une base. Si les brouillons de commande vides sont autorisés, modifiez la cardinalité des lignes. La référence entité-association (en anglais) détaille cette notation.

Rendre visibles les dépendances d’un petit projet

Ce planning enchaîne rédaction, relecture et publication. Modifier la durée de rédaction décale les tâches qui en dépendent, ce qui facilite la discussion sur les conséquences d’un retard.

gantt
    title Publication de la documentation
    dateFormat YYYY-MM-DD
    excludes weekends
    section Préparation
    Plan          :outline, 2026-11-02, 2d
    Rédaction     :draft, after outline, 3d
    section Publication
    Relecture     :review, after draft, 2d
    Publication   :milestone, after review, 0d

draft et review sont des identifiants de tâche ; after draft exprime une dépendance. Avec excludes weekends, les durées excluent les jours de week-end, même si les barres restent continues. Les dates sont données à titre d’exemple. Ce dessin de planning ne gère pas les ressources : il ne connaît pas les disponibilités de l’équipe et n’impose aucune échéance. La référence Gantt (en anglais) explique les dates, les exclusions et les jalons.

Les avantages de Mermaid et ses limites

Mermaid convient bien aux diagrammes qui évoluent avec une spécification, un article d’assistance ou un projet logiciel :

  • Les changements se relisent. Une comparaison de versions peut montrer qu’une étape ou une relation a changé. Écrivez une relation par ligne pour faciliter cette relecture.
  • La source reste près de l’explication. Conservez le diagramme avec le document et relisez-les dans la même modification. Cela facilite la maintenance, sans garantir une mise à jour automatique.
  • La disposition demande moins de travail. Le placement automatique est pratique pour de petits processus ou échanges, notamment lorsque les libellés changent souvent.

Les contreparties comptent tout autant :

  • Le placement précis est limité. Ajouter une connexion peut réorganiser le dessin. Si l’espacement exact, les annotations à main levée ou une composition graphique soignée sont prioritaires, un outil de dessin visuel sera généralement plus adapté.
  • La syntaxe s’apprend. Une ponctuation manquante ou la syntaxe d’une autre famille peut empêcher le rendu. Partez d’un exemple fonctionnel et ajoutez une idée à la fois.
  • Les grands diagrammes deviennent difficiles à lire. L’accumulation de nœuds et de croisements peut masquer le message malgré une source valide. Séparez la vue d’ensemble des processus détaillés plutôt que de tout réduire sur une page.
  • La portabilité se vérifie. Une plateforme documentaire peut utiliser une autre version de Mermaid ou une configuration différente. Testez sur la destination, surtout avec une syntaxe récente, des icônes ou des styles.

Intégrer un diagramme dans un README ou un document

Sur une plateforme compatible, placez la source dans un bloc Markdown délimité et étiqueté mermaid :

```mermaid
flowchart LR
    Draft["Brouillon"] --> Review["Relecture"] --> Publish["Publication"]
```

Le guide des diagrammes de GitHub explique où les utiliser et comment vérifier la version de Mermaid. D’autres systèmes Markdown nécessitent un module complémentaire ; un bloc de code ne suffit pas à faire dessiner le diagramme par tous les moteurs.

Pour une présentation ou un document sans prise en charge de Mermaid, insérez une image et conservez sa source à côté. L’image est un instantané : modifier la source ne met pas à jour une image déjà insérée. Vérifiez le résultat à sa taille finale, car les longs libellés et les petits caractères peuvent devenir illisibles.

Rendre le diagramme utile à ses lecteurs

Définissez son périmètre : “Traitement d’une absence en cache” renseigne mieux que “Architecture du système” pour l’exemple d’API ci-dessus. Utilisez des verbes pour les actions, des noms pour les entités et des libellés sur les chemins de décision. Incluez le scénario d’échec ou de reprise dont les lecteurs auront le plus besoin.

Expliquez les règles importantes dans le texte voisin et ne faites pas de la couleur le seul moyen de distinguer les résultats. Les options d’accessibilité de Mermaid (en anglais) comprennent accTitle et accDescr pour un titre et une description accessibles. Si vous publiez une image, ajoutez aussi un texte alternatif adapté dans le document de destination ; un PNG ne conserve pas la structure d’accessibilité du SVG Mermaid.

Comment utiliser cet outil

  1. Choisissez Modèles ou collez du code Mermaid dans Source du diagramme. L’aperçu s’actualise après une courte pause.
  2. Placez le curseur sur une ligne, puis ouvrez Choisir un bloc avec la flèche à côté du bouton Insérer. Choisir un bloc l’insère ; le bouton principal répète ce choix. Modifiez ses libellés et connexions dans la source. Les blocs utilisent des noms d’exemple ; reliez-les à vos propres nœuds selon vos besoins.
  3. Utilisez Annuler et Rétablir dans la barre principale. Les icônes au-dessus de la source permettent d’indenter, commenter, dupliquer, rechercher ou parcourir le texte. Parcourir la source liste les lignes non vides et permet d’aller à un numéro de ligne. Rechercher et remplacer utilise du texte littéral, sensible à la casse.
  4. Utilisez Ctrl/Cmd+Z pour annuler, Ctrl/Cmd+Maj+Z pour rétablir, Ctrl/Cmd+F pour rechercher, Ctrl/Cmd+/ pour commenter ou décommenter et Ctrl/Cmd+[ ou ] pour modifier l’indentation. Utilisez Déplacer les lignes vers le haut/bas ou Alt+Haut/Bas pour déplacer la ligne courante, ou sélectionnez plusieurs lignes pour déplacer un bloc entier en conservant son indentation. La ligne courante et les lignes sélectionnées restent surlignées lorsque vous utilisez la barre d’outils. Tab passe au contrôle suivant.
  5. L’aperçu commence toujours avec le thème clair, quel que soit le thème du site ; utilisez le lien de thème souligné en pointillés à côté d’Aperçu en direct pour en choisir un autre. Ouvrez Aperçu en plein écran à droite de la barre d’outils de l’aperçu. Chaque vue conserve son propre zoom. Maintenez Ctrl ou Espace et faites glisser pour déplacer un diagramme agrandi, utilisez Ctrl + molette pour zoomer et Ctrl + 0 pour ajuster. Ctrl + plus/moins permet aussi de zoomer lorsque l’aperçu a le focus ou en plein écran (Ctrl + = permet également d’agrandir). Cliquez d’abord dans l’aperçu pour les raccourcis clavier ; les flèches permettent aussi de le faire défiler. Échap ferme le plein écran et les boîtes de dialogue.
  6. Copiez ou téléchargez la source, ou enregistrez le diagramme en PNG. Si la copie est indisponible, la source est sélectionnée pour une copie manuelle.

Modèles et blocs à insérer

Les modèles et les 36 blocs couvrent douze familles de diagrammes. Le moteur accepte aussi les autres types reconnus par la bibliothèque Mermaid intégrée. Le bouton Insérer sélectionne un bloc adapté lorsque la famille change et conserve sinon le dernier choix. Son menu ouvre une famille à la fois. Les blocs d’une autre famille sont insérés comme références commentées ; ils ne convertissent pas le diagramme actuel.

Enregistrement, source prise en charge et limites

Les téléchargements PNG et source sont gratuits. L’export SVG est réservé à une future offre premium et reste masqué dans la version normale. Les abonnements ne sont pas encore disponibles.

La source reste en mémoire jusqu’à ce que vous quittiez ou rechargiez la page. Il n’y a ni enregistrement automatique, ni compte, ni URL de partage, ni service d’IA. L’ouverture d’un fichier ou le chargement d’un modèle remplace la source actuelle ; cette action peut être annulée. Téléchargez votre source avant de partir.

Utilisez au maximum 30 000 unités UTF-16, 600 lignes et 250 arêtes. Un diagramme complexe peut atteindre plus tôt les limites pratiques du moteur. Les exports PNG sont limités à 4 096 pixels par côté et à environ 12 millions de pixels. Le zoom de l’aperçu ne modifie pas la taille des exports.

Les directives de configuration Mermaid, les en-têtes YAML, les formes, style/classDef, les réglages de thème et les libellés HTML assainis sont pris en charge. La configuration dans la source peut remplacer le thème par défaut de la barre d’outils. Utilisez des icônes Bootstrap comme bi:person ou bi:database ; le jeu d’icônes se charge localement au besoin. Les nœuds image acceptent des URL de données PNG, JPEG ou WebP intégrées, dans la limite de taille de la source.

Les images distantes, les polices et les imports CSS externes ne sont pas chargés. Les liens HTTP(S), e-mail et de fragment valides sont conservés dans les exports SVG ; l’aperçu et le PNG sont des images, donc leurs liens ne sont pas cliquables. Les scripts, gestionnaires d’événements et URL dangereuses sont supprimés ; la source ne peut pas modifier les limites de sécurité ou de ressources. Les erreurs de Mermaid peuvent apparaître en anglais. Un rendu invalide ou en cours efface l’aperçu et désactive les téléchargements d’images, pour éviter de confondre un ancien diagramme avec la source actuelle.

Vos données restent dans votre navigateur

Cet outil traite vos données sur votre appareil. Le texte, les fichiers ou les mots de passe saisis et les résultats produits ne sont envoyés ni à nos serveurs ni à un autre serveur.

Le chargement des pages et de leurs ressources génère des requêtes. En production, les pages chargent aussi Google Tag Manager, Cloudflare Web Analytics et les publicités AdSense ; le code des outils ne transmet ni vos saisies ni vos résultats aux services de mesure ou de publicité. Consultez notre politique de confidentialité.

Pour examiner les requêtes pendant l'utilisation de l'outil, ouvrez les outils de développement de votre navigateur, puis l'onglet Réseau. Faites un essai avec des données fictives.

Consultez Comment examiner les requêtes réseau dans Chrome, Firefox, Edge et Safari.

L'offre Premium arrive bientôt

Un abonnement Premium facultatif permettant de supprimer les publicités est prévu. Les abonnements ne sont pas encore disponibles.

Vous pouvez continuer à utiliser nos outils gratuits sans compte.