The fastest way to make an interface feel expensive is to make its motion obey physics. Objects with mass do not start and stop at the same rate. They accelerate reluctantly and settle quickly, and our eyes know this without being told.
One curve, three durations
We use a single easing curve across an entire product — a steep decelerating curve that starts fast and settles slowly. Consistency here matters more than the specific values, because mixed easing reads as mixed craftsmanship.
- 150–250ms for micro-interactions — hovers, presses, toggles.
- Up to 300ms for reveals — anything entering the viewport.
- Up to 1.2s for identity moments only, and only once per session.
Content first, always
The rule that matters most: never let animation gate content. Text should be in the DOM and readable whether or not the reveal has fired, and every motion decision should degrade to nothing under a reduced-motion preference without losing information.



