Interfaces move for exactly one reason worth defending: to preserve a person’s sense of place. Everything else is a preference, and preferences do not survive the fifth visit.

The test we use is blunt. Remove the animation. If the interface is now confusing, the animation was load-bearing. If it is merely plainer, it was decoration — and decoration on the fifth visit is friction.

Light trails drifting across a dark interior
Timing studies — Signal Drift, 2025

Duration is a message

Under 150ms reads as instant and tells the user nothing happened worth noticing. Between 200 and 400ms reads as a consequence: you did that, and here is where it went. Past 600ms you are asking someone to wait, and you had better be loading something.

Most interfaces are slow because someone matched the duration to how the animation felt in isolation, at 25% speed, once.

Ease says who is in charge

Things the user initiated should decelerate — they arrive under the user’s authority. Things the system initiated should accelerate in and settle, because they are announcing themselves. Get this backwards and an interface feels subtly disobedient without anyone being able to say why.

The exception worth keeping

There is one place we spend motion freely: the moment a page first resolves. That is not navigation, it is an entrance, and an entrance is allowed to be a performance. Once. After that, get out of the way.