Saltar al contenido principal

Guía rápida de diagramas de clases en Mermaid

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 →

Inicio rápido

Los métodos llevan paréntesis; escribe el tipo de retorno tras un espacio.

Mermaid
classDiagram
  class Document {
    +String title
    -bool published
    +publish() bool
  }
  class Reader
  Reader --> Document : lee

Cargando…

Referencia de sintaxis

Referencia de sintaxis
SintaxisSignificado
classDiagram / class Id / class Id["Label"]Declara el diagrama, el id y una etiqueta opcional.
class Id { members } / Id : memberAñ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 : labelLas 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 / BTElige 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.

Miembros y genéricos

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.

Mermaid
classDiagram
  class Repository~T~ {
    -List~T~ items
    #int count
    ~String scope
    +find(id) T
    +create() T*
    +int total$
  }

Cargando…

Relaciones y multiplicidad

Triángulos indican herencia o realización y rombos propiedad. Las multiplicidades son texto, no restricciones validadas; invierte la orientación si hace falta.

Mermaid
classDiagram
  Base <|-- Derived
  Whole *-- Part
  Group o-- Member
  Reader --> Document
  A -- B
  Client ..> Service
  Contract <|.. Implementation
  X .. Y
  Reader "1" --> "0..*" Document : lee

Cargando…

Espacios de nombres y notas

Los espacios de nombres agrupan visualmente, sin validar ámbitos del lenguaje. Añade notas generales o por clase y estereotipos junto a la clase.

Mermaid
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…

Estilos reutilizables

classDef define una clase visual, cssClass o ::: la aplica y style modifica solo el elemento indicado.

Mermaid
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…

Disposición de espacios de nombres

La jerarquía dibuja grupos padres por defecto. hierarchicalNamespaces: false produce grupos compactos con nombres completos, sin renombrar ids.

Mermaid
---
config:
  class:
    hierarchicalNamespaces: false
---
classDiagram
  namespace Docs.Public {
    class Guide
  }
  namespace Docs.Internal {
    class Draft
  }
  Draft ..> Guide

Cargando…

Errores frecuentes

Omitir una llave de cierre

Cierra el bloque de miembros antes de añadir relaciones.

Sintaxis incorrecta: ejemplo corregido abajo

classDiagram
  class Guide {
    +String title

Usar ángulos para genéricos

Usa List~T~ y evita parámetros genéricos separados por comas.

Limitaciones

  • No valida sistemas de tipos ni genera código ejecutable.
  • No admite argumentos genéricos separados por comas.
  • La disposición automática fija las posiciones; las relaciones no son restricciones.

Preguntas frecuentes

¿Cómo escribo un retorno?
Escribe el método con paréntesis, un espacio y el tipo, como +find(id) Document.
¿Cómo represento composición?
Usa *-- con el rombo lleno en la clase propietaria; o-- representa agregación.
¿Puedo agrupar clases?
Sí: declara clases en namespace. Mermaid 11.15 admite espacios anidados y con puntos.