はじめに
Next.jsのMDXにMermaidダイアグラムを追加するでは、Next.jsのMDXを使用したブログにMermaid.jsダイアグラムを追加する方法を解説しました。今回は、Mermaid.jsのダイアグラムをこのブログで使用しているTailwind CSSのカラーパレットに合わせてカスタマイズする方法を紹介します。
カスタマイズの基本
Mermaid.jsのテーマは、mermaid.initialize()のthemeVariablesでデフォルトのテーマをベースとしたオーバーライドが可能です。
共通変数
すべてのダイアグラムタイプで共通して使用できる基本的な変数です。背景色・テキスト色・境界線色を統一することで、サイト全体のデザインに馴染むダイアグラムを作成できます。
ダイアグラム固有変数
各ダイアグラムタイプに特化した変数です。シーケンス図のアクターやパイチャートのセクション色など、ダイアグラムごとの特徴的な要素をカスタマイズできます。
この記事で扱った変数以外にも、ガントチャートやER図など、他のダイアグラムタイプに特化した変数が多数用意されています。詳細はTheme Variablesを参照してください。
カスタマイズ例(ライトモード)
このブログで実際に使用している設定です。背景・テキスト・境界線の共通変数をグレースケールで統一し、サイト全体のデザインに馴染むダイアグラムを実現しています。明るいグレー(gray-100, gray-200)を背景に、暗いグレー(gray-800, gray-900)をテキストに使用してコントラストを確保しています。
カスタマイズ例(ダークモード)
ダークモードでは、背景とテキストの色を反転させています。暗いグレー(gray-700, gray-800)を背景に、明るいグレー(gray-50, gray-100)をテキストに使用し、明度を下げながらも十分なコントラストを保つことで可読性を確保しています。
グレースケールベースのダイアグラムが表示されます。
ダイアグラムタイプ別カスタマイズ
シーケンス図
シーケンス図で使用する主要な変数と、このブログで設定している具体的な色の値を示します。
パイチャート
パイチャートで使用する主要な変数と、このブログで設定している具体的な色の値を示します。
パイチャートの色は、このブログで実際に使用しているテーマファイルの設定です。セクションの背景色として使用されるため、ライトモードでは明るめの色(-300)を、ダークモードでは暗い色(-800〜900)を使用し、テキストとのコントラストを確保しています。
色の順序は blue → green → amber → red → violet → pink → teal → orange → cyan → lime → indigo → rose の12色を配置し、色相を分散させることで隣接するセクションが視覚的に区別しやすくなるよう設計しています。
フローチャート
フローチャートで使用する主要な変数と、このブログで設定している具体的な色の値を示します。
クラス図
クラス図で使用する主要な変数と、このブログで設定している具体的な色の値を示します。
ユーザージャーニー図
ユーザージャーニー図で使用する主要な変数と、このブログで設定している具体的な色の値を示します。
セクションごとに8種類の色パターンが自動的に割り当てられ、各タスクの満足度(1〜5)に応じて色の濃淡が自動調整されます。背景色として使用するため、ライトモードでは明るめの色(-300)を、ダークモードでは暗い色(-900)を使用し、テキストとのコントラストを確保しています。
まとめ
mermaid.jsのカスタマイズはそれほど難しくないことが分かったかと思います。ブログのデザインに合わせて統一感のあるダイアグラムを作成してみてください。
この記事で紹介したテーマファイルは以下からダウンロードできます。
