Mermaid 図の完全ガイド

シンプルなテキストベースの構文でプロフェッショナルな図を作成する方法を学ぶ

広告

Mermaid とは?

Mermaid は、Markdown 風のテキスト定義を使って図を動的に作成・変更できる JavaScript ベースの図表作成ツールです。シンプルなテキスト説明から図を生成できるオープンソースプロジェクトです。

複雑な描画ツールの代わりに、図を説明するコード風の構文を書き、Mermaid がそれを視覚的な図としてレンダリングします。このアプローチにより、図はバージョン管理しやすく、更新も容易で、ドキュメント作成に最適になります。

Mermaid はドキュメントプラットフォーム、Wiki、Markdown ファイルにシームレスに統合でき、開発者やテクニカルライターに好まれるツールです。

Mermaid を使う理由

  • バージョン管理: 図はテキストファイルなので、コードと一緒に Git で管理できます
  • 素早い更新: 図を描き直す代わりに数行のテキストを変更するだけで済みます
  • 一貫性: Mermaid がレイアウトとスタイルを自動で処理し、統一された図を保ちます
  • デザインツール不要: Visio や Lucidchart など高価なツールは不要です
  • コードとしてのドキュメント: 図をドキュメントと同じリポジトリに保存できます
  • クロスプラットフォーム: ブラウザと Node.js で動作し、多くのプラットフォームに統合できます
  • 無料・オープンソース: ライセンス費用なし、活発なコミュニティ
  • 複数の図の種類: フローチャート、シーケンス図、クラス図などに対応
広告

対応する図の種類

Mermaid はさまざまなドキュメントニーズに対応する多様な図の種類をサポートしています:

フローチャート

ノードとエッジでワークフロー、プロセス、意思決定ツリーを可視化します。

flowchart TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process]
    B -->|No| D[Alternative]
    C --> E[End]
    D --> E

ユースケース: プロセスフロー、アルゴリズム、意思決定ロジック

シーケンス図

時間の経過に沿ったアクターやシステム間のやり取りを示します。

sequenceDiagram
    participant User
    participant API
    participant DB
    User->>API: Request data
    API->>DB: Query
    DB-->>API: Results
    API-->>User: Response

ユースケース: API のやり取り、システム間通信、ユーザーフロー

クラス図

クラス、属性、関係を用いてオブジェクト指向システムをモデル化します。

classDiagram
    class Animal {
        +String name
        +int age
        +makeSound()
    }
    class Dog {
        +bark()
    }
    Animal <|-- Dog

ユースケース: ソフトウェアアーキテクチャ、OOP 設計、データベーススキーマ

状態図

システムやプロセスの状態と遷移を表現します。

stateDiagram-v2
    [*] --> Idle
    Idle --> Loading: Start
    Loading --> Success: Complete
    Loading --> Error: Fail
    Success --> [*]
    Error --> Idle: Retry

ユースケース: ステートマシン、ライフサイクル管理、UI 状態

ER 図

データベース構造とエンティティ間の関係をモデル化します。

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

ユースケース: データベース設計、データモデリング、システムアーキテクチャ

ガントチャート

プロジェクトのスケジュールやタイムラインを計画・可視化します。

gantt
    title Project Timeline
    dateFormat YYYY-MM-DD
    section Phase 1
    Design :a1, 2024-01-01, 30d
    Development :a2, after a1, 45d

ユースケース: プロジェクト計画、スプリントタイムライン、ロードマップ

円グラフ

比率データや割合を視覚的に表示します。

pie title Distribution
    "Category A" : 42
    "Category B" : 30
    "Category C" : 28

ユースケース: アンケート結果、市場シェア、リソース配分

Git グラフ

Git のブランチ戦略とコミット履歴を可視化します。

gitGraph
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop

ユースケース: Git ワークフローのドキュメント化、ブランチ戦略

広告

Mermaid の始め方

1

図の種類を選ぶ

まず、表示したい内容に最適な図の種類を決めます。各種類は 'flowchart'、'sequenceDiagram'、'classDiagram' のような特定のキーワードから始まります。

2

テキスト構文を書く

Mermaid のシンプルな構文を使って図を記述します。構文は直感的で、ほとんど自然言語のように読めます。例えば 'A --> B' は A から B への矢印を作成します。

3

図をプレビューする

オンラインビューアーまたは Mermaid 対応ツールで図をリアルタイムに確認します。満足するまで調整してください。

4

エクスポートして共有

図を SVG または PNG としてエクスポートしてプレゼンに使ったり、URL をチームと共有したりできます。Mermaid を Markdown ファイルに直接埋め込むこともできます。

ベストプラクティス

  • 図は 1 つの概念やワークフローに集中させる
  • 実際のビジネスロジックを表す意味のあるラベルを使う
  • 複雑な図は小さく相互に関連する図に分割する
  • 複雑な部分を説明するために %% を使ってコメントを追加する
  • 図全体で一貫した命名規則を使う
  • 最終化する前に対象環境で図をテストする
  • 必要に応じて方向指定 (TD, LR) を入れてレイアウトを制御する
  • フローチャートで関連ノードをまとめるために subgraph を使う
  • 読みやすさを保つためにスタイル設定は控えめに使う
  • 図のソースファイルをコードと一緒にバージョン管理する

