Mermaid-syntax: referensblad
Mermaid har en stor referens och en liten delmängd som täcker nästan allt folk ritar. Den här sidan är den delmängden: former, pilar, gruppering, färger, och ett kopiera-klistra-exempel per diagramtyp. Varje kodsnutt nedan renderas som den är — klistra in den i editorn för att se den.
Det kortaste diagrammet som fungerar
Ett flödesdiagram behöver en deklarationsrad och en pil. TD betyder uppifrån och ner; använd LR för vänster-till-höger, vilket passar breda processer bättre.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B och C är nod-id:n — interna namn, som aldrig ritas ut. Texten i hakparenteserna är etiketten, och det är parentesens stil som avgör formen.
Nodformer
Formen väljs av avgränsarparet runt etiketten. Dessa är värda att komma ihåg:
| Syntax | Form | Vanlig betydelse |
|---|---|---|
A[Text] | Rektangel | Ett steg eller en åtgärd |
A(Text) | Rundad | En start- eller slutpunkt |
A([Text]) | Piller | En terminator |
A[[Text]] | Subrutin | Ett anrop till en annan process |
A[(Text)] | Cylinder | En databas eller ett lager |
A((Text)) | Cirkel | En knutpunkt |
A{Text} | Romb | Ett beslut |
A{{Text}} | Hexagon | Ett förberedelsesteg |
A[/Text/] | Parallellogram | In- eller utdata |
A[/Text\] | Trapets | En manuell åtgärd |
Citera etiketten när den innehåller hakparenteser, kolon eller citattecken: A["Load (raw) data"]. Utan citattecken tolkar parsern din interpunktion som syntax.
Pilar
| Syntax | Resultat |
|---|---|
A --> B | Pil |
A --- B | Linje, ingen pilspets |
A -.-> B | Prickad pil |
A ==> B | Tjock pil |
A -->|label| B | Pil med en etikett på |
A --> B --> C | Kedja, skriven på en rad |
A --> B & C | En källa, två mål |
Pilens längd har också betydelse: --> är en rang, ---> skjuter målet en rang längre ner. Det är den enklaste layoutkontrollen mermaid ger dig.
Gruppering med undergrafer
En subgraph ritar en märkt ruta runt noder. Undergrafer kan nästlas, och pilar får korsa deras gränser fritt.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QFärg och styling
style målar en nod. classDef plus class målar en grupp av dem, vilket är vad du vill ha efter tre eller fyra noder.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badFärger är en del av diagrammets källkod, så de överlever export och följer med filen. Inget här beror på en temainställning i verktyget som renderar det.
Ett exempel per diagramtyp
Sekvensdiagram
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseKlassdiagram
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogTillståndsdiagram
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishER-diagram
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Gantt-schema
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dVar mermaid renderas av sig själv
- GitHub — ett inramat ```mermaid-block renderas i issues, pull requests, kommentarer och README-filer.
- GitLab — samma inramade block, i issues, merge requests och wikin.
- Notion — ett kodblock med språket inställt på Mermaid renderas bredvid källkoden.
- Obsidian — ett inramat mermaid-block renderas i förhandsgranskningsläge.
- Dokumentationssajter — Docusaurus, MkDocs Material och VitePress stödjer alla mermaid-block.
Det är den verkliga anledningen till att hålla diagram som mermaid snarare än som bilder: diagrammet lever i samma textfil som det den beskriver, och en kodgranskning kan se vad som ändrats i det.
Testa valfri kodsnutt på den här sidan
Klistra in den i kodfliken så renderas den direkt — eller bygg samma diagram på canvasen och läs tillbaka syntaxen.
Vanliga frågor
Hur lägger jag till en radbrytning inuti en nodetikett?
Använd <br> inuti en citerad etikett: A["First line<br>Second line"]. Mermaid renderar etiketten som HTML, så taggen fungerar även om resten av syntaxen inte är HTML.
Varför förstör min etikett diagrammet?
Nästan alltid en ociterad hakparentes, parentes, kolon eller citattecken inuti etiketten. Omslut hela etiketten med dubbla citattecken så slutar parsern tolka din interpunktion som syntax.
Kan jag styra layouten?
Bara indirekt. Välj riktning (TD, LR, BT, RL), använd längre pilar (--->) för att skjuta isär noder mer, och gruppera relaterade noder i undergrafer. Mermaid beräknar resten — det finns inga koordinater.
Vilken mermaid-version använder den här editorn?
Mermaid 11, den nuvarande huvudversionen, så allt som dokumenteras för v10- och v11-syntax renderas här.