classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : lee Cargando…
Mermaid 11.15.0
Los diagramas de clases describen tipos y relaciones estáticas. Elige secuencia para mensajes en ejecución o flujo para decisiones y pasos de trabajo.
Crear con el Editor de Mermaid →Los métodos llevan paréntesis; escribe el tipo de retorno tras un espacio.
classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : lee Cargando…
| Sintaxis | Significado |
|---|---|
| classDiagram / class Id / class Id["Label"] | Declara el diagrama, el id y una etiqueta opcional. |
| class Id { members } / Id : member | Añade atributos y métodos en un bloque o con dos puntos. |
| + / - / # / ~ | Visibilidad pública, privada, protegida y de paquete. |
| +method(arg) ReturnType / method()* / member$ | El retorno va tras un espacio; * marca métodos abstractos y $ miembros estáticos. |
| List~T~ / Box~List~T~~ | Usa tildes para genéricos; no se admiten argumentos genéricos separados por comas. |
| <|-- / *-- / o-- / --> / -- / ..> / ..|> / .. | Herencia, composición, agregación, asociación, enlace continuo, dependencia, realización y enlace discontinuo. |
| A "1" --> "0..*" B : label | Las multiplicidades entre comillas aparecen en los extremos; los dos puntos añaden una etiqueta. |
| <<interface>> / <<abstract>> / <<service>> / <<enumeration>> | Añade un estereotipo a la clase. |
| namespace Name { class A } | Agrupa clases; 11.15 admite espacios de nombres anidados y con puntos. |
| note "Text" / note for A "Text" | Añade una nota general o asociada a una clase. |
| direction LR / RL / TB / BT | Elige la dirección de disposición. |
| style A fill:#d3e5ff / classDef / cssClass / ::: | Estiliza directamente o aplica clases visuales reutilizables. |
| click A href "URL" / click A call callback() | Los enlaces y callbacks requieren permisos del anfitrión. |
| %% / accTitle: / accDescr: | Comentarios y descripciones accesibles. |
La visibilidad precede al miembro. Los paréntesis distinguen métodos; el retorno va después. Los genéricos usan tildes y no admiten argumentos con comas.
classDiagram
class Repository~T~ {
-List~T~ items
#int count
~String scope
+find(id) T
+create() T*
+int total$
} Cargando…
Triángulos indican herencia o realización y rombos propiedad. Las multiplicidades son texto, no restricciones validadas; invierte la orientación si hace falta.
classDiagram
Base <|-- Derived
Whole *-- Part
Group o-- Member
Reader --> Document
A -- B
Client ..> Service
Contract <|.. Implementation
X .. Y
Reader "1" --> "0..*" Document : lee Cargando…
Los espacios de nombres agrupan visualmente, sin validar ámbitos del lenguaje. Añade notas generales o por clase y estereotipos junto a la clase.
classDiagram
direction LR
namespace Publishing {
class Store {
<<interface>>
+save() bool
}
class Archive
}
Store <|.. Archive
note for Store "Límite de persistencia"
note "Estructura estática" Cargando…
classDef define una clase visual, cssClass o ::: la aplica y style modifica solo el elemento indicado.
classDiagram
classDef important fill:#d3e5ff,stroke:#0070f3,color:#171717
class Guide:::important
class Archive
cssClass "Archive" important
style Guide fill:#d3e5ff,stroke:#0070f3,stroke-width:2px
Guide --> Archive Cargando…
La jerarquía dibuja grupos padres por defecto. hierarchicalNamespaces: false produce grupos compactos con nombres completos, sin renombrar ids.
---
config:
class:
hierarchicalNamespaces: false
---
classDiagram
namespace Docs.Public {
class Guide
}
namespace Docs.Internal {
class Draft
}
Draft ..> Guide Cargando…
Cierra el bloque de miembros antes de añadir relaciones.
Sintaxis incorrecta: ejemplo corregido abajo
classDiagram
class Guide {
+String titleclassDiagram
class Guide {
+String title
} Cargando…
Usa List~T~ y evita parámetros genéricos separados por comas.