slides-generator by bmad-labs/skills
npx skills add https://github.com/bmad-labs/skills --skill slides-generator使用 React + Tailwind 生成专业、交互式的演示文稿幻灯片。
每个幻灯片项目都组织在一个专用文件夹中:
<项目文件夹>/
├── context.md ← 从用户处收集的知识和上下文
├── researches/ ← 研究文档(当主题需要研究时)
│ └── YYYY-MM-DD-主题.md
├── slides.md ← 用于预览/讨论的 Markdown 幻灯片
├── source/ ← React 源代码(来自模板)
│ ├── package.json
│ ├── vite.config.js
│ ├── vite.standalone.config.js
│ ├── tailwind.config.js
│ ├── index.html
│ └── src/
│ ├── App.jsx
│ ├── index.css
│ └── slides/
│ ├── 01-hero.jsx
│ ├── 02-content.jsx
│ └── ...
├── verify/ ← 验证截图(来自浏览器测试)
└── slide.html ← 最终独立的 HTML(自动生成)
步骤 1:初始化项目文件夹
↓
步骤 2:收集需求(渐进式披露)
阶段 1:主题 → 阶段 2:受众 → 阶段 3:风格 → 阶段 4:内容
↓
步骤 2.5:研究检查点
"您希望我研究 [主题] 吗?" → 用户确认
↓
步骤 3:创建 context.md + slides.md
↓
步骤 4:与用户确认大纲
↓
步骤 5:创建源代码 → source/
↓
步骤 6:生成幻灯片(并行子代理)
↓
步骤 7:开发模式 + 浏览器验证(必需)
↓
步骤 8:构建与导出 → slide.html
如果未提供,询问用户项目文件夹:
您希望将此演示文稿保存在哪里?
默认:./presentation-name
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
创建文件夹结构:
mkdir -p <项目文件夹>/source <项目文件夹>/researches <项目文件夹>/verify
使用渐进式披露:每次询问 3-5 个问题,根据答案揭示更多内容。
详细问题流程请参见 context-guide.md。
阶段 1 - 快速开始(始终):
"演示文稿是关于什么的?"
"有任何要包含的内容或笔记吗?"(可选)
阶段 2 - 受众与目的(始终):
"谁将观看此演示文稿?"
- 高管 / 决策者
- 技术团队 / 开发人员
- 普通观众 / 混合受众
- 客户 / 外部人员
"目标是什么?"
- 告知 / 说服 / 演示 / 报告
阶段 3 - 风格探索(始终):
步骤 1:从用户处获取关键词
"用几个词描述一下氛围"
示例:"科技、现代、深色" 或 "专业、简洁、企业"
步骤 2:使用 ui-ux-pro-max 技能获取全面的设计建议
python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<主题> <关键词> presentation" --design-system -p "<演示文稿名称>"
这将提供:
步骤 3:结合 palettes.md 呈现 5 个选项 给用户的示例提示:
根据您的描述和设计分析,这里有 5 种风格选项:
1. **深蓝宝石蓝** (玻璃) - 由 ui-ux-pro-max 推荐
深色科技感,带有蓝色点缀,渐变发光
字体:Sora + Source Sans 3
最适合:科技产品、开发者工具
2. **城市电光之夜** (玻璃)
都市深色,带有鲜艳的蓝色高光
字体:DM Sans + Work Sans
最适合:现代 SaaS、科技初创公司
3. **赛博朋克** (玻璃)
霓虹色彩,未来科幻感
字体:Outfit + Nunito Sans
最适合:游戏、AI/ML、未来主题
4. **极简现代浅色** (扁平)
简洁的浅色主题,带有蓝色点缀
字体:DM Sans + Work Sans
最适合:企业、专业演示文稿
5. **黑客新闻** (玻璃)
深色背景,橙色点缀,极客美学
字体:Sora + Source Sans 3
最适合:开发者内容、技术演示
选择哪种风格?(1-5)
选择结果将记录在 context.md 的风格部分。
阶段 4 - 内容深度(条件性):
"要涵盖哪 3-5 个关键点?"
"有任何要包含的特定数据吗?"
- 是的,我有数据 → [获取详细信息]
- 需要研究 → [触发步骤 2.5]
- 不需要数据 → [跳过]
当用户给出模糊术语时,进行澄清:
| 用户说 | 询问 |
|---|---|
| "专业" | "简洁/极简,还是丰富/详细?" |
| "现代" | "能举个例子吗?" |
| "引人入胜" | "是动画,还是有吸引力的内容?" |
提问后,创建 context.md 记录:
来自阶段 1-2 的主题、目的、受众
来自阶段 3 的选定风格(调色板 ID、名称、风格类型)
来自阶段 4 的关键点和数据需求
研究前务必询问 - 应用即时研究模式。
在以下情况提供研究:
在以下情况跳过研究:
"这个主题将受益于研究。您希望我:
[ ] 研究当前数据/统计信息
[ ] 查找竞争性比较
[ ] 收集行业趋势
[ ] 跳过研究 - 我将提供内容"
1. 用户确认需要研究
↓
2. 进行有针对性的网络搜索
↓
3. 记录到 researches/ 文件夹
↓
4. 向用户呈现摘要:
"我发现了:[关键发现]。这看起来准确吗?"
↓
5. 用户确认 → 更新 context.md
请参见 research-templates.md 获取:
researches/
├── YYYY-MM-DD-statistics.md # 数据和数字
├── YYYY-MM-DD-comparison.md # A 与 B 分析
└── YYYY-MM-DD-trends.md # 行业趋势
在使用研究数据前:
研究后,更新 context.md 包含已验证的数据和来源。
创建包含完整设计系统和内容结构的 slides.md。详细模式请参见 slides-design.md。
使用 ui-ux-pro-max 技能获取全面的设计建议:
python3 skills/ui-ux-pro-max/scripts/search.py "<主题> <风格关键词>" --design-system -p "<演示文稿名称>"
示例:
python3 skills/ui-ux-pro-max/scripts/search.py "tech benchmark modern dark glass" --design-system -p "Claude Benchmark"
# [演示文稿标题]
## 设计系统
### 主题
- **调色板**: [来自 palettes.md 的主题 ID]
- **模式**: dark / light
- **风格**: glass / flat
### 颜色
| 标记 | 十六进制 | 用途 |
|-------|-----|-------|
| bg-base | #0f1c2e | 主背景 |
| primary-500 | #4d648d | 主强调色 |
| accent-500 | #3d5a80 | 对比强调色 |
| text-primary | #ffffff | 主文本 |
| text-secondary | #cee8ff | 辅助文本 |
### 字体
- **标题**: Sora(标题)
- **正文**: Source Sans 3(内容)
### 效果
- **卡片**: 玻璃效果,边框为 border-white/20
- **动画**: 交错显示(0.1 秒延迟)
- **背景**: 渐变发光 + 网格图案
---
## 幻灯片 1:主视觉
**类型**: Hero
**布局**: centered
**标题**: 主标题在此
**副标题**: 支持性标语
**背景**: 渐变发光(主色左上,强调色右下)
**动画**: 淡入 + 缩放(0.6 秒)
---
## 幻灯片 2:概述
**类型**: Content
**布局**: three-column
**标题**: 我们将涵盖的内容
**卡片**: 3 张卡片,玻璃风格
**要点**:
- [图标: Zap] 第一个关键点
- [图标: Shield] 第二个关键点
- [图标: Rocket] 第三个关键点
**动画**: 交错显示(0.1 秒)
---
## 幻灯片 3:详情
**类型**: Data
**布局**: stat-cards
**标题**: 关键指标
**统计数据**:
| 指标 | 数值 | 趋势 | 上下文 |
|--------|-------|-------|---------|
| 用户 | 10K+ | +25% | 月活跃用户 |
| 增长 | 40% | +15% | 同比增长 |
| NPS | 72 | +8 | 行业平均:45 |
**动画**: 数字递增计数
---
## 幻灯片 4:比较
**类型**: Comparison
**布局**: versus
**标题**: 正面比较
**比较**:
| 功能 | 选项 A | 选项 B |
|---------|----------|----------|
| 速度 | ✓ 快速 | ○ 中等 |
| 成本 | $99/月 | $149/月 |
| 支持 | 24/7 | 商务 |
**高亮**: 选项 A 在性能方面
---
## 幻灯片 5:总结
**类型**: Summary
**布局**: takeaways
**标题**: 关键要点
**要点**:
1. 第一个关键见解
2. 第二个关键见解
3. 第三个关键见解
**行动号召**: "开始使用" → [链接]
**动画**: 顺序淡入
| 类型 | 用途 | 布局 |
|---|---|---|
| Hero | 开场幻灯片 | centered, split, asymmetric |
| Content | 信息、要点 | single-column, two-column, icon-list |
| Data | 统计、指标 | stat-cards, chart-focus, dashboard |
| Comparison | 并排分析 | versus, feature-matrix, ranking |
| Timeline | 流程、路线图 | horizontal, vertical, milestone |
| Grid | 多张卡片 | 2x2, 2x3, bento |
| Quote | 推荐语 | centered, with-avatar |
| Summary | 结尾、行动号召 | takeaways, cta-focused |
| 场景 | 主题 | 风格 | 字体 |
|---|---|---|---|
| 科技/产品 | dark-sapphire-blue | glass | Sora + Source Sans 3 |
| 专业 | banking-website | flat | DM Sans + Work Sans |
| 创意 | cyberpunk 或 neon | glass | Outfit + Nunito Sans |
| 自然 | summer-meadow | flat | Manrope + Source Sans 3 |
| 极简 | black-and-white | flat | DM Sans + Work Sans |
呈现大纲以供确认:
## 演示文稿大纲
**标题**: [标题]
**主题**: [主题 ID] ([glass/flat] 风格)
**文件夹**: [项目文件夹]
**幻灯片**:
1. Hero - 标题和概述
2. Content - 关键点
3. Data - 指标/图表
4. Summary - 结论
**要创建的文件:**
- context.md ✓
- slides.md ✓
- source/ (React 项目)
- slide.html (最终输出)
**确认生成?**
复制模板并进行配置:
# 1. 复制模板
cp -r <技能路径>/assets/template/* <项目文件夹>/source/
# 2. 使用主题颜色更新 tailwind.config.js
# 3. 更新 index.html 标题
# 4. 使用演示文稿名称更新 App.jsx
基于 slides.md 内容生成每个幻灯片的 JSX 文件。
生成前,请阅读:
使用 vercel-react-best-practices 技能 进行 React 代码生成,以确保:
技术要求:
主题颜色(使用变量,不要硬编码):
风格选项:
glass 类或 bg-white/10 backdrop-blur-md border-white/20bg-bg-card shadow-sm border-border-default布局规则(关键):
⛔ 禁止:
h-screen, min-h-screen - 破坏布局h-fullslide-page 上添加额外内边距✅ 必需的结构:
<div className="slide-page">
{/* 背景 - 绝对定位 */}
<div className="absolute inset-0 pointer-events-none">...</div>
{/* 页眉 */}
<header className="relative z-10 mb-6 shrink-0">
<h1>标题</h1>
</header>
{/* 内容 - 自动填充剩余空间 */}
<div className="slide-content relative z-10">
{/* 网格/卡片放在这里 */}
</div>
</div>
网格布局:
grid-auto-fit grid-cols-2grid-auto-fit grid-1x3grid-auto-fit grid-2x2grid-auto-fit grid-2x3动画模式:
import { motion } from 'framer-motion';
// 交错容器
const container = {
hidden: { opacity: 0 },
show: { opacity: 1, transition: { staggerChildren: 0.1 } }
};
// 子项
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0 }
};
// 悬停效果
<motion.div whileHover={{ scale: 1.02 }}>...</motion.div>
文件命名: 01-hero.jsx, 02-overview.jsx 等。
生成所有幻灯片后更新 App.jsx:
// 在顶部添加导入
import Slide01 from './slides/01-hero';
import Slide02 from './slides/02-content';
// ...
// 更新 SLIDES 数组
const SLIDES = [Slide01, Slide02, ...];
// 更新 NAV_ITEMS 数组(用于导航标签)
const NAV_ITEMS = [
{ slideIndex: 0, label: 'Hero' },
{ slideIndex: 1, label: 'Content' },
// ...
];
// 更新 PRESENTATION_NAME
const PRESENTATION_NAME = '您的演示文稿标题';
导航功能:
模板包含快速跳转导航:
| 功能 | 如何使用 |
|---|---|
| 幻灯片圆点 | 点击底部中心的圆点(≤12 张幻灯片) |
| 数字键 | 按 1-9 跳转到第 1-9 张幻灯片 |
| 快速导航 | 按 G 或点击进度条打开网格选择器 |
| 菜单 | 点击汉堡菜单查看带标签的完整幻灯片列表 |
| 箭头 | ← → 键或点击箭头按钮 |
重要提示:在构建独立导出之前,务必在开发模式下验证幻灯片。这可以及早发现 UI、动画和交互问题。
详细验证程序请参见 browser-verification.md。
cd <项目文件夹>/source
npm install
npm run dev
# 服务器运行在 http://localhost:5173
检查 agent-browser 是否可用:
# 尝试运行 agent-browser
agent-browser --version
如果未安装,提示用户:
浏览器验证需要 agent-browser 技能。
使用以下命令安装:
npx skills add vercel-labs/agent-browser
然后重启 Claude Code 并重试。
# 在浏览器中打开演示文稿
agent-browser open http://localhost:5173
agent-browser set viewport 1920 1080
# 创建 verify 文件夹
mkdir -p <项目文件夹>/verify
# 捕获第一张幻灯片
agent-browser wait 2000
agent-browser screenshot <项目文件夹>/verify/slide-01.png
# 导航并捕获每张幻灯片
agent-browser press ArrowRight
agent-browser wait 1000
agent-browser screenshot <项目文件夹>/verify/slide-02.png
# ... 对所有幻灯片重复
| 检查项 | 方法 | 通过标准 |
|---|---|---|
| 布局 | 截取每张幻灯片截图 | 内容无溢出,间距合适 |
| 导航 | 按 ArrowRight/Left | 幻灯片过渡平滑 |
| 快速跳转 | 按 1-5 或 G 键 | 跳转到正确的幻灯片 |
| 幻灯片圆点 | 点击底部的圆点 | 导航正确(≤12 张幻灯片) |
| 动画 | 观察过渡效果 | 无卡顿,元素有动画效果 |
| 交互性 | 悬停元素 | 视觉反馈有效 |
| 响应式 | 更改视口 | 布局正确适应 |
布局问题:
动画问题:
交互问题:
如果发现问题:
仅在验证通过后,构建独立的 HTML:
cd <项目文件夹>/source
# 构建独立 HTML
npm run build:standalone
# 复制到项目根目录
cp dist-standalone/index.html ../slide.html
验证独立文件是否正常工作:
# 测试独立文件
agent-browser open file://<绝对路径>/slide.html
agent-browser set viewport 1920 1080
agent-browser screenshot <项目文件夹>/verify/final-standalone.png
# 快速导航测试
agent-browser press ArrowRight
agent-browser wait 500
agent-browser press ArrowLeft
最终输出:<项目文件夹>/slide.html
这个单一的 HTML 文件:
agent-browser close
当幻灯片需要自定义图像、图表或插图时,使用 ai-multimodal 技能。
何时使用:
工作流程:
source/public/images/<img src="/images/generated-image.png" />主题在 palettes.md 中定义。
快速推荐:
| 用户说 | 推荐 |
|---|---|
| "科技"、"现代" | dark-sapphire-blue (glass) |
| "专业"、"商务" | banking-website (flat) |
| "赛博朋克"、"霓虹" | cyberpunk (glass) |
| "自然"、"有机" | summer-meadow (flat) |
| "极简"、"简洁" | black-and-white (flat) |
请参见 principles.md 了解:
用户:"为 Claude 与 GPT 创建一个基准测试演示文稿"
Claude:"我将帮助创建基准测试幻灯片。
您希望将此演示文稿保存在哪里?
默认:./claude-benchmark"
用户:"好的"
Claude:"这个演示文稿是关于什么的?给我一个简短的描述。"
用户:"为我们的开发团队比较 Claude 和 GPT 的编码能力"
Claude:"谁将观看此演示文稿?
- 高管 / 决策者
- 技术团队 / 开发人员 ←
- 普通观众
- 客户"
用户:"技术团队"
Claude:"目标是什么?
- 告知 - 分享发现
- 说服 - 推荐一个模型
- 演示 - 展示能力
- 报告 - 呈现数据"
用户:"告知"
Claude:"用几个词描述一下氛围(例如:科技、现代、专业)"
用户:"科技、现代、深色、时尚"
Claude:[运行 ui-ux-pro-max: python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "AI benchmark tech modern dark presentation" --design-system]
Claude:"根据设计分析,这里有 5 种风格选项:
1. **深蓝宝石蓝** (玻璃) - 推荐
深色科技感,带有蓝色点缀,渐变发光
字体:Sora + Source Sans 3
最适合:科技产品、开发者工具
2. **城市电光之夜** (玻璃)
都市深色,带有鲜艳的蓝色高光
字体:DM Sans + Work Sans
最适合:现代 SaaS、科技初创公司
3. **深紫黑蓝** (玻璃)
深紫蓝色,赛博朋克底色
字体:Outfit + Nunito Sans
最适合:AI/ML、未来主题
4. **黑客新闻** (玻璃)
深色背景,橙色点缀,极客美学
字体:Sora + Source Sans 3
最适合:开发者内容、技术演示
5. **太空** (玻璃)
深空主题,金色点缀
字体:Manrope + Source Sans 3
最适合:创新、前瞻性主题
选择哪种风格?(1-5)"
用户:"1"
Claude:"已选择:深蓝宝石蓝 (玻璃),字体为 Sora + Source Sans 3"
Claude:"要涵盖哪 3-5 个关键点?"
用户:"编码能力、推理、上下文窗口、速度"
Claude:"这个主题将受益于当前的基准测试数据。
您希望我研究:
[ ] 当前基准测试统计信息
[ ] 模型比较数据
[ ] 跳过研究"
用户:"是的,研究当前的基准测试"
Claude:[为当前 AI 基准测试进行网络搜索]
Claude:"我发现了以下数据:
- Claude 在 HumanEval(编码)上得分为 92%
- GPT-4 在 HumanEval 上得分为 87%
- Claude 有 200K 上下文,GPT-4 有 128K
[来源:官方文档、研究论文]
这看起来准确吗?"
用户:"是的,使用这些数据"
Claude:[创建 ./claude-benchmark/ 文件夹结构]
Claude:[将研究保存到 ./claude-benchmark/researches/2026-01-29-benchmark-data.md]
Claude:[使用已验证数据创建 ./claude-benchmark/context.md]
Claude:[创建 ./claude-benchmark/slides.md]
Claude:"这是大纲:
## 演示文稿大纲
**标题**: Claude 与 GPT 编码基准测试
**主题**: dark-sapphire-blue (玻璃)
**幻灯片**:
1. Hero - 标题和模型概述
2. Framework - 评估方法
3. Task 1 - API 开发
4. Task 2 - React 组件
5. Task 3 - CLI 工具
6. Summary - 结果和建议
确认生成?"
用户:"好的"
Claude:[从模板创建 source/]
Claude:[生成 6 个幻灯片 JSX 文件]
Claude:[使用导入更新 App.jsx]
Claude:[启动开发服务器:npm run dev]
Claude:[打开浏览器:agent-browser open http://localhost:5173]
Claude:[验证每张幻灯片,拍摄截图]
Claude:"验证完成。所有幻灯片看起来都很好:
- 布局:✓ 无溢出问题
- 导航:✓ 箭头键有效
- 动画:✓ 平滑过渡
正在构建独立导出..."
Claude:[运行 npm run build:standalone]
Claude:[复制到 slide.html]
Claude:[对 slide.html 进行最终验证]
Claude:[关闭浏览器]
Claude:"演示文稿完成!
创建的文件:
- ./claude-benchmark/context.md
- ./claude-benchmark/researches/2026-01-29-benchmark-data.md
- ./claude-benchmark/slides.md
- ./claude-benchmark/source/ (React 项目)
- ./claude-benchmark/verify/ (验证截图)
- ./claude-benchmark/slide.html ← 在浏览器中打开此文件
打开 slide.html 查看您的演示文稿。"
| 参考 | 描述 |
|---|---|
| context-guide.md | 用于收集需求的渐进式披露问题流程 |
| research-templates.md | 用于统计、比较和趋势研究的模板 |
| slides-design.md | 设计系统模式、幻灯片类型、布局、动画 |
| browser-verification.md | 使用 agent-browser 进行浏览器测试 |
| aesthetics.md | 设计理念和视觉指南 |
| principles.md | 技术布局和组件规则 |
| palettes.md | 76 种颜色主题及使用指南 |
| 技能 | 用途 |
|---|---|
| vercel-react-best-practices | React 代码生成最佳实践(幻灯片 JSX 必需) |
| ui-ux-pro-max | 设计系统生成、字体、配色方案 |
| agent-browser | 导出前的浏览器验证 |
| ai-multimodal | 自定义图像/图表生成 |
每周安装次数
42
仓库
GitHub 星标数
3
首次出现
2026年2月2日
安全审计
安装于
codex39
gemini-cli38
opencode38
github-copilot37
kimi-cli35
amp35
Generate professional, interactive presentation slides with React + Tailwind.
Each slide project is organized in a dedicated folder:
<project-folder>/
├── context.md ← Collected knowledge and context from user
├── researches/ ← Research documents (when topic requires research)
│ └── YYYY-MM-DD-topic.md
├── slides.md ← Markdown slides for preview/discussion
├── source/ ← React source code (from template)
│ ├── package.json
│ ├── vite.config.js
│ ├── vite.standalone.config.js
│ ├── tailwind.config.js
│ ├── index.html
│ └── src/
│ ├── App.jsx
│ ├── index.css
│ └── slides/
│ ├── 01-hero.jsx
│ ├── 02-content.jsx
│ └── ...
├── verify/ ← Verification screenshots (from browser testing)
└── slide.html ← Final standalone HTML (auto-generated)
Step 1: Initialize Project Folder
↓
Step 2: Collect Requirements (Progressive Disclosure)
Phase 1: Topic → Phase 2: Audience → Phase 3: Style → Phase 4: Content
↓
Step 2.5: Research Checkpoint
"Would you like me to research [topic]?" → User confirms
↓
Step 3: Create context.md + slides.md
↓
Step 4: Confirm Outline with User
↓
Step 5: Create Source Code → source/
↓
Step 6: Generate Slides (parallel subagents)
↓
Step 7: Dev Mode + Browser Verification (REQUIRED)
↓
Step 8: Build & Export → slide.html
Ask user for project folder if not provided:
Where would you like to save this presentation?
Default: ./presentation-name
Create folder structure:
mkdir -p <project-folder>/source <project-folder>/researches <project-folder>/verify
Use progressive disclosure: ask 3-5 questions at a time, reveal more based on answers.
See context-guide.md for detailed question flow.
Phase 1 - Quick Start (Always):
"What's the presentation about?"
"Any content or notes to include?" (optional)
Phase 2 - Audience & Purpose (Always):
"Who will view this?"
- Executives / Decision makers
- Technical team / Developers
- General audience / Mixed
- Customers / External
"What's the goal?"
- Inform / Persuade / Demo / Report
Phase 3 - Style Discovery (Always):
Step 1 : Get keywords from user
"Describe the vibe in a few words"
Examples: "tech, modern, dark" or "professional, clean, corporate"
Step 2 : Use ui-ux-pro-max skill for comprehensive design recommendations
python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<topic> <keywords> presentation" --design-system -p "<Presentation Name>"
This provides:
Step 3 : Combine with palettes.md to present 5 options Example prompt to user:
Based on your description and design analysis, here are 5 style options:
1. **Dark Sapphire Blue** (glass) - Recommended by ui-ux-pro-max
Dark tech with blue accents, gradient glows
Typography: Sora + Source Sans 3
Best for: Tech products, developer tools
2. **Electric City Nights** (glass)
Urban dark with vibrant blue highlights
Typography: DM Sans + Work Sans
Best for: Modern SaaS, tech startups
3. **Cyberpunk** (glass)
Neon colors, futuristic sci-fi feel
Typography: Outfit + Nunito Sans
Best for: Gaming, AI/ML, futuristic topics
4. **Minimal Modern Light** (flat)
Clean light theme with blue accents
Typography: DM Sans + Work Sans
Best for: Corporate, professional presentations
5. **Hacker News** (glass)
Dark with orange accents, geek aesthetic
Typography: Sora + Source Sans 3
Best for: Developer content, technical demos
Which style? (1-5)
Selection is captured in context.md under Style section.
Phase 4 - Content Depth (Conditional):
"What are 3-5 key points to cover?"
"Any specific data to include?"
- Yes, I have data → [Get details]
- Research needed → [Trigger Step 2.5]
- No data needed → [Skip]
When users give vague terms, clarify:
| User Says | Ask |
|---|---|
| "Professional" | "Clean/minimal, or rich/detailed?" |
| "Modern" | "Can you point to an example?" |
| "Engaging" | "Animations, or compelling content?" |
After questions, create context.md capturing:
Topic, purpose, audience from Phase 1-2
Selected style (palette ID, name, style type) from Phase 3
Key points and data needs from Phase 4
Always ask before researching - apply Just-In-Time research pattern.
Offer research when:
Skip research when:
"This topic would benefit from research. Would you like me to:
[ ] Research current data/statistics
[ ] Find competitive comparisons
[ ] Gather industry trends
[ ] Skip research - I'll provide content"
1. User confirms research needed
↓
2. Conduct targeted web search
↓
3. Document in researches/ folder
↓
4. Present summary to user:
"I found: [key findings]. Does this look accurate?"
↓
5. User confirms → Update context.md
See research-templates.md for:
researches/
├── YYYY-MM-DD-statistics.md # Data and numbers
├── YYYY-MM-DD-comparison.md # A vs B analysis
└── YYYY-MM-DD-trends.md # Industry trends
Before using researched data:
After research, update context.md with verified data and sources.
Create slides.md with complete design system and content structure. See slides-design.md for detailed patterns.
Use ui-ux-pro-max skill to get comprehensive design recommendations:
python3 skills/ui-ux-pro-max/scripts/search.py "<topic> <style keywords>" --design-system -p "<Presentation Name>"
Example:
python3 skills/ui-ux-pro-max/scripts/search.py "tech benchmark modern dark glass" --design-system -p "Claude Benchmark"
# [Presentation Title]
## Design System
### Theme
- **Palette**: [theme-id from palettes.md]
- **Mode**: dark / light
- **Style**: glass / flat
### Colors
| Token | Hex | Usage |
|-------|-----|-------|
| bg-base | #0f1c2e | Main background |
| primary-500 | #4d648d | Primary accent |
| accent-500 | #3d5a80 | Contrast accent |
| text-primary | #ffffff | Main text |
| text-secondary | #cee8ff | Secondary text |
### Typography
- **Display**: Sora (headings)
- **Body**: Source Sans 3 (content)
### Effects
- **Cards**: glass with border-white/20
- **Animations**: stagger reveal (0.1s delay)
- **Background**: gradient glow + grid pattern
---
## Slide 1: Hero
**Type**: Hero
**Layout**: centered
**Title**: Main Title Here
**Subtitle**: Supporting tagline
**Background**: gradient glow (primary top-left, accent bottom-right)
**Animation**: fade-in + scale (0.6s)
---
## Slide 2: Overview
**Type**: Content
**Layout**: three-column
**Title**: What We'll Cover
**Cards**: 3 cards, glass style
**Points**:
- [icon: Zap] First key point
- [icon: Shield] Second key point
- [icon: Rocket] Third key point
**Animation**: stagger reveal (0.1s)
---
## Slide 3: Details
**Type**: Data
**Layout**: stat-cards
**Title**: Key Metrics
**Stats**:
| Metric | Value | Trend | Context |
|--------|-------|-------|---------|
| Users | 10K+ | +25% | Monthly active |
| Growth | 40% | +15% | Year over year |
| NPS | 72 | +8 | Industry avg: 45 |
**Animation**: count-up numbers
---
## Slide 4: Comparison
**Type**: Comparison
**Layout**: versus
**Title**: Head to Head
**Comparison**:
| Feature | Option A | Option B |
|---------|----------|----------|
| Speed | ✓ Fast | ○ Medium |
| Cost | $99/mo | $149/mo |
| Support | 24/7 | Business |
**Highlight**: Option A for performance
---
## Slide 5: Summary
**Type**: Summary
**Layout**: takeaways
**Title**: Key Takeaways
**Takeaways**:
1. First key insight
2. Second key insight
3. Third key insight
**CTA**: "Get Started" → [link]
**Animation**: fade-in sequential
| Type | Use For | Layouts |
|---|---|---|
| Hero | Opening slide | centered, split, asymmetric |
| Content | Information, bullets | single-column, two-column, icon-list |
| Data | Statistics, metrics | stat-cards, chart-focus, dashboard |
| Comparison | Side-by-side analysis | versus, feature-matrix, ranking |
| Timeline | Process, roadmap | horizontal, vertical, milestone |
| Grid | Multiple cards | 2x2, 2x3, bento |
| Quote | Testimonials | centered, with-avatar |
| Summary | Closing, CTA | takeaways, cta-focused |
| Scenario | Theme | Style | Typography |
|---|---|---|---|
| Tech/Product | dark-sapphire-blue | glass | Sora + Source Sans 3 |
| Professional | banking-website | flat | DM Sans + Work Sans |
| Creative | cyberpunk or neon | glass | Outfit + Nunito Sans |
| Nature | summer-meadow | flat | Manrope + Source Sans 3 |
| Minimal | black-and-white | flat | DM Sans + Work Sans |
Present the outline for confirmation:
## Presentation Outline
**Title**: [Title]
**Theme**: [theme-id] ([glass/flat] style)
**Folder**: [project-folder]
**Slides**:
1. Hero - Title and overview
2. Content - Key points
3. Data - Metrics/charts
4. Summary - Conclusions
**Files to create:**
- context.md ✓
- slides.md ✓
- source/ (React project)
- slide.html (final output)
**Confirm to generate?**
Copy template and configure:
# 1. Copy template
cp -r <skill-path>/assets/template/* <project-folder>/source/
# 2. Update tailwind.config.js with theme colors
# 3. Update index.html title
# 4. Update App.jsx with presentation name
Generate each slide JSX file based on slides.md content.
Before generating, read:
Use vercel-react-best-practices skill for React code generation to ensure:
Technical Requirements:
Theme Colors (use variables, not hardcoded):
Style Options:
glass class or bg-white/10 backdrop-blur-md border-white/20bg-bg-card shadow-sm border-border-defaultLayout Rules (CRITICAL):
⛔ FORBIDDEN:
h-screen, min-h-screen - breaks layouth-full on content wrappersslide-page✅ REQUIRED Structure:
<div className="slide-page">
{/* Background - absolute positioning */}
<div className="absolute inset-0 pointer-events-none">...</div>
{/* Header */}
<header className="relative z-10 mb-6 shrink-0">
<h1>Title</h1>
</header>
{/* Content - auto-fills remaining space */}
<div className="slide-content relative z-10">
{/* Grid/cards here */}
</div>
</div>
Grid Layouts:
grid-auto-fit grid-cols-2grid-auto-fit grid-1x3grid-auto-fit grid-2x2grid-auto-fit grid-2x3Animation Patterns:
import { motion } from 'framer-motion';
// Stagger container
const container = {
hidden: { opacity: 0 },
show: { opacity: 1, transition: { staggerChildren: 0.1 } }
};
// Child item
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0 }
};
// Hover effect
<motion.div whileHover={{ scale: 1.02 }}>...</motion.div>
File naming: 01-hero.jsx, 02-overview.jsx, etc.
Update App.jsx after all slides generated:
// Add imports at top
import Slide01 from './slides/01-hero';
import Slide02 from './slides/02-content';
// ...
// Update SLIDES array
const SLIDES = [Slide01, Slide02, ...];
// Update NAV_ITEMS array (used for navigation labels)
const NAV_ITEMS = [
{ slideIndex: 0, label: 'Hero' },
{ slideIndex: 1, label: 'Content' },
// ...
];
// Update PRESENTATION_NAME
const PRESENTATION_NAME = 'Your Presentation Title';
Navigation Features:
The template includes quick-jump navigation:
| Feature | How to Use |
|---|---|
| Slide dots | Click dots at bottom center (≤12 slides) |
| Number keys | Press 1-9 to jump to slides 1-9 |
| Quick nav | Press G or click progress bar to open grid picker |
| Menu | Click hamburger for full slide list with labels |
| Arrows | ← → keys or click chevron buttons |
IMPORTANT : Always verify slides in dev mode BEFORE building the standalone export. This catches UI, animation, and interaction issues early.
See browser-verification.md for detailed verification procedures.
cd <project-folder>/source
npm install
npm run dev
# Server runs at http://localhost:5173
Check if agent-browser is available:
# Try to run agent-browser
agent-browser --version
If not installed, prompt user:
Browser verification requires agent-browser skill.
Install with:
npx skills add vercel-labs/agent-browser
Then restart Claude Code and retry.
# Open presentation in browser
agent-browser open http://localhost:5173
agent-browser set viewport 1920 1080
# Create verify folder
mkdir -p <project-folder>/verify
# Capture first slide
agent-browser wait 2000
agent-browser screenshot <project-folder>/verify/slide-01.png
# Navigate and capture each slide
agent-browser press ArrowRight
agent-browser wait 1000
agent-browser screenshot <project-folder>/verify/slide-02.png
# ... repeat for all slides
| Check | How | Pass Criteria |
|---|---|---|
| Layout | Screenshot each slide | No content overflow, proper spacing |
| Navigation | Press ArrowRight/Left | Slides transition smoothly |
| Quick jump | Press 1-5 or G key | Jumps to correct slide |
| Slide dots | Click dots at bottom | Navigates correctly (≤12 slides) |
| Animations | Watch transitions | No jank, elements animate in |
| Interactive | Hover elements | Visual feedback works |
| Responsive | Change viewport | Layout adapts correctly |
Layout Problems:
Animation Problems:
Interaction Problems:
If issues found:
Only after verification passes , build the standalone HTML:
cd <project-folder>/source
# Build standalone HTML
npm run build:standalone
# Copy to project root
cp dist-standalone/index.html ../slide.html
Verify the standalone file works correctly:
# Test standalone file
agent-browser open file://<absolute-path>/slide.html
agent-browser set viewport 1920 1080
agent-browser screenshot <project-folder>/verify/final-standalone.png
# Quick navigation test
agent-browser press ArrowRight
agent-browser wait 500
agent-browser press ArrowLeft
Final output : <project-folder>/slide.html
This single HTML file:
agent-browser close
When slides require custom images, diagrams, or illustrations, use the ai-multimodal skill.
When to use:
Workflow:
source/public/images/<img src="/images/generated-image.png" />Themes are defined in palettes.md.
Quick recommendations:
| User says | Recommend |
|---|---|
| "Tech", "Modern" | dark-sapphire-blue (glass) |
| "Professional", "Business" | banking-website (flat) |
| "Cyberpunk", "Neon" | cyberpunk (glass) |
| "Natural", "Organic" | summer-meadow (flat) |
| "Minimal", "Clean" | black-and-white (flat) |
See principles.md for:
User: "Create a benchmark presentation for Claude vs GPT"
Claude: "I'll help create benchmark slides.
Where would you like to save this presentation?
Default: ./claude-benchmark"
User: "OK"
Claude: "What's this presentation about? Give me a brief description."
User: "Comparing Claude and GPT coding abilities for our dev team"
Claude: "Who will view this?
- Executives / Decision makers
- Technical team / Developers ←
- General audience
- Customers"
User: "Technical team"
Claude: "What's the goal?
- Inform - Share findings
- Persuade - Recommend one model
- Demo - Show capabilities
- Report - Present data"
User: "Inform"
Claude: "Describe the vibe in a few words (e.g., tech, modern, professional)"
User: "tech, modern, dark, sleek"
Claude: [Runs ui-ux-pro-max: python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "AI benchmark tech modern dark presentation" --design-system]
Claude: "Based on design analysis, here are 5 style options:
1. **Dark Sapphire Blue** (glass) - Recommended
Dark tech with blue accents, gradient glows
Typography: Sora + Source Sans 3
Best for: Tech products, developer tools
2. **Electric City Nights** (glass)
Urban dark with vibrant blue highlights
Typography: DM Sans + Work Sans
Best for: Modern SaaS, tech startups
3. **Purple Dark Black Blue** (glass)
Deep purple-blue, cyberpunk undertones
Typography: Outfit + Nunito Sans
Best for: AI/ML, futuristic topics
4. **Hacker News** (glass)
Dark with orange accents, geek aesthetic
Typography: Sora + Source Sans 3
Best for: Developer content, technical demos
5. **Space** (glass)
Deep space theme with gold accents
Typography: Manrope + Source Sans 3
Best for: Innovation, visionary topics
Which style? (1-5)"
User: "1"
Claude: "Selected: Dark Sapphire Blue (glass) with Sora + Source Sans 3"
Claude: "What are 3-5 key points to cover?"
User: "Coding ability, reasoning, context window, speed"
Claude: "This topic would benefit from current benchmark data.
Would you like me to research:
[ ] Current benchmark statistics
[ ] Model comparison data
[ ] Skip research"
User: "Yes, research current benchmarks"
Claude: [Conducts web search for current AI benchmarks]
Claude: "I found the following data:
- Claude scores 92% on HumanEval (coding)
- GPT-4 scores 87% on HumanEval
- Claude has 200K context, GPT-4 has 128K
[Sources: official docs, research papers]
Does this look accurate?"
User: "Yes, use that"
Claude: [Creates ./claude-benchmark/ folder structure]
Claude: [Saves research to ./claude-benchmark/researches/2026-01-29-benchmark-data.md]
Claude: [Creates ./claude-benchmark/context.md with verified data]
Claude: [Creates ./claude-benchmark/slides.md]
Claude: "Here's the outline:
## Presentation Outline
**Title**: Claude vs GPT Coding Benchmark
**Theme**: dark-sapphire-blue (glass)
**Slides**:
1. Hero - Title and model overview
2. Framework - Evaluation methodology
3. Task 1 - API development
4. Task 2 - React components
5. Task 3 - CLI tools
6. Summary - Results and recommendations
Confirm to generate?"
User: "OK"
Claude: [Creates source/ from template]
Claude: [Generates 6 slide JSX files]
Claude: [Updates App.jsx with imports]
Claude: [Starts dev server: npm run dev]
Claude: [Opens browser: agent-browser open http://localhost:5173]
Claude: [Verifies each slide, takes screenshots]
Claude: "Verification complete. All slides look good:
- Layout: ✓ No overflow issues
- Navigation: ✓ Arrow keys work
- Animations: ✓ Smooth transitions
Building standalone export..."
Claude: [Runs npm run build:standalone]
Claude: [Copies to slide.html]
Claude: [Final verification of slide.html]
Claude: [Closes browser]
Claude: "Presentation complete!
Files created:
- ./claude-benchmark/context.md
- ./claude-benchmark/researches/2026-01-29-benchmark-data.md
- ./claude-benchmark/slides.md
- ./claude-benchmark/source/ (React project)
- ./claude-benchmark/verify/ (verification screenshots)
- ./claude-benchmark/slide.html ← Open this in browser
Open slide.html to view your presentation."
| Reference | Description |
|---|---|
| context-guide.md | Progressive disclosure question flow for gathering requirements |
| research-templates.md | Templates for statistics, comparison, and trends research |
| slides-design.md | Design system patterns, slide types, layouts, animations |
| browser-verification.md | Browser testing with agent-browser |
| aesthetics.md | Design philosophy and visual guidelines |
| principles.md | Technical layout and component rules |
| palettes.md |
| Skill | Use For |
|---|---|
| vercel-react-best-practices | React code generation best practices (REQUIRED for slide JSX) |
| ui-ux-pro-max | Design system generation, typography, color palettes |
| agent-browser | Browser verification before export |
| ai-multimodal | Custom image/diagram generation |
Weekly Installs
42
Repository
GitHub Stars
3
First Seen
Feb 2, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
codex39
gemini-cli38
opencode38
github-copilot37
kimi-cli35
amp35
GitHub Actions 官方文档查询助手 - 精准解答 CI/CD 工作流问题
45,200 周安装
Cloudflare Agents SDK:构建AI驱动的自主智能体,支持可恢复流式传输与持久化状态
326 周安装
Snowflake平台技能:使用CLI、Cortex AI函数和Snowpark构建AI数据云应用
326 周安装
React + Cloudflare Workers 集成 Microsoft Entra ID 身份验证完整指南 | Azure Auth
327 周安装
Cloudflare Images 图像托管与转换 API 使用指南 | 支持 AI 人脸裁剪与内容凭证
328 周安装
Terraform Provider验收测试模式指南:使用plugin-testing与插件框架
72 周安装
Cloudflare MCP Server 教程:在Cloudflare Workers上构建远程模型上下文协议服务器
328 周安装
| 76 color themes with usage guide |