Skip to contact form
← BlogEngineeringOctober 25, 2026 · 5 min read

The details nobody asks for

Three small effects that never got their own post — an odometer, a scroll bar, and a reading line — because none of them are impressive alone. Try all three below.

ot every detail earns a whole article. Some effects are two motion values and a spring, doing one small job well, and writing a thousand words about any one of them alone would inflate something that's supposed to be quiet. So instead of three thin posts, here are three real pieces of the site's motion system in one place — each with the actual component embedded, not a description of it.

A number that rolls up, not in

When a real figure appears on the site, it doesn't just fade into view — it counts up from zero, prefix and suffix held still while only the numeric part animates. It exists specifically so a stat never gets a chance to be skimmed past unread; the motion holds your eye on the number for the half-second it takes to land.

0MB

example — prefix/suffix held still

0%

example — decimals preserved too

<0s

example — leading symbol untouched

Those three are illustrative, not a claim about anything — the component is built to only ever animate a number that's actually been sourced from somewhere real, on the site itself. A regex pulls the numeric core out of a string like "40MB" or "<1s", a spring drives it from zero to that target the moment it scrolls into view, and everything the regex didn't capture — the unit, the symbol — just sits there unanimated the whole time.

A bar that knows exactly where you are

A thin gradient line sits fixed to the top of every page, its width tracking scroll progress through the whole document. It's a small thing to notice consciously, and that's rather the point — it answers "how much is left" at a glance, in your peripheral vision, without asking you to look for a scrollbar that half of browsers hide by default now anyway.

scroll this box, not the page

Line 1 of filler content, just tall enough to make this box scrollable on its own so the bar above has something real to track.

Line 2 of filler content, just tall enough to make this box scrollable on its own so the bar above has something real to track.

Line 3 of filler content, just tall enough to make this box scrollable on its own so the bar above has something real to track.

Line 4 of filler content, just tall enough to make this box scrollable on its own so the bar above has something real to track.

Line 5 of filler content, just tall enough to make this box scrollable on its own so the bar above has something real to track.

Line 6 of filler content, just tall enough to make this box scrollable on its own so the bar above has something real to track.

The one below is the same bar, same spring, but pointed at a small scrollable box instead of the page — Framer Motion's useScroll takes an optional container option, and swapping the page for that one ref is the entire difference between the site-wide version and this embedded one.

The row you're reading, brighter than the rest

Case-study decisions and this post's own section headings use the same effect: whichever row is passing through the center of your viewport sits at full brightness, while rows above and below dim and sit a few pixels off — not because they were animated once, but because their opacity and position are a continuous function of where they are relative to the middle of the screen, recalculated every frame you scroll.

Scroll this stack and watch the middle row brighten as it passes center.

Nothing here is triggered once — it tracks scroll position continuously.

Scroll back up and it reverses correctly, same as everything else on this page.

None of these three would carry an entire article on their own, and none of them are trying to. Put together they're most of what makes scrolling through the site feel considered rather than assembled — small, continuous reactions to exactly where you are, instead of animations that just play once and stop.