Skip to content

Making motion accessible

Control looping animation, pause and reduced motion without losing the interface’s meaning.

Who it is for
Interface designers and developers
Author
SkiMobile team
Published

Motion explains a state

Animation helps communicate a selection, an element appearing or an action completing. Navigation, controls and content are available from the first frame. Space for a logo or illustration is reserved before playback.

Decorative loops pause offscreen and in a hidden tab. Returning to a section does not undo a user’s manual pause.

Reduced motion

The system’s prefers-reduced-motion reports the visitor’s preference. Site settings complement it; reduced motion takes priority. Show the original static state instead of a decorative loop.

Pause and reduced motion do not hide success or error states. Keep frame-by-frame inspection and downloads available in the asset library.

A static decorative-loop state · CSS
@media (prefers-reduced-motion: reduce) {
  .decorative-loop {
    animation: none;
    transform: none;
  }
}

Before release

  • Check keyboard access and visible focus on playback controls.
  • Enable reduced motion in the system and site settings.
  • Pause a loop, leave its area and return: it should stay paused.
  • Do not start audio without a user action.

Materials and sources

Read next

Colour roles in the interface

Apply accent, critical states and neutral surfaces while preserving meaning in both themes.

Design and assets

  • Tokens
  • Themes
  • Contrast

From mocks to an API: the data contract

Replace the data source while preserving components, server rendering, search and FSD boundaries.

Engineering and SEO

  • API
  • FSD
  • Mocks