Agent Skills
返回列表
🎨

Forge 动效设计

设计多媒体 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/forge-motion-imk4。

技能介绍

动效设计的常见问题

工程师在实现界面动效时,常陷入两种误区:要么是追求视觉炫酷的「装饰性动画」,既增加性能负担又干扰用户认知;要么是忽略交互反馈的「功能性缺失」,导致操作与结果脱节。此外,复杂的动效编排还常伴随性能问题(如频繁触发布局重绘)、可访问性缺失(未适配 prefers-reduced-motion)及跨技术栈混用冲突(如 GSAP 与 Framer Motion 在同一组件混用)。这些问题不仅降低用户体验,更可能导致业务逻辑混乱与开发维护成本激增。

技能的核心能力与工作逻辑

1. 动效哲学:意义优先的决策框架

技能以「动效是沟通而非装饰」为核心理念,要求每个动画前必须回答三个问题:

  • 传递何种状态变化(如加载完成、验证失败)
  • 移除动画是否损害理解(若答案为否则删除)
  • 是否适配 prefers-reduced-motion(必须尊重系统偏好)

通过四层动效层级划分明确优先级:功能性动效(加载、过渡)始终存在,反馈性动效(按钮按压、拖拽确认)实时响应,上下文动效(列表交错、共享元素)需编排等级≥4时启用,环境动效(粒子、网格)需编排等级≥7时启用。

2. 物理驱动的动效实现规范

  • 弹簧物理优先:交互元素仅使用弹簧动画(如 Framer Motion 的 useReducedMotion 检测替代瞬时透明度变化),非交互环境元素允许使用 cubic-bezier(0.16, 1, 0.3, 1) 缓动函数。
  • 技术栈分层实践:

- Framer Motion:提供页面过渡、列表交错揭示、磁性按钮、共享元素过渡等交互模式
- GSAP:专用于滚动叙事、全页序列及 Canvas 背景,需在编排等级≥9时启用,且严禁与 Framer Motion 混用
- Three.js:仅限英雄区 Canvas 背景、3D 产品展示、数据地球可视化,需遵循顶点数≤300k(移动端)、使用 BufferGeometry、合并静态几何体等性能规则

3. 性能与可维护性保障

技能内置严格的性能检查清单,包括:

  • 仅动画化 transform 和 opacity
  • 动画结束后移除 will-change: transform
  • 所有 GSAP 实例在 useEffect 清理时销毁
  • Three.js 渲染器在清理时释放
  • 持续动画封装为独立的 React.memo 组件
  • 同时通过 CSS 媒体查询和 Framer Motion 的 useReducedMotion() 适配减少动效偏好

适用边界与注意事项

  • 技术栈隔离原则:GSAP 与 Framer Motion 严禁在同一组件混用,Three.js 仅用于高视觉冲击力场景
  • 移动端适配限制:Three.js 场景需遵守顶点数限制,GPU 性能低于阈值时降级为静态图像
  • 编排等级对应:不同复杂度的动效需对应不同的编排等级(上下文动效≥4,环境动效≥7,GSAP≥9,Three.js=10)
  • 可访问性强制要求:所有动画必须同时通过 CSS 媒体查询和 JS 钩子适配 prefers-reduced-motion

该技能更适合需要精细化交互反馈、复杂动效编排或数据可视化场景的产品,而非简单界面的装饰性动画。通过哲学指导、物理驱动的实现规范与严格的性能约束,帮助工程师构建既具表现力又符合工程标准的动效系统。

使用场景

  • 为 SaaS 产品做页面切换时,需要区分功能性过渡与装饰性环境动效,避免动画干扰用户认知。
  • 开发复杂的数据可视化大屏时,需在 GPU 性能受限的移动端设备上实现 WebGL 自动降级为静态图像。
  • 构建带滚动叙事的营销落地页时,需在 GSAP 与 Framer Motion 之间做出明确技术栈隔离,防止组件冲突。

适合人员

  • 负责高保真产品原型的交互设计师,需要在向工程师交付规范时明确动效的层级与物理弹簧参数。
  • 主攻沉浸式网页的前端工程师,需要处理滚动叙事编排与 WebGL 渲染性能瓶颈,确保低端设备的流畅度。
  • 追求极致细节体验的全栈开发者,需要在组件树中严格管理 GSAP 与 Framer Motion 的实例生命周期,避免内存泄漏。