.scroll-progress - scrubbed entrances
While .scroll plays a one-shot tween on enter, .scroll-progress scrubs the entrance timeline directly with the scrollbar: your scroll position IS the playhead. Combine it with a spawn class (that's where the from/to state comes from).
html
<div class="expand-horizontal scroll-progress"></div>Demo - scroll slowly past these blocks
.expand-horizontal .scroll-progress - width follows the scrollbar
I fade in proportionally to your scroll
Any spawn works here.spawn-up .scroll-progress - position AND opacity track the playhead, so scrolling back up rewinds me mid-motion
Demo - scrubbed counter
Counters compose with the scrub too: the number below IS the scroll progress, tracking your scrollbar exactly in both directions.
100%
Tunables
progress-start-NScrub starts when top hits (100−N)% of viewportprogress-end-NScrub ends at (100−N)% instead of centre-centre.progress-reverseInverts the mapping: revealed → hidden as you scrollCounters have first-class support: <span class="count scroll-progress spawn-num-0">100</span> counts up/down with the scrub instead of fading - see Counters for the full behaviour.