Mermaid 矢印・接続子チートシート:線種・方向・注釈の一覧早見

Mermaid で図を描く際、矢印や接続子の種類が多くて迷うことはありませんか。実線、破線、太線、双方向など、様々なバリエーションがあり、どの記法を使えばよいか分からなくなることがあるでしょう。
この記事では、Mermaid の矢印・接続子の記法を体系的に整理し、すぐに使えるチートシートとしてまとめました。線の種類、方向、注釈の付け方を網羅的に解説します。
矢印・接続子早見表
以下は、Mermaid でよく使う矢印・接続子の一覧です。必要な記法をすぐに見つけられるよう、表形式でまとめました。
基本パターン一覧
# | 種類 | 記法 | 見た目 | 用途 |
---|---|---|---|---|
1 | 実線 | --- | A --- B | 方向なし接続 |
2 | 実線右向き | --> | A --> B | 右向きフロー |
3 | 実線左向き | <-- | A <-- B | 左向きフロー |
4 | 実線双方向 | <--> | A <--> B | 双方向フロー |
5 | 破線 | -.- | A -.- B | 方向なし推奨 |
6 | 破線右向き | -.-> | A -.-> B | 右向き推奨 |
7 | 破線左向き | <-.- | A <-.- B | 左向き推奨 |
8 | 破線双方向 | <-.-> | A <-.-> B | 双方向推奨 |
9 | 太線 | === | A === B | 方向なし強調 |
10 | 太線右向き | ==> | A ==> B | 右向き強調 |
11 | 太線左向き | <== | A <== B | 左向き強調 |
12 | 太線双方向 | <==> | A <==> B | 双方向強調 |
13 | 注釈付き実線 | --text--> | A --text--> B | ラベル付きフロー |
14 | 注釈付き破線 | -.text.-> | A -.text.-> B | ラベル付き推奨 |
15 | 注釈付き太線 | ==text==> | A ==text==> B | ラベル付き強調 |
線種別クイックリファレンス
# | 線種 | 記法 | 用途 |
---|---|---|---|
1 | 実線 | --- | 確定的なフロー、標準的な関係 |
2 | 破線 | -.- | 条件付きフロー、推奨関係 |
3 | 太線 | === | 強調、重要なフロー |
方向別クイックリファレンス
# | 方向 | 記法 | 説明 |
---|---|---|---|
1 | 矢印なし | --- | 方向性のない接続 |
2 | 右向き | --> | 左から右への流れ |
3 | 左向き | <-- | 右から左への流れ |
4 | 双方向 | <--> | 相互の関係 |
長さ調整リファレンス
# | 長さ | 記法 | 用途 |
---|---|---|---|
1 | 短い | -> | ノード間を近づける |
2 | 標準 | --> | 通常の間隔 |
3 | 長い | ---> | ノード間を離す |
4 | より長い | ----> | さらに間隔を広げる |
背景
Mermaid における接続子の重要性
Mermaid は、テキストベースで図を描画できる便利なツールです。フローチャート、シーケンス図、クラス図など、様々な図を Markdown 内で表現できます。
これらの図において、ノード間の関係を表現するのが 接続子(矢印・線) の役割です。接続子の種類によって、以下のような意味の違いを表現できます。
- 実線と破線: 確定的な関係か、推奨や仮の関係か
- 矢印の向き: データや制御の流れの方向
- 太さ: 強調や重要度の違い
- 注釈: 接続の条件や説明
以下の図は、接続子が図の意味をどう変えるかを示しています。
mermaidflowchart LR
nodeA["ノードA"] -->|実線矢印| nodeB["ノードB"]
nodeC["ノードC"] -.->|破線矢印| nodeD["ノードD"]
nodeE["ノードE"] ==>|太線矢印| nodeF["ノードF"]
markdown```mermaid
flowchart LR
nodeA["ノードA"] -->|実線矢印| nodeB["ノードB"]
nodeC["ノードC"] -.->|破線矢印| nodeD["ノードD"]
nodeE["ノードE"] ==>|太線矢印| nodeF["ノードF"]
```
図の要点:
- 実線は確定的なフロー、破線は条件付きや推奨フロー、太線は強調を表します。
- 矢印の種類を使い分けることで、図の情報量が格段に増します。
接続子の種類と記法の多様性
Mermaid では、以下のような多様な接続子が用意されています。
# | カテゴリ | 例 |
---|---|---|
1 | 線の種類 | 実線、破線、太線 |
2 | 矢印の向き | 右、左、上、下、双方向 |
3 | 注釈 | ラベル付き |
4 | 線の長さ | 短い、標準、長い |
これらを組み合わせることで、数十種類の接続子を表現できますが、その分記法を覚えるのが大変です。
課題
記法の複雑さと記憶の困難さ
Mermaid の接続子記法は、直感的でない部分が多く、以下のような課題があります。
記号の組み合わせが覚えにくい
矢印の記法は、ハイフン -
、ドット .
、イコール =
などの記号を組み合わせて表現します。例えば、以下のような違いがあります。
markdown```mermaid
// 実線矢印
A --> B
// 破線矢印
A -.-> B
// 太線矢印
A ==> B
```
記法の特徴:
- ハイフンは実線を表します。
- ドットは破線を表します。
- イコールは太線を表します。
このように、記号と線種の対応を覚える必要があります。
方向指定のバリエーション
矢印の方向も、記号の組み合わせで表現します。
markdown```mermaid
// 右向き
A --> B
// 左向き
A <-- B
// 双方向
A <--> B
```
方向指定のルール:
>
は右向き矢印を示します。<
は左向き矢印を示します。- 両方組み合わせると双方向になります。
長さの調整
線の長さも、ハイフンやドットの数で調整できますが、覚えにくいです。
markdown```mermaid
// 短い
A -> B
// 標準
A --> B
// 長い
A ---> B
```
長さ調整の原則:
- 記号を増やすほど線が長くなります。
- 図のレイアウト調整に便利ですが、意味的な違いはありません。
以下の図は、記法の複雑さを視覚化したものです。
mermaidflowchart TB
syntax["接続子記法"] --> line["線の種類"]
syntax --> direction["矢印の向き"]
syntax --> label["注釈"]
syntax --> length["線の長さ"]
line --> solid["実線: ---"]
line --> dotted["破線: -.-"]
line --> thick["太線: ==="]
direction --> right["右: -->"]
direction --> left["左: <--"]
direction --> both["双方向: <-->"]
markdown```mermaid
flowchart TB
syntax["接続子記法"] --> line["線の種類"]
syntax --> direction["矢印の向き"]
syntax --> label["注釈"]
syntax --> length["線の長さ"]
line --> solid["実線: ---"]
line --> dotted["破線: -.-"]
line --> thick["太線: ==="]
direction --> right["右: -->"]
direction --> left["左: <--"]
direction --> both["双方向: <-->"]
```
図で理解できる要点:
- 接続子記法は 4 つの要素(線種、向き、注釈、長さ)の組み合わせです。
- 各要素に複数の選択肢があり、覚えることが多いのが課題です。
ドキュメント不足と情報の分散
公式ドキュメントはありますが、全パターンを網羅した一覧表が少なく、必要な記法を探すのに時間がかかります。また、日本語の情報も限られています。
解決策
接続子チートシートの体系化
ここでは、Mermaid の接続子を体系的に整理し、すぐに使える形でまとめます。
線の種類による分類
線の種類は、大きく 3 つに分類できます。
# | 線種 | 記法 | 用途 |
---|---|---|---|
1 | 実線 | --- | 確定的なフロー、標準的な関係 |
2 | 破線 | -.- | 条件付きフロー、推奨関係 |
3 | 太線 | === | 強調、重要なフロー |
実線の使用例:
markdown```mermaid
// 標準的なフロー
flowchart LR
start["開始"] --> process["処理"]
process --> finish["終了"]
```
解説:
- 実線は、通常の処理フローを表すのに使います。
- 最も基本的な接続子で、迷ったら実線を使いましょう。
破線の使用例:
markdown```mermaid
// 条件付きフロー
flowchart LR
task["タスク"] -.->|推奨| optional["オプション処理"]
task --> required["必須処理"]
```
解説:
- 破線は、必須でない関係や推奨事項を表します。
- 設計図で「将来的に追加予定」などを示すのにも便利です。
太線の使用例:
markdown```mermaid
// 重要なフロー
flowchart LR
input["入力"] ==> important["重要処理"]
input --> normal["通常処理"]
```
解説:
- 太線は、特に重要なフローを強調します。
- セキュリティチェックやエラーハンドリングなど、注目させたい部分に使います。
矢印の方向による分類
矢印の向きは、以下のパターンがあります。
# | 方向 | 記法 | 説明 |
---|---|---|---|
1 | 矢印なし | --- | 方向性のない接続 |
2 | 右向き | --> | 左から右への流れ |
3 | 左向き | <-- | 右から左への流れ |
4 | 双方向 | <--> | 相互の関係 |
矢印なしの使用例:
markdown```mermaid
// 関連性のみを示す
flowchart LR
nodeA["ノードA"] --- nodeB["ノードB"]
```
解説:
- 矢印なしは、方向性のない単純な関連を表します。
- クラス図の関連関係などに使います。
右向き矢印の使用例:
markdown```mermaid
// 左から右への流れ
flowchart LR
user["ユーザー"] --> app["アプリ"]
app --> db["データベース"]
```
解説:
- 右向きは最も一般的な矢印です。
- 時系列や処理の流れを表現します。
左向き矢印の使用例:
markdown```mermaid
// 右から左への流れ
flowchart LR
db["データベース"] <-- app["アプリ"]
```
解説:
- 左向きは、逆方向のフローを示します。
- レスポンスや戻り値などを表現する際に使います。
双方向矢印の使用例:
markdown```mermaid
// 相互通信
flowchart LR
client["クライアント"] <--> server["サーバー"]
```
解説:
- 双方向は、相互にやり取りがある関係を示します。
- API 通信や双方向バインディングなどに使います。
注釈の付け方
接続子にラベルを付けることで、関係性の詳細を説明できます。
markdown```mermaid
// 注釈付き矢印
flowchart LR
nodeA["ノードA"] -->|"条件: X > 0"| nodeB["ノードB"]
nodeB -.->|推奨| nodeC["ノードC"]
nodeC ==>|重要| nodeD["ノードD"]
```
注釈の記法:
|
または|"..."|
で囲んでテキストを追加します。- 日本語や記号を含む場合は
|"..."|
を使います。 - 注釈は矢印の中央に表示されます。
注釈の配置パターン:
markdown```mermaid
// 注釈の位置
flowchart TB
A["A"] -->|上| B["B"]
C["C"] -->|中央| D["D"]
E["E"] -->|下| F["F"]
```
解説:
- 注釈は自動的に矢印の中央に配置されます。
- 縦方向のフローでは、注釈が矢印の横に表示されます。
長さの調整
線の長さは、記号の繰り返しで調整できます。
# | 長さ | 記法 | 用途 |
---|---|---|---|
1 | 短い | -> | ノード間を近づける |
2 | 標準 | --> | 通常の間隔 |
3 | 長い | ---> | ノード間を離す |
4 | より長い | ----> | さらに間隔を広げる |
長さ調整の使用例:
markdown```mermaid
// 長さの違い
flowchart LR
A["A"] -> B["B"]
C["C"] --> D["D"]
E["E"] ---> F["F"]
G["G"] ----> H["H"]
```
解説:
- ハイフンを増やすほど線が長くなります。
- レイアウトの微調整に便利ですが、図が複雑になるので使いすぎに注意です。
全パターン一覧表
以下は、よく使う接続子の組み合わせをまとめた一覧表です。
# | 種類 | 記法 | 見た目 | 用途 |
---|---|---|---|---|
1 | 実線 | --- | A --- B | 方向なし接続 |
2 | 実線右向き | --> | A --> B | 右向きフロー |
3 | 実線左向き | <-- | A <-- B | 左向きフロー |
4 | 実線双方向 | <--> | A <--> B | 双方向フロー |
5 | 破線 | -.- | A -.- B | 方向なし推奨 |
6 | 破線右向き | -.-> | A -.-> B | 右向き推奨 |
7 | 破線左向き | <-.- | A <-.- B | 左向き推奨 |
8 | 破線双方向 | <-.-> | A <-.-> B | 双方向推奨 |
9 | 太線 | === | A === B | 方向なし強調 |
10 | 太線右向き | ==> | A ==> B | 右向き強調 |
11 | 太線左向き | <== | A <== B | 左向き強調 |
12 | 太線双方向 | <==> | A <==> B | 双方向強調 |
13 | 注釈付き実線 | --text--> | A --text--> B | ラベル付きフロー |
14 | 注釈付き破線 | -.text.-> | A -.text.-> B | ラベル付き推奨 |
15 | 注釈付き太線 | ==text==> | A ==text==> B | ラベル付き強調 |
表の活用方法:
- 必要な接続子を表から探して、記法をコピーして使いましょう。
- よく使うパターンをブックマークしておくと便利です。
以下の図は、主要な接続子パターンを視覚的に比較したものです。
mermaidflowchart TB
subgraph solid["実線グループ"]
s1["A"] --- s2["B"]
s3["C"] --> s4["D"]
s5["E"] <--> s6["F"]
end
subgraph dotted["破線グループ"]
d1["G"] -.- d2["H"]
d3["I"] -.-> d4["J"]
d5["K"] <-.-> d6["L"]
end
subgraph thick["太線グループ"]
t1["M"] === t2["N"]
t3["O"] ==> t4["P"]
t5["Q"] <==> t6["R"]
end
markdown```mermaid
flowchart TB
subgraph solid["実線グループ"]
s1["A"] --- s2["B"]
s3["C"] --> s4["D"]
s5["E"] <--> s6["F"]
end
subgraph dotted["破線グループ"]
d1["G"] -.- d2["H"]
d3["I"] -.-> d4["J"]
d5["K"] <-.-> d6["L"]
end
subgraph thick["太線グループ"]
t1["M"] === t2["N"]
t3["O"] ==> t4["P"]
t5["Q"] <==> t6["R"]
end
```
図で理解できる要点:
- 3 つのグループ(実線、破線、太線)それぞれに、矢印なし・単方向・双方向があります。
- 実際の図で見ると、線種と方向の違いが明確に分かります。
具体例
フローチャートでの使用例
実際のフローチャートで、様々な接続子を組み合わせた例を見てみましょう。
ログイン処理フロー
以下は、ログイン処理のフローチャートです。
mermaidflowchart TB
start["ログイン開始"] --> input["ID/パスワード入力"]
input --> validate["入力検証"]
validate -->|有効| auth["認証処理"]
validate -->|無効| error["エラー表示"]
error --> input
auth ==>|認証成功| success["ホーム画面"]
auth -.->|認証失敗| retry["リトライ確認"]
retry -->|"リトライ回数 < 3"| input
retry -->|"リトライ回数 >= 3"| lock["アカウントロック"]
lock --> finish["処理終了"]
success --> finish
markdown```mermaid
flowchart TB
start["ログイン開始"] --> input["ID/パスワード入力"]
input --> validate["入力検証"]
validate -->|有効| auth["認証処理"]
validate -->|無効| error["エラー表示"]
error --> input
auth ==>|認証成功| success["ホーム画面"]
auth -.->|認証失敗| retry["リトライ確認"]
retry -->|"リトライ回数 < 3"| input
retry -->|"リトライ回数 >= 3"| lock["アカウントロック"]
lock --> finish["処理終了"]
success --> finish
```
フローの解説:
- 実線矢印は通常の処理フローを表します。
- 太線矢印(
==>
)は認証成功という重要なフローを強調しています。 - 破線矢印(
-.->
)は、失敗時の推奨フローを示しています。 - 注釈付き矢印で条件分岐を明確にしています。
エラーハンドリングパターン
エラー処理の流れを接続子で表現した例です。
mermaidflowchart LR
api["API呼び出し"] --> check["レスポンス確認"]
check -->|"ステータス: 200"| normal["正常処理"]
check -.->|"ステータス: 400"| validation["バリデーションエラー"]
check -.->|"ステータス: 500"| server["サーバーエラー"]
check ==>|"ステータス: 401"| auth["認証エラー"]
validation --> log["ログ記録"]
server --> log
auth ==> logout["強制ログアウト"]
log --> retry["リトライ判定"]
retry -->|可能| api
retry -->|不可| abort["処理中断"]
markdown```mermaid
flowchart LR
api["API呼び出し"] --> check["レスポンス確認"]
check -->|"ステータス: 200"| normal["正常処理"]
check -.->|"ステータス: 400"| validation["バリデーションエラー"]
check -.->|"ステータス: 500"| server["サーバーエラー"]
check ==>|"ステータス: 401"| auth["認証エラー"]
validation --> log["ログ記録"]
server --> log
auth ==> logout["強制ログアウト"]
log --> retry["リトライ判定"]
retry -->|可能| api
retry -->|不可| abort["処理中断"]
```
パターンの活用:
- 正常系は実線で表現しています。
- エラー系は破線で区別しています。
- 特に重要な認証エラーは太線で強調しています。
シーケンス図での使用例
シーケンス図でも、矢印の種類を使い分けることができます。
API 通信シーケンス
mermaidsequenceDiagram
participant User as ユーザー
participant App as アプリ
participant API as API サーバー
participant DB as データベース
User->>App: データ要求
App->>API: GET /data
API->>DB: SELECT クエリ
DB-->>API: 結果セット
API-->>App: JSON レスポンス
App-->>User: 画面表示
Note over User,DB: 実線矢印は同期通信を示す
User--)App: 非同期イベント
App--)API: POST /event
Note over User,API: 破線矢印は非同期通信を示す
markdown```mermaid
sequenceDiagram
participant User as ユーザー
participant App as アプリ
participant API as API サーバー
participant DB as データベース
User->>App: データ要求
App->>API: GET /data
API->>DB: SELECT クエリ
DB-->>API: 結果セット
API-->>App: JSON レスポンス
App-->>User: 画面表示
Note over User,DB: 実線矢印は同期通信を示す
User--)App: 非同期イベント
App--)API: POST /event
Note over User,API: 破線矢印は非同期通信を示す
```
シーケンス図の矢印記法:
->
は実線矢印(同期メッセージ)を表します。-->
は破線矢印(応答メッセージ)を表します。--)
は破線矢印(非同期メッセージ)を表します。
エラー時のシーケンス
mermaidsequenceDiagram
participant Client as クライアント
participant Server as サーバー
participant Logger as ログサーバー
Client->>Server: リクエスト送信
Server->>Server: 処理実行
alt 正常系
Server-->>Client: 200 OK
else エラー発生
Server->>Logger: エラーログ送信
Logger-->>Server: 送信完了
Server-->>Client: 500 Error
end
Note over Client,Logger: alt-else で条件分岐を表現
markdown```mermaid
sequenceDiagram
participant Client as クライアント
participant Server as サーバー
participant Logger as ログサーバー
Client->>Server: リクエスト送信
Server->>Server: 処理実行
alt 正常系
Server-->>Client: 200 OK
else エラー発生
Server->>Logger: エラーログ送信
Logger-->>Server: 送信完了
Server-->>Client: 500 Error
end
Note over Client,Logger: alt-else で条件分岐を表現
```
条件分岐の表現:
alt
ブロックで正常系とエラー系を分けています。- 実線と破線を使い分けて、リクエストとレスポンスを区別しています。
クラス図での使用例
クラス図では、クラス間の関係を矢印で表現します。
関連と依存の表現
mermaidclassDiagram
class UserService {
+getUser()
+createUser()
}
class User {
+id
+name
+email
}
class Database {
+query()
+execute()
}
class Logger {
+log()
+error()
}
UserService --> User : 使用
UserService --> Database : 依存
UserService ..> Logger : 利用
User --> Database : 保存先
markdown```mermaid
classDiagram
class UserService {
+getUser()
+createUser()
}
class User {
+id
+name
+email
}
class Database {
+query()
+execute()
}
class Logger {
+log()
+error()
}
UserService --> User : 使用
UserService --> Database : 依存
UserService ..> Logger : 利用
User --> Database : 保存先
```
クラス図の矢印記法:
-->
は関連(Association)を表します。..>
は依存(Dependency)を表します。- 実線は強い結びつき、破線は弱い結びつきを示します。
継承と実装の表現
mermaidclassDiagram
class Animal {
<<interface>>
+eat()
+sleep()
}
class Mammal {
<<abstract>>
+breathe()
}
class Dog {
+bark()
}
class Cat {
+meow()
}
Animal <|.. Mammal : 実装
Mammal <|-- Dog : 継承
Mammal <|-- Cat : 継承
markdown```mermaid
classDiagram
class Animal {
<<interface>>
+eat()
+sleep()
}
class Mammal {
<<abstract>>
+breathe()
}
class Dog {
+bark()
}
class Cat {
+meow()
}
Animal <|.. Mammal : 実装
Mammal <|-- Dog : 継承
Mammal <|-- Cat : 継承
```
継承関係の記法:
<|--
は継承(Inheritance)を表します。<|..
は実装(Realization)を表します。- 矢印の向きは、子クラスから親クラスへ向けます。
状態図での使用例
状態図では、状態遷移を矢印で表現します。
注文状態の遷移
mermaidstateDiagram-v2
[*] --> Created : 注文作成
Created --> Confirmed : 確認
Confirmed --> Shipped : 出荷
Shipped --> Delivered : 配達完了
Delivered --> [*] : 完了
Created --> Cancelled : キャンセル
Confirmed --> Cancelled : キャンセル
Cancelled --> [*] : 終了
Shipped --> Returned : 返品
Delivered --> Returned : 返品
Returned --> Refunded : 返金
Refunded --> [*] : 終了
markdown```mermaid
stateDiagram-v2
[*] --> Created : 注文作成
Created --> Confirmed : 確認
Confirmed --> Shipped : 出荷
Shipped --> Delivered : 配達完了
Delivered --> [*] : 完了
Created --> Cancelled : キャンセル
Confirmed --> Cancelled : キャンセル
Cancelled --> [*] : 終了
Shipped --> Returned : 返品
Delivered --> Returned : 返品
Returned --> Refunded : 返金
Refunded --> [*] : 終了
```
状態遷移の表現:
-->
で状態の遷移を示します。:
の後にトリガーとなるイベントを記述します。[*]
は開始・終了状態を表します。
以下の図は、接続子の使い分けパターンを整理したものです。
mermaidflowchart TB
purpose["接続子の選び方"] --> flow["フローの種類"]
flow --> normal["通常フロー<br/>→ 実線矢印"]
flow --> optional["オプション<br/>→ 破線矢印"]
flow --> critical["重要フロー<br/>→ 太線矢印"]
purpose --> relation["関係性の種類"]
relation --> directed["方向あり<br/>→ 矢印付き"]
relation --> undirected["方向なし<br/>→ 矢印なし"]
relation --> bidirectional["双方向<br/>→ 双方向矢印"]
purpose --> context["文脈情報"]
context --> labeled["条件・説明あり<br/>→ 注釈付き"]
context --> plain["シンプル<br/>→ 注釈なし"]
markdown```mermaid
flowchart TB
purpose["接続子の選び方"] --> flow["フローの種類"]
flow --> normal["通常フロー<br/>→ 実線矢印"]
flow --> optional["オプション<br/>→ 破線矢印"]
flow --> critical["重要フロー<br/>→ 太線矢印"]
purpose --> relation["関係性の種類"]
relation --> directed["方向あり<br/>→ 矢印付き"]
relation --> undirected["方向なし<br/>→ 矢印なし"]
relation --> bidirectional["双方向<br/>→ 双方向矢印"]
purpose --> context["文脈情報"]
context --> labeled["条件・説明あり<br/>→ 注釈付き"]
context --> plain["シンプル<br/>→ 注釈なし"]
```
図で理解できる要点:
- 接続子の選択は、フローの種類、関係性、文脈の 3 つの観点から判断します。
- それぞれの観点で最適な記法を選ぶことで、分かりやすい図になります。
実践的なチートシート
実務でよく使う接続子パターンを、用途別にまとめました。
データフロー図
markdown```mermaid
// データの流れを示す
flowchart LR
input["入力"] --> process["処理"]
process --> output["出力"]
process -.->|ログ| logger["ロガー"]
process ==>|エラー| error["エラーハンドラ"]
```
活用シーン:
- データパイプラインの設計
- ETL 処理の可視化
- 処理フローの説明
条件分岐パターン
markdown```mermaid
// 条件による分岐
flowchart TB
check["条件チェック"]
check -->|"条件A"| pathA["処理A"]
check -->|"条件B"| pathB["処理B"]
check -->|"その他"| pathC["デフォルト処理"]
pathA --> merge["結果統合"]
pathB --> merge
pathC --> merge
```
活用シーン:
- ビジネスロジックの分岐
- 権限チェックフロー
- エラーハンドリング
並列処理パターン
markdown```mermaid
// 並列実行
flowchart TB
start["開始"] --> fork["分岐"]
fork --> task1["タスク1"]
fork --> task2["タスク2"]
fork --> task3["タスク3"]
task1 --> join["統合"]
task2 --> join
task3 --> join
join --> finish["完了"]
```
活用シーン:
- マルチスレッド処理
- 並列 API 呼び出し
- バッチ処理の分散
ループパターン
markdown```mermaid
// ループ処理
flowchart LR
init["初期化"] --> condition["条件判定"]
condition -->|継続| process["処理実行"]
process --> update["状態更新"]
update --> condition
condition -->|終了| finish["ループ終了"]
```
活用シーン:
- 繰り返し処理の説明
- リトライロジック
- ポーリング処理
まとめ
Mermaid の矢印・接続子は、線の種類、方向、注釈の組み合わせで多様な表現が可能です。本記事では、以下の内容をまとめました。
押さえるべきポイント
-
線の種類は 3 つ
- 実線(
---
): 確定的なフロー - 破線(
-.-
): 条件付き・推奨フロー - 太線(
===
): 重要なフロー
- 実線(
-
矢印の方向は 4 パターン
- 矢印なし(
---
): 方向性のない接続 - 右向き(
-->
): 左から右への流れ - 左向き(
<--
): 右から左への流れ - 双方向(
<-->
): 相互関係
- 矢印なし(
-
注釈で意味を明確化
|ラベル|
または|"ラベル"|
で条件や説明を追加- 複雑な分岐では注釈が必須
-
長さで レイアウト調整
- ハイフンの数で線の長さを調整
- 図の見やすさを向上
使い分けの原則
接続子を選ぶ際は、以下の質問を自分に問いかけましょう。
- この関係は確定的か、それとも条件付きか? → 実線 or 破線
- 方向性はあるか? → 矢印の有無
- 強調したいフローか? → 太線
- 条件や説明が必要か? → 注釈の追加
これらを意識することで、読み手に伝わりやすい図が作成できます。
実践のコツ
- シンプルに始める: 最初は実線矢印だけで描き、必要に応じて破線や太線を追加しましょう。
- 一貫性を保つ: 同じ図内では、同じ意味の関係には同じ接続子を使いましょう。
- 注釈を活用する: 複雑な条件は、注釈で明示すると分かりやすくなります。
- チートシートを手元に: 本記事の一覧表をブックマークして、必要な時にすぐ参照できるようにしましょう。
Mermaid の接続子をマスターすることで、ドキュメントの質が格段に向上します。本チートシートを活用して、効果的な図解を作成してください。
関連リンク
- article
Mermaid 矢印・接続子チートシート:線種・方向・注釈の一覧早見
- article
Mermaid 図面の命名規約:ノード ID・エッジ記法・クラス名の統一ガイド
- article
Mermaid flowchart 実践 100 本ノック:subgraph/linkStyle/classDef の活用術
- article
Mermaid を VS Code で快適に:拡張機能・ライブプレビュー・ショートカット設定
- article
Mermaid とは何者か?図をコードで描く“Diagrams as Code”の価値と適用範囲を一気読み
- article
Mermaid × Notion で業務知識を一元化するナレッジベース構築術
- article
Convex で Presence(在席)機能を実装:ユーザーステータスのリアルタイム同期
- article
Next.js の RSC 境界設計:Client Components を最小化する責務分離戦略
- article
Mermaid 矢印・接続子チートシート:線種・方向・注釈の一覧早見
- article
Codex とは何か?AI コーディングの基礎・仕組み・適用範囲をやさしく解説
- article
MCP サーバー 設計ベストプラクティス:ツール定義、権限分離、スキーマ設計の要点まとめ
- article
Astro で動的 OG 画像を生成する:Satori/Canvas 連携の実装レシピ
- blog
iPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
- blog
Googleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
- blog
【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
- blog
Googleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
- blog
Pixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
- blog
フロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
- review
今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
- review
ついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
- review
愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
- review
週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来