零依赖HTML演示文稿的革命性设计理念与技术架构
Frontend Slides 是一个由 @zarazhangrui 在 Claude Code 中创建的技能,专注于生成精美的、无依赖的、动画丰富的 HTML 演示文稿。
单个 HTML 文件,内联 CSS/JS,无 npm、无构建工具
生成预览让用户选择,而非抽象询问
一键转换现有 PowerPoint 文件
精选独特风格,避免通用 AI 美学
传统方案需要:React + npm + webpack + 各种库
Frontend Slides:单个 HTML 文件,内联 CSS/JS
主文件 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 | 动画参考 | Phase 3 |
/* 锁定 html/body 到视口 */
html, body {
height: 100%;
overflow-x: hidden;
}
html {
scroll-snap-type: y mandatory;
}
/* 每个幻灯片 = 精确视口高度 */
.slide {
width: 100vw;
height: 100vh;
height: 100dvh; /* 动态视口高度 */
overflow: hidden; /* 关键:禁止溢出 */
}
所有字体和间距必须使用 clamp():
--title-size: clamp(1.5rem, 5vw, 4rem);
--slide-padding: clamp(1rem, 4vw, 4rem);
传统方式:询问用户「你想要什么风格?」→ 用户难以用语言描述
Frontend Slides 方式:
| 幻灯片类型 | 最大内容 |
|---|---|
| 标题页 | 1标题 + 1副标题 + 可选标语 |
| 内容页 | 1标题 + 4-6个要点 |
| 特性网格 | 1标题 + 最多6个卡片 |
| 代码页 | 1标题 + 8-10行代码 |
| 引用页 | 1引用(最多3行) + 作者 |
| 图片页 | 1标题 + 1图片 |
明确禁止的通用 AI 模式:
推荐字体:Archivo Black, Manrope, Syne, Space Mono, Cormorant, Bodoni Moda, Fraunces 等
多维度断点处理不同设备:
/* 短视口 (< 700px) */
@media (max-height: 700px) { ... }
/* 很短视口 (< 600px) */
@media (max-height: 600px) { ... }
/* 极短视口 (< 500px) */
@media (max-height: 500px) { ... }
/* 窄视口 (< 600px) */
@media (max-width: 600px) { ... }
基于 Intersection Observer 的滚动触发动画:
/* 淡入+上滑动画 */
.reveal {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.6s var(--ease-out-expo),
transform 0.6s var(--ease-out-expo);
}
.slide.visible .reveal {
opacity: 1;
transform: translateY(0);
}
/* 延迟实现交错效果 */
.reveal:nth-child(1) { transition-delay: 0.1s; }
.reveal:nth-child(2) { transition-delay: 0.2s; }
.reveal:nth-child(3) { transition-delay: 0.3s; }
right: -clamp(28px, 3.5vw, 44px); 浏览器会静默忽略!
正确:right: calc(-1 * clamp(28px, 3.5vw, 44px));
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.2s !important;
}
html { scroll-behavior: auto; }
}
字体:Archivo Black + Space Grotesk
特色:橙色强调卡片、大号章节编号
字体:Manrope
特色:双面板垂直分割、高对比度
字体:Syne + Space Mono
特色:电蓝+霓虹黄、半色调纹理
字体:Cormorant + IBM Plex Sans
特色:抽象柔和渐变圆形、暖色点缀
字体:Bodoni Moda + DM Sans
特色:奶油纸卡、彩色标签、装订孔
字体:Plus Jakarta Sans
特色:柔和卡片、垂直药丸条
字体:Outfit
特色:双色垂直分割、网格图案
字体:Fraunces + Work Sans
特色:几何形状、编辑感排版
字体:Clash Display + Satoshi
特色:粒子背景、霓虹光晕
字体:JetBrains Mono
特色:扫描线、闪烁光标
字体:Archivo + Nunito
特色:可见网格、不对称布局
字体:Cormorant Garamond + Source Serif 4
特色:首字下沉、引言装饰
传统 PPT 工具让用户选择「风格」,而 Frontend Slides 让用户选择「感受」:
4种交互方式让编辑触手可及:
400ms 延迟防止悬停链断裂,导出时自动剥离编辑状态。
通过生成单页预览让用户「所见即所得」选择:
.claude-design/slide-previews/| 维度 | create-ppt | Frontend Slides |
|---|---|---|
| 输出格式 | HTML (.pptx.html) | 纯 HTML |
| 依赖 | 无外部依赖 | 零依赖 |
| 设计选择 | 模板预设 | 情绪+视觉预览 |
| 响应式 | 基础 | 深度视口适配 |
| 动画 | CSS 动画 | 完整动画系统 |
| PPT 转换 | 手动 | 脚本自动化 |
| 内联编辑 | 无 | 完整实现 |
| 分享方式 | 本地打开 | Vercel 部署 + PDF 导出 |
内容超限自动拆分,永不滚动
4种情绪对应不同风格组合
3个预览供用户选择
多维度断点处理不同设备
reveal 类 + 延迟 + 缓动曲线
一处修改全局生效
明确禁止通用模式
按需读取支持文件
多交互方式 + 状态管理
避免通用字体倾向
Frontend Slides 展示了一种全新的演示文稿创建范式:
这个项目不仅仅是技术实现,更是一种设计理念的体现:「帮助非设计师创作出令人惊艳的作品」。