Introdução e Guia Rápido de Diagramas Mermaid para Desenvolvedores
Diagramas como código, sem o drama.
Mermaid é uma ferramenta de diagramação baseada em texto para pessoas que preferem escrever diagramas em vez de arrastar caixas em um canvas. Ele usa uma sintaxe similar ao Markdown para descrever fluxogramas, diagramas de sequência, diagramas de classes, máquinas de estados, linhas do tempo, diagramas de Gantt, diagramas de relacionamento de entidades e muito mais.
Para um blog técnico, o Mermaid é uma ótima opção padrão. Os diagramas ficam ao lado do artigo, podem ser revisados no Git e são fáceis de atualizar quando o sistema muda. Diagramas estáticos em formato de imagem ficam bonitos até a primeira mudança de arquitetura. Os diagramas Mermaid não são perfeitos, mas envelhecem muito melhor.

Este guia é um rápido início e guia de referência prático do Mermaid para desenvolvedores, escritores técnicos e proprietários de sites Hugo. Faz parte do hub Ferramentas de Documentação em 2026: Markdown, LaTeX, PDF & Workflows de Impressão.
O Que é o Mermaid?
Mermaid é uma sintaxe de diagrama-como-código. Você escreve um pequeno bloco de texto e o Mermaid o renderiza como um diagrama.
Um diagrama Mermaid básico parece com isto:
este código:
```mermaid
flowchart TD
A[Escrever Markdown] --> B[Adicionar bloco Mermaid]
B --> C[Renderizar página]
C --> D[Publicar diagrama]
```
Produz este diagrama:
A ideia importante é simples: a fonte do diagrama é texto puro. Isso o torna pesquisável, revisável, portátil e fácil de manter junto com a documentação que ele explica.
Por Que Usar Mermaid em um Blog Técnico?
Mermaid é útil quando seu artigo precisa de mais do que prosa, mas menos do que uma ferramenta de design completa.
Use o Mermaid quando quiser explicar:
- Fluxos de requisição e resposta
- Pipelines de implantação
- Dependências de serviços
- Transições de estado
- Relacionamentos de banco de dados
- Jornadas do usuário
- Etapas de build
- Lógica de decisão
- Linhas do tempo de projetos
Eu não usaria o Mermaid para cada visual. Capturas de tela, esboços de arquitetura desenhados à mão e diagramas de marketing polidos ainda têm seu lugar. Mas para documentação de engenharia, o Mermaid é frequentemente a opção mais sustentável.
Rápido Início com Mermaid
Uso Básico no Markdown
No Markdown, use um bloco de código delimitado com mermaid como a linguagem:
```mermaid
flowchart LR
A[Início] --> B[Processo]
B --> C[Concluído]
```
Muitas plataformas entendem este formato diretamente. mermaid é um dos identificadores de linguagem especiais — ao lado de diff, geojson e outros — que certos renderizadores tratam como um tipo de bloco de primeira classe em vez de apenas realce de sintaxe. Para uma análise completa da sintaxe de blocos delimitados e identificadores de linguagem suportados, veja o guia de Blocos de Código Markdown. Para o Hugo, a renderização depende do seu tema ou configuração do site. Mais sobre isso mais tarde.
Teste Diagramas Antes de Publicar
O workflow mais fácil é:
- Escreva o diagrama em seu arquivo Markdown.
- Cole-o em um editor ao vivo do Mermaid ou em uma pré-visualização local.
- Corrija erros de sintaxe.
- Faça commit da fonte Markdown.
- Verifique a página renderizada final.
Isso evita o problema clássico onde um diagrama funciona em um renderizador, mas quebra em outro devido a um pequeno detalhe de sintaxe.
Sintaxe de Fluxograma
Fluxogramas são o tipo de diagrama Mermaid mais comum. Use-os para fluxos de trabalho, algoritmos, árvores de decisão e etapas do sistema.
Fluxograma Básico
este código:
```mermaid
flowchart TD
A[Usuário abre o site] --> B{Usuário está logado?}
B -->|Sim| C[Mostrar painel]
B -->|Não| D[Mostrar página de login]
```
Produz este diagrama:
Direções do Fluxograma
Os fluxogramas do Mermaid suportam várias direções:
TD - de cima para baixo
TB - de cima para baixo
BT - de baixo para cima
LR - da esquerda para a direita
RL - da direita para a esquerda
Exemplo:
este código:
```mermaid
flowchart LR
Navegador --> CDN
CDN --> ServidorWeb
ServidorWeb --> BancoDeDados
```
Produz este diagrama:
Para artigos de blog, LR (esquerda para direita) é frequentemente mais fácil de ler para diagramas de arquitetura. Para processos passo a passo, TD (de cima para baixo) é geralmente melhor.
Formas de Nó Comuns
este código:
```mermaid
flowchart TD
A[Retângulo]
B(Retângulo arredondado)
C{Decisão}
D((Círculo))
E[(Banco de Dados)]
F[[Sub-rotina]]
```
Produz este diagrama:
Setas do Fluxograma
este código:
```mermaid
flowchart LR
A --> B
B --- C
C -.-> D
D ==> E
E -- Rótulo --> F
```
Produz este diagrama:
Subgrafos
Use subgrafos para agrupar partes relacionadas de um sistema.
este código:
```mermaid
flowchart LR
subgraph Cliente
Navegador
end
subgraph Backend
API
Worker
end
subgraph Armazenamento
DB[(PostgreSQL)]
Cache[(Redis)]
end
Navegador --> API
API --> DB
API --> Cache
API --> Worker
```
Produz este diagrama:
Subgrafos são poderosos, mas use-os com cuidado. Um diagrama com seis subgrafos e vinte setas é geralmente um sinal de que o artigo precisa de dois diagramas menores.
Sintaxe de Diagrama de Sequência
Diagramas de sequência mostram a comunicação entre atores ou serviços ao longo do tempo.
este código:
```mermaid
sequenceDiagram
participante Usuário
participante App
participante API
participante DB
Usuário->>App: Clicar em login
App->>API: POST /login
API->>DB: Validar credenciais
DB-->>API: Registro do usuário
API-->>App: Token de acesso
App-->>Usuário: Mostrar painel
```
Produz este diagrama:
Setas Comuns de Sequência
-> linha sólida sem seta
--> linha pontilhada sem seta
->> linha sólida com seta
-->> linha pontilhada com seta
-x linha sólida com cruz
--x linha pontilhada com cruz
Barras de Ativação
As barras de ativação tornam mais claro quando um participante está realizando trabalho.
este código:
```mermaid
sequenceDiagram
participante Cliente
participante Servidor
Cliente->>Servidor: Solicitar dados
ativar Servidor
Servidor-->>Cliente: Resposta
desativar Servidor
```
Produz este diagrama:
Alternativas e Condições
este código:
```mermaid
sequenceDiagram
participante Usuário
participante API
participante Pagamento
Usuário->>API: Enviar pedido
alt Pagamento bem-sucedido
API->>Pagamento: Cobrar cartão
Pagamento-->>API: Aprovado
API-->>Usuário: Pedido confirmado
else Pagamento falha
Pagamento-->>API: Recusado
API-->>Usuário: Mostrar erro
end
```
Produz este diagrama:
Diagramas de sequência são excelentes para artigos sobre APIs. Eles mostram não apenas quais componentes existem, mas como eles se comunicam entre si.
Sintaxe de Diagrama de Classes
Diagramas de classes são úteis para modelos de domínio e relacionamentos de objetos.
este código:
```mermaid
classDiagram
class Usuário {
+string id
+string email
+login()
+logout()
}
class Pedido {
+string id
+float total
+submit()
}
Usuário "1" --> "*" Pedido
```
Produz este diagrama:
Relacionamentos de Classe
<|-- herança
*-- composição
o-- agregação
--> associação
-- link
..> dependência
..|> realização
Exemplo:
este código:
```mermaid
classDiagram
Animal <|-- Cão
Animal <|-- Gato
Usuário "1" --> "*" Pedido
Pedido *-- ItemPedido
```
Produz este diagrama:
Os diagramas de classes podem ficar barulhentos rapidamente. Em um post de blog, prefira uma pequena fatia de domínio em vez de um modelo completo da aplicação.
Sintaxe de Diagrama de Estado
Diagramas de estado explicam como algo muda ao longo do tempo.
este código:
```mermaid
stateDiagram-v2
[*] --> Rascunho
Rascunho --> Revisão: submeter
Revisão --> Publicado: aprovar
Revisão --> Rascunho: solicitar alterações
Publicado --> Arquivado: arquivar
Arquivado --> [*]
```
Produz este diagrama:
Use diagramas de estado para:
- Ciclos de vida de pedidos
- Estados de implantação
- Fluxos de autenticação
- Status de jobs em segundo plano
- Workflows de publicação de conteúdo
Os diagramas de estado são subestimados. Eles frequentemente explicam a lógica de negócios melhor do que um parágrafo longo.
Sintaxe de Diagrama de Relacionamento de Entidades
Diagramas de relacionamento de entidades são úteis para modelos de banco de dados.
este código:
```mermaid
erDiagram
USUÁRIO ||--o{ PEDIDO : faz
PEDIDO ||--|{ ITEM_PEDIDO : contém
PRODUTO ||--o{ ITEM_PEDIDO : aparece_em
USUÁRIO {
string id
string email
}
PEDIDO {
string id
datetime criado_em
}
PRODUTO {
string id
string nome
}
```
Produz este diagrama:
Marcadores de Relacionamento ER
|| exatamente um
o| zero ou um
}| um ou mais
}o zero ou mais
Os diagramas ER são melhores quando explicam relacionamentos, não cada coluna. Mantenha detalhes de implementação em migrações ou documentos de esquema.
Sintaxe de Diagrama de Gantt
Diagramas de Gantt são úteis para linhas do tempo de projetos.
este código:
```mermaid
gantt
title Plano de Migração de Documentação
dateFormat YYYY-MM-DD
section Planejamento
Auditoria dos docs atuais :a1, 2026-06-01, 5d
Definir estrutura :a2, após a1, 3d
section Escrita
Reescrever guias :b1, após a2, 10d
Revisar e publicar :b2, após b1, 4d
```
Produz este diagrama:
Os diagramas de Gantt são úteis em posts de planejamento interno, mas podem envelhecer rapidamente. Use-os quando a própria linha do tempo for o ponto principal.
Sintaxe de Linha do Tempo
Linhas do tempo são boas para históricos de lançamentos, relatórios de incidentes e resumos de projetos.
este código:
```mermaid
timeline
title Evolução da API
2024 : API REST lançada
2025 : Webhooks adicionados
2026 : Streaming de eventos introduzido
```
Produz este diagrama:
Use uma linha do tempo quando a ordem importa mais do que a dependência. Se o que você se importa é a sequência de eventos em vez de como eles se conectam causalmente, uma linha do tempo mantém o foco onde pertence e permanece fácil de ler de relance.
Sintaxe de Gráfico de Pizza
Gráficos de pizza são suportados, mas tenha cuidado. Eles são fáceis de ler quando há apenas algumas categorias e os valores são claramente diferentes.
este código:
```mermaid
pie title Tempo de Build por Etapa
"Instalar dependências" : 35
"Executar testes" : 45
"Construir ativos" : 20
```
Produz este diagrama:
Conselho opinativo: se os valores forem próximos ou houver mais de cinco categorias, use uma tabela em vez disso. Uma tabela bem formatada comunica números precisos de forma mais honesta do que um gráfico de pizza onde as fatias parecem quase idênticas.
Sintaxe de Gráfico Git
Os gráficos Git podem explicar estratégias de ramificação e fluxos de lançamento.
este código:
```mermaid
gitGraph
commit
branch feature
checkout feature
commit
commit
checkout main
merge feature
commit
```
Produz este diagrama:
Isto é útil para artigos sobre workflows Git, desenvolvimento baseado em trunk, branches de lançamento e hotfixes. Se você precisar de uma referência rápida para os comandos de ramificação subjacentes, o GIT Cheatsheet cobre os mais comuns ao lado de workflows de merge e rebase.
Guia de Referência do Mermaid
Tipos de Diagrama
flowchart TD
sequenceDiagram
classDiagram
stateDiagram-v2
erDiagram
gantt
timeline
pie
gitGraph
mindmap
journey
Básicos do Fluxograma
flowchart TD
A[Texto] --> B[Texto]
A -->|Rótulo| B
A -.-> B
A ==> B
A --- B
Formas do Fluxograma
A[Retângulo]
A(Arredondado)
A{Decisão}
A((Círculo))
A[(Banco de Dados)]
A[[Sub-rotina]]
A>Bandeira]
Básicos do Diagrama de Sequência
sequenceDiagram
participante A
participante B
A->>B: Mensagem
B-->>A: Resposta
ativar B
desativar B
Blocos de Sequência
alt condição
else outra condição
end
opt etapa opcional
end
loop cada item
end
par tarefa paralela
e outra tarefa
end
Básicos do Diagrama de Classe
classDiagram
class Usuário
class Pedido
Usuário --> Pedido
Usuário "1" --> "*" Pedido
Básicos do Diagrama de Estado
stateDiagram-v2
[*] --> Ocioso
Ocioso --> Em Execução
Em Execução --> Concluído
Concluído --> [*]
Básicos do Diagrama ER
erDiagram
USUÁRIO ||--o{ PEDIDO : faz
PEDIDO ||--|{ ITEM_PEDIDO : contém
Comentários
O Mermaid suporta comentários com %%.
este código:
```mermaid
flowchart TD
%% Isto é um comentário
A --> B
```
Produz este diagrama:
Usando Mermaid no Hugo
O conteúdo do Hugo é geralmente escrito em Markdown, então o Mermaid se encaixa naturalmente em um blog técnico baseado em Hugo. A configuração exata depende do seu tema e configuração de renderização do Markdown.
O padrão de autoria comum ainda é o mesmo:
```mermaid
flowchart LR
Markdown --> Hugo
Hugo --> HTML
HTML --> Navegador
```
Se o seu tema Hugo já suporta Mermaid, isso pode renderizar sem trabalho extra. Se não, você geralmente precisa de um render hook, shortcode, partial ou configuração de tema que carregue o Mermaid em páginas contendo diagramas Mermaid.
Uma configuração prática do Hugo deve visar estas regras:
- Mantenha a fonte do Mermaid dentro de artigos Markdown normais.
- Carregue o Mermaid apenas em páginas que o precisem.
- Evite JavaScript global se a maioria das páginas não usar diagramas.
- Teste diagramas durante a pré-visualização local.
- Mantenha a fonte do diagrama legível no Git.
Para um blog técnico, blocos de código delimitados são geralmente melhores do que shortcodes personalizados porque são mais portáteis. Se você mover o conteúdo para o GitHub, outro gerador de sites estáticos ou uma plataforma de documentação no futuro, blocos Mermaid delimitados padrão são mais fáceis de reutilizar.
Melhores Práticas do Mermaid
Mantenha Diagramas Pequenos
Um diagrama deve esclarecer o artigo, não substituí-lo. Se os leitores precisarem dar zoom, o diagrama provavelmente é muito grande.
Bons diagramas geralmente têm:
- Uma ideia
- Direção clara
- Rótulos curtos
- Poucas linhas cruzadas
- Nomenclatura consistente
Prefira Múltiplos Diagramas Pequenos
Em vez de um diagrama de sistema enorme, use vários diagramas focados:
- Fluxo de requisição
- Topologia de implantação
- Modelo de dados
- Ciclo de vida de estado
- Caminho de falha
Isso é melhor para os leitores e melhor para telas de dispositivos móveis.
Use Nomes Estáveis
Use nomes que correspondam ao seu código, API ou documentação. Não chame a mesma coisa de API, Backend e Servidor em diagramas diferentes, a menos que esses sejam verdadeiramente conceitos diferentes.
Rotele Setas Importantes
Setas sem rótulo são boas para fluxogramas simples. Em diagramas de sistema, os rótulos frequentemente importam.
este código:
```mermaid
flowchart LR
Web -->|Requisição HTTPS| API
API -->|Consulta SQL| DB
API -->|Publicar evento| Fila
```
Produz este diagrama:
Evite Sintaxe Enganosa
O Mermaid pode fazer muitas coisas. Isso não significa que cada artigo precise delas. Favor sintaxe que um futuro mantenedor possa entender rapidamente.
Cite Rótulos Quando Necessário
Se um rótulo contiver caracteres que confundam o Mermaid, envolva-o em aspas.
este código:
```mermaid
flowchart TD
A["Usuário clica em /checkout"] --> B["POST /api/orders"]
```
Produz este diagrama:
Este é um pequeno hábito que previne falhas de renderização irritantes.
Pense no Modo Escuro
Muitos sites Hugo suportam modo escuro. Certifique-se de que o tema do seu Mermaid ou CSS do site mantenha os diagramas legíveis tanto em aparência clara quanto escura.
Erros Comuns do Mermaid
Erro 1: Demais Detalhes
Diagramas Mermaid ruins frequentemente tentam mostrar cada caso de borda. Isso os torna tecnicamente completos e praticamente ilegíveis. A correção é quase sempre a mesma: dividir o diagrama em dois ou três menores, cada um cobrindo uma preocupação, para que os leitores possam seguir a lógica sem ter que rastrear uma dúzia de setas cruzadas.
Erro 2: Rótulos Longos
Rótulos longos criam caixas largas e layouts feios.
Em vez deste código:
```mermaid
flowchart TD
A[O usuário submete o formulário de registro com seu endereço de email e senha]
```
Produz este diagrama:
Prefira este código:
```mermaid
flowchart TD
A[Submeter formulário de registro]
```
Produz este diagrama:
Explique detalhes no parágrafo abaixo do diagrama.
Erro 3: Direção Não Clara
Escolha uma direção e mantenha-a. A maioria dos diagramas de processo deve usar TD. A maioria dos diagramas de arquitetura é mais fácil com LR.
Erro 4: Tratar o Mermaid como Ferramenta de Design
Mermaid não é Figma. Não é feito para diagramas pixel-perfeitos, e tentar forçá-lo a esse papel só levará à frustração. Sua força é a sustentabilidade, não a perfeição visual — e essa troca é intencional.
Dicas de SEO do Mermaid para Blogs Técnicos
Diagramas Mermaid podem tornar artigos técnicos mais úteis, mas os mecanismos de busca ainda precisam de texto. Não confie apenas em diagramas.
Para artigos Mermaid amigáveis ao SEO:
- Use títulos H2 e H3 descritivos.
- Explique cada diagrama no texto próximo.
- Inclua as palavras-chave importantes na prosa normal.
- Mantenha exemplos de código copiáveis.
- Adicione explicação estilo alt abaixo de diagramas complexos.
- Use título e descrição concisos no front matter.
- Evite esconder todo o significado dentro do SVG renderizado.
Um diagrama Mermaid deve apoiar o artigo. Não deve ser o único lugar onde informações importantes existem.
Exemplos Mermaid para Copiar e Colar
Fluxo de Requisição API
este código:
```mermaid
sequenceDiagram
participante Cliente
participante API
participante Auth
participante DB
Cliente->>API: GET /account
API->>Auth: Validar token
Auth-->>API: Token válido
API->>DB: Carregar conta
DB-->>API: Dados da conta
API-->>Cliente: 200 OK
```
Produz este diagrama:
Pipeline CI
este código:
```mermaid
flowchart TD
A[Push commit] --> B[Instalar dependências]
B --> C[Executar lint]
C --> D[Executar testes]
D --> E[Construir site]
E --> F[Implantar]
```
Produz este diagrama:
Este padrão mapeia naturalmente para uma configuração CI real. Para a sintaxe passo a passo de workflows do GitHub Actions, o GitHub Actions Cheatsheet é um companheiro útil quando você quiser transformar o diagrama acima em um pipeline funcional.
Workflow de Publicação
este código:
```mermaid
stateDiagram-v2
[*] --> Rascunho
Rascunho --> Editando
Editando --> Revisão
Revisão --> Publicado
Revisão --> Editando
Publicado --> [*]
```
Produz este diagrama:
Modelo de Dados Simples
este código:
```mermaid
erDiagram
AUTOR ||--o{ POST : escreve
POST ||--o{ COMENTÁRIO : recebe
AUTOR {
string id
string nome
}
POST {
string id
string título
datetime publicado_em
}
COMENTÁRIO {
string id
string corpo
}
```
Produz este diagrama:
Quando Não Usar Mermaid
Não use o Mermaid quando:
- O diagrama precisar de layout visual preciso.
- O design tiver que combinar exatamente com um sistema de marca.
- O visual for majoritariamente decorativo.
- O diagrama tiver muitos nós para ler.
- Uma captura de tela explicaria o ponto melhor.
- O conteúdo muda raramente e precisa de mais polimento do que sustentabilidade.
Mermaid é excelente para documentação técnica viva. É menos bom para arte de nível de apresentação. Para diagramas de qualidade de documento em contextos de impressão ou PDF, o LaTeX oferece pacotes como TikZ e pgfplots que lhe dão muito maior controle de layout — o LaTeX Cheat Sheet cobre a inclusão de diagramas ao lado do resto do kit de ferramentas LaTeX.
Pensamentos Finais
Mermaid é uma das melhores ferramentas para blogs técnicos porque respeita como os desenvolvedores já trabalham: arquivos de texto, Markdown, Git, revisão de código e builds repetíveis. Para tudo ao redor dos diagramas — títulos, listas, tabelas, blocos de código — o Markdown Cheatsheet é o companheiro de referência rápida para manter ao lado deste guia.
Os melhores diagramas Mermaid não são os mais complexos. Eles são os diagramas que tornam um conceito óbvio e permanecem fáceis de editar seis meses depois.
Use o Mermaid para os diagramas que devem viver com sua documentação. Mantenha-os pequenos, mantenha-os legíveis e trate-os como parte do código-fonte do seu artigo.