Speed Patterns octocat github link burger menu

Masking Slowness With Animation

By Sergey Chernyshev · · Assisted by AI

Some delays are unavoidable. Network round-trips, third-party APIs, expensive computations and view transitions all take time that no amount of optimization can fully eliminate.

When you can't make the wait shorter, you can change how it feels. Animated transitions occupy the user's attention during the unavoidable gap, smoothing the seam between two states and reducing the perception of delay.

The Problem

When a user clicks a button or follows a link, they expect immediate feedback. If the next state appears abruptly after a noticeable pause, the experience feels broken: the user is left wondering if the click registered, and may click again or navigate away.

Even when the underlying technical delay is the same, an experience that snaps from one state to another with no transition feels significantly slower than one that gracefully animates between them.

Solution

Without animation the wait reads as an abrupt pause; a short, purposeful transition turns the same delay into smooth arrival.

An orange 'Loading…' box on the left and a yellow content panel on the right, connected by a curved blue motion line
Mask the wait with motion

Use motion to bridge the moment between user input and the new state. A short, purposeful animation does several things at once:

For example, if a slide-in transition takes 200ms and your data fetch takes 250ms, the perceived delay is only 50ms — and that 50ms feels much shorter when the user just watched something happen.

Guidelines

Related Patterns

Technical Implementation