Home Motion
Motion
Motion should explain change or focus attention , not decorate. Gelium is 0-JS-first: most UI works without animation. When motion exists, it must respect user preference and stay tokenized.
Sources
When to move
ID
Use motion
Example
MOTION-FEEDBACK
Brief confirmation of an action
Toast enter/exit
MOTION-STATE
Show expand/collapse or open/close
Disclosure, dialog presence
MOTION-NAV
Optional continuity between peer views
Same-document VT when supported
MOTION-NONE
Default
Static forms, tables, most admin CRUD
When not to move
Decorative loops on content the user is trying to read.
Large parallax or continuous animation without an essential purpose.
Motion that is the only way to understand state (always pair with text/structure).
Ignoring prefers-reduced-motion: reduce — under reduce, snap or skip non-essential motion.
Implementation rules (Gelium)
Prefer CSS + tokens (--ui-motion-short, etc.) over ad-hoc durations.
Honor prefers-reduced-motion in CSS and any JS enhancement.
Dialogs/toasts may animate lightly; duration stays short .
Never block task completion on an animation finishing.
View transitions are progressive enhancement only.
Anti-patterns
Page-load animation on every navigation in a dense admin.
Error shake as the only error indicator (still need text + FEED-VAL).
Custom cubic-beziers per screen instead of tokens.
Checklist
Is this MOTION-FEEDBACK, STATE, NAV, or NONE?
What is the reduced-motion behavior?
Which token duration/easing?
Does the UI still work with JS off and motion off?
See also
Previous
Density
Next
Why Gelium