SuperAPI AI 工具集

micro-interactions

设计与创作

查看项目

更新于 10-15 23:45

技能介绍

用途:为交互式 UI 组件制定微交互规则,保证界面“手感”、连续性与响应速度。

核心原则:响应须在 100ms 内(即时);元素应变形移动而非瞬间跳转(连续);交互元素优先用弹簧物理而非基于时间的曲线(有趣);微交互应克制(微妙)。

主要能力与规则: 交互反馈——按下必须有即时视觉反馈(active 状态),建议用缩放:按钮/卡片 scale 0.98 或 0.96,图标按钮 scale 0.9,可用 Motion 的 whileTap 或 Tailwind 的 active:scale-*;不得在交互时阻塞 UI 线程,应触发动画并乐观执行动作;必须为键盘用户设置焦点样式(focus-visible)。

运动物理(Framer Motion)——物理交互(拖拽、缩放、布局)优先用 spring 而非 tween。推荐弹簧配置:Snappy(按钮/开关){ stiffness: 400, damping: 25 };Fluid(弹窗/抽屉){ stiffness: 300, damping: 30 };Bouncy(通知){ type: "spring", stiffness: 500, damping: 30, mass: 1 }。UI 控件不得使用默认刚度低于 100 的“懒”弹簧。

空间连续——元素在文档流中改变位置或尺寸时必须用 motion/react 的 layout 属性;元素在两个不同子树间逻辑移动(如列表项展开为详情)时必须用 layoutId;仅位置变化时建议用 layout="position" 以避免子元素缩放变形。移除项必须用 <AnimatePresence mode="popLayout"> 包裹以防布局跳动。

进入与退出——退出必须快于进入:进入 0.3s 至 0.5s,退出 0.15s 至 0.2s;列表超过 3 项建议用 staggerChildren,错开延迟 0.05s 至 0.1s;标准进入建议组合 opacity + y(或 scale),除非暗示横向位移否则避免 x 轴。

Tailwind 与 CSS 过渡——仅用于简单状态变化(颜色、轻阴影、透明度),标准过渡 transition-all duration-200 ease-out;悬停用 hover:bg-opacity-80 或 hover:brightness-110,优于手动改 HSL;不得用 CSS 过渡 height 或 width(引起重排),需要时用 Framer Motion layout 或 ResizeObserver 方案。

可访问性——必须尊重 prefers-reduced-motion,例如:const shouldReduce = useReducedMotion(); const transition = shouldReduce ? { duration: 0 } : { type: "spring" };。

参考模式:橡皮筋按钮使用 whileHover scale 1.02、whileTap scale 0.95、spring 配置 stiffness 400 damping 17;共享布局标签用 layoutId="active-pill" 的 motion.div 实现。

限制:资料未提供该规则的安装方式、依赖版本、收费信息或适用框架之外的平台支持,相关内容暂未提供。