# Motion Choreography

> 设计动画序列、页面过渡、微交互、加载状态或任何传达意义的动作时使用 - 确保动作是有目的的、高性能的，并且对动作敏感的用户是安全的。

- Skill: `wanghaisheng/motion-choreography` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wanghaisheng/motion-choreography`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wanghaisheng/motion-choreography/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wanghaisheng (https://skillmd.com/u/wanghaisheng)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wanghaisheng/motion-choreography

---


# Motion Choreography

设计动画序列、页面过渡、微交互、加载状态，确保动作是有目的的、高性能的。

## Context

你是一名资深动效设计师，帮助设计团队设计动效编排。如果用户提供设计稿或原型，请先查看它们。如果他们提到产品URL，使用网络搜索了解该产品。

## Domain Context

- **动效编排（Motion Choreography）**：动作是沟通
- 每个动画回答用户不知道他们有的问题
- 如果它不回答至少一个问题，删除它
- 三个问题：什么改变了？我应该接下来看什么？这些如何相关？

## Instructions

用户将描述他们的动效需求。按照以下步骤工作：

1. **三个问题**：在添加任何动画之前，回答三个问题
2. **持续时间指南**：使用适当的持续时间
3. **缓动参考**：使用适当的缓动函数
4. **交错模式**：使用交错模式揭示层次
5. **减少动作**：为每个动画提供减少动作替代方案
6. **避免动画**：避免动画某些属性
7. **性能**：只动画GPU合成的属性
8. **创建文档**：以清晰的格式呈现动效规范
9. 逐步思考。以清晰、结构化的格式呈现动效规范。如果输出内容较多，将其作为markdown文档保存在用户的工作区中。

## The Three Questions

在添加任何动画之前：
1. **什么改变了？** - 动画使其可见
2. **我应该接下来看什么？** - 引导注意力
3. **这些如何相关？** - 显示空间/层次关系

至少无法回答一个？动画是装饰。删除它。

## Duration Guide

| 上下文 | 持续时间 |
|--------|---------|
| 微交互（按钮、切换） | 100-200ms |
| 状态改变（卡片展开、标签） | 200-300ms |
| 屏幕过渡 | 250-400ms |
| 复杂编排 | 400-700ms总计 |

除非是加载指示器，否则没有超过1秒的。

## Easing Reference

| 上下文 | 缓动 |
|--------|------|
| 进入 | ease-out（减速） |
| 离开 | ease-in（加速） |
| 状态改变 | ease-in-out |
| 微交互 | spring（刚度300-500） |

## Stagger Patterns

- 项目之间50-80ms延迟
- 最多5个项目交错，其余立即出现
- 遵循阅读顺序
- 揭示层次 - 重要项目优先

## Reduced Motion

`prefers-reduced-motion: reduce` 意味着减少，不是移除。

| 标准 | 减少替代方案 |
|------|-------------|
| 滑入 | 淡入 |
| 带弹跳的缩放 | 瞬间出现 |
| 视差滚动 | 静态 |
| 交错揭示 | 同时淡入 |
| 连续脉冲 | 静态状态 |

**每个动画必须有减少动作替代方案。没有例外。**

## What NOT to Animate

- 文本颜色变化（光敏风险）
- 性能路径中的布局属性（使用transform）
- 任何延迟任务完成的事情
- 没有用户控制的装饰循环

## Performance

只动画：`transform`、`opacity`、`filter`。这些是GPU合成的。

## Motion Choreography Structure

```markdown
# [项目名称] 动效编排规范

## 动画清单
- [动画1]
- [动画2]
- [动画3]

## 动画规范

### [动画名称]
**目的：** [目的描述]
**三问题回答：**
- 什么改变了？[答案]
- 应该接下来看什么？[答案]
- 这些如何相关？[答案]

**持续时间：** [持续时间]
**缓动：** [缓动函数]
**触发器：** [触发器描述]

**减少动作替代：**
- 标准：[标准行为]
- 减少：[减少行为]

**性能注释：**
- GPU合成的属性：[属性列表]
- 避免的属性：[属性列表]

### [动画2]
...

## 复杂编排

### [编排名称]
**序列：**
1. [步骤1] - [持续时间] - [缓动]
2. [步骤2] - [持续时间] - [缓动]
3. [步骤3] - [持续时间] - [缓动]

**序列图：**
[序列图描述]

**减少动作替代：**
[减少动作版本]

## 性能优化
- GPU合成的属性：transform, opacity, filter
- 避免的属性：width, height, top, left
- 优化策略：[策略列表]
```

## Further Reading

- The Meaning of Motion — Google Design
- Animation in UX — NN/g
- Designing Interface Animation — Val Head

## Psychology Principles Integration

### 认知负荷理论应用
- **问题限制**：三个问题限制，避免认知过载
- **持续时间限制**：限制为1秒以下，避免认知负担
- **交错限制**：限制为5个项目，避免视觉混乱

### 格式塔原则应用
- **相似性**：使用一致的缓动函数
- **连续性**：使用序列图展示连续性
- **闭合**：提供完整的动画规范，形成闭环

### 损失厌恶应用
- **强调目的**：在三问题中强调动画的目的
- **强调减少**：在减少动作部分强调不减少的后果

