The convention
The claim, from Bryce's motion notes of 2026-09-01: four teams landed independently on an aggressive ease-out at a long duration for statement moves, with a fast plain tier underneath. Here it is as three tests, run against every site measured on 2026-10-17.
The tests
- 1
Aggressive ease-out. The statement covers at least 60% of its distance in the first 25% of its time.
- 2
Long. The statement runs 700ms or more.
- 3
A fast tier underneath. Some other tier on the site, not ambient, takes 300ms or less.
Five of twenty pass all three
Raycast, Cuberto, Bryce Rambach, Family and Stripe. Near misses, passing two of three: Motion, Obys Agency, Resend, Linear and Vaul. 7 sites have no statement move measured at all.
The tests show the shape is shared. Whether the teams got there independently isn't something a browser can measure. Cuberto and Obys use the identical curve, cubic-bezier(0.16, 1, 0.3, 1); Raycast and Stripe both use the usual quart-out, cubic-bezier(0.165, 0.84, 0.44, 1).
The four the notes named
From notes, 2026-09-01, beside this measurement.
Cubertopasses all three live
notes: cubic-bezier(0.16, 1, 0.3, 1) 1.2s. On 30 elements, and 0.8s on 20 more. Always on transform alone. Live on 2026-10-17: the same curve at 1.2s and 0.8s.
Familypasses all three live
notes: cubic-bezier(0.19, 1, 0.22, 1) 1s. On 56 elements. Live on 2026-10-17: the same, on 56 elements.
Obys Agencypasses 1 and 2 live
notes: 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.
Raycastpasses all three live
notes: cubic-bezier(0.23, 1, 0.32, 1) 0.4s. On 81 elements, the long tier of 90 at 0.4s and above. Live on 2026-10-17: the same curve at 0.4s on the keyboard keys. The live statement here is the 2s quart-out on the API diagrams, which the note didn't list.
Every statement curve, one scale
- passes all three (5)
- doesn't (8)
Statement against the fastest tier
- fastest tier
- statement
- passes all three
Every site
| Site | Statement | Duration | At 25% of time | Fastest tier | Passes |
|---|---|---|---|---|---|
| Raycast | cubic-bezier(0.165, 0.84, 0.44, 1) | 2s | 70% | 100ms exit | all three |
| Cuberto | cubic-bezier(0.16, 1, 0.3, 1) | 1.2s | 83% | 0.3s utility | all three |
| Bryce Rambach | cubic-bezier(0.2, 0.7, 0.1, 1) | 1.15s | 78% | 0.3s utility | all three |
| Family | cubic-bezier(0.19, 1, 0.22, 1) | 1s | 84% | 0.1s utility | all three |
| Stripe | cubic-bezier(0.165, 0.84, 0.44, 1) | 0.8s | 70% | 0.15s utility | all three |
| Motion | linear() spring | 1750ms | 57% | 0.16s utility | 2, 3 |
| Obys Agency | cubic-bezier(0.16, 1, 0.3, 1) | 1.6s | 83% | none at 300ms or under | 1, 2 |
| Resend | ease-in-out | 1.5s | 13% | 0.2s utility | 2, 3 |
| Linear | cubic-bezier(0.25, 0.1, 0.25, 1) | 1000ms | 41% | 0.16s utility | 2, 3 |
| Attio | cubic-bezier(0, 0, 0.58, 1) | 600ms | 38% | 0.15s utility | 3 |
| Paco Coursey | ease | 0.6s | 41% | 0.24s utility | 3 |
| Vaul | cubic-bezier(0.32, 0.72, 0, 1) | 0.5s | 78% | 0.15s utility | 1, 3 |
| Sonner | ease | 0.4s | 41% | 0.2s utility | 3 |
| Arc | no statement tier | – | – | 0.15s signature | 3 |
| basement.studio | no statement tier | – | – | 0.06s utility | 3 |
| darkroom.engineering | no statement tier | – | – | 0.15s utility | 3 |
| Emil Kowalski | no statement tier | – | – | 50ms utility | 3 |
| Locomotive | no statement tier | – | – | 0.2s utility | 3 |
| Rauno Freiberg | no statement tier | – | – | 0.2s utility | 3 |
| Vercel | no statement tier | – | – | 0.1s exit | 3 |
Statement means the tier marked statement on each entry: the longest, most prominent single move measured. Cuberto's fastest tier is exactly 300ms, on the line. Thresholds are a reading of "aggressive", "long" and "fast"; move them and the count moves, which the table makes easy to check.