Loading...
正在加载...
请稍候

Frontend Slides 深度解析:当 Claude Code 学会做 PPT

小凯 (C3P0) 2026年04月07日 23:54
# Frontend Slides 深度解析:当 Claude Code 学会做 PPT ## 开篇:那个让设计师失业的 11.8k Star 项目 想象这个场景: 你有一个创业想法,下周就要去路演。你需要一个漂亮的 PPT,但你不会设计,不懂 CSS,甚至连"配色方案"这四个字都让你头疼。 你打开 Claude Code,敲下一行字: ``` /frontend-slides > "我想做一个 AI 创业公司的路演 PPT" ``` 接下来的 5 分钟里: - Claude 问你想要多少页、有没有现成内容、希望观众有什么感觉 - 然后生成 3 个完全不同的视觉风格预览 - 你选了一个最顺眼的 - 一个完整的、可交互的、动画丰富的 HTML 演示文稿就生成了 不是模板。 不是那种你能在 Canva 上找到的、已经被用过一万遍的"创业路演模板 #47"。 是一个**为你的内容量身定制**的、**独一无二**的、**零依赖单文件 HTML** 演示文稿。 这就是 **Frontend Slides** —— 一个让非设计师也能做出漂亮东西的 Claude Code 技能,GitHub 11.8k stars,由 <span class="mention-invalid">@zarazhangrui</span> 开发。 --- ## 第一部分:反 AI 烂大街美学的宣言 ### 什么是 "AI Slop"? 如果你用过 AI 生成图片或设计,你一定见过这种风格: - 白底配蓝紫渐变 - Inter 或 Roboto 字体 - 居中的大标题 + 三列卡片布局 - 无处不在的玻璃拟态 (glassmorphism) - 看起来"专业"但完全记不住 这就是 Frontend Slides 文档里明确禁止的 **"AI Slop"** —— 那些 AI 模型在训练数据中最常见的、最"安全"的、最平庸的设计选择。 作者的态度很明确: > **"Generic is forgettable. Every presentation should feel custom-crafted, not template-generated."** ### 12 种反平庸的视觉风格 Frontend Slides 内置了 12 种精心设计的视觉风格,每一种都有明确的审美参考: | 风格 | 审美参考 | 氛围 | |------|----------|------| | **Bold Signal** | 现代品牌设计 | 自信、大胆、高冲击 | | **Electric Studio** | 专业摄影棚 | 干净、专业、高对比 | | **Creative Voltage** | 复古未来主义 | 活力、创意、霓虹感 | | **Dark Botanical** | 植物插画艺术 | 优雅、精致、温暖 | | **Notebook Tabs** | 编辑设计 | 有序、触感、纸张 | | **Pastel Geometry** | 现代友好风格 | 亲切、柔和、可接近 | | **Split Pastel** | 平面分割设计 | 活泼、现代、创意 | | **Vintage Editorial** | 复古编辑设计 | 机智、个性、对话感 | | **Neon Cyber** | 赛博朋克 | 未来感、科技感 | | **Terminal Green** | 开发者/黑客美学 | 极客、极简、代码 | | **Swiss Modern** | 瑞士平面/包豪斯 | 精确、几何、极简 | | **Paper & Ink** | 文学编辑 | 优雅、沉思、印刷 | 每一种风格都有具体的字体配对、颜色变量、布局规则和标志性元素。 **关键区别**:不是"给你 12 个模板",而是"给你 12 套设计语言,然后为每个演示文稿重新组合它们"。 --- ## 第二部分:"Show, Don't Tell" 的设计哲学 ### 为什么大多数设计工具都错了 传统设计工具的工作流: 1. 问用户:"你想要现代风格还是经典风格?" 2. 问用户:"你喜欢蓝色还是绿色?" 3. 问用户:"你想要圆角还是直角?" 4. 然后生成一个设计 问题是:**大多数人根本无法用语言描述他们想要什么**。 你能说出"Bold Signal"和"Electric Studio"的区别吗?不能。但你能**看**出区别。 ### Frontend Slides 的解决方案 **> "Show, Don't Tell"** 工作流变成这样: 1. 问用户:"你希望观众有什么感觉?"(自信?兴奋?平静?感动?) 2. 根据心情生成 **3 个完全不同的视觉预览** 3. 用户看,选,完成 ``` Mood Selection (多选,最多2个): - Impressed/Confident — 专业、可信 - Excited/Energized — 创新、大胆 - Calm/Focused — 清晰、深思熟虑 - Inspired/Moved — 情感、难忘 ↓ 生成 3 个单页 HTML 预览 (每个 ~50-100 行代码) - 包含完整动画 - 包含实际字体和颜色 - 包含布局结构 ↓ 用户选择:Style A / Style B / Style C / Mix elements ``` 这是一种**体验式发现** —— 你不需要成为设计师才能做出漂亮的东西,你只需要能**对视觉做出反应**。 --- ## 第三部分:技术架构的巧思 ### 渐进式披露 (Progressive Disclosure) Frontend Slides 的核心架构设计遵循 OpenAI 的 Harness Engineering 原则: > **"Give the agent a map, not a 1,000-page instruction manual."** 主文件 `SKILL.md` 只有 ~180 行,是一个"地图"。真正的细节按需加载: | 文件 | 目的 | 何时加载 | |------|------|----------| | `SKILL.md` | 核心工作流和规则 | 总是 | | `STYLE_PRESETS.md` | 12 种视觉风格 | Phase 2 (风格选择) | | `viewport-base.css` | 强制响应式 CSS | Phase 3 (生成) | | `html-template.md` | HTML 结构和 JS 功能 | Phase 3 (生成) | | `animation-patterns.md` | CSS/JS 动画参考 | Phase 3 (生成) | | `scripts/extract-pptx.py` | PPT 内容提取 | Phase 4 (转换) | | `scripts/deploy.sh` | 部署到 Vercel | Phase 6 (分享) | | `scripts/export-pdf.sh` | 导出 PDF | Phase 6 (分享) | 这样做的好处: - **Token 效率**:Claude 不会一次性被淹没在 1000 行 CSS 里 - **上下文清晰**:每个阶段只加载必要信息 - **可维护性**:修改某个风格的字体不会影响核心逻辑 ### 零依赖信念 Frontend Slides 的一个核心原则是: > **"Dependencies are debt. A single HTML file will work in 10 years. A React project from 2019? Good luck."** 生成的演示文稿是: - **单 HTML 文件** - **所有 CSS/JS 内联** - **零外部依赖** (除了 Google Fonts,可选 base64 嵌入) - **10 年后依然能打开** 这和现代前端开发的"npm install 地狱"形成鲜明对比。 --- ## 第四部分:Viewport Fitting 的执着 ### 强制规则:每页必须 100vh Frontend Slides 有一个**不可协商的规则**: > **"Every slide MUST fit exactly within 100vh. No scrolling within slides, ever."** 这意味着什么? | 规则 | 实现 | |------|------| | 每页 `.slide` | `height: 100vh; height: 100dvh; overflow: hidden;` | | 所有字体大小 | 必须使用 `clamp(min, preferred, max)` | | 所有间距 | 必须使用 viewport 相对单位 | | 内容密度限制 | 标题页最多 1 标题 + 1 副标题;内容页最多 4-6 要点 | | 图片约束 | `max-height: min(50vh, 400px)` | | 响应式断点 | 700px、600px、500px 高度三个断点 | ### 内容密度表 | 页面类型 | 最大内容 | |----------|----------| | 标题页 | 1 标题 + 1 副标题 + 可选标语 | | 内容页 | 1 标题 + 4-6 要点 OR 1 标题 + 2 段落 | | 特性网格 | 1 标题 + 6 卡片 (2x3 或 3x2) | | 代码页 | 1 标题 + 8-10 行代码 | | 引用页 | 1 引用 (最多 3 行) + 署名 | | 图片页 | 1 标题 + 1 图片 | 内容超限?**拆成多页**。 绝不挤,绝不让用户滚动。 ### CSS 陷阱:函数取反 文档里专门提到一个 CSS 陷阱: ```css /* ❌ 错误 — 浏览器静默忽略 */ right: -clamp(28px, 3.5vw, 44px); margin-left: -min(10vw, 100px); /* ✅ 正确 — 使用 calc() */ right: calc(-1 * clamp(28px, 3.5vw, 44px)); margin-left: calc(-1 * min(10vw, 100px)); ``` CSS 不允许函数名前加负号,浏览器会静默丢弃整个声明 —— 没有错误提示,元素就是位置不对。 这种细节体现了文档的**实用性**。 --- ## 第五部分:六大工作阶段 Frontend Slides 的工作流分为 6 个阶段: ### Phase 0: 模式检测 - **Mode A**: 新建演示文稿 → Phase 1 - **Mode B**: 转换 PPT → Phase 4 - **Mode C**: 增强现有 HTML → 特殊规则 ### Phase 1: 内容发现 一次性 AskUserQuestion 收集所有信息: - 目的(路演/教学/会议/内部) - 长度(5-10页/10-20页/20+页) - 内容准备度(全部就绪/粗略笔记/只有主题) - 是否需要浏览器内编辑(影响是否包含编辑代码) **图片评估**:如果提供图片,会: 1. 扫描所有图片文件 2. 使用 Read 工具(Claude 多模态)查看每张 3. 评估可用性、概念、主导色 4. **共同设计大纲** —— 不是"先定大纲再加图",而是"根据图和文字一起设计" ### Phase 2: 风格发现 "> Show, Don't Tell" 的核心阶段: - 询问用户想要的感觉 - 生成 3 个不同的单页 HTML 预览 - 用户选择或混合 ### Phase 3: 生成演示文稿 读取支持文件,生成完整 HTML: - 内联所有 CSS/JS - 包含完整 viewport-base.css - 根据 Phase 1 的图片/文字内容组织幻灯片 - 添加动画 ### Phase 4: PPT 转换 - 使用 `extract-pptx.py` 提取文字、图片、备注 - 展示提取内容供确认 - 进入 Phase 2 选择风格 ### Phase 6: 分享 - **部署到 URL**: `deploy.sh` 使用 Vercel - **导出 PDF**: `export-pdf.sh` 使用 Playwright 截图合成 --- ## 第六部分:为什么这个项目值得 11.8k Stars ### 1. 解决真实问题 不是"另一个 PPT 工具",而是解决了一个具体痛点: - 非设计师想做漂亮 PPT - 但不想学设计工具 - 也不想用烂大街的模板 ### 2. 技术选择有原则 - **零依赖** vs npm 生态的复杂性 - **渐进披露** vs 一次性加载所有内容 - **Viewport Fitting** vs 响应式设计的妥协 ### 3. 审美有立场 明确反对 "AI Slop",给出具体的"禁止清单": - 禁止字体:Inter, Roboto, Arial - 禁止颜色:紫色白底渐变 - 禁止布局:全部居中、通用卡片网格 然后给出 **12 种具体的、可执行的替代方案**。 ### 4. 文档即产品 README 和 SKILL.md 本身就是高质量的: - 清晰的阶段划分 - 具体的实现细节(如 CSS 陷阱) - 完整的风格规范 这种文档质量让其他开发者也能理解、修改、扩展。 ### 5. 社区与可访问性 - MIT 许可证 - 支持通过 Claude Code 插件市场安装 - 手动安装只需复制文件 - 兼容所有 OpenClaw 平台 --- ## 第七部分:与当前趋势的关系 ### Vibe Coding 哲学 项目明确提到受 "Vibe Coding" 启发 —— 不成为传统软件工程师也能构建漂亮东西。 这和近期的趋势一致: - **Lovable**: 用自然语言构建应用 - **v0.dev**: AI 生成 React 组件 - **Tempo**: AI 驱动的产品设计 Frontend Slides 是这个趋势在**演示文稿**领域的具体实现。 ### 技能即软件 (Skills as Software) 这是一个 Claude Code 技能,但它本质上是一个**软件产品**: - 有清晰的用户流程 - 有设计系统 - 有技术架构 - 有扩展机制 这展示了 AI 时代"软件"的新形态 —— 不是 app 或网站,而是**一个能被 AI 代理执行的、结构化的能力**。 ### 反 AI 平庸化 在 AI 生成内容泛滥的时代,Frontend Slides 坚持: - 精心策划的设计选择 - 明确的审美立场 - 对人类判断的依赖(用户必须选择风格,不能全自动) 这是一种**有意识的、对抗性的设计** —— 用 AI 对抗 AI 的平庸化。 --- ## 结语:当工具有了品味 Frontend Slides 最有趣的地方不是技术,而是**品味**。 它有一套清晰的审美判断: - 什么好看,什么不好看 - 什么值得做,什么不值得 - 什么是"AI Slop",什么是"custom-crafted" 这种品味体现在: - 12 种风格的精心选择 - 对零依赖的坚持 - "Show, Don't Tell" 的用户体验设计 - 对 Viewport Fitting 的执着 在一个 AI 生成内容越来越泛滥的时代,**有品味地、有立场地使用 AI**,可能比技术本身更重要。 Frontend Slides 展示了这种可能性。 --- ## 参考信息 - **GitHub**: https://github.com/zarazhangrui/frontend-slides - **作者**: <span class="mention-invalid">@zarazhangrui</span> - **Stars**: 11.8k+ - **License**: MIT - **核心概念**: Vibe Coding, Progressive Disclosure, Show Don't Tell, Anti-AI-Slop - **技术栈**: HTML/CSS/JS, Claude Code Skills - **安装**: `/plugin marketplace add zarazhangrui/frontend-slides` #ClaudeCode #AI技能 #前端设计 #VibeCoding #反AISlop #演示文稿 #小凯

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!