Motion
Animation should explain a change, and anything that does not explain something is delay.
Definition
Interface motion communicates relationships, continuity and state change. Every animation costs time, so its job is to make that time pay for itself by removing a question the user would otherwise have.
Craft convention. True because the industry converged on it. Breaking it costs familiarity, not correctness.
On this page
Durations that feel right
Broad guidance from platform design systems. Larger movements need longer durations.
| Change | Duration | Easing |
|---|---|---|
| Hover and focus | 80 to 120ms | Linear or ease-out. |
| Small state change, such as a toggle | 120 to 200ms | Ease-out. |
| Element entering | 200 to 300ms | Ease-out, so it decelerates into place. |
| Element leaving | 150 to 200ms | Ease-in, and faster than entering. |
| Full-screen transition | 300 to 400ms | Ease-in-out. |
| Anything above 500ms | Too slow for interface feedback | Reserve for narrative moments only. |
What motion is for
- Continuity: showing that an element became another element, so the user does not lose track of it.
- Spatial relationships: a panel sliding from the right teaches where it came from and where it returns to.
- Feedback: confirming that an action registered.
- Attention: drawing the eye to a genuine change, used sparingly because it overrides everything else.
- Progress: showing that work is happening.
Reduced motion done properly
.panel {
transition: transform 240ms cubic-bezier(0.2, 0, 0, 1),
opacity 180ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
.panel {
transition: opacity 120ms ease-out; /* keep the cue, drop the travel */
transform: none;
}
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}Feedback is preserved, movement is removed. Setting animation to none entirely can leave users without any confirmation that something happened.
In practice
Shared element transitions
NavigationAnimating a list item into a detail view makes the relationship explicit and removes the moment of disorientation that an instant swap produces.
Motion as decoration
A common failureElements fading in on scroll delay reading and add nothing. If removing the animation costs the user no understanding, it was never doing a job.
Sources
Where a source establishes something narrower than the popular reading of it, the note says so.
MDN Web Docs
Understanding Success Criterion 2.3.3: Animation from Interactions
W3C, WCAG 2.1
Continue from here
Each link says what the connection is, so you can tell a principle from an alternative from a thing people mix this up with.
Applies when you are designing
Applied through
Where this shows up as a concrete interface decision.
- CarouselComponent
- Drawer and SheetComponent
- Loading StatesPattern
- Skeleton ScreensPattern
Principles behind this
The reasoning this solution is an application of.
- Visibility of System StatusHeuristic
- Doherty ThresholdLaw
- FeedbackPrinciple
- Selective AttentionPsychology
Often used with
These usually appear in the same screen or the same decision.
- FramerTool
- Origami StudioTool
- ProtoPieTool
Short definition
The one-paragraph version, for when that is all you need.
Related concept
Connected closely enough to change how you apply this.
- Reduced MotionAccessibility
- Performance as User ExperienceUI foundation
- ShadowsUI foundation
- Visual StatesUI foundation