一般的なユースケース

ソフトウェアドキュメント

コードと一緒にシステムアーキテクチャ、API フロー、コンポーネント間のやり取りを文書化します。

プロジェクト計画

スプリント計画、プロジェクトのタイムライン、リソース配分のためにガントチャートを作成します。

技術提案

提案された解決策、システム設計、アーキテクチャ上の意思決定を可視化します。

ユーザージャーニー

ユーザーフロー、顧客体験、インタラクションパターンをマッピングします。

データベース設計

エンティティ関係、スキーマ構造、データ依存関係をモデル化します。

プロセスドキュメント

ビジネスプロセス、ワークフロー、標準操作手順を文書化します。

教育資料

チュートリアルや技術コース向けに明確でバージョン管理された図を作成します。

API ドキュメント

リクエスト/レスポンスのフロー、認証シーケンス、エンドポイントのやり取りを示します。

追加リソース

よくある質問

Mermaid Viewer の使い方と図の作成に関するよくある質問

この Mermaid エディタは本当に無料ですか?
はい、完全に無料です。図は無制限に作成でき、SVG/PNG への書き出し、URL 共有、すべての機能を登録・課金なしで利用できます。運営は控えめな広告で支えられています。
インストールは必要ですか?
インストールは不要です。ブラウザ上で完結する Web ツールなので、サイトを開けばすぐに作図できます。PC・タブレット・スマホで利用できます。
図はどのように保存できますか?
保存方法はいくつかあります。1) SVG/PNG で書き出す、2) URL 共有(図のコードは URL にエンコードされます)、3) Mermaid コードを自分のテキストファイルに保存、4) .mmd / .mermaid ファイルのアップロード・ダウンロード。
ドキュメントで図を使えますか?
もちろんです。SVG(拡大しても劣化しない)または PNG として書き出して、ドキュメント、資料、Web サイトで使えます。GitHub、GitLab、Notion などでは Mermaid コードの直接埋め込みも可能です。
SVG と PNG の違いは何ですか?
SVG はベクター形式で、どのサイズでも高品質を保てるため、ドキュメントや Web 用に最適です。PNG はラスター画像で共有しやすい反面、拡大時に劣化します。
図がレンダリングされないのはなぜですか?
Mermaid コードの構文エラーを確認してください。よくある原因は、引用符の閉じ忘れ、コロン/セミコロンの不足、ノード ID の誤り、未対応構文などです。図を簡略化して原因箇所を特定すると有効です。
他の人と共同作業できますか?
リアルタイム共同編集は未搭載ですが、URL を共有して共同作業できます。相手は開いて編集し、別バージョンを共有できます。Mermaid はテキストベースなので Git での運用にも向いています。
オフラインでも使えますか?
初回読み込みにはインターネット接続が必要です。読み込み後は基本編集がオフラインで動く場合がありますが、書き出しなど一部機能は接続が必要になることがあります。
Mermaid 構文はどう学べますか?
まずは全図種の例を含む Mermaid ガイドを参照してください。テンプレートを使うと素早く始められます。あわせて mermaid.js.org の公式ドキュメントも有用です。
見た目をカスタマイズできますか?
はい。図はサイトのテーマに従います。上部バーの「テーマ」ボタンでライトとダークを切り替えると、図は対応する Mermaid テーマで再描画されます。さらに高度な見た目調整は %%{init:...}%% ディレクティブで色、フォント、その他の視覚設定を定義できます。
対応している図の種類は?
このエディタは主要な Mermaid 図をサポートしています。フローチャート、シーケンス図、クラス図、状態遷移図、ER 図、ガントチャート、円グラフ、Git グラフ、ユーザージャーニーなどに対応します。
図のデータはプライベートですか?
図のコードはサーバーに送信されません。レンダリングはブラウザ内で完結します。URL 共有時はコードが URL 自体に含まれ、こちらで内容を保存・追跡することはありません。
なぜテキストベースの図を使うべきですか?
テキストベース図には多くの利点があります。バージョン管理しやすい(Git 向き)、更新が速い、スタイルを統一しやすい、検索可能、軽量、さらに自動生成しやすい点です。Pull Request でのレビューも容易です。
Web サイトに Mermaid を埋め込めますか?
はい。サイトに Mermaid の JavaScript ライブラリを読み込み、Mermaid コードブロックを追加すれば埋め込めます。GitHub、GitLab、Notion、Obsidian などはネイティブ対応しています。
推奨される最大サイズはありますか?
厳密な上限はありませんが、非常に大きな図(目安 100 ノード超)は端末によって描画が遅くなることがあります。複雑な内容は小さく分割した図にするのがおすすめです。

最初の図を作成する準備はできましたか?

無料のオンライン Mermaid ビューアーを試して、数分でプロ品質の図を作り始めましょう。

Mermaid Viewer を開く