Шпаргалка з синтаксису Mermaid

У mermaid великий довідник, але невеликий набір команд покриває майже все, що зазвичай малюють. Ця сторінка — саме такий набір: форми, стрілки, групування, кольори та по одному прикладу для копіювання на кожен тип діаграми. Кожен фрагмент нижче відображається як є — вставте його в редактор, щоб побачити.

Найкоротша діаграма, яка працює

Для flowchart потрібен один рядок оголошення і одна стрілка. TD означає зверху вниз; використовуйте LR для зліва направо — це краще підходить для широких процесів.

flowchart TD
  A[Start] --> B{Ready?}
  B -->|Yes| C[Ship it]
  B -->|No| A
Flowchart із трьох вузлів, зверху вниз.

A, B і C — це ідентифікатори вузлів, внутрішні імена, які ніколи не відображаються. Текст у дужках — це підпис, а стиль дужок визначає форму.

Форми вузлів

Форма обирається парою роздільників навколо підпису. Ось ті, які варто запам'ятати:

СинтаксисФормаЗвичайне значення
A[Text]ПрямокутникКрок або дія
A(Text)ЗаокругленийПочаткова або кінцева точка
A([Text])ПігулкаТермінатор
A[[Text]]ПідпрограмаВиклик іншого процесу
A[(Text)]ЦиліндрБаза даних або сховище
A((Text))КолоТочка з'єднання
A{Text}РомбРішення
A{{Text}}ШестикутникПідготовчий крок
A[/Text/]ПаралелограмВвід або вивід
A[/Text\]ТрапеціяРучна операція

Беріть підпис у лапки, якщо він містить дужки, двокрапки або лапки: A["Load (raw) data"]. Без лапок парсер сприймає вашу пунктуацію як синтаксис.

Стрілки

СинтаксисРезультат
A --> BСтрілка
A --- BЛінія без наконечника
A -.-> BПунктирна стрілка
A ==> BТовста стрілка
A -->|label| BСтрілка з підписом
A --> B --> CЛанцюжок в одному рядку
A --> B & CОдне джерело, дві цілі

Довжина стрілки теж має значення: --> — це один ранг, ---> зсуває ціль ще на один ранг далі. Це найпростіший спосіб керувати компонуванням, який дає mermaid.

Групування через subgraph

subgraph малює підписану рамку навколо вузлів. Підграфи можуть бути вкладеними, а стрілки вільно перетинають їхні межі.

flowchart LR
  subgraph api["API"]
    H[Handler] --> S[(Postgres)]
  end
  subgraph worker["Worker"]
    Q[Queue] --> W[Job]
  end
  H --> Q
Два сервіси, кожен зі своїм сховищем.

Колір і стилі

style фарбує один вузол. classDef разом із class фарбує цілий набір — це те, що потрібно, коли вузлів більше трьох-чотирьох.

flowchart TD
  A[OK] --> B[Failed]
  style A fill:#16a34a,stroke:#333,color:#fff
  classDef bad fill:#dc2626,stroke:#333,color:#fff
  class B bad

Кольори — частина вихідного коду діаграми, тож вони зберігаються при експорті та подорожують разом із файлом. Тут нічого не залежить від налаштувань теми в інструменті, що відображає діаграму.

По одному прикладу на кожен тип діаграми

Діаграма послідовності

sequenceDiagram
  participant User
  participant API
  participant DB
  User->>API: request
  API->>DB: query
  DB-->>API: rows
  API-->>User: response

Діаграма класів

classDiagram
  class Animal {
    +String name
    +move()
  }
  class Dog {
    +bark()
  }
  Animal <|-- Dog

Діаграма станів

stateDiagram-v2
  [*] --> Idle
  Idle --> Running: start
  Running --> Idle: stop
  Running --> [*]: finish

Діаграма зв'язків сутностей

erDiagram
  CUSTOMER ||--o{ ORDER : places
  ORDER ||--|{ LINE_ITEM : contains
  CUSTOMER {
    string name
    string email
  }

Діаграма Ганта

gantt
  title Project
  dateFormat YYYY-MM-DD
  section Phase 1
  Task 1 :a1, 2026-01-01, 5d
  Task 2 :after a1, 5d

Де mermaid відображається сам по собі

  • GitHub — фрагмент у потрійних лапках ```mermaid відображається в issues, pull requests, коментарях та файлах README.
  • GitLab — той самий блок у потрійних лапках, в issues, merge requests та вікі.
  • Notion — блок коду з мовою, встановленою на Mermaid, відображається поруч із джерелом.
  • Obsidian — блок mermaid у потрійних лапках відображається в режимі попереднього перегляду.
  • Сайти документації — Docusaurus, MkDocs Material та VitePress підтримують блоки mermaid.

Це справжня причина зберігати діаграми як mermaid, а не як зображення: діаграма живе в тому самому текстовому файлі, що й те, що вона описує, і код-рев'ю бачить, що саме в ній змінилося.

Спробуйте будь-який фрагмент на цій сторінці

Вставте його на вкладку коду — і він відобразиться миттєво, або побудуйте ту саму діаграму на полотні й прочитайте синтаксис у зворотному напрямку.

Часті запитання

Як додати перенесення рядка всередині підпису вузла?

Використайте <br> всередині підпису в лапках: A["First line<br>Second line"]. Mermaid відображає підпис як HTML, тож тег працює, хоча решта синтаксису не є HTML.

Чому мій підпис ламає діаграму?

Майже завжди причина в дужці, круглій дужці, двокрапці або лапках без лапок навколо. Візьміть увесь підпис у подвійні лапки, і парсер перестане сприймати вашу пунктуацію як синтаксис.

Чи можу я керувати компонуванням?

Тільки опосередковано. Оберіть напрямок (TD, LR, BT, RL), використовуйте довші стрілки (--->), щоб розсунути вузли далі, і групуйте пов'язані вузли в підграфи. Решту обчислює mermaid — координат тут немає.

Яку версію mermaid використовує цей редактор?

Mermaid 11, поточну основну версію, тож тут відображається все, що задокументовано для синтаксису v10 і v11.

Ще гайди

  1. Експорт mermaid у PNG або SVG

    Чотири способи вивести діаграму mermaid — PNG, SVG, вихідний код .mmd та блок Markdown — і коли кожен із них правильний.

  2. Sequence-діаграми Mermaid

    Учасники, типи стрілок, смуги активації, цикли та alt-блоки — весь синтаксис sequence-діаграм із робочими прикладами.

Відкрийте редактор. Безкоштовно — без реєстрації.

Порожнє полотно, вкладка коду і всі варіанти експорту — безкоштовно, у вашому браузері, просто зараз.