Loading...
Loading...
Generate hand-drawn style diagrams (architecture, flowcharts, system design) as .excalidraw.json files. Use when user wants diagrams, mentions Excalidraw, or needs Mermaid-to-visual conversion.
npx skill4agent add bahayonghang/my-claude-code-settings excalidrawstartBindingendBindingboundElementswidthheightwidth = (maxX + maxWidth) - minX + 80height = (maxY + maxHeight) - minY + 80dag → main-bgdag → read-mainrect.height >= text.height + 20target.y >= max(child.y + child.height) + 60Arrow 1: A → B (horizontal)
Arrow 2: B → C (horizontal)
Arrow 3: C → A (return arrow - DANGER: will cross B if horizontal layout){
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [],
"appState": { "viewBackgroundColor": "#ffffff" },
"files": {}
}{
"id": "unique-id",
"type": "rectangle",
"x": 100, "y": 100,
"width": 140, "height": 60,
"strokeColor": "#1e1e1e",
"backgroundColor": "#a5d8ff",
"roundness": { "type": 3 },
"boundElements": [{"id": "arrow-id", "type": "arrow"}]
}{
"id": "unique-id",
"type": "text",
"x": 120, "y": 120,
"width": 80, "height": 24,
"text": "Label",
"fontSize": 16,
"fontFamily": 4,
"textAlign": "center"
}text.x = rect.x + (rect.width - text.width) / 2text.y = rect.y + (rect.height - text.height) / 2{
"id": "unique-id",
"type": "arrow",
"x": 240, "y": 130,
"points": [[0, 0], [100, 0]],
"startBinding": { "elementId": "source-id", "focus": 0, "gap": 5 },
"endBinding": { "elementId": "target-id", "focus": 0, "gap": 5 },
"endArrowhead": "arrow"
}xypointsx: 100, y: 200, points: [[0,0], [50, 0], [50, 100]]"opacity": 30"fillStyle": "solid", "strokeWidth": 2, "roughness": 1,
"opacity": 100, "angle": 0, "seed": 1, "version": 1| Purpose | Background | Stroke |
|---|---|---|
| Primary / Phase 1 | | |
| Secondary / Phase 2 | | |
| Accent / Shared | | |
| Storage / State | | |
140×60opacity: 30Phase 1 (y: 80-300): [A] -----> [B] -----> [C]
msg1 msg2
[A] <----- [B]
response
Phase 2 (y: 320-500): [A'] ----> [B'] ----> [C']
(duplicate participants at new y)focusfocus: -0.5focus: 0.5focus: 0focus: -0.5focus: 0.5"points": [[0, 0], [0, -80], [-400, -80], [-400, 0]]{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{"id": "a", "type": "rectangle", "x": 100, "y": 150, "width": 140, "height": 60, "backgroundColor": "#a5d8ff", "strokeColor": "#1971c2", "roundness": {"type": 3}, "boundElements": [{"id": "arr1", "type": "arrow"}, {"id": "arr3", "type": "arrow"}]},
{"id": "a-label", "type": "text", "x": 155, "y": 168, "width": 30, "height": 24, "text": "A", "fontSize": 16, "fontFamily": 4, "textAlign": "center"},
{"id": "b", "type": "rectangle", "x": 340, "y": 150, "width": 140, "height": 60, "backgroundColor": "#b2f2bb", "strokeColor": "#2f9e44", "roundness": {"type": 3}, "boundElements": [{"id": "arr1", "type": "arrow"}, {"id": "arr2", "type": "arrow"}]},
{"id": "b-label", "type": "text", "x": 395, "y": 168, "width": 30, "height": 24, "text": "B", "fontSize": 16, "fontFamily": 4, "textAlign": "center"},
{"id": "c", "type": "rectangle", "x": 580, "y": 150, "width": 140, "height": 60, "backgroundColor": "#d0bfff", "strokeColor": "#7048e8", "roundness": {"type": 3}, "boundElements": [{"id": "arr2", "type": "arrow"}, {"id": "arr3", "type": "arrow"}]},
{"id": "c-label", "type": "text", "x": 635, "y": 168, "width": 30, "height": 24, "text": "C", "fontSize": 16, "fontFamily": 4, "textAlign": "center"},
{"id": "arr1", "type": "arrow", "x": 245, "y": 180, "points": [[0, 0], [90, 0]], "endArrowhead": "arrow", "startBinding": {"elementId": "a", "focus": 0, "gap": 5}, "endBinding": {"elementId": "b", "focus": 0, "gap": 5}},
{"id": "arr2", "type": "arrow", "x": 485, "y": 180, "points": [[0, 0], [90, 0]], "endArrowhead": "arrow", "startBinding": {"elementId": "b", "focus": 0, "gap": 5}, "endBinding": {"elementId": "c", "focus": 0, "gap": 5}},
{"id": "arr3", "type": "arrow", "x": 650, "y": 145, "points": [[0, 0], [0, -60], [-480, -60], [-480, 0]], "endArrowhead": "arrow", "strokeStyle": "dashed", "startBinding": {"elementId": "c", "focus": 0, "gap": 5}, "endBinding": {"elementId": "a", "focus": 0, "gap": 5}},
{"id": "arr3-label", "type": "text", "x": 380, "y": 60, "width": 60, "height": 20, "text": "return", "fontSize": 12, "fontFamily": 4, "textAlign": "center"}
],
"appState": {"viewBackgroundColor": "#ffffff"},
"files": {}
}{descriptive-name}.excalidraw.jsondocs/fontFamilystrokeWidth124"strokeStyle": "dashed"