1. ホーム
  2. ブログ
  3. チュートリアル

Markdown で Mermaid 図を描く:フローチャート、シーケンス図など

Mermaid を使えば、フローチャート、シーケンス図、ガントチャート、状態遷移図、円グラフを Markdown の中に直接描けます。コピーして使えるサンプルと、読みやすい図にするコツを紹介します。

図は、何段落もの文章よりもプロセス、アーキテクチャ、スケジュールをうまく伝えてくれます。しかし、グラフィックエディターで描くとなると、画像をエクスポートし、ドキュメントの隣に保存し、何か変わるたびにすべて描き直さなければなりません。

Mermaid はこの問題を解決します。Markdown ファイルの中に数行のテキストで図を記述すれば、プレビューアーが描画してくれます。図は同じファイルの中にあり、差分にも表示され、文章と同じくらい簡単に更新できます。GitHub、GitLab、Obsidian、多くのドキュメントジェネレーター、そして Markdown Preview Editor は、Mermaid を標準で表示できます。

Mermaid 図の追加方法

コードブロックを作り、言語を mermaid に設定します。

markdown```mermaid
flowchart LR
  A[書く] --> B[プレビュー]
  B --> C{完成?}
  C -- はい --> D[出力]
  C -- いいえ --> A
```

プレビューアーはこれを次のように描画します。

書く プレビュー 完成? 出力 はい いいえ

1 行目で図の種類を指定します。それ以降の行でノードと接続を記述します。

フローチャート

フローチャートは最もよく使われる図の種類です。キーワードの後に方向を書きます:TD または TB(上から下)、BT、LR(左から右)、RL。

mermaidflowchart TD
  start([開始]) --> input[/ファイルを読み込む/]
  input --> valid{有効か?}
  valid -- はい --> save[(データベースに保存)]
  valid -- いいえ --> error[エラーを表示]
  error --> input

ラベルを囲むかっこの種類でノードの形が決まります。

記法 形
A[Text] 長方形
A(Text) 角丸長方形
A([Text]) スタジアム型(ピル型)
A{Text} ひし形(分岐用)
A[(Text)] データベースの円柱
A((Text)) 円
A[/Text/] 平行四辺形(入出力用)
A{{Text}} 六角形

接続:--> は矢印、--- は矢印なしの線、-.-> は点線の矢印、==> は太い矢印です。ラベルは -- text --> または -->|text| で付けます。

関連するノードは subgraph でグループ化できます。

mermaidflowchart LR
  subgraph Browser
    editor[エディター] --> preview[プレビュー]
  end
  preview --> export[HTML / PDF]

シーケンス図

シーケンス図は、参加者どうしが時間の流れに沿ってどうメッセージをやり取りするかを表します。API、認証フロー、ユーザージャーニーの説明に最適です。

mermaidsequenceDiagram
  participant U as ユーザー
  participant A as アプリ
  participant S as サーバー
  U->>A: 「ログイン」をクリック
  A->>S: POST /login
  S-->>A: 200 OK + トークン
  A-->>U: ダッシュボードを表示
  Note over A,S: トークンは 1 時間で失効

->> は実線の矢印(リクエスト)、-->> は破線の矢印(レスポンス)です。Note over、Note left of、Note right of で注記を追加できます。繰り返しや分岐を表すには loop、alt/else、opt ブロックを使います。

ガントチャート

ガントチャートは、タスクの一覧をタイムラインに変換します。タスクは日付から始めることも、別のタスクの after(後)に始めることもできます。

mermaidgantt
  title ドキュメント作成スプリント
  dateFormat YYYY-MM-DD
  section 執筆
  構成案      :done,   a1, 2026-10-01, 2d
  初稿        :active, a2, after a1, 4d
  section レビュー
  ピアレビュー :        a3, after a2, 3d
  公開        :milestone, after a3, 0d

状態遷移図

状態遷移図は、注文、ドキュメント、UI コンポーネントなどが状態間をどう移り変わるかを表します。

mermaidstateDiagram-v2
  [*] --> Draft
  Draft --> Review : submit
  Review --> Draft : changes requested
  Review --> Published : approve
  Published --> [*]

円グラフ

全体に占める割合をさっと示したいときは、円グラフが便利です。1 行につき 1 つの項目を書きます。

mermaidpie title ドキュメント作業の時間配分
  "執筆" : 45
  "書式の調整" : 15
  "図を最新に保つ作業" : 40

Mermaid はほかにも、クラス図、ER 図、マインドマップ、タイムライン、Git グラフ、四象限チャートなどに対応しています。それぞれの記法は Mermaid の公式サイトで解説されています。

読みやすい図にするコツ

  • 小さく保つ。 ノードが 15〜20 個を超えると読みにくくなります。1 つのアイデアにつき 1 つの図になるよう、複数の図に分けましょう。
  • 方向は意図して選ぶ。 手順の少ないプロセスには LR、階層構造や長いフローには TD が向いています。特に画面幅の狭い端末では TD が見やすくなります。
  • ID は短く、ラベルは読みやすく。 ラベルをそのまま ID にせず、auth[Check the session] のように書くと、接続の記述が短く済みます。
  • 特殊文字を含むラベルは引用符で囲む: A["Price: $5 (incl. tax)"]。
  • コメントを追加する。 行頭に %% を書くとコメントになり、描画時には無視されます。
  • 入力しながらプレビューする。 矢印やかっこが 1 つ欠けるだけで図全体が壊れるので、リアルタイムプレビューがあれば試行錯誤が大幅に減ります。Markdown Preview Editor では編集に合わせて図が再描画され、「高度なエディター」ツールバーの Mermaid 図 ボタンでひな形を挿入できます。

図を含むドキュメントを共有する

ドキュメントを HTML や PDF にエクスポート すると、図は画像として含まれるので、読み手が Mermaid をインストールする必要はありません。図と一緒に数式を使うなら Markdown で数式を書く方法 を、表、タスクリスト、アラートなどそれ以外のことについては Markdown チートシート を手元に置いておきましょう。

よくある質問

GitHub は Mermaid 図に対応していますか?

はい。GitHub は Markdown ファイル、Issue、プルリクエスト、Wiki で Mermaid のコードブロックを表示します。GitLab、Azure DevOps、Obsidian、多くのドキュメントジェネレーターも対応しています。

Mermaid 図が表示されないのはなぜですか?

たいていは構文エラーが原因です。矢印の欠落、閉じられていないかっこ、引用符で囲まれていない特殊文字を含むラベルなどです。1 行目も確認してください。flowchart TD や sequenceDiagram のように、有効な図の種類を指定している必要があります。

Mermaid 図の色は変えられますか?

Mermaid はテーマや、個々のノードに対する classDef/style 文に対応しています。カスタムスタイルへの対応はプラットフォームによって異なり、一貫性や安全性のために制限しているプレビューアーもあるので、デフォルトのテーマでも読みやすい図にしておきましょう。

Mermaid 図を画像としてエクスポートできますか?

Markdown Preview Editor では、ドキュメントを HTML にエクスポートすると図が画像として埋め込まれ、PDF に印刷したときにも含まれます。単体の PNG や SVG が必要な場合は、公式の Mermaid Live Editor や Mermaid CLI で個々の図をエクスポートできます。