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| A
Un flowchart a tre nodi, dall'alto verso il basso.

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

SintassiFormaSignificato abituale
A[Text]RettangoloUn passaggio o un'azione
A(Text)ArrotondatoUn punto di inizio o fine
A([Text])PillolaUn terminatore
A[[Text]]SottoprocessoUna chiamata a un altro processo
A[(Text)]CilindroUn database o un archivio
A((Text))CerchioUn punto di giunzione
A{Text}RomboUna decisione
A{{Text}}EsagonoUn passaggio di preparazione
A[/Text/]ParallelogrammaInput o output
A[/Text\]TrapezioUn'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

SintassiRisultato
A --> BFreccia
A --- BLinea, senza punta
A -.-> BFreccia punteggiata
A ==> BFreccia spessa
A -->|label| BFreccia con etichetta
A --> B --> CCatena, scritta su una riga
A --> B & CUna 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 --> Q
Due servizi, ciascuno con il proprio archivio.

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

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

Diagramma delle classi

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

Diagramma di stato

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

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

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

Altre guide

  1. Esportare mermaid in PNG o SVG

    Quattro modi per uscire da un diagramma mermaid — PNG, SVG, sorgente .mmd e blocco Markdown — e quando ognuno è la risposta giusta.

  2. Diagrammi di sequenza mermaid

    Partecipanti, tipi di freccia, barre di attivazione, loop e blocchi alt — l'intera sintassi del diagramma di sequenza con esempi eseguibili.

Apri l'editor. Gratuito — senza registrazione.

Una tela vuota, una scheda codice e ogni opzione di esportazione — gratis, nel tuo browser, subito.