mcpField
R
responsive-adaptive

responsive-adaptive

github.com/dylantarre设计与 UI132495 次安装43 周前更新
代码仓库

关于 responsive-adaptive

一项根据设备、移动距离、用户偏好和交互情境调整动画时长的设计技能。它提供 CSS 和 JavaScript 模式,在保留动画原则的同时改变时序。

主要功能

  1. 01按情境调整动画时序
  2. 02按移动距离缩放时长
  3. 03按设备调整时长
  4. 04支持减少动态效果偏好
  5. 05CSS 与 JavaScript 模式

适用场景

  1. 01为触屏设备调整过渡效果
  2. 02根据移动距离调整动效
  3. 03适配减少动态效果偏好
  4. 04为重复交互调整时序

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dylantarre/animation-principles --skill responsive-adaptive

安装后在 Claude Code 中输入/responsive-adaptive确认已加载。

详细介绍

响应式与自适应时长

响应式时长会根据上下文调整时长:设备性能、移动距离、用户偏好和交互类型。没有一种时长适用于所有情况。

迪士尼动画原则与自适应运动

根据上下文应用

挤压与拉伸:根据设备缩放——在移动设备上更加微妙(可供形变的屏幕空间更小)。

预备动作:在触控设备上缩短——触控用户期望比鼠标用户更快地得到响应。

演出布局:适配视口——小屏幕需要更聚焦的演出布局,减少同时发生的运动。

直线动作/姿势到姿势:采用相同方法,按比例调整时长——姿势保持不变,调整时序。

跟随动作与重叠动作:与距离成正比——移动距离越长,跟随动作所需时间越长。

慢入/慢出:调整曲线强度——动画越快,缓动越陡。

弧线运动:路径相同,速度不同——弧线形状保持不变,移动时间随之变化。

次要动作:在移动设备上减少——减少同时进行的动画以提升性能。

时序:唯一需要自适应的变量——时序会变化,原则保持不变。

夸张:在小屏幕上减少——根据视口/元素尺寸按比例调整。

扎实绘制:考虑性能——在性能较弱的设备上减少 3D 变换。

吸引力:适合上下文——在桌面设备上感觉恰当的效果,在移动设备上可能会显得缓慢。

自适应策略

基于距离的时长
/* Base duration for reference distance */
--base-duration: 300ms;
--base-distance: 100px;

/* Duration scales with distance */
/* 50px travel = 200ms, 200px travel = 450ms */
function getDuration(distance) {
  const baseDuration = 300;
  const baseDistance = 100;
  return Math.min(600, baseDuration * Math.sqrt(distance / baseDistance));
}
基于设备的时长
/* Desktop - full duration */
.transition { transition-duration: 400ms; }

/* Tablet - slightly faster */
@media (max-width: 1024px) {
  .transition { transition-duration: 350ms; }
}

/* Mobile - faster for perceived responsiveness */
@media (max-width: 768px) {
  .transition { transition-duration: 250ms; }
}
基于偏好的时长
/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .transition {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* Reduce motion, don't eliminate */
@media (prefers-reduced-motion: reduce) {
  .transition {
    transition-duration: 100ms;
    transform: none; /* Only opacity fades */
  }
}

上下文规则

上下文时长调整
触控设备比桌面设备缩短 25%
小视口比桌面设备缩短 20%
长距离移动基础时长增加 50%
短距离移动基础时长减少 30%
用户偏好减少动态效果即时或尽可能短
低电量模式减少 50% 或禁用
高频操作使用最短时长
首次查看完整时长
重复交互缩短时长

实现模式

:root {
  --duration-instant: 50ms;
  --duration-fast: 150ms;
  --duration-normal: 300ms;
  --duration-slow: 500ms;
}

@media (max-width: 768px) {
  :root {
    --duration-fast: 100ms;
    --duration-normal: 200ms;
    --duration-slow: 350ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-instant: 0ms;
    --duration-fast: 0ms;
    --duration-normal: 100ms;
    --duration-slow: 150ms;
  }
}

关键要点

优秀的动画会像排版一样自适应——在一种尺寸/上下文中有效的效果,换一种情况可能就不再适用。构建系统,而不是固定值。在不同上下文中进行测试。时长是一个变量,而不是常量。

评论

支持 Markdown