easeprint.

spatialmeasured

Obys Agency

Images that slide a long way on expo-style curves, a 3.5s progress bar, and hover springs run through the Web Animations API as a sampled linear() curve. Everything travels.

Tiers

Each curve was read from the browser while visiting obys.agency. The demo is our own element running the same timing.

statement

work images sliding in on load

cubic-bezier(0.16, 1, 0.3, 1)

Click the track or Replay.

Timing
cubic-bezier(0.16, 1, 0.3, 1)
Duration
1.6s
Property
transform
Seen
CSS transition, on load, 38×
On
figure.ho-wo-2-r > img
secondary

loading progress bar

cubic-bezier(0.16, 1, 0.3, 1)

Click the track or Replay.

Timing
cubic-bezier(0.16, 1, 0.3, 1)
Duration
3.5s
Property
transform
Seen
CSS transition, on load, 5×
On
div#prg > div
secondary

menu underline

cubic-bezier(0.19, 1, 0.22, 1)

Click the track or Replay.

Timing
cubic-bezier(0.19, 1, 0.22, 1)
Duration
0.8s
Property
transform
Seen
CSS transition, on hover, 1×
On
a > span::before
utility

contact button fill

cubic-bezier(0.16, 1, 0.3, 1)

Click the track or Replay.

Timing
cubic-bezier(0.16, 1, 0.3, 1)
Duration
0.6s
Property
transform
Seen
CSS transition, on hover, 1×
On
a#fix-co-em > div.l

Honest notes

Reduced motion
Not honored

Movement (transform, position, size): 65 events in the normal run, 62 with reduced motion on (95%). All timed CSS and WAAPI motion: 66, then 63 (95%). 0 prefers-reduced-motion queries in stylesheets; scripts asked matchMedia about it 0 times.

transition: all
Not seen

0 elements computed transition-property: all at the end of the visit. 0 declarations in the CSS the page loaded.

Motion in JavaScript
Yes

No motion library fingerprints in the scripts. Motion run on requestAnimationFrame isn't readable from styles, so it isn't in the tiers.

Canvas
Motion lives in canvas

A WebGL canvas covers at least a quarter of the viewport. What it draws is out of scope here.

Posture
spatial

At rest, 48 transitions move things (transform, opacity) and 41 change surfaces (colour, shadow, background, filter). The glossary's quick test reads that as spatial.

Coverage
One load, 11 elements hovered

Scrolled to the bottom with the mouse wheel, hovered and left a spread sample of links and buttons. Menus, clicks, forms and other pages weren't visited.

A full-viewport WebGL canvas sits behind the page; what it draws isn't measured. The hover spring is a JavaScript spring sampled into a CSS linear() easing and handed to element.animate, so it is readable here.

Notes

  • No fast tier. The quickest motion seen was a 0.4s colour change on the logo; everything else runs 0.6s or longer.
  • The spring's linear() string has 51 stops at 2% intervals. It overshoots nothing: it's a critically damped settle, 50% of the way there by 10% of the time.
  • No prefers-reduced-motion query anywhere in its CSS or scripts.

From notes

Values from Bryce's own notes, kept apart from this measurement and dated as written. Where the live site differs, the note says so.

  • 2026-09-01 statement curve (expo-out) cubic-bezier(0.16, 1, 0.3, 1) 1.6s

    Listed as one of the four teams at 0.8s and 1.6s. Live on 2026-10-17: 1.6s on the work images and 0.8s on 42 elements at rest. But no tier at 300ms or under was seen, so the live page fails the "fast tier underneath" half of the convention.

    design-taste motion/default/README.md