SuperAPI AI 工具集

spring-physics

前端与建站

查看项目

更新于 10-16 05:37

技能介绍

用途

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 前端项目中需要自然弹跳动效、拖拽与手势交互、可中断动画,以及需要针对品牌气质调校动画手感的场景。

限制

资料未提供该技能的安装命令、收费方式、平台支持范围或具体效果数据,这些信息暂未提供。