Scroll-driven animations connect a CSS animation to scroll progress instead of time. Nice for reading indicators, reveal effects, and small UI feedback without scroll listeners.
@keyframes grow {
from { scale: 0 1; }
to { scale: 1 1; }
}
.progress {
animation: grow linear;
animation-timeline: scroll(root block);
transform-origin: left;
}
Respect prefers-reduced-motion for decorative effects. More info on MDN.