Scroll-driven animations
A scroll timeline connects CSS animation progress to scrolling instead of time. Reading indicators no longer need a scroll listener.
@keyframes grow {
from { scale: 0 1; }
to { scale: 1 1; }
}
.progress {
animation: grow linear;
animation-timeline: scroll(root block);
transform-origin: left;
}
Keep decorative motion behind a prefers-reduced-motion check, and make sure the UI remains understandable when the animation is absent.