基于 Animation Vocabulary 动画术语表,为界面生成动效代码,并自动识别项目中的目标组件文件、读取代码结构、应用动效修改(包括导入、props、包装等),同时处理性能与可访问性约束。使用场景包括 UI 动效设计、原型标注、开发实现、设计验收、提示词优化。
界面动效生成技能是一项面向实际任务的技能,主要用于触发场景(何时应该使用本技能);强烈推荐使用的情况(高匹配度) :;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
强烈推荐使用的情况(高匹配度):
可以尝试使用的情况:
明确不触发 / 不适合使用本技能的情况:
最佳适用环境:
framer-motion + Tailwind CSSsrc/components/、app/ 等标准位置,且文件可读写支持但效果递减:
硬性限制(本技能永远无法做到):
使用建议:
始终使用文档定义的 11 类术语、提示词公式和验收清单,避免模糊描述(如“丝滑”“高级”)。
让 对象 在 触发时机 使用 动画模式,从 起始状态 到 结束状态,持续 时长,使用 缓动 / 弹簧参数,并满足 性能与可访问性约束。
| 类别 | 关注点 | 典型词汇 |
|---|---|---|
| 进入与退出 | 元素出现/消失 | Fade, Slide, Scale, Pop, Reveal |
| 编排与时序 | 多元素节奏 | Stagger, Delay, Duration, Keyframes, Tween |
| 移动与变换 | 几何变化 | Translate, Scale, Rotate, Skew, Perspective |
| 状态转场 | 状态连接 | Crossfade, Morph, Shared Element, Layout Animation |
| 滚动 | 滚动绑定 | Scroll Reveal, Parallax, View Transition |
| 反馈与交互 | 用户操作回应 | Hover, Press, Drag, Ripple, Shake |
| 缓动 | 速度曲线 | Ease-out, Ease-in-out, Cubic-bezier, Spring |
| 弹簧动画 | 物理参数 | Stiffness, Damping, Mass, Velocity, Interruptible |
| 循环与环境 | 自动播放 | Loop, Pulse, Float, Marquee, Idle |
| 精修与效果 | 细节 polish | Blur, Skeleton, Number Ticker, Line Drawing |
| 性能与原则 | 流畅与意义 | FPS, will-change, Purposeful, Reduced Motion, Spatial Consistency |
当用户请求为界面添加动效时,遵循以下完整流程:
使用专业术语澄清需求
应用 11 类术语和提示词公式,明确动画模式、触发时机、时长、缓动/弹簧、性能约束。
探索项目结构,定位目标组件
使用 Glob、Grep 等工具搜索相关文件,遵循以下优先级规则:
src/components/、components/、app/ 下的文件pages/、根目录下的零散组件**/*{Button,Card,List,Modal,Page}*.{tsx,jsx,ts,js},再用 Grep 按组件名精确过滤确定具体目标元素与修改点
分析需求对应哪个元素(按钮、卡片列表、模态、路由转场等),决定是添加 motion props、包装 motion 组件、还是实现 layout animation。
读取目标文件
读取候选文件内容,理解现有结构、导入、样式系统(Tailwind / CSS Modules / styled-components 等)。
检测技术栈与依赖
package.json,识别包管理器(pnpm / npm / yarn)和已安装动画相关依赖(framer-motion、@react-spring/web、gsap 等)。pnpm add framer-motionnpm install framer-motionyarn add framer-motion生成适配实现方案
根据检测到的技术栈输出精准代码:
motion.div、whileTap、animate、layouttransform + opacityDry-run 预览与用户确认(关键安全步骤)
在实际写入文件前,必须输出以下内容供用户确认:
应用修改到项目文件
仅在用户明确批准后执行:
import { motion } from 'framer-motion')@media (prefers-reduced-motion: reduce))运行设计验收清单(见下节)并确认修改。
输出总结:说明使用了哪些术语、修改了哪些文件、为什么这样设计。
.patch 文件供用户应用。pnpm add / npm install 命令。transform + opacity,避免动画 width/height/left/top。详细的各框架代码模式、Reduced Motion 完整实现、依赖检测清单见 reference.md。
输入:为主按钮添加点击 press feedback
流程示例:
src/components/Button.tsx 和 src/components/PrimaryButton.tsxsrc/components/Button.tsx最终修改结果(已写入文件):
// src/components/Button.tsx
import { motion } from 'framer-motion'
export function Button({ children, ...props }) {
return (
{children}
)
}
使用的术语:Press feedback、Spring、Interruptible、Reduced Motion
输入:卡片列表进入视口时依次出现
流程示例:
**/*Card*.tsx、**/*List*.tsxsrc/components/FeatureList.tsx最终修改结果(已写入文件):
// src/components/FeatureList.tsx
import { motion } from 'framer-motion'
const cardVariants = {
hidden: { opacity: 0, y: 12 },
visible: { opacity: 1, y: 0 }
}
{mockData.map((item, index) => (
...
))}
使用的术语:Scroll Reveal、Stagger、Ease-out
输入:点击缩略图平滑展开为详情页
流程示例:
src/app/gallery/[id]/page.tsx 和缩略图组件最终修改结果(已写入文件):
// 缩略图组件navigateToDetail(id)} /> // 详情页
使用的术语:Shared Element Transition、Layout Animation、Spatial Consistency
完整词汇表与判断依据见原 Notion 文档:Animation Vocabulary 动画术语整理
好的 UI 动画不是装饰,而是给变化装上路标:让用户知道发生了什么、从哪里来、要到哪里去。
useReducedMotion hook)。package.json → 判断包管理器 → 输出精确安装命令 → 在 reference.md 中查找对应实现模式。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.5万人学习