# Frontend Slides

> 从零开始或通过转换 PowerPoint 文件创建令人惊叹、动画丰富的 HTML 演示文稿（Presentations）。适用于用户想要构建演示文稿、将 PPT/PPTX 转换为 Web 页面或为演讲/路演创建幻灯片（Slides）的场景。通过视觉探索而非抽象选择，帮助非设计师发掘其审美偏好。

- Skill: `gabrielmoreira/frontend-slides-4` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add gabrielmoreira/frontend-slides-4`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gabrielmoreira/frontend-slides-4/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: gabrielmoreira (https://skillmd.com/u/gabrielmoreira)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/gabrielmoreira/frontend-slides-4

---


# 前端幻灯片（Frontend Slides）

创建零依赖、动画丰富且完全在浏览器中运行的 HTML 演示文稿。

灵感来源于 [zarazhangrui](https://github.com/zarazhangrui) 作品中所展示的视觉探索方法。

## 何时激活

- 创建演讲稿、路演包（Pitch Deck）、工作坊课件或内部演示文稿
- 将 `.ppt` 或 `.pptx` 幻灯片转换为 HTML 演示文稿
- 改进现有 HTML 演示文稿的布局、动态效果或排版
- 与尚不确定设计偏好的用户一起探索演示风格

## 核心原则（不可逾越）

1. **零依赖（Zero dependencies）**：默认使用内联 CSS 和 JS 的自包含（Self-contained）单 HTML 文件。
2. **强制视口适配（Viewport fit）**：每张幻灯片必须适配单个视口（Viewport），严禁内部滚动。
3. **展示而非言传（Show, don't tell）**：使用视觉预览，而非抽象的风格调查问卷。
4. **独特设计（Distinctive design）**：避免通用的紫色渐变、白底 Inter 字体等模板感过强的设计。
5. **生产级质量（Production quality）**：保持代码注释清晰、具备可访问性（Accessible）、响应式且性能良好。

在生成之前，请阅读 `STYLE_PRESETS.md` 以获取视口安全 CSS 基准、密度限制、预设目录和 CSS 注意事项。

## 工作流（Workflow）

### 1. 检测模式（Detect Mode）

选择一条路径：
- **新演示文稿**：用户已有主题、笔记或完整草稿
- **PPT 转换**：用户持有 `.ppt` 或 `.pptx` 文件
- **增强（Enhancement）**：用户已有 HTML 幻灯片并希望进行改进

### 2. 发现内容（Discover Content）

仅询问最少必要信息：
- 目的：路演、教学、会议演讲、内部更新
- 长度：短（5-10 页）、中（10-20 页）、长（20+ 页）
- 内容状态：已完成的文案、粗略笔记、仅有主题

如果用户已有内容，请在设计样式前要求其粘贴。

### 3. 发现风格（Discover Style）

默认采用视觉探索方式。

如果用户已知所需的预设（Preset），则跳过预览并直接使用。

否则：
1. 询问幻灯片应营造的感觉：震撼（Impressed）、活力（Energized）、专注（Focused）、启发（Inspired）。
2. 在 `.ecc-design/slide-previews/` 中生成 **3 个单页幻灯片预览文件**。
3. 每个预览必须是自包含的，清晰展示排版/颜色/动态效果，且幻灯片内容保持在 100 行以内。
4. 询问用户保留哪个预览或混合哪些元素。

在将情绪映射到风格时，请参考 `STYLE_PRESETS.md` 中的预设指南。

### 4. 构建演示文稿（Build the Presentation）

输出以下之一：
- `presentation.html`
- `[presentation-name].html`

仅当演示文稿包含提取的或用户提供的图像时，才使用 `assets/` 文件夹。

必要结构：
- 语义化的幻灯片部分（Slide Sections）
- 来自 `STYLE_PRESETS.md` 的视口安全 CSS 基准
- 用于主题值的 CSS 自定义属性
- 用于键盘、滚轮和触摸导航的演示文稿控制器类
- 用于揭示动画（Reveal Animations）的 Intersection Observer
- 减弱动态效果（Reduced-motion）支持

### 5. 强制视口适配（Enforce Viewport Fit）

将其视为严格的准入门槛。

规则：
- 每个 `.slide` 必须使用 `height: 100vh; height: 100dvh; overflow: hidden;`
- 所有字体和间距必须使用 `clamp()` 进行缩放
- 当内容不适配时，拆分为多张幻灯片
- 严禁通过将文本缩小到可读尺寸以下来解决溢出问题
- 严禁在幻灯片内部出现滚动条

使用 `STYLE_PRESETS.md` 中的密度限制和强制性 CSS 代码块。

### 6. 验证（Validate）

在以下尺寸检查完成的幻灯片：
- 1920x1080
- 1280x720
- 768x1024
- 375x667
- 667x375

如果浏览器自动化工具可用，请使用它来验证没有幻灯片溢出且键盘导航正常工作。

### 7. 交付（Deliver）

交付时：
- 删除临时预览文件，除非用户希望保留
- 在有用时使用相应平台的打开命令打开演示文稿
- 总结文件路径、所用预设、幻灯片数量以及简易的主题自定义点

为当前操作系统使用正确的打开命令：
- macOS: `open file.html`
- Linux: `xdg-open file.html`
- Windows: `start "" file.html`

## PPT / PPTX 转换

对于 PowerPoint 转换：
1. 优先使用带有 `python-pptx` 的 `python3` 来提取文本、图像和备注。
2. 如果 `python-pptx` 不可用，询问是否安装或回退到手动/基于导出的工作流。
3. 保留幻灯片顺序、演讲者备注和提取的资产（Assets）。
4. 提取后，运行与新演示文稿相同的风格选择工作流。

保持转换的跨平台性。当 Python 可以胜任时，不要依赖仅限 macOS 的工具。

## 实现要求（Implementation Requirements）

### HTML / CSS

- 除非用户明确要求多文件项目，否则使用内联 CSS 和 JS。
- 字体可来自 Google Fonts 或 Fontshare。
- 偏好氛围感背景、强大的排版层级和清晰的视觉方向。
- 使用抽象形状、渐变、网格、噪点和几何图形，而非插图。

### JavaScript

包含：
- 键盘导航
- 触摸 / 滑动导航
- 鼠标滚轮导航
- 进度指示器或幻灯片索引
- 进入视图时的揭示动画触发器（Reveal-on-enter animation triggers）

### 可访问性（Accessibility）

- 使用语义化结构（`main`, `section`, `nav`）
- 保持对比度清晰可读
- 支持纯键盘导航
- 尊重 `prefers-reduced-motion`

## 内容密度限制（Content Density Limits）

除非用户明确要求更密集的幻灯片且仍保持可读性，否则请遵循以下最大值：

| 幻灯片类型 | 限制 |
|------------|-------|
| 标题 | 1 个主标题 + 1 个副标题 + 可选的标语 |
| 内容 | 1 个标题 + 4-6 个要点或 2 个短段落 |
| 功能网格 | 最多 6 个卡片 |
| 代码 | 最多 8-10 行 |
| 引用 | 1 个引用 + 出处 |
| 图像 | 1 张受视口约束的图像 |

## 反模式（Anti-Patterns）

- 缺乏视觉特性的通用创业公司风格渐变
- 使用系统字体（除非是有意的社论风格）
- 长篇累牍的要点列表（Bullet walls）
- 需要滚动的代码块
- 在短屏幕上会崩溃的固定高度内容框
- 无效的负值 CSS 函数，如 `-clamp(...)`

## 相关 ECC 技能（Related ECC Skills）

- `frontend-patterns`：用于幻灯片的组件和交互模式
- `liquid-glass-design`：当演示文稿有意借用 Apple 玻璃拟态美学时
- `e2e-testing`：如果需要对最终幻灯片进行自动化浏览器验证

## 交付清单（Deliverable Checklist）

- 演示文稿可通过本地文件在浏览器中运行
- 每张幻灯片适配视口且无需滚动
- 风格独特且具有设计感
- 动画有意义而非噪音
- 尊重减弱动态效果（Reduced motion）设置
- 交付时已说明文件路径和自定义点

