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 plate
Reach for this when
- Designing transitions between states or views.
- Specifying component behaviour in a design system.
- Auditing performance and accessibility.
Common mistakes
- Animation without a communicative purpose.
- Durations over 400ms for routine feedback.
- Animating layout properties rather than transform and opacity.
- Ignoring reduced-motion preferences.
- Implementing prefers-reduced-motion as disabling everything, when the requirement is reducing motion rather than removing feedback.
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.
Motion that earns its place
Do
- Animate transform and opacity, which the compositor can handle without reflow.
- Let motion show where something came from, so the reader does not have to re-find it.
- Make every animation interruptible, so a second click is not queued behind the first.
- Shorten the duration of anything the reader triggers dozens of times a day.
Do not
- Animate width, height, top or left, which forces layout on every frame.
- Add motion to a screen that appears during a wait, where it competes with the progress signal.
- Animate more than one or two elements per view.
- Treat reduced motion as a switch that turns feedback off rather than one that removes travel.
In practice
- i.
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.
- ii.
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.
- iii.
The animation that was fine once
Frequency changes the calculationA 400 millisecond expand felt considered in review and intolerable by the fortieth use of the day. Motion the reader triggers repeatedly has a much tighter budget than motion they see once.
Local chart
FND·052 · Region II · Grid C1
This entry and the entries it is stated to connect with. Each line is labelled with what the connection means.
Sources
Where a source establishes something narrower than the popular reading of it, the note says so.
- [1]
MDN Web Docs
- [2]
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.
- CarouselCMP·027 · Component
- Drawer and SheetCMP·011 · Component
- Loading StatesPAT·011 · Pattern
- Skeleton ScreensPAT·012 · Pattern
Principles behind this
The reasoning this solution is an application of.
- Visibility of System StatusHEUR·001 · Heuristic
- Doherty ThresholdLAW·006 · Law
- FeedbackPRIN·004 · Principle
- Selective AttentionPSY·004 · Psychology
Often used with
These usually appear in the same screen or the same decision.
- FramerTOOL·004 · Tool
- Origami StudioTOOL·013 · Tool
- ProtoPieTOOL·011 · Tool
Short definition
The one-paragraph version, for when that is all you need.
- Interaction DesignTERM·034 · Term
- MicrointeractionTERM·035 · Term
Related concept
Connected closely enough to change how you apply this.
- Reduced MotionA11Y·012 · Accessibility
- Performance as User ExperienceFND·054 · UI foundation
- ShadowsFND·049 · UI foundation
- Visual StatesFND·053 · UI foundation