Responsive Adaptive

dylantarre/animation-principles/skills/10-by-time-scale/responsive-adaptive

作者 dylantarre83597134ba8f無授權條款99 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫9 個月前更新

Use when building context-dependent animations - duration that changes based on device, distance, user preference, or interaction context

AI 產生的概覽

指導自適應動畫時長,依裝置、距離、使用者偏好與互動情境調整持續時間。

功能
此技能為建立依情境而定的動畫時長提供指引,涵蓋以自適應方式套用的迪士尼動畫原則,以及依距離、裝置與偏好調整時長的策略。它提供 CSS 與 JavaScript 範例、情境規則表,以及搭配媒體查詢的權杖化實作模式。產出的是指引說明,而非產生的檔案或程式成品。
適用情境
適用於定義需要隨裝置能力、移動距離、減少動態效果偏好或互動類型而變化的動畫或轉場時長。適合單一固定時長在不同情境下都不合適的前端工作。
執行需求
除代理程式外無需其他條件;僅為指示性內容,不隨附指令碼。

Responsive & Adaptive Timing

Responsive timing adapts duration to context: device capability, travel distance, user preferences, and interaction type. One duration doesn't fit all situations.

Disney Principles for Adaptive Motion

Context-Aware Application

Squash & Stretch: Scale with device - more subtle on mobile (less screen real estate for deformation).

Anticipation: Shorter on touch devices - touch users expect faster response than mouse users.

Staging: Adapt to viewport - smaller screens need more focused staging, less simultaneous motion.

Straight Ahead/Pose to Pose: Same approach, scaled duration - poses stay, timing adjusts.

Follow Through: Proportional to distance - longer travel = more follow-through time.

Slow In/Slow Out: Adjust curve intensity - faster animations need sharper easing.

Arcs: Same paths, different speeds - arc shape remains, traversal time changes.

Secondary Action: Reduce on mobile - fewer simultaneous animations for performance.

Timing: THE adaptive variable - timing changes, principles stay.

Exaggeration: Less on smaller screens - proportional to viewport/element size.

Solid Drawing: Performance-aware - reduce 3D transforms on weaker devices.

Appeal: Context-appropriate - what feels right on desktop may feel slow on mobile.

Adaptive Strategies

Distance-Based Duration

css
/* Base duration for reference distance */--base-duration: 300ms;--base-distance: 100px;
/* Duration scales with distance *//* 50px travel = 200ms, 200px travel = 450ms */
javascript
function getDuration(distance) {  const baseDuration = 300;  const baseDistance = 100;  return Math.min(600, baseDuration * Math.sqrt(distance / baseDistance));}

Device-Based Duration

css
/* 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; }}

Preference-Based Duration

css
/* 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 */  }}

Context Rules

ContextDuration Adjustment
Touch device-25% from desktop
Small viewport-20% from desktop
Large travel distance+50% base
Small travel distance-30% base
User prefers reducedInstant or minimal
Low power mode-50% or disabled
High-frequency actionUse minimum duration
First-time viewFull duration
Repeat interactionReduced duration

Implementation Pattern

css
: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;  }}

Key Insight

Great animation adapts like typography adapts - what works at one size/context may not work at another. Build systems, not fixed values. Test across contexts. Duration is a variable, not a constant.

來源與署名

來源:dylantarre/animation-principles位於skills/10-by-time-scale/responsive-adaptive提交8359713

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架