Motion System

owl-listener/designer-skills/design-systems/skills/motion-system

作者 owl-listener9a6930cf84a8無授權條款2.8K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫4 週前更新

Define motion tokens — durations, easing vocabulary, and reduced-motion handling — for consistency product-wide. Use when standardising motion across a system. For crafting one specific animation, use `animation-principles` (interaction-design).

僅含說明Design & Creative
AI 產生的概覽

定義產品層級的動態設計權杖:時長刻度、緩動詞彙、編排規則與減少動態處理。

功能
此技能引導代理將動態定義為系統化的設計權杖層,而非零散的動畫。它會產生命名的時長與緩動權杖詞彙、協同動畫的編排規則、減少動態的處理指引,以及 CSS 自訂屬性與權杖匯出流程的實作說明。內容也涵蓋為每個產品定義動態原則與最佳實務。
適用情境
適用於在設計系統或產品範圍內統一動態,讓設計與工程之間的動畫決策保持一致。適合處理權杖詞彙、減少動態的無障礙處理,以及共用的動態語言。若要製作某個特定動畫,此技能建議改用其他做法。
執行需求
不需要指令碼或工具,僅為說明性內容。套用其產出時假定已有設計權杖流程以及 CSS 自訂屬性或其他平台的對等權杖,但無須安裝或設定任何憑證。

Motion System

You are an expert in defining motion as a systematic design token layer, not a collection of one-off animations.

What You Do

You define the motion vocabulary for a product — duration scales, easing curves, choreography rules, and accessibility handling — so animation decisions are consistent, purposeful, and implementable by any team.

Why a Motion System

Without a system, animation decisions are made ad hoc: each component has its own duration and easing, transitions feel inconsistent, and there's no shared language between design and engineering. A motion system makes animation decisions as deliberate as color or type choices.

Duration Tokens

Define a small set of named duration values. Example scale:

TokenValueUse
duration-instant50msState changes that must feel immediate (checkbox tick, toggle)
duration-fast100msSmall element transitions (tooltip appear, chip dismiss)
duration-normal200msDefault for most transitions (dropdown open, focus ring)
duration-moderate300msMedium element transitions (modal entry, panel slide)
duration-slow400msPage-level transitions, complex choreography
duration-deliberate600msIntentionally paced, high-emphasis moments (onboarding reveal)
Don't create more tokens than you have distinct use cases. 4–6 values is usually enough.

Easing Tokens

Define named easing curves mapped to semantic use cases:

TokenCurveUse
ease-standardcubic-bezier(0.2, 0, 0, 1)Most UI transitions — elements moving between states
ease-deceleratecubic-bezier(0, 0, 0.2, 1)Elements entering the screen
ease-acceleratecubic-bezier(0.3, 0, 1, 0.3)Elements leaving the screen
ease-springspring / cubic-bezier(0.34, 1.56, 0.64, 1)Playful or tactile interactions (FAB expand, drawer bounce)
ease-linearlinearLooping animations only (progress spinners, shimmer)

Choreography Rules

When multiple elements animate together:

  • Stagger: related elements entering together stagger by 30–50ms; lead with the most important
  • Coordination: elements in the same semantic group use the same duration and easing
  • Sequence total: total duration of a staggered sequence should not exceed 500ms
  • Direction consistency: if elements slide in from the right, related outgoing elements slide out to the left

Reduced Motion

The prefers-reduced-motion: reduce media query must be handled at the system level, not component by component:

  • Disable: remove sliding, scaling, and rotation animations
  • Replace: substitute instant state changes or simple opacity fades (opacity transitions are generally acceptable)
  • Preserve: keep animations that convey essential state information (loading spinners, progress)
  • Token approach: define a duration-instant (0ms or 1ms) override for all duration tokens under reduced-motion, applied globally

Implementation

  • Define duration and easing values as CSS custom properties (or platform-equivalent tokens)
  • Apply reduced-motion overrides at the :root level within a prefers-reduced-motion query
  • Document each token with: name, value, use case, and a live example
  • Include motion tokens in the design token export pipeline — they should live alongside color and spacing tokens

Motion Principles (to define per product)

Every product's motion system should be grounded in 3–5 principles:

  • Example: "Purposeful — every animation communicates a state change or relationship"
  • Example: "Quick — UI motion is never slow; we respect users' time"
  • Example: "Physical — motion follows natural physics; decelerate on entry, accelerate on exit"
  • Example: "Accessible — all motion respects user preferences and never causes discomfort"

Best Practices

  • Start with fewer tokens and add only when a new use case genuinely doesn't fit existing values
  • Test all motion on low-powered devices — what's smooth in design tools can be janky in production
  • Include motion in design QA checklists alongside color and spacing
  • Document what should NOT animate as clearly as what should — not everything moves

來源與署名

來源:owl-listener/designer-skills位於design-systems/skills/motion-system提交9a6930c

授權條款: 無授權條款

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

檢舉或申請下架