Cheat sheet della sintassi mermaid
Mermaid ha un riferimento ampio e un sottoinsieme ridotto che copre quasi tutto ciò che si disegna. Questa pagina è quel sottoinsieme: forme, frecce, raggruppamento, colori e un esempio copia-incolla per ogni tipo di diagramma. Ogni frammento qui sotto si renderizza così com'è — incollalo nell'editor per vederlo.
Il diagramma più breve che funziona
Un flowchart richiede una riga di dichiarazione e una freccia. TD significa dall'alto verso il basso; usa LR per la disposizione da sinistra a destra, più adatta ai processi ampi.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B e C sono id dei nodi — nomi interni, mai disegnati. Il testo tra parentesi è l'etichetta, e lo stile delle parentesi determina la forma.
Forme dei nodi
La forma è scelta dalla coppia di delimitatori attorno all'etichetta. Queste sono quelle da ricordare:
| Sintassi | Forma | Significato abituale |
|---|---|---|
A[Text] | Rettangolo | Un passaggio o un'azione |
A(Text) | Arrotondato | Un punto di inizio o fine |
A([Text]) | Pillola | Un terminatore |
A[[Text]] | Sottoprocesso | Una chiamata a un altro processo |
A[(Text)] | Cilindro | Un database o un archivio |
A((Text)) | Cerchio | Un punto di giunzione |
A{Text} | Rombo | Una decisione |
A{{Text}} | Esagono | Un passaggio di preparazione |
A[/Text/] | Parallelogramma | Input o output |
A[/Text\] | Trapezio | Un'operazione manuale |
Racchiudi l'etichetta tra virgolette quando contiene parentesi, due punti o virgolette: A["Load (raw) data"]. Senza virgolette il parser interpreta la tua punteggiatura come sintassi.
Frecce
| Sintassi | Risultato |
|---|---|
A --> B | Freccia |
A --- B | Linea, senza punta |
A -.-> B | Freccia punteggiata |
A ==> B | Freccia spessa |
A -->|label| B | Freccia con etichetta |
A --> B --> C | Catena, scritta su una riga |
A --> B & C | Una sorgente, due destinazioni |
La lunghezza della freccia è significativa: --> corrisponde a un livello, ---> sposta la destinazione un livello più in basso. È il controllo di layout più semplice che mermaid offre.
Raggruppare con i sottografi
Un subgraph disegna un riquadro etichettato attorno ai nodi. I sottografi si possono annidare, e le frecce possono attraversarne liberamente i confini.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QColore e stile
style colora un singolo nodo. classDef più class colora un insieme di essi, utile oltre i tre o quattro nodi.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badI colori fanno parte del codice sorgente del diagramma, quindi sopravvivono all'esportazione e viaggiano con il file. Nulla qui dipende da un'impostazione di tema dello strumento che lo renderizza.
Un esempio per ogni tipo di diagramma
Diagramma di sequenza
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseDiagramma delle classi
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogDiagramma di stato
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishDiagramma entità-relazione
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Diagramma di Gantt
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dDove mermaid si renderizza da solo
- GitHub — un blocco ```mermaid con recinto si renderizza in issue, pull request, commenti e file README.
- GitLab — lo stesso blocco con recinto, in issue, merge request e nella wiki.
- Notion — un blocco di codice con il linguaggio impostato su Mermaid si renderizza accanto al sorgente.
- Obsidian — un blocco mermaid con recinto si renderizza in modalità anteprima.
- Siti di documentazione — Docusaurus, MkDocs Material e VitePress supportano tutti i blocchi mermaid.
Questo è il vero motivo per mantenere i diagrammi come mermaid invece che come immagini: il diagramma vive nello stesso file di testo di ciò che descrive, e una code review può vedere cosa è cambiato al suo interno.
Prova qualsiasi frammento in questa pagina
Incollalo nella scheda codice e si renderizza all'istante — oppure costruisci lo stesso diagramma sulla tela e rileggi la sintassi generata.
Domande frequenti
Come aggiungo un'interruzione di riga dentro l'etichetta di un nodo?
Usa <br> dentro un'etichetta tra virgolette: A["First line<br>Second line"]. Mermaid renderizza l'etichetta come HTML, quindi il tag funziona anche se il resto della sintassi non è HTML.
Perché la mia etichetta rompe il diagramma?
Quasi sempre una parentesi, una parentesi tonda, due punti o una virgoletta non racchiusi tra virgolette dentro l'etichetta. Racchiudi l'intera etichetta tra virgolette doppie e il parser smette di interpretare la tua punteggiatura come sintassi.
Posso controllare il layout?
Solo indirettamente. Scegli la direzione (TD, LR, BT, RL), usa frecce più lunghe (--->) per allontanare i nodi, e raggruppa i nodi correlati in sottografi. Mermaid calcola il resto — non ci sono coordinate.
Quale versione di mermaid usa questo editor?
Mermaid 11, l'attuale versione principale, quindi tutto ciò che è documentato per la sintassi v10 e v11 si renderizza qui.