- 1. 为什么又是 PPT?
- 2. 这个 Skill 的本质
- 3. 两套视觉系统
- 4. 完整工作流(6 个阶段)
- 5. 完整示例:一次典型对话
- 6. 瑞士风 22 种锁定版式速查
- 7. 核心设计原则
- 8. Skill 目录结构
- 9. 延伸能力
- 10. 适合 / 不适合
- 11. 实战心得
- 12. 总结
为什么又是 PPT?
做技术分享,最让人头疼的不是内容本身——而是把内容变成好看的幻灯片。
你大概经历过这样的场景:花两天把分享内容打磨好,然后打开 Keynote 或 PowerPoint,盯着空白画布发呆。字号用多大?配色怎么搭?这张图放左边还是右边?两小时后,你还在调文本框的间距,而内容一点没推进。
这就是 guizang-ppt-skill 试图解决的问题——把”做幻灯片”这件事,从设计苦役变成”填内容”的乐高游戏。
这个 Skill 的本质
guizang-ppt-skill 是前大厂 UI/UX 设计师**歸藏(@op7418)**开源的一个 Claude Code / Codex Skill。发布 25 天就在 GitHub 斩获破万 Star,截止目前已超过 18,000 Star。
它与传统”PPT 生成工具”的根本区别在于:
Agent 直接写 HTML/CSS 代码 → 浏览器即播放器 → 单文件交付
你拿到的不是 .pptx 文件,而是一个单文件 HTML。浏览器打开就能翻页演示,不用装任何软件。这个设计决策很聪明——.pptx 的排版能力有限,渲染效果依赖 Office 版本;HTML 则恰好相反:CSS Grid 的排版精度、Web 字体的表现力、浏览器的跨平台一致性,天然适合杂志级排版。
歸藏把十年设计经验压缩成约束规则,让 AI 在框架内稳定产出杂志级 HTML 演示文稿。它没有试图让 AI “学会设计”,而是让 AI “遵守设计规则”。
两套视觉系统
guizang-ppt-skill 内置了两套完整的视觉系统,气质迥异:
| Style A · 电子杂志 × 电子墨水 | Style B · 瑞士国际主义 | |
|---|---|---|
| 气质 | 像 Monocle 杂志贴上了代码 | 像 Massimo Vignelli + Helvetica |
| 字体 | 衬线(Noto Serif SC + Playfair Display) | 无衬线(Inter + Helvetica + Noto Sans SC) |
| 背景 | WebGL 流体/等高线/色散 | WebGL 极细网格 + 点阵 |
| 配色 | 5 套暖色预设(禁用纯白 #FFF) |
4 套高饱和锚点色(IKB 蓝/柠檬黄/柠檬绿/安全橙) |
| 网格 | 7:5 / 6:6 / 8:4 灵活比例 | 16 列严格网格 |
| 版式 | 10 种自由布局 | 22 种锁定版式(S01-S22),不能自己发明页面结构 |
| 适合 | 个人分享、观点表达、私享会、故事性演讲 | 产品分析、方法论、数据驱动发布 |
两套风格各有拥趸。做开源工具分享、技术经验交流这类”有温度的技术内容”时,Style A 电子杂志风是更自然的选择——不冰冷,有阅读感,像在翻一本精心排版的独立杂志。而做产品发布、数据分析时,Style B 的瑞士理性主义则能压住场子。
Style A · 5 套主题色速查
Style A 有一个”霸道”的设计决策:不允许自定义 hex 色值,只能从五套主题中选。歸藏的理由是”保护美学比给自由更重要”——印刷行业从不用纯白底(刺眼),Kindle 从不用纯黑字(暴力)。每套主题只是 6 个 CSS 变量(--ink / --ink-rgb / --paper / --paper-rgb / --paper-tint / --ink-tint)的不同取值:
| # | 主题 | 主色 | 背景色 | 适合场景 |
|---|---|---|---|---|
| 🖋 | 墨水经典 | #0a0a0b |
#f1efea |
通用默认、商业发布 |
| 🌊 | 靛蓝瓷 | #0a1f3d |
#f1f3f5 |
科技、研究、AI、技术发布 |
| 🌿 | 森林墨 | #1a2e1f |
#f5f1e8 |
自然、可持续、文化 |
| 🍂 | 牛皮纸 | #2a1e13 |
#eedfc7 |
怀旧、人文、阅读、历史 |
| 🌙 | 沙丘 | #1f1a14 |
#f0e6d2 |
艺术、设计、创意、时尚 |
Style B · 4 套锚点色速查
| # | 主题 | 锚点色 | 适合场景 |
|---|---|---|---|
| 🔵 | 克莱因蓝 IKB | #002FA7 |
通用默认、商业发布、AI 产品 |
| 🟡 | 柠檬黄 | #FFD500 |
年轻、运动、零售、消费品 |
| 🟢 | 柠檬绿 | #C5E803 |
生态、可持续、健康 |
| 🟠 | 安全橙 | #FF6B35 |
警示、新闻、工业、运动 |
Style A · 10 种完整版式菜单
与 Style B 的 S01-S22 锁定版式不同,Style A 的 10 种布局更自由——不需要 data-layout 声明,不需要校验脚本。但每种布局仍然有明确的设计骨架和使用场景。它们定义在 references/layouts.md 中,是可粘贴的 <section> HTML 代码块。
| # | 布局名称 | 页面色调 | 网格比例 | 核心结构 | 适用场景 | 动效 |
|---|---|---|---|---|---|---|
| 1 | 开场封面 | hero dark | 全屏居中 | WebGL 流体背景全透,衬线大标题 h-hero 字号 10vw 居中,副标题 + 日期在下方 |
第 1 页,定调 | WebGL 水墨流体 |
| 2 | 章节幕封 | hero light/dark 交替 | 全屏极简 | kicker(小标签)→ 大标题 → 一行引语,三段式纵向堆叠 | 每幕开场,节奏断点 | 无 |
| 3 | 数据大字报 | light | 3×2 或 4×2 网格 | stat-card 网格,数字超大(6-8vw),下方小字说明 | 抛硬数据、社会证明 | 无(靠数字冲击力) |
| 4 | 左文右图 | light/dark 交替 | 7:5 分栏 | 左栏文本(标题 + 段落 + 引用),右栏图片 object-position: top center |
身份反差、故事叙述、对比 | 图片淡入 |
| 5 | 图片网格 | light | 固定 26vh 行高网格 | 统一网格承载多张图片,不设 aspect-ratio,图片自然填充 |
多图对比、截图实证、产品展示 | 图片依次淡入 |
| 6 | Pipeline 流程 | light | 两列或单列 | 多个 step 垂直排列,data-animate="pipeline" 控制逐步点亮,step 图标 + 标题 + 说明 |
工作流、方法论、操作步骤 | 逐步骤 reveal |
| 7 | 悬念收束 | hero dark | 全屏居中 | 多行 <span> 组成一个问题或陈述,逐行揭示动画 |
幕末、收尾,抛反差问题 | 逐行揭示 |
| 8 | 大引用 | dark 优先 | 全屏居中 | 暗底 + 大字号衬线(6-8vw),可选引语来源,仪式感拉满 | 金句、takeaway、观点强调 | 逐行淡入 |
| 9 | Before/After | light | 左右均分 | 两列对比:「旧模式」vs「新模式」,data-animate="directional" 控制动效方向 |
产品升级、方案对比 | directional 动效 |
| 10 | 图文混排 | light/dark 交替 | 8:4 网格 | 大面积 lead image + 侧边文字块,图片占主导,文字压缩在一侧 | 信息密集的图文页、架构说明 | 图片视差 |
注意:Style A 的布局不像 Style B 那样有严格的版式锁(S01-S22 编号),但同样有强制规则——这些布局骨架已经过比例和字号的充分验证,不要改网格结构,不要改字体层级,只换文案和图片路径。
Style A 节奏硬规则
Style A 虽然版式自由,但节奏约束和 Style B 一样严格:
- ❌ 连续 3 页以上同一色调(hero dark 或 light)= P0 错误
- ❌ 8 页以上无 hero dark 页 = 不合格
- ✅ hero 页(暗底大标题)与 non-hero 页(亮底内容)必须交替
- ✅ 每 3-4 页插入 1 个 hero 页,制造翻杂志的呼吸感
完整工作流(6 个阶段)
以下以**”OpenCode 开源工具分享”**为实战场景,梳理完整工作流。假设:20 分钟分享时长,面向开源社区技术爱好者,线下沙龙约 30 人。
阶段 0 · 安装 Skill(一次性)
1 | npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill |
或手动克隆:
1 | git clone https://github.com/op7418/guizang-ppt-skill.git ~/.claude/skills/guizang-ppt-skill |
验证安装:确认 SKILL.md、assets/、references/ 三个目录/文件都存在。
安装完成后,在 Claude Code 中直接说”帮我做一份杂志风 PPT”即可触发 Skill。
阶段 1 · 需求澄清(动手前必做)
如果已经有完整的大纲和图片素材,可以跳过。 但如果只有一个模糊主题,Agent 会逐项问 7 个问题。这个阶段最关键——结构定错了,后面翻修成本很高。
1 | ① 风格选择 |
以 OpenCode 分享为例,我们的选择:
| # | 问题 | 选择 | 理由 |
|---|---|---|---|
| ① | 风格 | Style A(电子杂志) | 技术分享但有叙事温度 |
| ② | 受众与场景 | 开源社区技术爱好者,线下沙龙 30 人 | 有基础但非专家,需要讲清楚”为什么” |
| ③ | 时长与页数 | 约 20 分钟 → 12-14 页 | 每页约 1.5-2 分钟节奏 |
| ④ | 素材情况 | OpenCode 官方文档、GitHub README、个人使用笔记 | 素材充足,不需要 Agent 帮搭框架 |
| ⑤ | 主题色 | 靛蓝瓷 | 技术话题 + 冷静专业 |
| ⑥ | 图片需求 | 终端截图、架构图、效果对比图 | 已有素材,需要排版而非生成 |
| ⑦ | 硬约束 | 不需要 pptx 导出;需要一张公众号封面图 | 交付形态明确 |
阶段 2 · 内容结构设计(先定节奏,再写代码)
在动手写 HTML 之前,必须先做一页主题节奏表。电子杂志风的灵魂在于节奏——不是把内容堆上去就行,要有”翻杂志”的呼吸感。
叙事弧模型
1 | 钩子 (Hook) → 1 页 : 抛反差/问题/硬数据 |
为 OpenCode 分享设计的节奏表
| 页码 | 布局类型 | 页面类型 | 核心内容 | 图片槽位 |
|---|---|---|---|---|
| 1 | 悬念收束/问题页 | hero dark | “你还在手动配 75 个模型吗?” | 无 |
| 2 | 开场封面 | hero dark | OpenCode 标题 + 副标题 + 日期 | 无 |
| 3 | 左文右图 | non-hero | Claude Code vs OpenCode 对比 | 架构对比图 |
| 4 | Pipeline 流程 | non-hero | Plan → Build → Review 工作流 | 无 |
| 5 | 图文混排 | non-hero | Sub-agent 架构解析 | 架构示意图 |
| 6 | 图片网格 | non-hero | 3 张终端截图:多模型切换演示 | 3 张截图 |
| 7 | 数据大字报 | hero dark | Skills 数量、Star 数、月活等硬数据 | 无 |
| 8 | Before/After | non-hero | 传统开发 vs OpenCode 效率对比 | 对比图 |
| 9 | 大引用页 | hero dark | “开源 ≠ 免费——它的真正成本在哪?” | 无 |
| 10 | 左文右图 | non-hero | 推荐配置表 + 一行安装命令 | 配置截图 |
| 11 | 章节幕封 | hero dark | 致谢 + 二维码 + 社区链接 | QR 码 |
关键规则:hero 页和 non-hero 页必须交替。 Hero 页(全屏暗底 + 大标题)负责”停顿和强调”,Non-hero 页负责”传递信息”。连续 3 页同类型 = P0 级错误。一张一弛,观众才不会累。
如果是 Style B(瑞士风),节奏表还需要遵守额外的硬性规则:
- 7-8 页 deck 至少使用 6 个不同 S 编号版式
- 不允许连续 3 页使用同一种主体结构
- 每个
<section>必须写data-layout="Sxx"
阶段 3 · 代码生成(Agent 写 HTML)
这是 Agent 的核心工作阶段。把节奏表交给 Agent,让它逐页填充。
代码生成流程
1 | Step 3a: 拷贝选定的模板 |
P0 对齐法则(违反 = 整页报废)
无论选哪种风格,这五条对齐规则是硬性的:
- 不二次叠加水平 padding —
.canvas-card已自带5vw左右 padding,主体内容不要再加 - kicker 在大标题上方,不压成左右
- 双约束限高
min(Xvw, Yvh)中 Y ≥ X × 1.6 - canvas-card 子元素用 grid
gap,不用 margin 堆 - 底部分页安全区 — 主内容最低处不要触及 nav(底部 8vh 是安全区)
字号与字重阶梯(瑞士风硬规则)
Style B 有一条”反直觉”的铁律——越大越细,越小越粗:
| 字号区间 | 推荐字重 | 典型场景 |
|---|---|---|
| ≥ 8vw | 200 (ExtraLight) | 封面大字、巨号 KPI |
| 4-7.9vw | 200-300 | 章节标题、大编号 |
| 1.8-3.9vw | 300-400 | 中型标题、takeaway |
| 1-1.7vw / 16-20px | 400-500 | 正文段落、卡片描述 |
| 13-15px(小字) | 500-600 | meta、kicker、角标 |
演示最小字号下限
| 文本类型 | 最小字号 |
|---|---|
| 正文段落 / 主要说明 | 18px |
| 卡片描述 / 列表 / caption / 图注 | 16px |
| meta / kicker / mono label / 图表标签 | 14px |
阶段 4 · 配图生成(可选)
如果 deck 需要配图,Agent 会根据版面槽位生成。这主要适用于 Codex 环境(可调用 GPT-Image 2.0)。
| 图片类型 | 用途 | 常用比例 | 对应版式 |
|---|---|---|---|
| 纪实照片 | 人文场景、团队 | 21:9 / 16:10 | S22 |
| 信息图/流程图 | 概念解释 | 16:10 / 21:9 | S15/S16 网格 |
| UI 情景图 | 产品展示 | 16:10 | S22 |
| 截图再设计 | 原始截图美化 | 16:10 | S15/S16 网格 |
配图四条规则:
- 图片不要自带页脚、标题、角标、页码、装饰边框——这些交给 HTML
- 图片语言跟随 deck 语言
- 图片比例必须先匹配落位槽位
- 用户截图优先用内置背景资产做程序化适配,不要默认重画
素材准备的实用技巧:
- 命名规范:
01-hero.jpg/03-arch.png(页号补零 + 英文语义) - 照片用
.jpg,截图用.png,单张 ≥ 1600px 宽 - 无损换图:新图同名覆盖旧图,HTML 一个字不改
- 素材到位了,十分钟出片不是夸张
阶段 5 · 质量检查(自检 + 校验)
这是最容易被跳过、但也最重要的步骤。
手工自检(对照 checklist.md 分级)
P0 · 一定不能犯的错:
- 正文页都来自合法布局(Style B 必须 S01-S22,不能自己发明 P23/P24)
- 顶部中文标题默认左上对齐,没有居中
- 字号不低于下限(正文 ≥ 18px,caption ≥ 14px)
- 字重阶梯正确(越大越细,越小越粗)
- Hero 页与 non-hero 页交替,没有连续 3 页同类型
- 字体三级分工正确:衬线→观点,非衬线→信息,等宽→元数据
- 页脚元数据完整:章节号、日期、页码
- 主题色 CSS 变量完整替换
- 所有链接可点击
- 图片后缀正确(照片
.jpg,截图.png) - 无溢出行(浏览器 16:9 视口下内容不截断)
- 没有在 SVG 里写可见文字(标签放 HTML 里)
- 所有图片都在
data-image-slot里 - S22 图片用
object-position:center 35%,不是top center
瑞士风校验脚本(自动化)
1 | node scripts/validate-swiss-deck.mjs index.html |
这个脚本会拦截:未登记版式 / 缺少 data-layout / P23/P24 实验结构 / SVG 内写文字 / S22 图片未绑定 / 居中标题等硬伤。
阶段 6 · 预览与迭代
1 | # 直接用浏览器打开 |
操作方式:
| 操作 | 效果 |
|---|---|
键盘 ← → |
翻页 |
| 滚轮 | 翻页 |
| 触屏滑动 | 翻页 |
ESC |
打开索引总览 |
按 B |
切换到静态模式(关闭 WebGL 动画,低性能设备用) |
| 底部圆点 | 直接跳转任意页 |
迭代原则:
Agent 直接修改 HTML 的 inline style,改完刷新浏览器即可看到效果。调的是微调级别——字号 ±2px、间距 ±0.5rem。不要改网格结构,不要改字体层级;一旦动了骨架,连锁问题会让你后悔。
可以继续对话:”把第三页的 KPI 数字改大一点”、”第五页的图片换成 16:10”。
完整示例:一次典型对话
假设你已经有了 OpenCode 相关素材,对话流程如下:
1 | 你: |
瑞士风 22 种锁定版式速查
如果你选择 Style B,以下是完整版式菜单。正文页只能从这 22 种中选——不能自己发明 P23。
| ID | 名称 | 核心结构 |
|---|---|---|
| S01 | Index Cover | 三行 cover-row,左大编号,右大标题 |
| S02 | Vertical Timeline + KPI | 顶部标题 + 纵向时间线 + 底部 KPI 行 |
| S03 | Split Statement | 双半屏,左巨字,右灰底解释 |
| S04 | Six Cells | 标题 + 3×2 六卡片网格 |
| S05 | Three Layers | 标题 + 三大块堆叠 |
| S06 | KPI Tower | 左标题右说明 + 不等高 KPI 塔 |
| S07 | Horizontal Bar | 左对齐标题 + 横向条形图 |
| S08 | Duo Compare | 两列对比 + 中线(可扩展地图组件) |
| S09 | Dot Matrix Statement | 大号 statement + 点阵装饰 |
| S10 | Split Closing | 双半屏,左巨字,右列表 |
| S11 | Horizontal Timeline | 头部 + 横向时间线 |
| S12 | Manifesto + Ink Banner | 大字 statement + 底部通栏 ink 条 |
| S13 | Three Forces | 左 ink hero 块 + 右 3 张卡 |
| S14 | Loop Form | 左 4 步列表 + 右几何 loop(SVG 禁止文字) |
| S15 | Matrix + Hero Stat | 标题 + 6×2 矩阵 + 底部巨数(可改多图格) |
| S16 | Multi-card Brief | 标题 + 3×2 微卡(可改多图格) |
| S17 | System Diagram | 标题 + 几何系统图 + 底部三列解释 |
| S18 | Why Now | 三列递进 + 底部巨数 |
| S19 | Four Cards | 顶部蓝线 + 四列均分 |
| S20 | Stacked KPI Ledger | 纵向账单式巨数 |
| S21 | Tech Spec Sheet | 大标题 + 三 KPI + 右下竖线矩阵 |
| S22 | Image Hero | 顶部全宽 21:9 图 + 左上白块标题 + 三列 KPI |
核心设计原则
不管选哪种风格,这七条设计原则贯穿始终:
- 克制优于炫技 — WebGL 背景只在 hero 页透出,正文页收敛
- 结构优于装饰 — 信息靠字号 + 字体对比 + 网格留白,不用阴影和浮动卡片
- 图片是第一公民 — 图片对齐正文内容区,比例稳定,只裁底部
- 配图只做素材 — 生成图只保留核心图像,不把页脚、标题、角标画进图片里
- 节奏靠 hero 页 — hero / non-hero 交替,避免视觉疲劳
- 低性能可退场 — 按
B切换到静态模式 - 瑞士风必须守版式 — Style B 优先还原原始 22P 版式,不做自由发挥
Skill 目录结构
了解目录结构有助于理解 Skill 的内部机制:
1 | guizang-ppt-skill/ |
延伸能力
做完幻灯片后,guizang-ppt-skill 还能顺手生成多平台封面:
- 📱 公众号头图 — 21:9 横版
- 📲 朋友圈分享卡 — 1:1 方形
- 📕 小红书封面 — 3:4 竖版
- 🎬 视频号封面 — 16:9 横版
对 Agent 说一句”基于这份 PPT 的核心观点,生成一张公众号 21:9 头图”即可。歸藏还有一个姊妹项目 guizang-social-card-skill,专门做小红书图文和公众号封面对。
适合 / 不适合
| ✅ 适合 | ❌ 不适合 |
|---|---|
| 线下分享 / 行业内部讲话 / 私享会 | 大段表格数据、图表叠加 |
| AI 新产品发布 / Demo Day | 培训课件(信息密度不够) |
| 带有强烈个人风格的演讲 | 需要多人协作编辑(静态 HTML) |
| 需要”一次做完,不用翻页工具”的网页版 slides | 甲方要求 .pptx 格式交付 |
实战心得
用 guizang-ppt-skill 做了几场分享后,几个体会:
1. “限制”是最大的生产力。 不允许自定义配色、布局从骨架选取、hero/non-hero 交替——这些限制一开始让人觉得”不自由”,但实际用起来发现,它们消除了 90% 的无意义决策。你不用纠结”这个蓝色好看吗”,因为靛蓝瓷已经替你纠结过了。
2. 先有内容,再开 Skill。 guizang-ppt-skill 的强项是排版,不是帮你写稿。建议先在笔记工具里把文字稿定下来,然后一次性丢给 Agent。边想内容边排版 = 两边都做不好。
3. 素材准备是隐形的时间杀手。 截图、架构图、数据图表——Agent 不会替你变出来。在启动 Skill 之前就准备好并按命名规范重命名。素材到位了,十分钟出片不是夸张。
4. Style A 适合有”观点”的分享。 如果你只是罗列事实,用 Style B 瑞士风更高效。但如果你有自己的判断和态度,Style A 的叙事节奏会让观点更有力量。
5. 单文件 HTML 的交付体验超出预期。 不需要装软件、不需要平台、不担心兼容——一个 HTML 文件,浏览器即用。你甚至可以托管在 GitHub Pages 上,生成链接直接分享。
总结
guizang-ppt-skill 做了一件很聪明的事:它没有试图让 AI”学会设计”,而是让 AI”遵守设计规则”。 通过严格的视觉约束——不能自定义配色、布局从骨架选取、hero/non-hero 交替节奏、字号字重阶梯——把 AI 的”创意”关进了”品质”的笼子里。
对于技术人来说,这意味着你再也不用在 Keynote 里调文本框到凌晨两点了。把你的专业用在内容上,把排版交给歸藏的十年设计经验。
1 | # 一行命令,立即开始 |
然后对 Claude Code 说:“帮我做一份电子杂志风的 PPT,主题是 OpenCode。”
参考资源