DrawIO Diagram Creation について
構造化XML形式の`.drawio`図を作成するためのスキルです。フローチャート、アーキテクチャ図、UML図の作成者向けに、セル構造、配置、コネクター、スタイルと各種図の例を説明します。
主な機能
- 01`.drawio` XML構造のガイド
- 02図形とコネクターのスタイル
- 03セルIDと配置のガイド
- 04一般的な図の種類の例
- 05XML検証の実践
活用シーン
- 01フローチャートの作成
- 02システムアーキテクチャの文書化
- 03UML図やデータ図の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thomasrohde/ marketplace --skill drawio-diagram-creationインストール後、Claude Code で/drawio-diagram-creationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/sequence-diagram.drawioarchimate.drawioorg-chart.drawioc4-diagram.drawioarchitecture.drawioflowchart.drawionetwork-diagram.drawioclass-diagram.drawioer-diagram.drawioreferences/shape-library.mdstyling-guide.mdxml-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={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":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="<b>ClassName</b>" 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 モデル
ベストプラクティス
- 一意の ID:すべての mxCell に一意の ID が割り当てられていることを必ず確認してください
- 一貫した間隔:グリッドに合わせて配置してください(10px 刻み)
- 色分け:類似する要素には一貫した色を使用してください
- 読みやすいラベル:テキストは簡潔にし、長いテキストには改行を使用してください
- 論理的な流れ:図形は左から右、または上から下に配置してください
- グループ化:関連する要素にはコンテナーやスイムレーンを使用してください
- エッジのルーティング:図をすっきりと見せるため、直交エッジを使用してください
- 出力のテスト: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>