All skills
iflytek avatar

/animated-sketch-diagram

@c57c7f4
by iflytekiflytek/ifly-skills218 stars
27

生成"黑墨手绘涂鸦"风格的动画架构图/流程图:米色纸面、针管笔墨线、极淡水洗色块、简笔涂鸦图标、序号章、连线上的流动圆点动画、图标微动效。产出单文件自包含动画 HTML(SVG+CSS),可一键导出无缝循环 GIF。当用户想画架构图、流程图、信息图、技术示意图、对比图、pipeline/workflow 可视化,或提到"手绘风""涂鸦风""动图""animated diagram""GIF 架构图"时使用;即使用户没明说要动画,做技术概念科普配图时也应优先考虑本 skill。

  • 17 files
  • 254 KB
  • Updated 2 months ago
  • GitHub

Use this Skill: https://skilld.dev/gh/iflytek/ifly-skills/animated-sketch-diagram

This session only. Nothing lands on disk.

referencesstyle-guide.md

≈2.2k tokens on demand. Your agent reads this file only when SKILL.md points to it.

风格系统(Design Tokens)

美学定位:黑墨手绘涂鸦 + 米色纸面 + 极淡水洗色块——像资深工程师在牛皮笔记本上 用针管笔画的系统图,再用水彩淡淡罩了几块底色。风格辨识度 = 这些 token 的严格组合。

画布

Token 值 说明
纸面底色 paper #f8f5e8 温暖米色,绝不用纯白
画布宽度 1200px 高度随内容
墨线色 ink #212020 所有描边和文字,近黑微暖;绝不用纯黑 #000
弱文字 ink @ 65% opacity 副标题、注释
纸纹 feTurbulence 极淡颗粒(recipes §0) 可选,加了更像纸

区块水洗色板

"区块"指版式的一级分区(横向 band、纵向层、径向扇区、对比柱都算)。 每个区块罩一种水洗色,相邻区块不同色;同一图 3~5 种即可,顺序随意但要错开冷暖。

色名 区块底 wash 更深一档(内部强调条/横幅) 流动圆点 dot
鼠尾草绿 sage #f0f1e0 #e8ebd5 #5f7a4a
黄油黄 butter #f9f3d1 #f4ecc0 #b8912a
蜜桃粉 peach #f8e9d9 #f3ddc8 #bf7350
薰衣草紫 lavender #e9e1ea #ded2e0 #7d6a99
雾蓝 mist #eef2f4 #e2e9ee #5b7d94

牛皮纸棕 #e9dac1(描边同 ink)留给"容器"类比喻:纸箱、横幅、档案盒。

  • 内卡(区块里的小卡片/文档/白纸)一律纸白 #faf7eb,不用水洗色。
  • 水洗色只出现在区块底和少量强调条上;图的主体观感是"墨线 + 纸色"。

点缀(少量、手写感的灵魂)

  • 序号章:ink 实心圆 Ø30,内写 paper 色手写数字,贴在区块左上角。
  • 火花 ✦ / 小星 ☆:4 角星小路径,散布在大标题、口号、关键区块旁,每图 3~6 个。
  • 简笔小人:圆头 + 弧线身体的涂鸦小人,放在"人/agent 做事"的语义位置,一图 1~3 个。
  • 中央口号:一句手写短语放版面天然留白处,两侧各一个 ✦。
  • 没有彩色 mascot、没有荧光笔高亮、没有底部色条——焦点靠 ✦ 和口号,全图基本单色墨。

字体

角色 字体栈 用在哪
标题体 --font-title 'Comic Sans MS','Kalam','LXGW WenKai Screen','Kaiti SC',cursive 700 大标题、中央口号、区块标题、节点内关键词
正文体 --font-body 'Comic Sans MS','PatrickHand','LXGW WenKai Screen','Kaiti SC',cursive 400 注释、内卡标签、连线文字、副标
  • Comic Sans MS 是 macOS/Windows 系统字体,按名引用、不捆绑(也不可捆绑,商业字体)。 拉丁字符全部落在它上面:标题/节点标题用 Bold,注释/连线文字用 Regular。
  • 汉字落到捆绑的 LXGW WenKai Screen(霞鹜文楷,OFL)——原始 TTF 在 assets/fonts-cn/(25MB,永不整包内联),注入脚本自动提取 HTML 里用到的汉字 子集化成几十 KB woff2 再内联(见 recipes §0;需 fonttools+brotli, 缺就 pip3 install --user --break-system-packages fonttools brotli)。兜底 Kaiti SC。
  • 捆绑的 Kalam/PatrickHand/Caveat/Excalifont(assets/fonts/)作无 Comic Sans 环境的 后备,也是想换味时的备选菜单。
  • 代码/命令用 ui-monospace, Menlo, monospace。所有文字一律 ink 色。

字号阶梯

层级 字体/字号 备注
大标题 title / 58~64px bold 抖动下划线收尾,旁边一颗 ✦
中央口号 title / 28~32px bold 两侧 ✦
区块标题 title / 24~25px bold 区块顶部居中
区块副标 body / 14~15px @65% 跟在标题下方居中(可省)
内卡标签 body / 15~16px 卡内图标下方或右侧
连线标签 body / 13~14px Comic Sans 偏宽,标签词要短

形状与描边(比常规更糙)

