生成"黑墨手绘涂鸦"风格的动画架构图/流程图:米色纸面、针管笔墨线、极淡水洗色块、简笔涂鸦图标、序号章、连线上的流动圆点动画、图标微动效。产出单文件自包含动画 HTML(SVG+CSS),可一键导出无缝循环 GIF。当用户想画架构图、流程图、信息图、技术示意图、对比图、pipeline/workflow 可视化,或提到"手绘风""涂鸦风""动图""animated diagram""GIF 架构图"时使用;即使用户没明说要动画,做技术概念科普配图时也应优先考虑本 skill。
How this skill is triggered — by the user, by Claude, or both
Slash command
/animated-sketch-diagram:animated-sketch-diagramThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
产出一张像资深工程师在牛皮笔记本上手绘的系统图:米色纸面、黑墨抖动描边、
产出一张像资深工程师在牛皮笔记本上手绘的系统图:米色纸面、黑墨抖动描边、 极淡水洗色块、简笔涂鸦图标(小人/文档/纸箱/月亮)、序号章、✦ 点缀, 连线上有小圆点沿路径流动、图标带微动效,整体 3s 无缝循环。
产物:一个自包含 HTML 文件(内联 SVG + CSS 动画 + base64 字体,双击即可播放);
需要 GIF 时用 scripts/render-gif.mjs 逐帧录制。
版式跟着内容的天然形状走,不要反过来。 先判断主题本身长什么样,再选版式原型:
| 内容的天然形状 | 版式原型 |
|---|---|
| N 个并列的类别/方案/阶段,各自内部有流程 | 横向色带 band(左侧标签栏 + 右侧流程画布) |
| 自上而下的分层架构(前端→服务→存储) | 纵向层叠:全宽色层堆叠,跨层竖直连线 |
| 一个核心与多个卫星(hub-and-spoke) | 径向:中心 mascot 大圆 + 环绕节点 + 放射连线 |
| 两三个东西逐维度对比 | 并排色柱/矩阵,同一行是同一维度 |
| 单一主流程 | 不用色带,一条蛇形/折线主轴铺满画布 |
| 时间演进 | 横向时间轴 + 上下交错的事件卡 |
原型可以混搭(如 band 内部径向)。所有原型共用同一套元件:
规划的最后一步是编排流动:动画不是装饰,是把主题里"什么在流动"讲出来。 先用一句话回答——这张图里流动的是什么(数据?请求?记忆?任务?), 它从哪来、经过谁、在哪分叉、在哪转圈、最后到哪去——再把这条"流动脚本" 落成路径:该分支就分支、该汇聚就汇聚、该循环就让圆点沿弧转回去。 主题本身是环(飞轮、迭代、生命周期)→ 图的动线就该是环; 主题是发散/收敛(一发多、多合一)→ 动线就该扇形展开/合拢。 看成品时"流动的形状"应该能复述出主题的结构,全图只有一排同向箭头 通常说明流动没规划,不是主题真的这么直。
内容永远来自用户的主题。不要照搬任何示例里的文字、节点名或结构; 示例里的"三条横带"只是原型之一,不是本 skill 的固定输出形状。
动笔前用 AskUserQuestion 问一次图标怎么来(用户此前已表态或本次已指定的不重复问):
<image> 内嵌,
尺寸对齐 token,不引外部 URL。无头/非交互/子代理场景不要卡在提问上:直接用方案 2。
读 references/style-guide.md —— 调色板、字体、描边、圆角、间距、动画节奏的全部 token。
风格的辨识度来自 token 的组合,务必按 token 来,不要自由发挥配色。
读 references/svg-recipes.md —— 面板、节点、箭头、流动圆点、图标微动效、标题高亮
的可复制 SVG/CSS 模式。按配方组装出一个 HTML 文件。
关键约束(导出 GIF 依赖这些):
@keyframes + offset-path),不用 SMIL <animate>,
不用 JS 驱动动画 —— 录制脚本靠 document.getAnimations() 逐帧定格。animation-duration 必须能整除全局循环时长 --loop(默认 3000ms),
且 infinite 循环,这样 GIF 首尾无缝。GIF 是主要交付物(HTML 只是源),写完 HTML 就导:
cd ~/.claude/skills/animated-sketch-diagram/scripts
npm install # 仅第一次
node render-gif.mjs /path/to/diagram.html /path/to/diagram.gif
脚本自动找本机 Chrome/Chromium,逐帧截图后 ffmpeg 合成(需要 ffmpeg)。
参数:--fps 25 --loop 3000 --scale 2——scale 保持 2,1x 的 GIF 文字发糊。
审查对象是导出的 GIF,不是 HTML:从 GIF 里抽 2~3 个间隔帧
(ffmpeg -i x.gif -vf "select='not(mod(n,25))'" -vsync 0 f%d.png),
用 Read 看图,逐项过:
发现任何一项不合格:改 → 重渲 → 重看,直到全过。 至少完整跑一轮这个循环才能交付; 交付时把 GIF 和 HTML 一起给出,并注明尺寸/帧数/文件大小。
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.
npx claudepluginhub oldyade/animated-sketch-diagram --plugin animated-sketch-diagram