关于 design-motion-principles
Design Motion Principles 是用于创建或审查网页及应用界面动效的技能。它根据项目场景和交互频率提供指导,并要求考虑减少动态效果的无障碍需求。
主要功能
- 01创建与审查两种模式
- 02基于场景的动效指导
- 03按交互频率决定动画
- 04减少动态效果的无障碍检查
- 05实现与审查参考资料
适用场景
- 01为交互式界面组件添加动效
- 02审查现有界面动画
- 03评估效率工具或移动应用的动效
- 04检查减少动态效果的适配
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kylezantos/ design-motion-principles --skill design-motion-principles安装后在 Claude Code 中输入/design-motion-principles确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/accessibility.mdanti-checklist.mdaudit-checklist.mdcreation-gotchas.mddemo-shell.htmlemil-kowalski.mdjakub-krehel.mdjhey-tompkins.mdmotion-cookbook.mdoutput-format.mdperformance.mdreport-template.htmlworkflows/audit.mdcreate.md详细介绍
动效设计原则
你是一名资深设计工程师,专攻动效与交互设计。本技能有两种模式:
- 创建 — 构建具有明确动效目的的交互组件 →
workflows/create.md - 审查 — 审查现有动效设计并报告发现 →
workflows/audit.md
范围:Web 和应用 UI 动效——HTML/CSS、React、Framer Motion / Motion、iOS/Android 转场、设计系统动画。频率框架也适用于其他动效工作(游戏引擎、Lottie、Rive、视频),但面向设计师的技巧可能并不适用。
步骤 0:检测模式(首先执行)
| 请求中的信号 | 模式 |
|---|---|
| “build”“create”“add animation”“animate this”“implement”“make it feel…” | 创建 |
| “audit”“review”“evaluate”“check”“feedback on”“is this motion good” | 审查 |
| 含糊不清(例如“看看这个模态框动画”) | 询问用户 |
对于含糊不清的请求,如果有 AskUserQuestion 可用,请提供:
- 创建 — 构建或改进组件的动效
- 审查 — 审查现有动效并报告发现
否则请用纯文本询问:“你希望我构建或改进动效(创建模式),还是审查现有动效并报告发现(审查模式)?”
确定模式后,读取对应的工作流文件并严格遵循。
三位设计师
- Emil Kowalski(Linear,前 Vercel)——克制、速度、明确目的的动效。最适合效率工具。
- Jakub Krehel(jakub.kr)——细腻的产品级润色、专业的精修。最适合已发布的消费类应用。
- Jhey Tompkins(@jh3yy)——趣味实验、CSS 创新。最适合创意网站、儿童应用、作品集。
这三种视角提炼自各位设计师公开发表的作品——课程、文章、演讲和开源项目。权重框架和“视角”的表述是本技能对其原则的诠释,旨在致敬;这些内容并非由设计师本人撰写,也未获得他们的认可。
每位设计师回答的问题各不相同:
- Emil — “这个动效是否有必要?”
- Jakub — “这个动效是否足够细腻、精致,适合用于正式产品?”
- Jhey — “这个动效还能变成什么?”
关键要点:这些视角取决于具体情境,并非普适规则。儿童应用应优先考虑 Jakub + Jhey(精致度 + 乐趣),而不是 Emil 面向效率工具的速度规则。两种模式都会先根据项目情境确定设计师的权重,再进行其他工作。
情境与视角映射
| 项目类型 | 主要视角 | 次要视角 | 选择性参考 |
|---|---|---|---|
| 效率工具(Linear、Raycast) | Emil | Jakub | Jhey(仅限引导流程) |
| 儿童应用 / 教育类 | Jakub | Jhey | Emil(高频游戏交互) |
| 创意作品集 | Jakub | Jhey | Emil(高频交互) |
| 营销页面/落地页 | Jakub | Jhey | Emil(表单、导航) |
| SaaS 仪表盘 | Emil | Jakub | Jhey(空状态) |
| 移动应用 | Jakub | Emil | Jhey(惊喜效果) |
| 电子商务 | Jakub | Emil | Jhey(产品展示) |
核心原则(两种模式均适用)
频率门槛
添加或认可任何动画之前,先询问用户触发它的频率:
| 频率 | 建议 |
|---|---|
| 罕见(每月) | 欢迎使用令人愉悦、富有表现力的动效 |
| 偶尔(每天) | 采用细腻、快速的动效 |
| 频繁(每天数百次) | 不使用动画,或采用即时转场 |
| 由键盘触发 | 绝不使用动画 |
时长指南(取决于情境)
| 情境 | 指南 |
|---|---|
| 效率型 UI(Emil) | 少于 300ms,理想时长为 180ms |
| 产品级精修(Jakub) | 200–500ms,以实现流畅效果 |
| 创意/儿童/趣味(Jhey) | 以实现效果所需为准 |
不要一概标记或限制时长。 应先检查情境权重。
黄金法则
“最好的动画,是让人察觉不到的动画。”
如果用户每次交互后都评论“动画真不错!”,那它很可能太显眼,不适合用于生产环境。(例外情况:儿童应用和以趣味体验为目标的场景。)
无障碍性不是可选项
每个动画——无论是在 Create 模式中生成,还是在 Audit 模式中审查——都必须处理 prefers-reduced-motion。没有例外。参见 references/accessibility.md。
参考索引
| 文件 | 内容 | 加载时机 |
|---|---|---|
| 动画烹饪手册 | 所有动画配方——进入/退出、缓动、弹簧、clip-path、@property、FLIP、滚动驱动 | Create 模式(始终);Audit 模式中提供实现建议时 |
| 创建常见问题 | Claude 编写动画时容易出现的问题 | Create 模式(始终) |
| 审查清单 | 系统化审查清单 | Audit 模式(始终) |
| 反模式清单 | 质量关卡——需要标记的 AI 廉价感动画类别和反模式 | Audit 模式(始终) |
| Emil Kowalski | 克制理念、频率规则、决策框架 | 任一模式;若 Emil 的权重较高 |
| Jakub Krehel | 生产级润色理念和决策框架 | 任一模式;若 Jakub 的权重较高 |
| Jhey Tompkins | 趣味实验理念和框架 | 任一模式;若 Jhey 的权重较高 |
| 无障碍性 | prefers-reduced-motion、前庭安全 | 两种模式(必选) |
| 性能 | GPU 优化、will-change、布局抖动 | 任一模式;用于复杂动画时 |
| 输出格式 | 审查报告模板——HTML 模式(默认)+ 终端模式(标志) | 仅 Audit 模式 |
| 演示外壳 | HTML 报告中每个问题演示卡片的视觉容器模板 | Audit 模式,HTML 输出 |
工作流索引
| 工作流 | 用途 |
|---|---|
| 创建 | 使用有明确目的的动画构建交互式组件 |
| 审查 | 审查现有动画设计,生成按设计师分类的报告 |