scroll-timeline

Links an animation's progress directly to the scroll position of a scroll container. This replaces time-based durations with scroll-based progress.

It is documented as part of the Scroll-driven Animations specification.

/* Usage Example */
.container {
  /* Shorthand for name and axis */
  scroll-timeline: --page-scroll block;
}
.progress-bar{
  animation: fill-stripe linear;
  animation-timeline: --page-scroll;
}

/* Syntax */
scroll-timeline: scroll-timeline-name;
scroll-timeline: scroll-timeline-axis;

/* Global values */
scroll-timeline: inherit;
scroll-timeline: initial;
scroll-timeline: revert;
scroll-timeline: revert-layer;
scroll-timeline: unset;
Limited availability Since 2020 80% global usage

This feature is not Baseline because it does not work in some of the most widely-used browsers.

115+
111+
115+
Interop 2026 focus area ? Learn more →
Kinsta

Your first month is free

Managed WordPress hosting for faster sites.

Learn more

New CSS drops.

Join 600+ readers who've survived clearfix hacks.

ESC