easeprint.

How does that site feel so good?

easeprint is a Chrome extension that reads the motion on whatever page you're on. You get the curves and durations the site actually uses, drawn as one print, and you can copy them straight into CSS, Tailwind, Motion or SwiftUI.

Values are read from what the browser computed, so they're exact. Motion driven from JavaScript gets fitted from its frames and is marked that way. Free, and it only reads a page after you click it.

easeprint.Record from load

stripe.com

Measured 2026-10-17 · 213 moves

Tiers
:root {
  --ease-micro: ease-out;
  --duration-micro: 150ms;
  --ease-utility: cubic-bezier(0.25, 1, 0.5, 1);
  --duration-utility: 300ms;
  …

Reading a print

Each ridge is one timing the site uses. Short, snappy ones sit near the core and slow ones sit further out, so a quick site makes a tight print.

A ridge bulges where its curve runs ahead of the clock. An ease-out swells early, an ease-in late, and an overshoot pushes out past its neighbours.

Thicker ridges showed up more. Broken ones are loops. The faint lines between are filled in from their neighbours so the whole thing reads as one surface.

20 sites, measured

Measured in a browser on 2026-10-17. 105 tiers, and 6 of 20 sites honor reduced motion. Hover a print and it draws itself on that site's own lead curve.

  1. Arc

    arc.net

    utility ease-in-out · 300ms

    material

    Ignores reduced motion

  2. Attio

    attio.com

    statement cubic-bezier(0, 0, 0.58, 1) · 600ms

    material

    Partly honors reduced motion

  3. basement.studio

    basement.studio

    signature linear() spring · 900ms

    ambient, decorativepartial

    Ignores reduced motion

  4. Bryce Rambach

    brycerambach.com

    statement cubic-bezier(0.2, 0.7, 0.1, 1) · 1.15s

    spatial

    Honors reduced motion

  5. Cuberto

    cuberto.com

    statement cubic-bezier(0.16, 1, 0.3, 1) · 1.2s

    spatial

    Ignores reduced motion

  6. darkroom.engineering

    darkroom.engineering

    secondary cubic-bezier(0.23, 1, 0.32, 1) · 0.35s

    materialpartial

    Honors reduced motion

  7. Emil Kowalski

    emilkowal.ski

    utility cubic-bezier(0.4, 0, 0.2, 1) · 0.15s

    materialpartial

    Nothing measured moves

  8. Family

    family.co

    statement cubic-bezier(0.19, 1, 0.22, 1) · 1s

    spatial

    Ignores reduced motion

  9. Linear

    linear.app

    statement cubic-bezier(0.25, 0.1, 0.25, 1) · 1000ms

    material

    Honors reduced motion

  10. Locomotive

    locomotive.ca

    secondary cubic-bezier(0.215, 0.61, 0.355, 1) · 0.9s

    spatialpartial

    Ignores reduced motion

  11. Motion

    motion.dev

    statement linear() spring · 1750ms

    material

    Honors reduced motion

  12. Obys Agency

    obys.agency

    statement cubic-bezier(0.16, 1, 0.3, 1) · 1.6s

    spatial

    Ignores reduced motion

  13. Paco Coursey

    paco.me

    statement ease · 0.6s

    spatial

    Honors reduced motion

  14. Rauno Freiberg

    rauno.me

    secondary ease-in-out · 0.35s

    materialpartial

    Nothing measured moves

  15. Raycast

    raycast.com

    statement cubic-bezier(0.165, 0.84, 0.44, 1) · 2s

    material

    Ignores reduced motion

  16. Resend

    resend.com

    statement ease-in-out · 1.5s

    material

    Ignores reduced motion

  17. Sonner

    sonner.emilkowal.ski

    statement ease · 0.4s

    spatial

    Partly honors reduced motion

  18. Stripe

    stripe.com

    statement cubic-bezier(0.165, 0.84, 0.44, 1) · 0.8s

    material

    Honors reduced motion

  19. Vaul

    vaul.emilkowal.ski

    statement cubic-bezier(0.32, 0.72, 0, 1) · 0.5s

    spatial

    Ignores reduced motion

  20. Vercel

    vercel.com

    signature cubic-bezier(0.23, 1, 0.32, 1) · 0.2s

    materialpartial

    Nothing measured moves

Install it

It isn't on the Chrome Web Store yet, so for now it installs by hand. Takes about a minute.

  1. 1

    Download the zip and unzip it.

  2. 2

    Open chrome://extensions, turn on Developer mode in the top right, and click Load unpacked. Pick the easeprint folder.

  3. 3

    Go to a site you like and click easeprint in the toolbar, or press Alt Shift E. Move around the page and the print fills in.

It asks for nothing up front. Clicking it gives it the one tab you're on until you leave that page. Record from load asks for one site at a time. Nothing leaves your browser.