mcpField
D
DrawIO Diagram Creation

DrawIO Diagram Creation

github.com/thomasrohdeドキュメント250 回インストール26 週間前に更新
リポジトリ

DrawIO Diagram Creation について

構造化XML形式の`.drawio`図を作成するためのスキルです。フローチャート、アーキテクチャ図、UML図の作成者向けに、セル構造、配置、コネクター、スタイルと各種図の例を説明します。

主な機能

  1. 01`.drawio` XML構造のガイド
  2. 02図形とコネクターのスタイル
  3. 03セルIDと配置のガイド
  4. 04一般的な図の種類の例
  5. 05XML検証の実践

活用シーン

  1. 01フローチャートの作成
  2. 02システムアーキテクチャの文書化
  3. 03UML図やデータ図の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/thomasrohde/marketplace --skill drawio-diagram-creation

インストール後、Claude Code で/drawio-diagram-creationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples/
sequence-diagram.drawio
archimate.drawio
org-chart.drawio
c4-diagram.drawio
architecture.drawio
flowchart.drawio
network-diagram.drawio
class-diagram.drawio
er-diagram.drawio
references/
shape-library.md
styling-guide.md
xml-structure.md

詳細

DrawIO 図の作成

適切な XML 構造、スタイル、レイアウトを備えた、本番環境ですぐに使える .drawio ファイルを作成します。DrawIO(diagrams.net)は、mxGraph ライブラリを基盤とする XML ベースの形式を使用します。

基本概念

ファイル形式

DrawIO ファイルは、.drawio 拡張子(または .drawio.xml、.drawio.svg)を持つ XML ドキュメントです。この形式では、圧縮または非圧縮のコンテンツを含む mxGraph の XML シリアル化を使用します。

基本構造

すべての DrawIO ファイルは次の構造に従います。

<mxfile host="app.diagrams.net" modified="2024-01-01T00:00:00.000Z" agent="Claude" version="21.0.0" type="device">
  <diagram id="diagram-id" name="Page-1">
    <mxGraphModel dx="1000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>

主な要素:

  • mxfile - ルートコンテナー。複数の図(ページ)を格納できます
  • diagram - 一意の ID と名前を持つ単一ページ
  • mxGraphModel - キャンバスの設定(サイズ、グリッド、ガイド)
  • root - すべてのセル(図形とエッジ)を格納します
  • mxCell id="0" - 必須のルートセル
  • mxCell id="1" - すべての図形の必須のデフォルト親セル
セルの種類

頂点(図形):

<mxCell id="2" value="Label" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
  <mxGeometry x="100" y="100" width="120" height="60" as="geometry" />
</mxCell>

エッジ(コネクター):

<mxCell id="3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;" edge="1" parent="1" source="2" target="4">
  <mxGeometry relative="1" as="geometry" />
</mxCell>

図の作成

ID の管理

すべてのセルに一意の ID を割り当てます。0 と 1 は予約されているため、「2」から始まる単純な連番を使用します。

<mxCell id="2" ... />  
<mxCell id="3" ... />  
<mxCell id="4" ... />  
配置

キャンバスの原点(左上)を基準とした x/y 座標を使用します。一般的な間隔は次のとおりです。

  • 図形間の水平方向の間隔:150~200 ピクセル
  • 図形間の垂直方向の間隔:80~100 ピクセル
  • 図形の幅:100~160 ピクセル
  • 図形の高さ:40~80 ピクセル
一般的なスタイル

長方形(デフォルト):

rounded=0;whiteSpace=wrap;html=1;

角丸長方形:

rounded=1;whiteSpace=wrap;html=1;

楕円/円:

ellipse;whiteSpace=wrap;html=1;

ひし形(判断):

rhombus;whiteSpace=wrap;html=1;

円柱(データベース):

shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;

ドキュメント:

shape=document;whiteSpace=wrap;html=1;boundedLbl=1;

プロセス(側面に線がある長方形):

shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;
コネクタのスタイル

直角(直角に曲がる線):

edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;

曲線:

edgeStyle=orthogonalEdgeStyle;curved=1;orthogonalLoop=1;jettySize=auto;html=1;

直線:

edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;

矢印付き:

endArrow=classic;html=1;

破線:

dashed=1;
色とスタイル設定

スタイル文字列に追加します。

  • 塗りつぶしの色:fillColor=#dae8fc;
  • 線の色:strokeColor=#6c8ebf;
  • フォントの色:fontColor=#333333;
  • フォントサイズ:fontSize=12;
  • 太字:fontStyle=1;
  • 線の幅:strokeWidth=2;

