Hoja de trucos de sintaxis mermaid
Mermaid tiene una referencia extensa y un pequeño subconjunto que cubre casi todo lo que la gente dibuja. Esta página es ese subconjunto: formas, flechas, agrupación, colores, y un ejemplo de copiar y pegar por cada tipo de diagrama. Cada fragmento de abajo se renderiza tal cual — pégalo en el editor para verlo.
El diagrama más corto que funciona
Un flowchart necesita una línea de declaración y una flecha. TD significa de arriba hacia abajo; usa LR para izquierda a derecha, que se adapta mejor a procesos anchos.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B y C son ids de nodo — nombres internos que nunca se dibujan. El texto entre corchetes es la etiqueta, y el estilo de los corchetes es lo que elige la forma.
Formas de nodo
La forma se elige según el par de delimitadores alrededor de la etiqueta. Estas son las que vale la pena recordar:
| Sintaxis | Forma | Significado habitual |
|---|---|---|
A[Text] | Rectángulo | Un paso o acción |
A(Text) | Redondeado | Un punto de inicio o fin |
A([Text]) | Píldora | Un terminador |
A[[Text]] | Subrutina | Una llamada a otro proceso |
A[(Text)] | Cilindro | Una base de datos o almacén |
A((Text)) | Círculo | Un punto de unión |
A{Text} | Rombo | Una decisión |
A{{Text}} | Hexágono | Un paso de preparación |
A[/Text/] | Paralelogramo | Entrada o salida |
A[/Text\] | Trapecio | Una operación manual |
Pon la etiqueta entre comillas cuando contenga corchetes, dos puntos o comillas: A["Load (raw) data"]. Sin comillas, el analizador interpreta tu puntuación como sintaxis.
Flechas
| Sintaxis | Resultado |
|---|---|
A --> B | Flecha |
A --- B | Línea, sin punta de flecha |
A -.-> B | Flecha punteada |
A ==> B | Flecha gruesa |
A -->|label| B | Flecha con una etiqueta |
A --> B --> C | Cadena, escrita en una línea |
A --> B & C | Un origen, dos destinos |
La longitud de la flecha también tiene significado: --> es un rango, ---> empuja el destino un rango más abajo. Es el control de diseño más simple que mermaid te da.
Agrupar con subgrafos
Un subgraph dibuja una caja etiquetada alrededor de nodos. Los subgrafos se anidan, y las flechas pueden cruzar sus bordes libremente.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QColor y estilos
style pinta un nodo. classDef más class pinta un conjunto de ellos, que es lo que quieres a partir de tres o cuatro nodos.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badLos colores forman parte del código fuente del diagrama, así que sobreviven a la exportación y viajan con el archivo. Nada aquí depende de un ajuste de tema en la herramienta que lo renderiza.
Un ejemplo por cada tipo de diagrama
Diagrama de secuencia
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseDiagrama de clases
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogDiagrama de estados
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishDiagrama de relación de entidades
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Diagrama de Gantt
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dDónde se renderiza mermaid por sí solo
- GitHub — un bloque ```mermaid con delimitadores se renderiza en issues, pull requests, comentarios y archivos README.
- GitLab — el mismo bloque con delimitadores, en issues, merge requests y la wiki.
- Notion — un bloque de código con el lenguaje configurado en Mermaid se renderiza junto al código fuente.
- Obsidian — un bloque mermaid con delimitadores se renderiza en modo de vista previa.
- Sitios de documentación — Docusaurus, MkDocs Material y VitePress admiten todos los bloques mermaid.
Esa es la verdadera razón para mantener los diagramas como mermaid en lugar de como imágenes: el diagrama vive en el mismo archivo de texto que lo que describe, y una revisión de código puede ver qué cambió en él.
Prueba cualquier fragmento de esta página
Pégalo en la pestaña de código y se renderiza al instante — o construye el mismo diagrama en el lienzo y lee la sintaxis de vuelta.
Preguntas frecuentes
¿Cómo añado un salto de línea dentro de la etiqueta de un nodo?
Usa <br> dentro de una etiqueta entre comillas: A["First line<br>Second line"]. Mermaid renderiza la etiqueta como HTML, así que la etiqueta funciona aunque el resto de la sintaxis no sea HTML.
¿Por qué mi etiqueta rompe el diagrama?
Casi siempre es un corchete, paréntesis, dos puntos o comilla sin comillas dentro de la etiqueta. Envuelve toda la etiqueta entre comillas dobles y el analizador dejará de interpretar tu puntuación como sintaxis.
¿Puedo controlar el diseño?
Solo indirectamente. Elige la dirección (TD, LR, BT, RL), usa flechas más largas (--->) para separar más los nodos, y agrupa los nodos relacionados en subgrafos. Mermaid calcula el resto — no hay coordenadas.
¿Qué versión de mermaid usa este editor?
Mermaid 11, la versión principal actual, así que todo lo documentado para la sintaxis de v10 y v11 se renderiza aquí.