Performance is design
The first thing a person feels about an interface is whether it answered. Before type, before colour, before the clever interaction: did it move when I did.
I hold two rules. A high-frequency interaction gets instant feedback or a transition no longer than 150ms on opacity or colour. Anything slower there charges its cost on every trigger, and a person triggers it hundreds of times a day.
The second is zero idle cost. An always-mounted expressive component – a beam, an orb, a liquid group, a stage of cards – must cost nothing when nothing moves. The animation loop sleeps; instances pause offscreen and when the tab is hidden. On this site the collection's loop idles the moment it settles; a suite checks that no layout write happens for a second afterwards.
- Measure the frame budget, not the impression: a DevTools performance trace on the real device, then decide
- Transitions over keyframes for anything interactive; keyframes only for one-shot staged sequences
- Never blur functional content to make it feel richer; blur is the most expensive effect you can spend
When not to: a page a person sees once, where the load itself is the moment. Spend there, and only there.
