返回 html-ppt-skill
README.zh-CN.md
根目录 / README.zh-CN.md
1 # html-ppt · HTML PPT 工作室
2
3 > 一款专业级的 AgentSkill,让 AI 做出真正能打的 HTML 演示文稿。
4 > **36 套主题**、**15 套完整 deck 模板**、**31 种页面布局**、**47 个动效**
5 > (27 个 CSS + 20 个 Canvas FX),加上全新的 **演讲者模式** —— 像素级
6 > 完美预览 + 逐字稿提词器 + 计时器。纯静态 HTML/CSS/JS,无需构建。
7
8 **作者:** lewis <sudolewis@gmail.com>
9 **协议:** MIT
10 **English docs:** [README.md](README.md)
11
12 ![html-ppt 封面 · 实时预览](docs/readme/hero.gif)
13
14 > 一行命令装好 **36 主题 × 20 Canvas FX × 31 布局 × 15 完整 deck + 演讲者模式**。
15 > 上图里的每一个预览都是真实的 iframe 加载真实模板文件 —— 不是截图,不是色卡。
16
17 ## 🎤 演讲者模式(全新)
18
19 在任何 deck 里按 `S` 键,弹出一个独立的演讲者窗口,包含 4 个**可拖拽、
20 可调整大小的磁吸卡片**:当前页预览、下一页预览、逐字稿、计时器。两个窗口
21 通过 `BroadcastChannel` 双向同步翻页。
22
23 ![演讲者模式 · 4 个磁吸卡片](docs/readme/presenter-mode.png)
24
25 **为什么预览是像素级完美的:** 每个卡片是一个 `<iframe>`,加载的是**同一
26 份 deck HTML 文件**,只是 URL 多了 `?preview=N` 参数。runtime 检测到这个
27 参数后,只渲染第 N 页并隐藏所有 chrome —— 所以预览使用**和观众视图完全相
28 同的 CSS、主题、字体、viewport**,颜色和排版保证 100% 一致。
29
30 **丝滑翻页(零闪烁):** 翻页时演讲者窗口通过 `postMessage({type:'preview-goto',
31 idx:N})` 通知 iframe,iframe 只是切换 `.is-active` class —— **不重新加载、
32 不白屏、不闪烁**。
33
34 **逐字稿 3 条铁律:**
35 1. **提示信号,不是讲稿** — 关键词加粗,过渡句独立成段
36 2. **每页 150–300 字** — 约 2–3 分钟/页的节奏
37 3. **用口语,不用书面语** — "所以" 不是 "因此","这个" 不是 "该"
38
39 详见 [`references/presenter-mode.md`](references/presenter-mode.md),或直接复制
40 `templates/full-decks/presenter-mode-reveal/` 这个现成模板 —— 每一页都带完整
41 150–300 字的示例逐字稿。
42
43 ## 一行命令安装
44
45 ```bash
46 npx skills add https://github.com/lewislulu/html-ppt-skill
47 ```
48
49 装好后,任何支持 AgentSkill 的 agent(Claude Code / Codex / Cursor / OpenClaw 等)
50 都能用这套能力做 PPT。对 agent 说:
51
52 > "做一份 8 页的技术分享 slides,用 cyberpunk 主题"
53 > "把这段 outline 变成投资人 pitch deck"
54 > "做一个小红书图文,9 张,白底柔和风"
55 > "做一份带演讲者模式的产品分享,我想要有逐字稿"
56
57 ## Skill 内容一览
58
59 | | 数量 | 位置 |
60 |---|---|---|
61 | 🎤 **演讲者模式** | **新增** | `S` 键 / `?preview=N` |
62 | 🎨 **主题** | **36** | `assets/themes/*.css` |
63 | 📑 **完整 deck 模板** | **15** | `templates/full-decks/<name>/` |
64 | 🧩 **单页布局** | **31** | `templates/single-page/*.html` |
65 | ✨ **CSS 动画** | **27** | `assets/animations/animations.css` |
66 | 💥 **Canvas FX 动画** | **20** | `assets/animations/fx/*.js` |
67 | 🖼️ **Showcase deck** | 4 | `templates/*-showcase.html` |
68 | 📸 **验证截图** | 56 | `scripts/verify-output/` |
69
70 ### 36 套主题
71
72 `minimal-white`、`editorial-serif`、`soft-pastel`、`sharp-mono`、`arctic-cool`、
73 `sunset-warm`、`catppuccin-latte`、`catppuccin-mocha`、`dracula`、`tokyo-night`、
74 `nord`、`solarized-light`、`gruvbox-dark`、`rose-pine`、`neo-brutalism`、
75 `glassmorphism`、`bauhaus`、`swiss-grid`、`terminal-green`、`xiaohongshu-white`、
76 `rainbow-gradient`、`aurora`、`blueprint`、`memphis-pop`、`cyberpunk-neon`、
77 `y2k-chrome`、`retro-tv`、`japanese-minimal`、`vaporwave`、`midcentury`、
78 `corporate-clean`、`academic-paper`、`news-broadcast`、`pitch-deck-vc`、
79 `magazine-bold`、`engineering-whiteprint`
80
81 ![36 主题 · 其中 8 个](docs/readme/themes.png)
82
83 每个主题都是一份纯 CSS token 文件 —— 只需要换一行 `<link>` 就能给整份 deck
84 换皮。在 `templates/theme-showcase.html` 里可以浏览全部(每一页用独立 iframe
85 渲染,避免样式互相污染)。
86
87 ![15 套完整 deck 模板](docs/readme/templates.png)
88
89 ### 15 套完整 deck 模板
90
91 8 个从真实作品提炼的视觉语言,7 个通用场景脚手架:
92
93 **提炼款**
94 - `xhs-white-editorial` — 小红书白底杂志风
95 - `graphify-dark-graph` — 暗底 + 力导向知识图谱
96 - `knowledge-arch-blueprint` — 蓝图 / 架构图风
97 - `hermes-cyber-terminal` — 终端 cyberpunk 风
98 - `obsidian-claude-gradient` — 紫色渐变卡
99 - `testing-safety-alert` — 红 / 琥珀警示风
100 - `xhs-pastel-card` — 柔和马卡龙图文
101 - `dir-key-nav-minimal` — 方向键极简
102
103 **场景款**
104 - `pitch-deck` — 投资人 pitch
105 - `product-launch` — 产品发布会
106 - `tech-sharing` — 技术分享
107 - `weekly-report` — 周报
108 - `xhs-post` — 小红书图文(9 页 3:4)
109 - `course-module` — 教学模块
110 - **`presenter-mode-reveal`** 🎤 — 完整分享模板,**每一页都带 150-300 字
111 的示例逐字稿**,围绕 `S` 键演讲者模式专门设计
112
113 每个模板都是自包含的文件夹,用 scoped `.tpl-<name>` CSS,所以多个模板可以
114 同时加载不会互相污染。在 `templates/full-decks-index.html` 可以看全套 gallery。
115
116 ![31 种单页布局](docs/readme/layouts.png)
117
118 ### 31 种单页布局
119
120 cover · toc · section-divider · bullets · two-column · three-column ·
121 big-quote · stat-highlight · kpi-grid · table · code · diff · terminal ·
122 flow-diagram · timeline · roadmap · mindmap · comparison · pros-cons ·
123 todo-checklist · gantt · image-hero · image-grid · chart-bar · chart-line ·
124 chart-pie · chart-radar · arch-diagram · process-steps · cta · thanks
125
126 每个布局都带真实的示例数据,拖进 deck 立即看得到效果。
127
128 ![31 种布局通过真实模板文件自动循环播放](docs/readme/layouts-live.gif)
129
130 *大 iframe 直接加载 `templates/single-page/<name>.html` 文件,每 2.8 秒
131 自动切换到下一个布局。*
132
133 ![47 个动效 · 27 CSS + 20 Canvas FX](docs/readme/animations.png)
134
135 ### 27 个 CSS 动画 + 20 个 Canvas FX
136
137 **CSS 动画(轻量)** — 方向性淡入、`rise-in`、`zoom-pop`、`blur-in`、
138 `glitch-in`、`typewriter`(打字机)、`neon-glow`(霓虹光晕)、
139 `shimmer-sweep`(流光)、`gradient-flow`(渐变流动)、`stagger-list`
140 (列表错开入场)、`counter-up`(数字滚动)、`path-draw`(路径绘制)、
141 `morph-shape`、`parallax-tilt`、`card-flip-3d`、`cube-rotate-3d`、
142 `page-turn-3d`、`perspective-zoom`、`marquee-scroll`、`kenburns`、
143 `ripple-reveal`、`spotlight`、…
144
145 **Canvas FX(电影级)** — `particle-burst`(粒子爆发)、`confetti-cannon`
146 (彩带)、`firework`(烟花)、`starfield`(星空)、`matrix-rain`
147 (代码雨)、`knowledge-graph`(力导向知识图谱)、`neural-net`(神经网络
148 脉冲)、`constellation`(星座连线)、`orbit-ring`(轨道环)、
149 `galaxy-swirl`(星系漩涡)、`word-cascade`、`letter-explode`、
150 `chain-react`、`magnetic-field`、`data-stream`、`gradient-blob`、
151 `sparkle-trail`、`shockwave`、`typewriter-multi`、`counter-explosion`。
152 每一个都是手写的 canvas 模块,进入 slide 时由 `fx-runtime.js` 自动初始化。
153
154 ## 快速开始(手动 / 安装后 / git clone 后)
155
156 ```bash
157 # 从 base 模板新建一个 deck
158 ./scripts/new-deck.sh my-talk
159
160 # 浏览所有内容
161 open templates/theme-showcase.html # 全部 36 主题(iframe 隔离)
162 open templates/layout-showcase.html # 全部 31 布局
163 open templates/animation-showcase.html # 全部 47 动效
164 open templates/full-decks-index.html # 全部 15 个完整 deck
165
166 # 用 headless Chrome 导出 PNG
167 ./scripts/render.sh templates/theme-showcase.html
168 ./scripts/render.sh examples/my-talk/index.html 12
169 ```
170
171 ## 键盘快捷键
172
173 ```
174 ← → Space PgUp PgDn Home End 翻页
175 F 全屏
176 S 打开演讲者窗口(磁吸卡片模式)
177 N 底部 notes 抽屉
178 R 重置计时器(演讲者窗口内)
179 O slide 总览网格
180 T 切换主题(自动同步到演讲者窗口)
181 A 在当前 slide 循环演示一个动画
182 #/N (URL) 深链到第 N 页
183 ?preview=N (URL) 预览模式(只显示单页,隐藏 chrome)
184 ```
185
186 ## 项目结构
187
188 ```
189 html-ppt-skill/
190 ├── SKILL.md agent 入口
191 ├── README.md 英文 README
192 ├── README.zh-CN.md 本文件
193 ├── references/ 详细文档
194 │ ├── themes.md 36 主题 + 使用场景
195 │ ├── layouts.md 31 布局
196 │ ├── animations.md 27 CSS + 20 FX 目录
197 │ ├── full-decks.md 15 完整 deck 模板
198 │ ├── presenter-mode.md 🎤 演讲者模式 + 逐字稿指南
199 │ └── authoring-guide.md 完整工作流
200 ├── assets/
201 │ ├── base.css 共享 tokens + 基础组件
202 │ ├── fonts.css web 字体引入
203 │ ├── runtime.js 键盘导航 + 演讲者模式 + 总览
204 │ ├── themes/*.css 36 主题 token 文件
205 │ └── animations/
206 │ ├── animations.css 27 个命名 CSS 动画
207 │ ├── fx-runtime.js 进入 slide 自动初始化 [data-fx]
208 │ └── fx/*.js 20 个 Canvas FX 模块
209 ├── templates/
210 │ ├── deck.html 最小起步模板
211 │ ├── theme-showcase.html iframe 隔离的主题 tour
212 │ ├── layout-showcase.html 全部 31 布局
213 │ ├── animation-showcase.html 47 动画 slide
214 │ ├── full-decks-index.html 15 deck gallery
215 │ ├── full-decks/<name>/ 15 个 scoped 多页 deck 模板
216 │ └── single-page/*.html 31 个布局文件(带示例数据)
217 ├── scripts/
218 │ ├── new-deck.sh 脚手架
219 │ ├── render.sh headless Chrome → PNG
220 │ └── verify-output/ 56 张自测截图
221 └── examples/demo-deck/ 完整可运行的示例 deck
222 ```
223
224 ## 设计理念
225
226 - **Token 驱动的设计系统。** 所有颜色、圆角、阴影、字体决策都在
227 `assets/base.css` + 当前主题文件里。改一个变量,整份 deck 优雅地重排。
228 - **Iframe 隔离预览。** 主题 / 布局 / 完整 deck 的 showcase 都用 `<iframe>`,
229 确保每个预览都是真实、独立的渲染结果。
230 - **零构建。** 纯静态 HTML/CSS/JS。只有 webfont / highlight.js / chart.js
231 (可选) 走 CDN。
232 - **资深设计师的默认值。** 字号规律、间距节奏、渐变、卡片处理都有态度 ——
233 绝不是 "PowerPoint 2006" 那种味道。
234 - **中英双语一等公民。** 预导入了 Noto Sans SC / Noto Serif SC。
235
236 ## 协议
237
238 MIT © 2026 lewis &lt;sudolewis@gmail.com&gt;
239
239 lines MARKDOWN