draw.io Diagram Generation Skill
Overview
This skill enables Claude Code to generate high-quality draw.io diagrams by directly editing XML. It addresses common pitfalls when generating draw.io files programmatically.
Quick Start
When creating a draw.io diagram:
- Set
defaultFontFamilyinmxGraphModel - Add
fontFamily=FontName;to ALL text element styles - Use
fontSize=18or larger for readability - Place arrows (edges) BEFORE boxes (vertices) in XML
- Allocate 30-40px width per Japanese character
- Set
page="0"for transparent background - Verify with PNG export
Core Rules
Font Settings
<!-- In mxGraphModel -->
<mxGraphModel defaultFontFamily="Noto Sans JP" page="0" ...>
<!-- In EVERY text element's style -->
<mxCell style="text;fontFamily=Noto Sans JP;fontSize=18;..." />
Arrow Placement (Z-Order)
Arrows must be declared FIRST to render behind other elements:
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- ARROWS FIRST (renders at back) -->
<mxCell id="arrow1" edge="1" ... />
<!-- BOXES AFTER (renders in front) -->
<mxCell id="box1" vertex="1" ... />
</root>
Label-Arrow Spacing
Labels must be at least 20px away from arrow lines:
<!-- Arrow at Y=220 -->
<mxCell id="arrow">
<mxGeometry>
<mxPoint y="220" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<!-- Label at Y=180 (40px above arrow) - CORRECT -->
<mxCell id="label" value="Process">
<mxGeometry y="180" width="60" height="20" />
</mxCell>
Japanese Text Width
Allocate sufficient width to prevent unwanted line breaks:
<!-- 8 Japanese characters × 35px = 280px minimum -->
<mxCell id="title" value="シンプルなフロー図">
<mxGeometry width="300" height="40" />
</mxCell>
Instruction Template
When asked to create a draw.io diagram, use this approach:
- Understand the diagram requirements
- Plan the layout (positions, connections)
- Generate XML with all rules applied
- Suggest PNG verification command
PNG Verification
Always recommend PNG export for visual verification:
# macOS
drawio -x -f png -s 2 -t -o output.png input.drawio
open output.png
# Linux
drawio -x -f png -s 2 -t -o output.png input.drawio
xdg-open output.png
Supporting Files
- reference.md - Complete XML structure reference
- examples.md - Production-ready diagram examples
- checklist.md - Pre-commit validation checklist