一般的な配色:

  • 青:fillColor=#dae8fc;strokeColor=#6c8ebf;
  • 緑:fillColor=#d5e8d4;strokeColor=#82b366;
  • オレンジ:fillColor=#ffe6cc;strokeColor=#d79b00;
  • 赤:fillColor=#f8cecc;strokeColor=#b85450;
  • 紫:fillColor=#e1d5e7;strokeColor=#9673a6;
  • グレー:fillColor=#f5f5f5;strokeColor=#666666;

図の種類

フローチャート

プロセスには長方形、判断にはひし形、開始/終了には楕円を使用します。


<mxCell id="2" value="Start" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
  <mxGeometry x="200" y="40" width="80" height="40" as="geometry" />
</mxCell>

<mxCell id="3" value="Process Step" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
  <mxGeometry x="170" y="120" width="140" height="60" as="geometry" />
</mxCell>

<mxCell id="4" value="Condition?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
  <mxGeometry x="180" y="220" width="120" height="80" as="geometry" />
</mxCell>
アーキテクチャ図

グループ化されたコンテナー、サービス図形、ラベル付きコネクターを使用します。


<mxCell id="2" value="Backend Services" style="swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
  <mxGeometry x="40" y="40" width="300" height="200" as="geometry" />
</mxCell>

<mxCell id="3" value="API Gateway" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="2">
  <mxGeometry x="20" y="40" width="120" height="60" as="geometry" />
</mxCell>
シーケンス図

垂直のライフラインと水平のメッセージ矢印を使用します。


<mxCell id="2" value="Client" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
  <mxGeometry x="100" y="40" width="100" height="300" as="geometry" />
</mxCell>

<mxCell id="4" value="request()" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1">
  <mxGeometry relative="1" as="geometry">
    <mxPoint x="150" y="100" as="sourcePoint" />
    <mxPoint x="350" y="100" as="targetPoint" />
  </mxGeometry>
</mxCell>
ER 図

列を持つテーブル図形を使用します。

<mxCell id="2" value="users" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
  <mxGeometry x="100" y="100" width="160" height="130" as="geometry" />
</mxCell>
<mxCell id="3" value="id: INT (PK)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontStyle=1;" vertex="1" parent="2">
  <mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="4" value="email: VARCHAR(255)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="2">
  <mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
クラス図

UML クラス図形を使用します。

<mxCell id="2" value="&lt;b&gt;ClassName&lt;/b&gt;" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;" vertex="1" parent="1">
  <mxGeometry x="100" y="100" width="160" height="130" as="geometry" />
</mxCell>
<mxCell id="3" value="- privateField: Type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="2">
  <mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="2">
  <mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="5" value="+ publicMethod(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="2">
  <mxGeometry y="60" width="160" height="26" as="geometry" />
</mxCell>

追加リソース

参考ファイル

詳しい情報については、以下を参照してください。

  • references/xml-structure.md - XML 構造と属性の全体
  • references/shape-library.md - 図形スタイルとアイコンの包括的な一覧
  • references/styling-guide.md - 高度なスタイル設定、テーマ、書式設定
サンプルファイル

examples/ にある動作するサンプル:

  • flowchart.drawio - 判断ロジックを含む基本的なフローチャート
  • architecture.drawio - マイクロサービスのアーキテクチャ図
  • sequence-diagram.drawio - UML シーケンス図
  • er-diagram.drawio - エンティティとリレーションシップを示すデータベース図
  • class-diagram.drawio - UML クラス図
  • network-diagram.drawio - ネットワークトポロジー図
  • org-chart.drawio - 組織の階層図
  • archimate.drawio - ArchiMate エンタープライズアーキテクチャ図(ビジネス/アプリケーション/テクノロジーの各レイヤー)
  • c4-diagram.drawio - コンテキスト図とコンテナー図を含む C4 モデル

ベストプラクティス

  1. 一意の ID:すべての mxCell に一意の ID が割り当てられていることを必ず確認してください
  2. 一貫した間隔:グリッドに合わせて配置してください(10px 刻み)
  3. 色分け:類似する要素には一貫した色を使用してください
  4. 読みやすいラベル:テキストは簡潔にし、長いテキストには改行を使用してください
  5. 論理的な流れ:図形は左から右、または上から下に配置してください
  6. グループ化:関連する要素にはコンテナーやスイムレーンを使用してください
  7. エッジのルーティング:図をすっきりと見せるため、直交エッジを使用してください
  8. 出力のテスト:draw.io でファイルが正しく開くことを確認してください

クイックスタートテンプレート

最小構成の .drawio ファイル:

<mxfile host="app.diagrams.net" modified="2024-01-01T00:00:00.000Z" agent="Claude" version="21.0.0" type="device">
  <diagram id="main" name="Diagram">
    <mxGraphModel dx="1000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>

コメント