← 返回
未分类 中文

drawio-flowchart

Generate clean, well-structured draw.io (.drawio) XML flowcharts with proper swimlane containers, text hierarchy, color coding, and orthogonal arrows for wor...
生成干净、结构化的 draw.io (.drawio) XML 流程图,包含合适的泳道容器、文本层级、颜色编码和正交箭头,适用于工作流。
zhiningo zhiningo 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 504
下载
💾 0
安装
1
版本
#latest

概述

draw.io Flowchart Generator

Generate production-ready .drawio XML files that render cleanly in app.diagrams.net.

Quick Start

  1. Understand the user's process/workflow
  2. Plan the hierarchy: stages → sub-stages → nodes
  3. Generate the XML following the mandatory rules below
  4. Save the .drawio file and tell the user how to open it (see Output Delivery)

Mandatory Rules

These are non-negotiable. Every flowchart MUST follow all of them.

Canvas Sizing (Critical)

diagrams.net auto-scales to fit the canvas. A canvas too large = tiny text on screen.

Content complexitypageWidthpageHeight
---------
Simple (≤3 stages, few nodes)6001200
Medium (4-5 stages)8002800
Complex (6+ stages, nested)8003800
  • Never exceed pageWidth=800. Wider canvases get scaled down, making text unreadable.
  • Set dx and dy to match or slightly exceed page dimensions.

Container Structure

Use swimlane containers for every stage/group — never bare mxgraph.basic.rect:

<mxCell id="g1" parent="1" connectable="0"
  style="swimlane;startSize=32;fillColor=#EBF5FF;strokeColor=#2563EB;
         strokeWidth=2;fontSize=16;fontStyle=1;fontColor=#1e40af;
         rounded=0;collapsible=0;"
  value="① Stage Name" vertex="1">
  <mxGeometry x="20" y="60" width="720" height="200" as="geometry" />
</mxCell>

Key properties:

  • startSize=32 — header height for title
  • rounded=0 — sharp corners (never rounded containers)
  • collapsible=0 — prevent collapse UI
  • connectable="0" — on the cell tag, not in style

Text Hierarchy

Three tiers of text size — no exceptions:

LevelfontSizefontStyleExample
------------
Stage title (swimlane)14-161 (bold)① Skill 上传
Node title (inside box)13 with tagbold via HTML格式验证 ✅
Node body text12normalSKILL.md & YAML 合法

Use inline HTML for mixed sizes within a single cell:

value="&lt;b style=&quot;font-size:13px&quot;&gt;Title&lt;/b&gt;&lt;br&gt;&lt;br&gt;Body text line 1&lt;br&gt;Body text line 2"

Alignment

  • All text: align=center — no exceptions for node content
  • Stage titles use swimlane's built-in left-aligned bold header (this is fine)
  • Nodes within a container: distribute evenly across the container width
  • 2 nodes: left half + right half
  • 3 nodes: thirds

Arrows

Arrows must be clean and orthogonal. No diagonal lines, no crossing, no spaghetti.

Between stages (main flow)

