概要
beautiful-mermaid は、AIコーディング支援やCLI環境での図表表示を強化するために開発された テキストベース図表レンダラー。 SVGとASCII/Unicode両対応で、 美しいテーマ と超高速レンダリングが特徴。 2色だけで完結するMonoモード や、VS Codeテーマとの連携も可能。 15種のテーマ を内蔵し、カスタムテーマも簡単作成。 TypeScript製で 依存性が少なく、どこでも動作。
beautiful-mermaid 概要
- AIアシスタント やCLIツールで図表を即座に可視化できるソリューション
- Mermaid 標準レンダラーの課題(見た目、カスタマイズ性、依存性、ターミナル非対応)を解決
- Craft Agents での図表生成のためにCraftが独自開発
- SVG (リッチUI向け)と ASCII/Unicode (ターミナル向け)の両対応
- mermaid-ascii (Alexander Grooff氏)のGo実装をTypeScriptへ移植・拡張
主な特徴
- 5種類の図表 :フローチャート、状態遷移図、シーケンス図、クラス図、ER図
- デュアル出力 :SVG(UI向け)、ASCII/Unicode(CLI/ターミナル向け)
- 15種類の内蔵テーマ :すぐ使える美麗テーマ群
- Shiki連携 :VS Codeコミュニティテーマをそのまま利用可能
- ライブテーマ切替 :CSSカスタムプロパティで即時反映
- Monoモード :2色だけで統一感ある美しい図表
- ゼロDOM依存 :純粋なTypeScript実装、どんな環境でも動作
- 超高速描画 :100件以上の図表を500ms未満でレンダリング
インストール方法
- npm/bun/pnpm で簡単インストール
npm install beautiful-mermaidbun add beautiful-mermaidpnpm add beautiful-mermaid
クイックスタート
- SVG出力例
import { renderMermaid } from 'beautiful-mermaid' const svg = await renderMermaid(` graph TD A[Start] --> B{Decision} B -->|Yes| C[Action] B -->|No| D[End] `) - ASCII出力例
import { renderMermaidAscii } from 'beautiful-mermaid' const ascii = renderMermaidAscii(`graph LR; A --> B --> C`)
テーマとカスタマイズ
- 2色指定だけで美しいMonoモード
- 例:
{ bg: '#1a1b26', fg: '#a9b1d6' } - すべての要素色はこの2色から自動派生
- 例:
- Enrichedモード
- 必要な要素のみ色を追加指定可能(例:
accent、line、mutedなど)
- 必要な要素のみ色を追加指定可能(例:
- ライブ切替
<svg>のCSSカスタムプロパティで即時テーマ変更
- 内蔵テーマ一覧
- zinc-light, zinc-dark, tokyo-night, catppuccin-mocha, nord, dracula, github-light, solarized-dark, one-dark など全15種
- カスタムテーマ作成
{ bg: '#0f0f0f', fg: '#e0e0e0' }のように簡単指定- enrich色追加も柔軟
VS Codeテーマとの連携(Shiki)
- Shiki のテーマをそのまま図表に反映
fromShikiTheme()でVS Codeテーマ色を自動マッピング- 例:
editor.background→bg、editor.foreground→fgなど
対応図表タイプ
- フローチャート
- 方向指定も柔軟(TD, LR, BT, RL)
- 状態遷移図
stateDiagram-v2形式
- シーケンス図
- 登場人物間のやり取りを可視化
- クラス図
- 継承・属性・メソッド表現
- ER図
- エンティティ間のリレーション可視化
ASCII出力詳細
- Unicode/ASCII両対応
- Unicode:美しいボックス描画
- ASCII:最大互換性
- 出力調整オプション
useAscii,paddingX,paddingY,boxBorderPaddingで柔軟制御
APIリファレンス
- renderMermaid(text, options?): Promise<string>
- Mermaid記法→SVG変換
- オプションで色やフォント、透過指定など
- renderMermaidAscii(text, options?): string
- Mermaid記法→ASCII/Unicode変換(同期処理)
- fromShikiTheme(theme): DiagramColors
- Shikiテーマから図表用カラー抽出
- THEMES/DEFAULTS
- 内蔵テーマ・デフォルトカラー参照用
ライセンス・帰属
- MITライセンス
- mermaid-ascii (Alexander Grooff氏)の実装を拡張
- シーケンス図、クラス図、ER図、Unicode対応など多数拡張
- Craftチーム による開発
beautiful-mermaid は、AI支援開発やCLIツールの図表可視化を革新する 新世代テキストベース図表レンダラー。 「どこでも美しく、誰でも簡単に」図表を扱いたい開発者に最適な選択肢。