CSS

css/reduced-motion

Non-essential motion (entrance animations, parallax, smooth scrolling) respects prefers-reduced-motion.

moderatestaticfe-motion

Why

Large movement on screen (sliding, zooming, parallax, smooth scrolling) can cause dizziness, nausea and headaches for people with vestibular disorders, and distracts people with attention difficulties. They set "reduce motion" in their system; a page that ignores the setting moves anyway.

Fix

Put non-essential motion inside @media (prefers-reduced-motion: no-preference), or replace it under (prefers-reduced-motion: reduce) with a short fade or nothing. With Tailwind use motion-safe: and motion-reduce:; with an animation library use its reduced-motion option (for example Motion's MotionConfig reducedMotion="user"). Prefer toning motion down to a blanket animation: none !important, which can leave scripts waiting for animationend.

Examples

/* bad */
.hero__title { animation: slide-in 0.8s both; }
/* good */
@media (prefers-reduced-motion: no-preference) {
  .hero__title { animation: slide-in 0.8s both; }
}

Sources

Facts

Id
css/reduced-motion
Severity
moderate
Check
static checked in the source by audit
Applies to
project
Taught by the skill
fe-motion Motion and animation
Since version
0.1.0

Rule file on GitHub

Read it in the terminal

npx github:dawidolko/frontend-skills explain css/reduced-motion