Co-Pilot / 辅助式
更新于 24 days ago

cc-excalidraw-skill

Rrnjn
0.0k
rnjn/cc-excalidraw-skill
82
Agent 评分

💡 摘要

此技能允许用户以编程方式创建和编辑 Excalidraw 图表,格式为 JSON。

🎯 适合人群

创建流程图的软件开发人员起草线框图的 UX/UI 设计师可视化流程的项目经理设计教学材料的教育工作者映射数据流的数据分析师

🤖 AI 吐槽:看起来很能打,但别让配置把人劝退。

安全分析中风险

风险:Medium。建议检查:是否发起外网请求(SSRF/数据外发)。以最小权限运行,并在生产环境启用前审计代码与依赖。


name: excalidraw description: Create and edit Excalidraw diagrams programmatically. Use when the user asks to create diagrams, flowcharts, architecture diagrams, wireframes, or any visual drawings in Excalidraw format (.excalidraw files).

Excalidraw Diagram Creation

This skill enables you to create beautiful, hand-drawn style diagrams in the Excalidraw JSON format.

File Format Overview

Excalidraw files (.excalidraw) are JSON with this structure:

{ "type": "excalidraw", "version": 2, "source": "https://excalidraw.com", "elements": [], "appState": { "viewBackgroundColor": "#ffffff", "gridSize": null }, "files": {} }

Quick Start - Creating Elements

Every element needs at minimum: type, id, x, y, and styling properties.

Minimal Rectangle

{ "type": "rectangle", "id": "rect-1", "x": 100, "y": 100, "width": 200, "height": 100, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "seed": 1234, "version": 1, "versionNonce": 1234, "isDeleted": false, "groupIds": [], "boundElements": null, "link": null, "locked": false, "roundness": { "type": 3 } }

Text Element

{ "type": "text", "id": "text-1", "x": 120, "y": 130, "width": 160, "height": 25, "text": "Hello World", "fontSize": 20, "fontFamily": 1, "textAlign": "center", "verticalAlign": "middle", "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "seed": 5678, "version": 1, "versionNonce": 5678, "isDeleted": false, "groupIds": [], "boundElements": null, "link": null, "locked": false, "containerId": null, "originalText": "Hello World", "autoResize": true, "lineHeight": 1.25 }

Arrow Element

{ "type": "arrow", "id": "arrow-1", "x": 300, "y": 150, "width": 100, "height": 0, "points": [[0, 0], [100, 0]], "startArrowhead": null, "endArrowhead": "arrow", "startBinding": null, "endBinding": null, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "seed": 9012, "version": 1, "versionNonce": 9012, "isDeleted": false, "groupIds": [], "boundElements": null, "link": null, "locked": false }

Element Types

| Type | Use For | |------|---------| | rectangle | Boxes, containers, cards | | ellipse | Circles, ovals, nodes | | diamond | Decision points, conditions | | text | Labels, descriptions | | arrow | Connections, flow direction | | line | Connectors without arrowheads | | freedraw | Hand-drawn paths | | image | Embedded images | | frame | Grouping/framing elements |

Color Palette (Recommended)

Backgrounds

  • #a5d8ff - Light blue
  • #b2f2bb - Light green
  • #ffec99 - Light yellow
  • #ffc9c9 - Light red/pink
  • #e9ecef - Light gray
  • #d0bfff - Light purple
  • #99e9f2 - Light cyan

Strokes

  • #1e1e1e - Default black
  • #1971c2 - Blue
  • #2f9e44 - Green
  • #f08c00 - Orange
  • #e03131 - Red
  • #9c36b5 - Purple

Styling Properties

| Property | Values | Description | |----------|--------|-------------| | fillStyle | "solid", "hachure", "cross-hatch" | Fill pattern | | strokeWidth | 1, 2, 4 | Line thickness | | strokeStyle | "solid", "dashed", "dotted" | Line style | | roughness | 0, 1, 2 | Hand-drawn feel (0=smooth, 2=rough) | | opacity | 0-100 | Transparency | | roundness | { "type": 3 } | Rounded corners |

Connecting Elements with Arrows

To connect shapes with arrows, use bindings:

{ "type": "arrow", "id": "arrow-1", "startBinding": { "elementId": "rect-1", "focus": 0, "gap": 5 }, "endBinding": { "elementId": "rect-2", "focus": 0, "gap": 5 }, "points": [[0, 0], [200, 0]] }

Also add boundElements to the connected shapes:

{ "type": "rectangle", "id": "rect-1", "boundElements": [{ "id": "arrow-1", "type": "arrow" }] }

Font Families

| Value | Font | |-------|------| | 1 | Hand-drawn (Virgil) | | 2 | Normal (Helvetica) | | 3 | Code (Cascadia) |

Best Practices

  1. Generate unique IDs - Use descriptive prefixes like rect-1, arrow-2, text-header
  2. Use random seeds - Each element needs a unique seed for consistent rendering
  3. Space elements well - Leave 50-100px between elements
  4. Align elements - Use consistent x/y coordinates for visual alignment
  5. Group related items - Use matching groupIds arrays
  6. Use the color palette - Stick to Excalidraw's built-in colors for consistency

Diagram Types You Can Create

| Type | Description | |------|-------------| | Flowcharts | Process flows, algorithms, decision trees | | Sequence Diagrams | API calls, user interactions, message flows | | Architecture Diagrams | System design, microservices, infrastructure | | Mind Maps | Brainstorming, concept mapping, idea organization | | Data Flow Diagrams | Data movement, system analysis | | ERD | Database schemas, entity relationships | | Wireframes | UI mockups, layout sketches |

Reference Documentation

  • diagram-patterns.md - Professional patterns for each diagram type (flowcharts, sequence diagrams, mind maps, architecture, etc.)
  • examples.md - Complete working JSON examples you can use as templates
  • element-reference.md - Full property reference for all element types
  • best-practices.md - Design tips, color theory, typography guidelines

Quick Tips for Beautiful Diagrams

  1. Use roughness: 0 for formal/technical diagrams, roughness: 1 for friendly sketches
  2. Use fontFamily: 2 (Helvetica) for professional look, fontFamily: 1 (Virgil) only when casual look is requested
  3. Consistent spacing - 100px between major elements, 50px for related items
  4. Color semantics - Blue for info/input, Green for success/data, Yellow for decisions, Red for errors
  5. Arrow conventions - Solid for actions, Dashed for responses/async
五维分析
清晰度9/10
创新性7/10
实用性9/10
完整性8/10
可维护性8/10
优缺点分析

优点

  • 支持多种图表类型
  • 易于与现有工具集成
  • 可自定义样式选项

缺点

  • 需要了解 JSON 格式
  • 仅限于 Excalidraw 的样式功能
  • 没有内置的图形用户界面来创建图表

相关技能

pytorch

S
toolCode Lib / 代码库
92/ 100

“它是深度学习的瑞士军刀,但祝你好运能从47种安装方法里找到那个不会搞崩你系统的那一个。”

agno

S
toolCode Lib / 代码库
90/ 100

“它承诺成为智能体领域的Kubernetes,但得看开发者有没有耐心学习又一个编排层。”

nuxt-skills

S
toolCo-Pilot / 辅助式
90/ 100

“这本质上是一份组织良好的小抄,能把你的 AI 助手变成一只 Nuxt 框架的复读机。”

免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。

版权归原作者所有 rnjn.