Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The animation-timeline CSS property specifies the names of one or more @scroll-timeline at-rules describing the scroll animations to apply to the element.

It is often convenient to use the shorthand property animation to set all animation properties at once.


/* Single animation */
animation-timeline: none;
animation-timeline: test_05;
animation-timeline: -specific;
animation-timeline: sliding-vertically;

/* Multiple animations */
animation-timeline: test1, animation4;
animation-timeline: none, -moz-specific, sliding;

/* Global values */
animation-timeline: inherit;
animation-timeline: initial;
animation-timeline: revert;
animation-timeline: revert-layer;
animation-timeline: unset;



The animation's timeline is the document's default DocumentTimeline.


The animation is not associated with a timeline.


A <custom-ident> or string identifying the scroll timeline, declared with the @scroll-timeline rule. If two or more scroll timelines share the same name, the last declared within the cascade will be used. If no matching scroll timeline is found, the animation is not associated with a timeline.

Formal definition

Initial valueauto
Applies toall elements
Computed valuelistEachItemIdentifyerOrNoneAuto
Animation typeNot animatable

Formal syntax

animation-timeline = 

<single-animation-timeline> =
auto |
none |

<timeline-name> =
<custom-ident> |


Setting a scroll timeline

A scroll timeline named squareTimeline is declared and applied to the #square element using animation-timeline: squareTimeline.


<div id="container">
  <div id="square"></div>


#container {
  height: 300px;

#square {
  background-color: deeppink;
  width: 100px;
  height: 100px;
  margin-top: 100px;
  animation-name: rotateAnimation;
  animation-duration: 3s;
  animation-direction: alternate;
  animation-timeline: squareTimeline;

@scroll-timeline squareTimeline {
  source: selector("#container");
  orientation: "vertical";
  scroll-offsets: 0px, 300px;

@keyframes rotateAnimation {
  from {
    transform: rotate(0deg);
  to {
    transform: rotate(360deg);


Scroll to see the animation.


Unknown specification
# animation-timeline

Browser compatibility

BCD tables only load in the browser

See also