用途
Spring Physics 是一个关于物理弹簧动画的专家知识技能,目标是帮助开发者实现自然、有机、遵循真实物理规律的运动效果,从而带来令人愉悦的用户体验。当用户希望动画呈现“自然”“有弹性”“有机”的感觉,或需要动画响应灵敏、富有生命力时,可以启用该技能。它同样适用于拖拽交互、需要可被自然打断的动画、手势驱动的界面,以及为特定品牌个性调校动画“手感”的场景。
主要能力
该技能围绕弹簧动力学展开。弹簧模拟真实物理,运动由三个参数决定:
- 刚度(Stiffness):弹簧的紧/快程度,越高越干脆。
- 阻尼(Damping):阻力大小,越高弹跳越少。
- 质量(Mass):物体重量,越高动量越大。
参数组合的直观规律:高刚度 + 低阻尼 = 弹跳;高刚度 + 高阻尼 = 干脆;低刚度 + 高阻尼 = 迟缓;低刚度 + 低阻尼 = 摇晃。
技能覆盖两大主流弹簧库的用法:
- Framer Motion:通过
transition中的type: 'spring'配置stiffness、damping,也支持基于时长的弹簧(duration与bounce,其中 bounce 为 0 表示无弹跳、1 表示非常弹)。 - React Spring:通过
useSpring的config配置mass、tension(类似刚度)、friction(类似阻尼),并提供config.default、config.gentle、config.wobbly、config.stiff、config.slow、config.molasses等预设。
技能还提供参数调校的视觉化参考:刚度从 100(缓慢柔和)到 1000(极快近乎瞬时),阻尼从 5(非常弹跳、多次振荡)到 100(阻尼很强、感觉迟缓),质量从 0.5(轻、响应快)到 2(重、动量更大)。
使用方式
技能给出了按使用场景推荐的默认配置,例如:微交互(按钮、开关){ stiffness: 500, damping: 35 };页面过渡与模态框 { stiffness: 300, damping: 30 };拖拽 { stiffness: 400, damping: 40 };提示框与弹出层 { stiffness: 600, damping: 40 };加载指示 { stiffness: 200, damping: 20 };趣味界面 { stiffness: 300, damping: 15 };专业/企业风格 { stiffness: 400, damping: 45 };移动端/触控界面 { stiffness: 350, damping: 30 }。
常见模式包括:
- 可中断弹簧:使用
useSpring,弹簧会自然处理中断。 - 弹簧链(交错弹簧):使用 React Spring 的
useTrail实现列表项依次入场。 - 手势驱动弹簧:结合
useMotionValue与useSpring,让元素平滑跟随拖拽。 - 速度感知弹簧:结合
useVelocity与useTransform,根据速度产生倾斜等效果。
技能还按品牌个性给出参数方案:企业/专业(stiffness: 400, damping: 45, mass: 1,感觉可靠、可信、高效);趣味/消费(stiffness: 300, damping: 15, mass: 0.8,感觉有趣、吸引人、令人愉悦);奢华/高端(stiffness: 150, damping: 25, mass: 1.2,感觉优雅、精致、考究);金融/精密(stiffness: 500, damping: 40, mass: 1,感觉准确、响应快、可信)。
技能识别的文件模式包括:含弹簧配置的 **/*.tsx、**/hooks/use*Spring*.ts、**/animations/springs.ts、含 @react-spring/web 导入的文件,以及使用 type: "spring" 的 Framer Motion 文件。
适用场景
适合 React/TypeScript 前端项目中需要自然弹跳动效、拖拽与手势交互、可中断动画,以及需要针对品牌气质调校动画手感的场景。
限制
资料未提供该技能的安装命令、收费方式、平台支持范围或具体效果数据,这些信息暂未提供。