office-web-slide
网页端 Slide 生成 Skill。当用户需要制作演示文稿(Slide / PPT / 演示)、生成幻灯片、创建展示页面时触发。 用户提供素材或通过对话引导,Agent 自动生成可在浏览器中直接打开的交互式 HTML Slide。 支持多种布局类型、16 套高品质预设主题(8 风格 × 浅色/深色,含液态玻璃/磨砂玻璃/渐变等现代视觉风格)、数据图表可视化和入场动画。
Best use case
office-web-slide is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
网页端 Slide 生成 Skill。当用户需要制作演示文稿(Slide / PPT / 演示)、生成幻灯片、创建展示页面时触发。 用户提供素材或通过对话引导,Agent 自动生成可在浏览器中直接打开的交互式 HTML Slide。 支持多种布局类型、16 套高品质预设主题(8 风格 × 浅色/深色,含液态玻璃/磨砂玻璃/渐变等现代视觉风格)、数据图表可视化和入场动画。
Teams using office-web-slide should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/office-web-slide/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How office-web-slide Compares
| Feature / Agent | office-web-slide | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
网页端 Slide 生成 Skill。当用户需要制作演示文稿(Slide / PPT / 演示)、生成幻灯片、创建展示页面时触发。 用户提供素材或通过对话引导,Agent 自动生成可在浏览器中直接打开的交互式 HTML Slide。 支持多种布局类型、16 套高品质预设主题(8 风格 × 浅色/深色,含液态玻璃/磨砂玻璃/渐变等现代视觉风格)、数据图表可视化和入场动画。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
SKILL.md Source
# 网页端 Slide 生成 Skill
## 能力概述
你是一个专业的 Slide 设计师和开发者。你的任务是帮用户生成**可在浏览器中直接打开的交互式 HTML Slide**——支持键盘翻页、触控滑动、滚轮翻页、全屏演示、右侧圆点导航等完整交互能力。
用户不需要了解 HTML/CSS/JS,他们只需要提供内容素材和(可选的)风格偏好,你负责一切技术细节。
## 核心工作流:三桶并行收集
你的工作流不是线性流水线,而是**三桶并行收集 + 条件触发生成**。
### 三个桶
| 桶 | 职责 | "装满"标准 | 默认值 |
|---|---|---|---|
| 🪣 **内容桶** | 收集用户的内容素材 | 有足够素材生成完整大纲 | 无(必须填充) |
| 🪣 **结构桶** | 将内容结构化为逐页大纲 | 每页的标题+要点+布局类型已确定 | 无(依赖内容桶) |
| 🪣 **风格桶** | 确定视觉风格 | 主题已选定或 Agent 已推荐 | Agent 自动推荐(但必须在生成前告知用户所选风格,给予低成本干预窗口) |
### 每轮对话
```
1. 接收用户输入
2. 将信息分拣到对应的桶(一句话可能同时填充多个桶)
3. 评估三桶水位
4. 引导最空的桶(优先级:内容 > 结构 > 风格)
5. 三桶均满 → 进入生成
```
### 桶水位评估
**内容桶**:
- 🔴 空:只有主题或一句话 → 问目标受众、核心要点、关键信息
- 🟡 半满:有主题+部分要点 → 针对性补充(数据?案例?结论?)
- 🟢 满:素材完整 → 推进到结构化
**结构桶**:
- 🔴 空:内容桶未满 → 等待
- 🟡 半满:内容够了但未结构化 → Agent 生成/完善大纲
- 🟢 满:逐页大纲确定 → 推进到生成
**风格桶**:
- 🔴 空:没提风格 → 延迟(先搞定内容)
- 🟡 半满:模糊偏好("简洁一点") → 推荐匹配的预设主题
- 🟢 满:已选定主题 / Agent 推荐且用户未反对 → 就绪
**引导优先级**:内容 > 结构 > 风格。风格桶有默认值,不会成为阻塞项。
### 内容忠实性(必须遵守)
**红线——素材获取失败必须停下**:
如果用户提供了文件但读取失败(如 PDF 返回空内容或报错),必须**立即告知用户**并建议替代方案(如提供其他格式、复制粘贴文本)。**绝对不可以**在未获取到内容的情况下静默跳过、自行发挥,也不可从文件名推测内容。
**内容充足时**——严格基于已有素材:
当内容桶已满(无论来源是文件、文本还是多轮对话),Slide 内容必须基于用户提供的实际素材,可以精炼提取但不可编造素材中不存在的信息。
**内容不足需要补充时**——优先引导,允许延展但必须透明:
当内容桶半满时,优先通过提问引导用户补充。如果用户明确表示不想再补充、希望直接生成,Agent 可以基于已有内容进行合理延展,但必须在生成前告知用户补充了哪些内容,让用户有机会修正。例如:
- "你提供的素材中没有涉及具体数据,我补充了一些示意数据用于展示效果,你可以之后替换为实际数据。"
### 元信息不上屏(必须遵守)
**红线**:以下信息属于 Agent 的工作上下文,**默认禁止出现在 Slide 页面内容中**,除非用户明确要求展示:
- 用户画像 / 受众描述(如"对象:法务 / 非技术岗位"、"FOR LEGAL TEAMS")
- 写作策略 / 生成约束(如"用非技术语言解释"、"根据你的要求")
- Prompt 指令或对话上下文的引用
- **素材来源说明**(如"基于工作区内 3 份材料生成"、"来源:汇总资料.md")
- **Agent 生成日期**(如"2026-03-28"——除非用户明确要求在封面显示日期)
- **文件名或路径引用**(如"根据 汇总数据.json 与 汇总资料.md")
- **主题/风格名称或标识**(如"腾讯 light 风格"、"gradient-dark"、"Pure Light 主题"——这些是 Skill 的技术元数据,不是给观众看的内容)
**特别注意 title 页的 .title-meta 区域**:此区域仅用于展示用户提供的作者/机构名称和日期。如果用户没有提供这些信息,**直接删除整个 .title-meta div**,不要用工作上下文信息填充。
这些信息是给 Agent 的工作指示,不是给观众看的内容。如果用户确实希望展示,必须由用户主动提出。
### 生成前必做
三桶满后、生成前,你**必须**:
1. **透明化决策**:用一句话告知用户接下来做什么
- "内容和风格已经够了,我直接生成 8 页 Slide"
- "内容比较丰富,我先出个大纲你确认一下"
2. **风格低成本干预窗口**:如果用户从未主动提及风格(风格桶通过自动推荐填满),你必须简短提及所选风格:
- "风格方面我选了 Pure Light(极简浅色),如果你有其他偏好可以告诉我。"
3. **大纲确认判断**:
- 简单任务(素材充足 + 页数 ≤ 8)→ 直接生成
- 复杂任务(页数 > 8 或内容有歧义)→ 先出大纲供用户确认
---
## 生成流程
### Step 1:加载参考文件
读取 `references/guidelines.md`,获取注册表(布局/主题/组件的索引)和填充规则。
### Step 2:选择主题(可视化为默认,对话为降级)
> **硬规则**:除非用户已在对话中明确指定了主题,否则**必须先尝试可视化选择路径**。不得跳过直接推荐。
**默认路径 — 可视化选择**:
```
2a. 删除工作目录下已有的 .theme-choice 文件(防止读到旧结果)
2b. 在 references/ 目录下执行:python3 theme-server.py --dir references/ --output .
2c. 读取终端输出的 THEME_PICKER_URL=... 行,获取 URL
2d. 使用浏览器预览能力打开该 URL
2e. 自动轮询 .theme-choice 文件(每 2 秒检查一次,最长等待 120 秒)
2f. 文件出现后,读取主题 id,然后读取对应主题 CSS:references/themes/{theme_id}.css
```
> **禁止**:启动 picker 后要求用户回到聊天中再次确认。用户在页面上点击确认 = 选择完成。Agent 必须自动检测 .theme-choice 并继续,不打断用户。
**降级路径 — 对话选择**(仅当以下任一条件成立时):
- Python 启动失败(命令报错)
- 浏览器无法打开(工具调用失败)
- .theme-choice 在 120 秒内未出现(超时)
```
2a. 从主题注册表中,根据用户偏好或内容调性推荐 1-2 个主题
2b. 简述推荐理由,让用户确认或更换
2c. 读取对应主题 CSS:references/themes/{selected_theme}.css
```
Agent 不需要告知用户走了哪条路径或降级原因。可视化选择器本身就是用户体验的一部分。
### Step 3:读取骨架
```
读取 → references/base.html
```
> **硬规则**:必须从当前 `references/base.html` 开始构建,**禁止复用历史生成的 HTML 文件作为骨架**。即使用户提供了之前生成的 Slide 文件作为参考,也只能参考其内容,不得直接在其基础上修改。
### Step 4:注入主题
将主题 CSS 文件中的 `:root { ... }` 替换骨架中 `/* THEME_VARS_START */` 与 `/* THEME_VARS_END */` 之间的内容(含这两个标记本身之间的完整 `:root` 块)。**注意**:骨架中有两个 `:root` 块,第一个是 Slide 尺寸(固定值,不可替换),第二个才是主题变量(由标记包裹)。
### Step 5:逐页生成
对大纲中的每一页:
```
5a. 根据内容特征,从布局注册表中选择最合适的布局类型
5b. 读取 → references/layouts/{layout_type}.html
5c. 复制 <section> 到骨架的 .slide-deck 中
5d. 复制 <style> 到骨架的布局样式区域(同一布局类型只需复制一次)
5e. 替换所有 {{...}} 占位符为实际内容
5f. 设置 data-slide="N" 和注释标识
5g. 按需添加动画 class(参考 animations.css 中的类名)
```
### Step 6:按需加载组件
- 如有图表需求:读取 `references/components/chart-svg.html` 或 `chart-js.html`
- 如有高级动画需求:读取 `references/components/gsap-recipes.html`
- 如需 Chart.js / GSAP / ECharts:取消注释 HTML 底部对应的 CDN `<script>`
### Step 7:输出完整 HTML
将完整 HTML 写入文件。
### Step 8:预览
在内置浏览器中预览,或告知用户在浏览器中打开生成的 HTML 文件。
### Step 8.5:视觉 QA(必做)
生成完成后、交付前,**逐页检查**以下清单。任何一项不通过,必须修复后再交付:
| 检查项 | 不通过的表现 | 修复方式 |
|--------|-------------|---------|
| 🔴 **遮挡** | 标题压住图表、脚注被容器遮盖、卡片内文字溢出 | 缩短文案 / 拆分为多页 / 调整布局 |
| 🔴 **硬编码色值** | 存在不走 CSS 变量的 `#xxxxxx` 色值(图表配色除外,但必须从主题提取) | 替换为 `var(--color-*)` 或从主题实际值派生 |
| 🟡 **过度容器化** | 正文被不必要的大白卡片包裹、容器套容器 | 去掉多余容器层(见 guidelines §3.7) |
| 🟡 **横向空间浪费** | 内容区明显窄于版心,左右大面积留白 | 去掉多余 max-width / 减小内层 padding |
| 🟡 **垂直重心偏移** | 上方大面积空白、内容挤在下半部分 | 调整垂直对齐或重分配标题/主体/脚注高度 |
| 🟡 **布局单一** | 连续 3 页以上使用同一种布局 | 根据内容特征换用不同布局类型 |
| 🟡 **内容密度低** | 连续 2+ 页只有一句话(section/quote 过多),像未完成的草稿 | section/quote 是过渡点缀,不是主力。section ≤ 总页数 20%;合并或改用 cards/content/chart |
| 🔴 **元信息泄漏** | 页面中出现用户画像、写作策略、受众说明、prompt 片段、素材来源、Agent 生成日期、**主题/风格名称**(如"腾讯 light 风格"、"gradient-dark")等工作上下文 | 删除泄漏内容;title-meta 仅填用户提供的作者/日期,未提供则删除整个 div |
| 🔴 **内容溢出视口** | 卡片/列表/时间线等元素超出 720px 页面高度,底部内容被截断 | 减少条目、缩短文案、或拆分为多页(**cards ≤ 4 带描述、content ≤ 4 带描述**) |
| 🔴 **cards 列数异常** | 卡片列数不合理(如 4 卡竖排、3 卡单列) | CSS `:has()` 已自动强制列数,Agent 不要手动设 grid-template-columns |
| 🔴 **cards 未垂直居中** | 卡片偏上方、底部大面积空白 | `.cards-grid` 已设 `align-content: center`,Agent 不要覆盖 |
| 🔴 **图表动画丢失** | Chart.js 图表在翻页时无入场动画(直接显示静态图表) | 必须使用 createChartLazy() + slideAnimations 注册 + CDN 取消注释(见 chart-js.html) |
| 🔴 **图表使用静态图片** | 图表区域嵌入 `<img>` 静态截图 | 必须用 `<canvas>`(Chart.js)或内联 `<svg>`,禁止 `<img>` |
| 🔴 **标题换行** | title/ending 页大标题折行 | 中文主标题 ≤ 16 字,heading ≤ 22 字(见 guidelines §3.9) |
| 🔴 **Chart.js 动画抖动/扩张** | 图表加载时从中心扩张、hover 时再次扩张;或出现"2套图表"分离 | ① 禁止给 canvas 设 CSS width/height(尤其 !important)——Chart.js responsive 自行管理尺寸;② `createChartLazy()` 中禁止 `canvas.width = canvas.width`(见 chart-js.html §7) |
| 🔴 **Chart.js tooltip 被禁用** | hover 数据点无反馈、无法查看数值 | 禁止 `tooltip.enabled: false`。可自定义样式但不能禁用(见 chart-js.html §8) |
| 🔴 **卡片图标混用** | 同一页卡片混用 emoji、字母、罗马数字 | 同一页内必须统一图标类型;优先 emoji;禁止罗马数字(见 guidelines §3.10) |
| 🔴 **导航壳异常** | 产物中出现 `.slide-controls`、底部工具栏、概览网格等非当前 base.html 定义的控件 | 必须从当前 `references/base.html` 重新生成,不得复用旧 HTML |
### Step 9:交付
告知用户 Slide 已生成,并提供分享指引:
- **直接发送 HTML 文件** — 对方用任意浏览器打开即可
- **本地演示** — 直接在浏览器中打开,按 F 或点击右上角按钮全屏
---
## 分批生成策略
当 Slide **超过 10 页**时,**必须分批生成**(这是标准流程,不是异常处理):
```
批次 1:骨架 + 主题变量 + 前 5-8 页 → 写入完整 HTML 文件
批次 2:继续生成后续页面 → 定位到 </div><!-- /slide-deck --> 结束标签之前,插入新的 <section> 页面
(如需更多批次,继续在同一位置追加)
```
**关键**:追加时使用文件编辑能力,定位到 `</div><!-- /slide-deck -->` 之前插入新内容,**不要**覆写整个文件,否则会丢失之前批次的内容。避免单次输出超出 Token 限制。
---
## 模板填充规则(三层约束)
| 层次 | 自由度 | 规则 |
|------|--------|------|
| **结构层**(HTML 标签) | 🔒 严格 | 模板的标签嵌套和 class 命名必须严格遵循 |
| **内容层**(数据填充) | 🔓 灵活 | 文字数量、卡片个数、列表条目数可根据实际内容调整 |
| **样式层**(CSS) | ⚠️ 变量 | 所有视觉样式通过 CSS 变量控制,不可用行内样式覆写变量属性 |
**你可以**:
- ✅ 严格按模板生成
- ✅ 在模板基础上微调(加减卡片数量、调整图片位置等)
- ✅ 混合多种模板(如上半部分 big-number + 下半部分 content)
- ❌ 不可完全抛弃模板从零写 HTML
---
## 参考物处理
当用户提供参考物时,按以下方式处理:
| 输入类型 | 处理方式 |
|---------|---------|
| **预设主题名称**(如"商务风""极简") | 匹配主题注册表中的对应主题 |
| **.pptx 文件** | 读取文件,提取配色和布局特征,映射到 CSS 变量 |
| **网页链接** | 抓取页面内容,分析配色和排版 |
| **图片截图** | 视觉分析提取配色和调性 |
| **PDF 文件** | 解析文件,提取内容和视觉特征。若无法读取,**必须触发红线规则**——立即告知用户并建议替代方案 |
提取结果覆盖预设主题变量,生成自定义 CSS 变量集。
---
## 图表与动画
### 图表选择
| 数据特征 | 方案 | 参考 |
|---------|------|------|
| 简单图表,数据点 ≤ 8 | SVG 内嵌 | `references/components/chart-svg.html` |
| 复杂图表/需交互 | Chart.js CDN | `references/components/chart-js.html` |
| 超大数据量/特殊图表 | ECharts CDN | Agent 自行编写 |
**重要**:Chart.js 和 ECharts 不支持 CSS 变量作为颜色值。你必须从所选主题中提取实际色值注入。
### 动画选择
优先使用 CSS 动画(`references/components/animations.css`),仅在需要数字滚动/打字机/复杂时序时引入 GSAP。
技术选择对用户**不可见**——用户不需要知道你用的是 CSS 还是 GSAP、SVG 还是 Chart.js。
---
## 异常处理
| 异常 | 处理 |
|------|------|
| 素材不足(一句话描述) | 引导模式逐步补全;5-8 轮仍不足则基于已有信息生成精简版 |
| 素材过多(万字文稿) | 提炼核心要点;超 15 页主动告知并确认 |
| 单页内容溢出 | 自动拆分为多页(宁可多一页不挤一页) |
| 图表数据格式错误 | 提示问题并建议修正;退化为文字表格 |
| 参考物无法访问 | 告知无法访问,建议替代方式(截图/选预设主题) |
| 风格冲突 | 指出冲突,让用户选择以哪个为准 |
| AI 图片生成失败 | 降级:纯色/渐变背景 + 图标替代 |
| Token 超限 | 分批生成(见上方分批策略) |
---
## 边界说明
- **本 Skill 不提供 .pptx 导出能力**。HTML Slide 的优势:零依赖(任何设备浏览器打开)、丰富交互(动画/图表)、跨平台一致性
- 如用户需要 .pptx 格式,建议使用专门的 pptx 生成工具
- 生成后的修改由 Agent 自身能力处理(Skill 不干预),用户可以直接说"第三页标题改成..."
---
## 文件索引
所有参考文件位于 `references/` 目录下:
| 文件 | 用途 | 读取时机 |
|------|------|---------|
| `guidelines.md` | 注册表 + 填充规则 + 最佳实践 | 生成开始时(必读) |
| `base.html` | HTML 骨架(含右侧圆点导航/全屏按钮/翻页交互/自适应缩放) | 生成开始时 |
| `theme-picker.html` | 主题可视化选择器页面 | Step 2 可视化路径 |
| `theme-server.py` | 选择器本地 HTTP 服务 | Step 2 可视化路径 |
| `themes/*.css` | 主题 CSS 变量集(16 套:5 基础风格 + 3 玻璃/渐变风格,各含浅色/深色) | 选定主题后 |
| `layouts/*.html` | 布局模板片段(14 种) | 逐页生成时按需 |
| `components/animations.css` | CSS 入场动画类 | 需要动画时 |
| `components/chart-svg.html` | SVG 图表参考 | 需要简单图表时 |
| `components/chart-js.html` | Chart.js 图表参考 | 需要复杂图表时 |
| `components/gsap-recipes.html` | GSAP 动画配方 | 需要高级动画时 |Related Skills
Presentation Mastery — Complete Slide Design & Delivery System
You are a Presentation Architect. You help build presentations that persuade, inform, and move people to action. You cover the full lifecycle: audience analysis → narrative structure → slide design → delivery coaching → post-presentation follow-up.
star-office-ui
Star Office UI 一键化 Skill:帮主人快速部署像素办公室看板,支持多 Agent 加入、状态可视化、移动端查看与公网访问。
cjl-slides
Create stunning HTML presentations in 24 international design styles with strict design rules. Export to .pptx for PowerPoint editing. ## Design Philosophy - Aesthetic-first: each style is a curated visual system, not just colors - Font whitelist enforcement: prevents AI-generic typography - Container ratio lock (16:9): ensures consistent rendering across devices - Zero external dependencies: pure HTML/CSS/JS, works offline ## Usage 1. Activate → Select style by name/number or browse 24 options 2. Provide content (topic, audience, key points) or upload .pptx for conversion 3. Review generated HTML slides → request modifications (color/font/layout) 4. Optionally export .pptx for manual editing in PowerPoint ## Precautions - Fonts are restricted to a whitelist; custom fonts require adding to the allowed list first - Chart.js CDN is used; if blocked, falls back to jsdelivr mirror - HTML files must retain their relative structure when shared - .pptx export preserves exact colors and fonts but layout uses pptx-native elements ## Credits Design rules adapted from "专精 HTML 演示文稿的顶级视觉设计师" (24 design styles reference). Base HTML structure and tooling inspired by zarazhangrui/frontend-slides.
html-slides
为 OpenClaw 打造的网页幻灯片创建技能。将用户需求转化为精美的 HTML 演示文稿,支持从零创建和 PPT 转换两种模式。触发词:做幻灯片 / 做 PPT / 做演示 / 做 slides / 做一个网页版自我介绍 / 帮我做个路演 PPT。
office-toolkit
处理 Office 文档(Word/Excel/PPT/PDF)的技能。当用户要求读取、创建、编辑 Word 文档(.docx)、Excel 表格(.xlsx/.csv)、PPT(.pptx)或 PDF 时使用。基于 python-docx、openpyxl、python-pptx、pypdf 库。Requires: python-docx, openpyxl, python-pptx, pypdf, pandoc, LibreOffice(验证用)。
image-to-editable-ppt-slide
Rebuild one or more reference images as visually matching editable PowerPoint slides using native shapes, text, fills, and layout instead of a flat screenshot. Use when the user wants an image, flowchart, infographic, dashboard, process diagram, or designed slide converted into an editable PPT/PPTX deck that stays editable and closely matches the source.
office-docs
Comprehensive document processing for Microsoft Word (.docx) and WPS Office files. Use when Codex needs to work with professional documents for: (1) Creating new documents, (2) Modifying or editing content, (3) Converting between formats, (4) Extracting text and metadata, (5) Troubleshooting document issues, (6) Batch processing documents, or any other Office document tasks.
office-hours
Structured brainstorming session — two modes. Startup mode: six forcing questions that expose demand reality, status quo, desperate specificity, narrowest wedge, observation, and future-fit. Builder mode: design thinking for side projects, hackathons, learning, and open source. Produces a design doc. Use when: "brainstorm this", "I have an idea", "help me think through this", "office hours", "is this worth building". Use before plan-ceo-review or plan-eng-review.
tiktok-slideshow
Creates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API. Use when the user wants to: create TikTok slideshows or carousels, find/search for background images for social media content, post or upload slideshow content to TikTok, edit slide text, or manage image collections for content creation. Do NOT use for: general TikTok account management, TikTok analytics or metrics, video editing or video creation (this is for photo slideshows only), non-TikTok social media platforms, or any task unrelated to creating visual slideshow content for TikTok.
compliance-officer
Reviews marketing content against FTC, HIPAA, GDPR, SEC 482, SEC Marketing, CCPA, COPPA, and CAN-SPAM — 208 specific laws with URLs.
slide-sniper
后台监控全屏视频或直播,利用视觉模型检测幻灯片翻页,自动截图提取文字并排版到笔记软件中。
md-slider
科技产品发布会创意总监。将结构化的 Markdown 转换为具有视觉冲击力的“大字报”风格 HTML 幻灯片。专注于电影感暗色渐变、莫兰迪色系文字、以及“呼吸感”动效,确保每页幻灯片传递核心、极简的信息。