classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : lê Carregando…
Mermaid 11.15.0
Diagramas de classes descrevem tipos e relações estáticas. Use sequência para mensagens em execução ou fluxogramas para decisões e etapas de trabalho.
Criar com o Editor Mermaid →Métodos têm parênteses; o tipo de retorno vem depois de um espaço.
classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : lê Carregando…
| Sintaxe | Significado |
|---|---|
| classDiagram / class Id / class Id["Label"] | Declara o diagrama, o id e um rótulo opcional. |
| class Id { members } / Id : member | Adiciona atributos e métodos em um bloco ou com dois-pontos. |
| + / - / # / ~ | Visibilidade pública, privada, protegida e de pacote. |
| +method(arg) ReturnType / method()* / member$ | Retorno após um espaço; * marca métodos abstratos e $ membros estáticos. |
| List~T~ / Box~List~T~~ | Tis delimitam genéricos; argumentos separados por vírgulas não são aceitos. |
| <|-- / *-- / o-- / --> / -- / ..> / ..|> / .. | Herança, composição, agregação, associação, ligação contínua, dependência, realização e ligação tracejada. |
| A "1" --> "0..*" B : label | Multiplicidades entre aspas aparecem nas pontas; dois-pontos adicionam um rótulo. |
| <<interface>> / <<abstract>> / <<service>> / <<enumeration>> | Adiciona um estereótipo à classe. |
| namespace Name { class A } | Agrupa classes; 11.15 aceita namespaces aninhados e com pontos. |
| note "Text" / note for A "Text" | Adiciona uma nota geral ou ligada a uma classe. |
| direction LR / RL / TB / BT | Define a direção do layout. |
| style A fill:#d3e5ff / classDef / cssClass / ::: | Estiliza diretamente ou aplica classes visuais reutilizáveis. |
| click A href "URL" / click A call callback() | Links e callbacks exigem permissões do ambiente. |
| %% / accTitle: / accDescr: | Comentários e descrições acessíveis. |
A visibilidade precede o membro. Parênteses identificam métodos; o retorno vem depois. Genéricos usam tis e não aceitam argumentos com vírgulas.
classDiagram
class Repository~T~ {
-List~T~ items
#int count
~String scope
+find(id) T
+create() T*
+int total$
} Carregando…
Triângulos indicam herança ou realização e losangos propriedade. Multiplicidades são texto, não restrições validadas; inverta a orientação se necessário.
classDiagram
Base <|-- Derived
Whole *-- Part
Group o-- Member
Reader --> Document
A -- B
Client ..> Service
Contract <|.. Implementation
X .. Y
Reader "1" --> "0..*" Document : lê Carregando…
Namespaces agrupam visualmente sem validar escopos de linguagem. Use notas gerais ou por classe e estereótipos junto à classe.
classDiagram
direction LR
namespace Publishing {
class Store {
<<interface>>
+save() bool
}
class Archive
}
Store <|.. Archive
note for Store "Limite de persistência"
note "Estrutura estática" Carregando…
classDef define uma classe visual; cssClass ou ::: aplica; style muda apenas o 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 Carregando…
A hierarquia mostra grupos pais por padrão. hierarchicalNamespaces: false cria grupos compactos com nomes completos, sem renomear ids.
---
config:
class:
hierarchicalNamespaces: false
---
classDiagram
namespace Docs.Public {
class Guide
}
namespace Docs.Internal {
class Draft
}
Draft ..> Guide Carregando…
Feche o bloco de membros antes de adicionar relações.
Sintaxe inválida: veja a correção abaixo
classDiagram
class Guide {
+String titleclassDiagram
class Guide {
+String title
} Carregando…
Use List~T~ e evite parâmetros genéricos separados por vírgulas.