all writing
2026-04-12

Animation as a language, not a layer

Treating motion as part of the typography system instead of a coat of polish you sprinkle on at the end.

Motion is too often the last thing teams ship. Pages get built, then a sprint is set aside to "polish the animations." That order is the bug.

The Lando Norris site, the awwwards-tier portfolios that go viral every month, the websites of certain publications — they treat motion as part of the typographic system. Reveal timing is as load-bearing as line-height. The power3.out curve that pulls a headline into view is communicating something about how confident the brand is.

The pattern that works

  1. Decide on motion tokens at the same time as color and type.
  2. Write reusable primitives (<RevealText>, <MagneticButton>) before you write a single page.
  3. Always implement prefers-reduced-motion in the same commit as the animation, not later.

Motion that respects users is motion you can ship.