Skip to content

Digital

Motion should be the last thing you add

We use a lot of motion. We also build every page so that none of it is required.

Progressive, not decorative

Every animated element on this site is authored in its finished state and then hidden by script, never the other way around. If the JavaScript fails, the page you get is the page you were always meant to read. If a visitor has asked their system to reduce motion, the same thing happens deliberately.

That is not a nicety. If the page is only comprehensible once it has finished moving, the movement is not decoration — it is a dependency, and you have made reading conditional on a script executing.

Two properties, no others

Transform and opacity. Anything that animates width, height, top or margin is asking the browser to recalculate layout sixty times a second, and on the phone from the car park it will not manage sixty.

Duration is a tone of voice

Entrances between 450 and 700 milliseconds read as considered. Hover feedback between 150 and 250 reads as responsive. Anything longer starts to feel like the site is waiting for you to admire it.

The restraint list

No page wipes. No parallax you can notice. No custom cursor. No background that never stops moving. Every one of those has been through this studio and back out again.

If the page is only comprehensible once it has finished moving, the movement is not decoration — it is a dependency.

Let's build something that lasts.

Start a project

Or just send the URL of the thing that is bothering you.