Identify movement that is optional

Parallax, floating illustrations, looping decorations and large assembly transitions can add character, but they are not the content itself. Separate them from feedback required to understand a task. A download becoming ready still needs a clear status message when motion is disabled, even if the spinner and celebratory movement disappear.

Listen to the platform preference

The prefers-reduced-motion media query exposes a request to reduce nonessential motion. Use it in CSS to simplify decorative animation and in JavaScript before starting animation loops. Checking only CSS is insufficient when a script continues updating transforms in the background or uses an animation API that your styles do not directly control.

Choose calmer substitutes

A reduced-motion mode does not need to become an unfinished screen. Replace a long sliding panel transition with an immediate state change, keep a hero illustration assembled, and remove depth movement from background layers. The same typography, spacing and content should communicate the design even when none of the elements travel through space.

Offer a persistent page control

An on-page motion switch can be useful in addition to the operating-system setting. Give it a clear accessible name and expose its state. Save only the preference if persistence is needed, and handle unavailable browser storage gracefully. A preference control should keep working even when localStorage is blocked or a browser is in a restrictive mode.

Do not hide content behind entrances

A reveal effect should progressively enhance content that already exists. If the stylesheet starts every article at opacity:0 and JavaScript fails, the page becomes blank. Render a readable baseline and add movement when it is available. This approach also makes printing, searching and navigating directly to anchored sections more predictable.

Verify both starting and changing states

Load the page with reduced motion enabled, then change the preference while the page is open if your environment allows it. Test the manual switch and navigate to another route. Check that loops stop, transforms reset cleanly and controls still announce results. A reduced-motion implementation is complete only when it covers the whole experience.

Further reading

Put the idea to work.

Explore free browser tools for images, text and developer workflows.

Try a free tool