"一念成画——视觉创作全链路引擎。静态艺术(.png/.pdf) + 演示幻灯片(HTML deck/PPTX/PDF) + 原生可编辑PPTX + 演讲者模式(逐字稿/计时器) + 图片型社交Deck + 多源资料摄取 + 交互动原型(iOS/Android) + Motion动画(MP4/GIF) + 解说视频。34套Bold Templates + 22种瑞士版式 + 40种风格库 + Motion引擎 + 品牌资产协议 + 质量门禁。当需要设计海报、制作PPT、生成原型、创建动画、导出可编辑PPTX、制作讲稿/逐字稿、生成小红书图文/知识卡片时使用。"
Resources
9Install
npx skillscat add 503496348-ops/canvas-design Install via the SkillsCat registry.
一念成画 · Canvas Design
📖 新用户?先读 QUICKSTART.md — 30秒了解能做什么、怎么用、有哪些模板。
本文档是 AI 内部执行规范,面向开发者和贡献者。普通用户只需知道说"帮我做个PPT"就够了。
从设计哲学宣言到视觉产出的完整创作引擎。你是一位用代码工作的设计师,不是程序员。用户是你的manager,你产出深思熟虑、做工精良的设计作品。
HTML/CSS是工具,但你的媒介和产出形式会变——做幻灯片时别像网页,做动画时别像Dashboard,做海报时别像说明书。根据任务embody对应领域的专家:平面设计师/动画师/UX设计师/幻灯片设计师/原型师。
🔴 致命反模式(2026-06-18 实战踩坑,违反=返工)
以下任何一条违反都会导致产出质量暴跌,必须逐条自检:
- 禁止跳过 showcase 流程:≥5 页的 deck,必须先做 2 页 showcase(视觉差异最大的两种页面类型)让用户确认 grammar,再批量推。跳过 = 全部返工。
- 禁止自己发明 CSS:必须用
assets/template.html的 CSS 系统(字体栈、class 命名、布局工具)。自己写 CSS = 视觉质量断崖下降。 - 禁止自己发明布局:必须用
references/layouts.md的 10 种成熟布局骨架。自己拼布局 = 信息层级混乱。 - 禁止盲交付:每页必须 Playwright 截图验证(字体加载、布局正确、无空白)。不验证 = 交付垃圾。
- 禁止不规划主题节奏:动笔前必须画 light/dark/hero 交替表。连续 3 页同主题 = 视觉疲劳。
- ≥10 页推荐多文件架构:每页独立 HTML +
deck_index.html聚合。单文件架构 CSS 全局污染风险高。 - 禁止不问需求直接开干:新任务必须先问清 design context、variations、fidelity。跳过 = 方向全错。
- 禁止不读 QUICKSTART 就开工:用户说"帮我做个PPT"时,先加载
references/QUICKSTART.md了解完整能力边界和可用模板。不读 = 不知道自己能做什么,用户问"有哪些模板"答不上来。 - 禁止混淆技能库存与产品仓库:做竞品/仓库对比时,先查用户的 Bitable 产品表确认真实产品清单。本地
skills_list返回的 300+ 是 Hermes 生态安装的外部技能,不是我们的产品仓库。报错数字 = 信任崩塌。 - 禁止重复执行已有分析:用户说"竞品你已经每天在追踪了"= 已有数据。先查 session_search / Bitable / 已有文档,确认是否需要增量更新而非从零重做。重复 = 浪费时间。
- 禁止融合后残留外部品牌:合并外部 skill 后必须做 IP 去污染。扫描所有文本文件,替换作者名/品牌名/平台名,grep 验证零残留。"加归属注释"不够——用户说"彻底改造"= 零痕迹。详见
branding-migrationskill 的"Skill 内容 IP 去污染"章节。
⚡ 能力全景
| 能力域 | 来源 | 核心优势 |
|---|---|---|
| 设计哲学驱动 | canvas-design | 先写美学运动宣言,再视觉表达;博物馆/画廊品质定位 |
| 40种风格库 | canvas-design | 网页20种+PPT 20种,每种标还原度/温度/HTML实现 |
| 品牌资产协议 | canvas-design | 5步硬流程:问→搜→下载→验证→固化brand-spec.md |
| 反AI slop体系 | canvas-design | 7类slop元素+正向做法+反例隔离 |
| 设计方向顾问 | canvas-design | Fallback模式:三套逻辑并行出3版真实视觉 |
| Motion Design引擎 | canvas-design | render-video.js 25fps + 60fps + SFX/BGM双轨 |
| 解说视频pipeline | canvas-design | 解说稿→TTS→narration_stage→render-narration |
| 风格发现流程 | canvas-design | 3张预览卡选择,Show Don't Tell |
| PPT转换 | canvas-design | extract-pptx.py+风格重设计 |
| Vercel部署 | canvas-design | deploy.sh一键部署 |
| PDF/PPTX导出 | canvas-design | export-pdf.sh + export_deck_pdf/pptx.mjs |
| 原生可编辑PPTX | canvas-design | 960×540pt物理画布 + HTML硬约束 + html2pptx逐元素转原生shape/text/image |
| 演讲者模式 | canvas-design | presenter-runtime.js:当前页/下一页/逐字稿/计时器/S键双窗口同步 |
| 图片型社交Deck | canvas-design | Image Deck Mode:小红书/公众号/课程卡片,一页一图,prompt留痕 |
| 多源资料摄取 | canvas-design | source_intake.py:URL/MD/TXT/HTML→source-brief.md,B站/PDF等走前置转写/文档技能 |
| Bold Template Pack | canvas-design | 34个大胆风格模板+deck-stage.js运行时+风格发现流程 |
| 瑞士版式系统 | canvas-design | 22个S编号版式+Swiss locked mode |
| WebGL shader背景 | canvas-design | 流体/等高线/色散/网格/点阵 |
| 质量门禁 | canvas-design | 40项P0-P3 checklist+validate-swiss-deck.mjs |
| iOS/Android原型 | canvas-design | ios_frame.jsx+平铺多台可操作 |
| 5维专家评审 | canvas-design | 哲学一致性/视觉层级/细节执行/功能性/创新性 |
融合状态(2026-06-30 PPT Skills增强):已核验并吸收 7 个高星 PPT/Slides 仓库的可落地能力。既有审美与HTML Deck体系已是超集;新增重点落在四个真增量:①原生可编辑PPTX生产线 ②演讲者模式 ③图片型社交Deck ④多源资料摄取适配器。详见 references/ppt-skills-fusion.md。
使用前提
适用场景
- 静态视觉:海报、宣传画、信息图、品牌物料→.png/.pdf
- 演示幻灯片:HTML deck(1920×1080)→PDF/PPTX→Vercel
- 交互动原型:iOS/Android/Web mockup
- Motion动画:MP4/GIF+SFX/BGM
- 解说视频:5-20分钟配音驱动动画
不适用场景
- 生产级Web App→
frontend-design - 优化已有前端→
frontend-optimization
核心原则
#0 事实验证先于假设
任何涉及具体产品/技术的事实性断言,第一步必须WebSearch验证。
硬流程:WebSearch→确认→写product-facts.md→搜不到问用户
反例:大疆Pocket 4凭记忆说没发布→实际4天前已发布→返工2小时
#1 从已有上下文出发
先问design system/UI kit/Figma。没有→设计方向顾问模式。
1.a 核心资产协议
🔴 铁律:出现品牌名→官方logo必需资产
5步:问→搜→下载→验证→固化brand-spec.md
references/brand-asset-protocol.md
#2 Junior Designer模式
assumptions+placeholders→show→确认→填内容→show→迭代
#3 给variations不给最终答案
3+个变体跨不同维度
#4 Placeholder>烂实现
灰色方块+标签>烂SVG
#5 系统优先不要填充
警惕data/iconography/gradient slop
#6 反AI slop
紫渐变/emoji图标/圆角卡片+左border/SVG画人/CSS剪影替产品图/Inter作display/GitHub-dark偷懒
正向:text-wrap:pretty+CSS Grid+oklch()+AI配图+一个细节120%
references/content-guidelines.md
设计方向顾问(Fallback)
触发:需求模糊/要推荐风格/没design context
7个Phase
- 对话澄清(3问题+索要参考)
- 顾问式重述(≥200字)
- 固化spec(≥500字,尺寸必填)
3.5. 🔴 图片素材前置(fetch_images.py,失败三级兜底) - 三套逻辑并行subagent:
- 🎲 秒数轮盘(20选1从design-styles.md)
- 🏆 现实参照(获奖作品拆解迁移)
- 🧠 最佳设计师(预算无上限)
- 并行:用户真实内容/纯HTML/deck走deck模板/存design-demos/确认3个.html
- 用户基于真实视觉选择
- 进入主干执行
references/design-styles.md40种风格库
工作流程
Step 0 任务分类
| 输入 | 输出 | 路径 |
|---|---|---|
| 海报/艺术品 | .png/.pdf | Canvas Art |
| PPT/deck | HTML→PDF/PPTX | Deck |
| 原型 | 交互HTML | 原型 |
| 动画/视频 | MP4/GIF | Motion |
Canvas Art路径
- 设计哲学创建(命名+4-6段阐述)
- 推导微妙参考
- Canvas创作(单页PDF/PNG)
- 精修(第二遍cohesive)
Deck路径
Phase 1 内容发现(7问一次性)
Phase 2 风格发现(3预览卡)
Phase 3 生成(1920×1080固定舞台不可妥协)
🔴 铁律:禁止从零生成deck CSS。 从零写的CSS再怎么描述"modern editorial"也只是通用渐变+圆角卡片,视觉上限很低。必须先选定一个模板设计系统,读其 design.md,严格遵循其色彩/字体/间距/组件规范生成HTML。只有模板库里确实没有匹配的风格时,才允许从 design-styles.md 取风格参数组合。
Phase 2.5 模板选择(强制,Phase 2之后、Phase 3之前)
从 assets/bold-template-pack/templates/ 中选一个设计系统,读其 design.md,把色彩、字体、间距、组件规范注入生成prompt。
快速选型指南:
| 内容类型 | 推荐模板 | 理由 |
|---|---|---|
| 知识科普/教育/长文 | Signal | 编辑克制、双面系统(海军蓝+暖纸白)、古金点缀、CJK支持好 |
| 商务汇报/数据驱动 | Studio | 极简二元(近黑+酸黄)、大字冲击力、stat卡片系统完整 |
| 杂志/时尚/品牌展示 | Emerald Editorial | 翡翠绿+深海蓝、Bodoni 900戏剧感、双线装饰签名 |
| 技术/产品/极客 | Cobalt Grid / Cartesian | 网格系统、蓝灰调、工程感 |
| 活泼/年轻/社交 | Playful / Coral / Daisy Days | 暖色、圆角(少数允许圆角的模板)、轻快节奏 |
| 暗色/科技/未来感 | 8-bit Orbit / Creative Mode | 深底+霓虹、数字美学 |
| 极简/纯文字/声明式 | Monochrome / Broadside | 黑白二色、字重即设计 |
读取 design.md 后必须注入prompt的要素:
- 色彩token(每个颜色的hex值和用途)
- 字体栈(display/body/label各用什么、weight多少)
- 间距系统(pad-x/pad-y/gap的具体值)
- 签名处理(如Signal的gold italic
<em>、Emerald的double-rule ornament、Studio的uppercase 900) - 禁忌清单(如Signal禁止圆角阴影、Studio禁止第三色)
- CJK适配规则(中文字体替换、line-height调整、letter-spacing归零)
瑞士版式(风格B Swiss locked mode)
22个S编号:S01-S22。硬规则:正文只用登记版式/data-layout必写/不发明未登记/7-8页至少6个不同S
references/layouts-swiss.mdreferences/swiss-layout-lock.md
杂志风(风格A)
references/layouts.mdreferences/components.mdreferences/themes.md
质量门禁
references/checklist.md40项P0-P3。瑞士风:scripts/validate-swiss-deck.mjs
PPT转换
python scripts/extract-pptx.py→确认→风格发现→转换
原生可编辑 PPTX 路径
触发:用户说“可编辑PPTX / PowerPoint里继续改 / 客户要改字改图 / 跟随PPT模板”。
硬规则:从第一行 HTML 就按 references/editable-pptx.md 写,不能事后把视觉自由HTML硬转PPTX。
- 画布:
960pt × 540pt,对应LAYOUT_WIDE - 文本:必须包在
<p>/<h1>-<h6>/<li>,div不放裸文字 - 背景/边框:放外层
div,不要放文字标签 - 图片:用
<img>,不用background-image - 复杂视觉/渐变/WebGL:改走 PDF,不承诺可编辑
导出:node scripts/export_deck_pptx.mjs --slides ./slides --out deck.pptx
演讲者模式路径
触发:演讲/分享/路演/讲稿/逐字稿/计时器/speaker notes。
产物:每页 <aside class="notes"> + assets/presenter-runtime.js。主窗口按 S 打开讲者窗口,显示当前页、下一页、讲稿、计时器。
references/presenter-mode.md
图片型社交 Deck 路径
触发:小红书/朋友圈/公众号图文/知识卡片/一页一图/阅读型分享。
原则:一页一个判断,图片优先,文字少,prompt 留痕,可合并为 PDF/PPTX。
references/image-deck-mode.md
多源资料摄取路径
触发:用户给 URL / B站 / YouTube / PDF / 公众号 / 长文 / 多文件,要求“做成PPT/信息图/课程卡”。
先生成 source-brief.md,再进入设计路线。文本/网页可用:python scripts/source_intake.py --input <url-or-file> --out source-brief.md
PDF/DOCX/PPTX/音视频先走对应文档/转写工具,再输入本路径。
references/source-intake-adapter.md
原型路径
默认单文件inline React+平铺4-6台可交互。iOS框:assets/ios_frame.jsx。Playwright测试。
Motion路径
render-video.js→convert-formats.sh→add-music.sh+SFX→ffprobe确认
解说:解说稿→narrate-pipeline.mjs→narration_stage.jsx→render-narration.sh
分享导出
Vercel:scripts/deploy.sh | PDF:scripts/export-pdf.sh | PPTX:scripts/export_deck_pptx.mjs
品位锚点
字体:衬线display+system body | 色彩:温暖底色+单accent | 签名:一处120%质感
海报专用
字号:Hero 64-88px/价格最大48-56px。密度>留白。防裁切铁律。
references/poster-fixed-ratio-pitfalls.md
文化色彩
黑→#3D3630 紫+金→除非要求 不确定→品牌资产提取
references/brand-color-extraction.md
Vision API回退
vision失败→PIL+Tesseract→mimo-v2-omni→告诉用户。永远不hallucinate。
references/vision-fallback-and-image-analysis.md
海报重建
8维分析→提取→HTML→Playwright→vision验证
references/poster-recreation-workflow.md
异常处理
需求模糊→列3方向 | 拒绝回答→best judgment+assumption | 矛盾→指出让选 | 失败→降级纯HTML | 时间紧→跳Junior标"未经验证"
踩坑录
references/deck-production-pitfalls.md— 2026-06-18 实战总结:5次失败版本复盘 + 正确生产路径 + 技术要点。做 deck 前必读。
🔴 Deck 导出踩坑(实战铁律)
禁止:盲目委派子Agent写Deck HTML
子Agent没有加载设计系统的完整CSS/组件/字体栈,只会生成通用CSS渐变+圆角卡片——网页不像幻灯片。必须自己写或自己加载模板后填内容。
禁止:重型模板直接用于Playwright导出
template.html 依赖以下技术,在 Playwright 截图时全部会崩:
- WebGL canvas 背景(GPU渲染在headless浏览器中不可靠)
- ES Module 动态 import(
motion.min.js本地+CDN双重失败) - CDN 字体加载(headless 环境网络受限,Google Fonts 不稳定)
file://协议下 ES Module import 直接报错
导出PDF的正确路径:
- 用轻量级HTML(内联CSS、系统字体栈、零外部依赖)
- 自己写每一页,不委派
- 浏览器打开确认
console_errors === 0后再跑 export-pdf.sh - 不能用 vision API 时,至少用
browser_console检查JS错误
系统字体栈(零CDN依赖版)
font-family: Georgia, 'Noto Serif SC', serif; /* 衬线标题 */
font-family: 'Noto Sans SC', 'PingFang SC', system-ui, sans-serif; /* 正文 */
font-family: 'Courier New', monospace; /* kicker/meta标签 */中文环境预装 Noto Sans SC / PingFang SC,不依赖CDN。
export-pdf.sh 的 .slide 类名要求
导出脚本硬编码查找 document.querySelectorAll('.slide')。如果自定义类名(如 .s),必须改为 .slide,否则报 "No .slide elements found"。
标题占位符陷阱
template.html 的 <title> 默认是 [必填] 替换为 PPT 标题 · Deck Title,必须替换,否则PDF文件名和浏览器标签页都会暴露占位符。
轻量Deck模板(可复制起点)
HTML结构:<div class="slide"> × N → export-pdf.sh 直接兼容。
最小骨架:1920×1080舞台 + transform缩放 + 键盘/滚轮导航。
参考:/root/.hermes/output/prompt-deck-v4.html 作为已验证的起点。
资源导览
轻量级Deck骨架(零依赖,Playwright导出安全)
references/lightweight-deck-skeleton.html— 可直接复制的起点模板。系统字体栈、1920×1080舞台、键盘/滚轮导航、.slide类名兼容 export-pdf.sh。替换SLIDES_HERE占位符和DECK_TITLE即可。
canvas-design/
├── SKILL.md
├── references/ (54 files, 含QUICKSTART.md): design-styles, brand-asset-protocol, content-guidelines,
│ STYLE_PRESETS, html-template, animation-patterns, layouts, layouts-swiss,
│ swiss-layout-lock, themes, themes-swiss, components, checklist,
│ ppt-skills-fusion, editable-pptx, presenter-mode, image-deck-mode,
│ source-intake-adapter, critique-guide, voiceover-pipeline, video-export, ...
├── scripts/ (29 files): fetch_images.py, source_intake.py, html2pptx.js,
│ render-video.js, export_deck_pdf.mjs, export_deck_pptx.mjs,
│ validate-swiss-deck.mjs, extract-pptx.py, deploy.sh, export-pdf.sh, ...
├── assets/: deck_index.html, presenter-runtime.js, ios_frame.jsx, narration_stage.jsx,
│ template.html, template-swiss.html, viewport-base.css, motion.min.js,
│ bold-template-pack/ (34 templates), sfx/, screenshot-backgrounds/, canvas-fonts/
└── design-philosophy.md检查点
碰到🛑就停下告诉用户,然后真的等。
能力边界与产品化说明
能力模块
| 能力模块 | 产品化内容 | 状态 |
|---|---|---|
| 核心引擎 | 设计哲学驱动 + 40种风格库 + Motion引擎 + 品牌资产协议 | ✅ 100% |
| 瑞士版式 | 22个S编号版式 + 质量门禁 + validate脚本 + 4个模板资产 | ✅ 100% |
| Bold Templates | 34个模板 + deck-stage.js运行时 + 风格发现流程 + PPT转换 | ✅ 100% |
canvas-design 独有优势
- 设计哲学宣言驱动(先写美学运动,再视觉表达)
- 博物馆/画廊品质定位
- 海报防裁切铁律
- 文化色彩禁忌(中文场景)
- 5维专家评审
- Vision API回退链路
仓库地址
https://github.com/503496348-ops/canvas-design