Mermaid.js 図の完全ガイド

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

Mermaid.js とは?

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

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

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

Mermaid.js を使う理由

  • バージョン管理: 図はテキストファイルなので、コードと一緒に 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 ビューアーを試して、数分でプロ品質の図を作り始めましょう。

Mermaid Viewer を開く