<mxCell id="ea_1to2" parent="1" source="g1" target="g2" edge="1"
  style="edgeStyle=orthogonalEdgeStyle;strokeWidth=3;strokeColor=#2563EB;
         fontColor=#2563EB;fontSize=12;fontStyle=1;"
  value="Label text">
  • strokeWidth=3, blue (#2563EB), bold label

Within a container (internal flow)

<mxCell id="e30" parent="g2" source="30" target="31" edge="1"
  style="edgeStyle=orthogonalEdgeStyle;strokeWidth=2;strokeColor=#82b366;">
  • strokeWidth=2, color matches container theme

Fan-out pattern (one source → multiple targets)

Use explicit entry points to prevent crossing:

<!-- Left target: entryX=0.25 -->
style="...entryX=0.25;entryY=0;exitX=0.5;exitY=1;"
<!-- Center target: entryX=0.5 -->
style="...entryX=0.5;entryY=0;exitX=0.5;exitY=1;"
<!-- Right target: entryX=0.75 -->
style="...entryX=0.75;entryY=0;exitX=0.5;exitY=1;"

Return/loop arrows

Use dashed lines routed via explicit waypoints on the left margin:

style="edgeStyle=orthogonalEdgeStyle;dashed=1;strokeColor=#d97706;strokeWidth=2;"

With routing along x=5 to avoid crossing content.

Color Palette

Use this consistent 5-stage palette. If fewer stages, use a subset:

StagefillColorstrokeColorfontColor
------------
1 (intro/input)#EBF5FF#2563EB#1e40af
2 (validation)#F0FDF4#16a34a#047857
3 (evaluation)#FAF5FF#7c3aed#6d28d9
4 (approval)#F0FDF4#059669#047857
5 (management)#FFF7ED#ea580c#c2410c

Sub-containers (dashed): use lighter fills (#FEFCE8, #FFF7ED, #FEF2F2) with dashed=1.

Node fills: always #FFFFFF with border color matching the parent stage.

Special nodes:

  • Warning/fail: fillColor=#f8cecc, strokeColor=#b85450
  • Pending/future: fillColor=#fff2cc, strokeColor=#d6b656
  • Decision (rhombus): fillColor=#fff2cc, strokeColor=#d6b656

Spacing Rules

  • Container left margin: x=20, right margin: leave 20px
  • Container width: pageWidth - 40 (e.g., 720 for 800-wide canvas)
  • Vertical gap between stages: 30-40px (including arrow space)
  • Nodes inside container: 10-20px padding from container edges
  • Vertical gap between node bottom and container bottom: ≥15px

"或" (Or) Pattern

When two parallel options exist (e.g., manual vs automatic):

<mxCell id="s1or" parent="s1box"
  style="text;html=1;align=center;fontSize=16;fontStyle=1;fontColor=#999;"
  value="或" vertex="1">

Place centered between the two option boxes, vertically aligned to their midpoint.

Status/Note Bars

For status flow annotations or notes at the bottom of a container:

style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#999;
       fontSize=11;align=center;fontStyle=2;"

Height: 22-28px, italic, gray — visually subordinate to main content.

XML Structure Template

See references/template.md for the complete XML skeleton.

Output Delivery

交付本地 .drawio 文件,告诉用户打开方式。

步骤

  1. 生成完整的 .drawio XML,必须包含 外层包裹
<mxfile host="app.diagrams.net" type="device">
  <diagram id="xxx" name="图表名称">
    <mxGraphModel ...>
      <root>
        ...
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
  1. 将文件保存到 workspace 或用户指定路径,文件名以 .drawio 结尾
  2. 告诉用户文件路径和打开方式:

打开方式(告知用户,选其一即可):

  • 方式一:浏览器打开 https://app.diagrams.net → 点「Open Existing Diagram」→ 选择本地文件
  • 方式二:直接将 .drawio 文件拖拽到已打开的 app.diagrams.net 页面中
  • 方式三:如果安装了 diagrams.net 桌面版(或 VS Code draw.io 插件),直接双击文件打开

Validation Checklist

Before writing the file, verify:

  • [ ] pageWidth ≤ 800
  • [ ] All containers use swimlane style with rounded=0;collapsible=0
  • [ ] All node text has align=center
  • [ ] Stage titles use fontSize 14-16 with fontStyle=1
  • [ ] Node titles use tags at fontSize 13
  • [ ] Inter-stage arrows: strokeWidth=3, strokeColor=#2563EB
  • [ ] Intra-container arrows: strokeWidth=2, matching container color
  • [ ] Fan-out arrows use explicit entryX/exitX anchors
  • [ ] No XML comments () in the output — they cause load errors
  • [ ] All edge cells have edge="1" attribute and valid source/target
  • [ ] Container cells have connectable="0" on the tag (not in style)
  • [ ] Nodes inside a container have parent="containerId"
  • [ ] No overlapping geometry — manually check x/y/width/height
  • [ ] Return arrows route via left margin with explicit waypoints

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-03 10:17 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 41,620
dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 195 📥 67,688
dev-programming

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 72 📥 181,933