元素 规格
区块面板 圆角 18px,ink 2.2px,roughness 1.8;fill 水洗色
区块头部 左上序号章 + 顶部居中标题;标题下可画一条抖动细分隔线(1.4px)
内卡 圆角 8px,ink 1.7px,fill #faf7eb;"一叠纸"= 背后垫 1~2 张偏移 (+4,+4) 的同款卡
文档卡 右上角画折角(两条短线三角),比圆角矩形更像"纸"
图标 纯 ink 单色简笔涂鸦,2px 线宽:小人/文档/文件夹/纸箱/放大镜/笔记本电脑/月亮/齿轮/勾叉
主流程箭头 ink 2.0px,微弯曲线(浅 Q 弧,不要笔直)+ 末端实心小三角
大回环箭头 ink 2.2px 长弧线绕版面外侧走,气势要足;虚线弧留给弱关联(1.6px,7 6)
引用/命令框 圆角 8px,ink 1.4px 虚线 4 4,fill 纸白

手绘抖动是硬要求:所有静态几何形状加 data-rough(本风格 roughness 取 1.6~2.2, 比默认糙),由捆绑的 rough.js/sketchify.js 加载时替换。参与 CSS 动画的元素除外(见 recipes)。

版面

版式原型由内容决定(见 SKILL.md 第 1 步原型表),以下通用:

  • 大标题放角部(右上或左上),签名式,带下划线扫尾;不占整行。
  • 区块之间间距 24px+;区块内边距 20px;节点间距 ≥ 36px。
  • 区块标签 = 序号章(有流程顺序时)+ 居中标题;序号让读者自己找到阅读顺序, 所以跨区块的连线可以少画几根,版面更透气。
  • 主轴方向(横排左→右等)只是默认阅读方向,不是流动的枷锁:分支、汇聚、 往返、跨区块回环、环形轨道按内容需要自由画,回环弧走主轴上下/外侧的空档; 内容整体成环时,用一根绕版面外侧的大弧箭头点题并让圆点沿它跑。 实线/虚线表达"确定/弱"的语义强弱:迭代循环是核心流程 → 实线;偶发降级/弱关联 → 虚线。
  • 版面天然空隙放中央口号 + ✦,不要硬填满。

构图密度与排版

排版由内容量驱动,先数清楚要画多少东西(节点数、附件数、标注数),再倒推几何:

  • 横向撑满:一行节点要铺满区块可用宽度——首节点贴左内边距、末节点贴右内边距、 间隙均分(间隙宽 = (可用宽 − Σ节点宽) / 间隙数)。不要把内容挤在中间留两侧大白边; 间隙大恰好给箭头和线上标签留了呼吸空间。
  • 纵向贴内容:区块高度 = 头部(标题+副标 ~70px)+ 主轴行 + 附件行(标注框/回环弧下探深度)
    • 内边距,逐项加出来;不要先定高度再填内容。整图高度同理 = 各区块自然高度之和。
  • 附件(标注框、小人、一叠纸)优先塞进主轴上下的空档,它们是"补白"手段: 哪里空补哪里,而不是固定挂在某个位置。
  • 每个区块至少一个非线性元素:一叠纸 / 简笔小人 / 纸箱横幅 / 标注框 / 回环弧。 只有"一排盒子加箭头"的区块是不合格的。
  • 内卡里"图标 + 三两行短横线"就能表达"列表/文档内容",多用这种速记涂鸦。
  • 连线尽量挂小标签(做什么/传什么)。
  • 完稿判断:眯眼看整图,墨色应该均匀分布;哪块区域一眼看过去是"一片空", 就说明那里要么该缩小、要么缺一个附件。

动画节奏

Token 值
全局循环 --loop 默认 3000ms,所有动画时长 ∈ {loop, loop/2, loop/3, loop/4},全部 infinite(GIF 无缝的充分条件)。整体嫌快/慢时直接调这个值(2400~3600ms),所有动画等比缩放,别逐个改时长
圆点速度 按像素速度定时长,不是固定一圈一个 loop:目标 80~150px/s。估算路径长度 L,取 duration = loop/k 中最接近 L/110s 的档。短线(<150px)至少 loop/3,长弧用 loop 或 loop/2。一圈 3s 爬 50px 的点是死的。
圆点形态 r=4.5,fill 区块 dot 色 + paper 色 2.5px halo;再叠一个 scale 呼吸(loop/4,1→1.35)让它"活";多条线负延迟错开
圆点放哪 任何有"流动"语义的路径都放:主流程、回环、分支、跨区块长弧、环形轨道——尤其回环,圆点沿弧转回去才有"循环起来"的感觉;不放的只有纯标注连线(标注框的引出虚线)。整图流动应有"有去有回/有转向"的层次,全是同向平行线 = 不合格
微动效 每图 2~4 处:齿轮/月亮微转、勾描画、光标闪、✦ 脉冲缩放
缓动 圆点位移 linear;呼吸和微动效 ease-in-out

判断标准:盯着成品 GIF 看 2 秒,应该能立刻感到"东西在流动";如果要凑近找才看见点在动,速度或密度不够。

Source: SKILL.md on GitHub

No third-party reports yet.

Signed by skilld at c57c7f4. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 20 hours ago.

Activeupdated 2 months ago
Other metadata
metadata
{
  "homepage": "https://github.com/OLDyade/animated-sketch-diagram",
  "openclaw": "{\"emoji\": \"✏️\", \"dimensions\": [\"手绘动画架构图\", \"图表可视化\"], \"user_instructions\": [\"帮我画一张架构图动图\", \"画一张手绘风流程图\", \"把这个概念画成动画示意图\"], \"requires\": {\"bins\": [\"node\", \"ffmpeg\"]}}"
}

README badge

README badge for iflytek/ifly-skills/animated-sketch-diagram