Glossary / Reduced motion

Reduced motion

Reduced-motion support respects a user preference to minimize nonessential animation and motion. Large movement, panning, scaling, parallax, and auto-updating animation can cause dizziness, nausea, headaches, or cognitive distraction for some people. The CSS prefers-reduced-motion media feature exposes an operating-system or browser preference so a site can remove, shorten, or replace motion while retaining the information and function the motion conveyed.

What to know

Implementation example

.panel { transition: transform 220ms ease; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

This broad reset is a starting point, not a universal final solution: product-specific animation may need a meaningful static replacement. Test both preference settings and ensure animations do not hide information or leave state incomplete when skipped.

Interview questions

  1. How do you honor reduced motion? Detect the user preference, remove or reduce nonessential motion, preserve meaning/function, and test both modes.
  2. What effects are especially concerning? Large spatial movement, zooming, parallax, auto-moving content, flashing, and animations that cannot be paused.
  3. Should all animations be disabled? Not automatically; identify which are essential to function and provide less motion while retaining state cues.
  4. How does it differ from pause controls? A preference changes presentation; pause/stop requirements provide user control over ongoing motion or updates.
  5. How do you test a runtime change? Change the OS/browser preference while the page is open and verify CSS and JavaScript-driven motion respond safely.

References