Skip to content
Open
Show file tree
Hide file tree
Changes from 151 commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
70194d0
Document scroll-triggered animations
chrisdavidmills Feb 18, 2026
8901885
tweak fallback styles and correct range property names
chrisdavidmills Feb 18, 2026
60e1ccf
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Feb 19, 2026
4bd67a3
Add ref pages for animation-trigger and <animation-action>
chrisdavidmills Feb 20, 2026
60bbe5d
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Feb 22, 2026
85c0e99
Add timeline-trigger-name and timeline-trigger-source
chrisdavidmills Feb 23, 2026
cf303f0
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Feb 24, 2026
a233f42
Add timeline-trigger-activeation-range* properties
chrisdavidmills Feb 24, 2026
5c0d542
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Feb 25, 2026
14f9cc6
Improve reference descriptions
chrisdavidmills Feb 25, 2026
fd77657
Add timeline-trigger-active-range* ref pages
chrisdavidmills Feb 25, 2026
7519ba0
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Feb 27, 2026
973031e
update page titles, add trigger-scope page
chrisdavidmills Feb 27, 2026
c5598c7
Add timeline-trigger shorthand page
chrisdavidmills Mar 2, 2026
8041243
Add separate animation triggers module page
chrisdavidmills Mar 3, 2026
0628fc2
Update animation-action browser-compat reference
chrisdavidmills Mar 3, 2026
e75774c
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Mar 10, 2026
03203ea
Update animation-action BCD ref
chrisdavidmills Mar 10, 2026
fa4d6b0
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
7a3fdc1
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
102b33e
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
8bb3916
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
2156be5
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
0ca2677
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
995848f
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
babef3b
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
92b891d
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
2161905
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
885e38e
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
b729f8c
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Mar 10, 2026
4d2e419
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
eed4efa
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
e902040
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
8a59dd2
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
d5db7eb
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
6a65a83
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
4695fe0
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
670295e
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
23193dd
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Mar 10, 2026
47c1446
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
43b1c16
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Mar 10, 2026
d96df10
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Mar 10, 2026
fa54bee
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
c7c5a38
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
f0b768e
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
9073144
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
6e10b85
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
71eb3c9
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
5fb7af0
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Mar 10, 2026
7e5d1e4
Fixes for bramus review comments
chrisdavidmills Mar 10, 2026
9432d70
cut down multiple trigger names section
chrisdavidmills Mar 11, 2026
376a85a
Merge branch 'main' into scroll-triggered-animations
estelle Apr 10, 2026
aedd8ee
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Apr 15, 2026
dae3ce3
Update files/en-us/web/css/guides/animation_triggers/index.md
chrisdavidmills Apr 15, 2026
9925f5b
remove reset information
chrisdavidmills Apr 15, 2026
f542808
fix merge conflict
chrisdavidmills Apr 15, 2026
459311c
fixes for estelle review comments
chrisdavidmills Apr 15, 2026
2f8db44
More fixes
chrisdavidmills Apr 15, 2026
83dc871
Update files/en-us/web/css/guides/animations/index.md
chrisdavidmills Apr 15, 2026
9089a4d
More fixes
chrisdavidmills Apr 15, 2026
ddf2c7c
Update files/en-us/web/css/reference/properties/timeline-trigger-acti…
chrisdavidmills Apr 15, 2026
60ef3ac
More fixes
chrisdavidmills Apr 15, 2026
8d5a87a
Merge branch 'scroll-triggered-animations' of github.com:chrisdavidmi…
chrisdavidmills Apr 15, 2026
348413e
More fixes
chrisdavidmills Apr 15, 2026
978ed00
More fixes
chrisdavidmills Apr 15, 2026
496fdf2
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Apr 15, 2026
3f44e57
Merge branch 'main' into scroll-triggered-animations
estelle Apr 16, 2026
44c6fcf
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Apr 23, 2026
18fc4aa
Add links
chrisdavidmills Apr 23, 2026
30f357d
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Apr 23, 2026
09b4f87
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Apr 23, 2026
88564bf
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Apr 23, 2026
c9f0eba
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Apr 23, 2026
096db77
fixes for estelle review comments
chrisdavidmills Apr 24, 2026
3f089c7
Merge branch 'main' into scroll-triggered-animations
estelle Apr 26, 2026
da53bf5
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Apr 28, 2026
47bf1ca
More animation-action changes
chrisdavidmills Apr 28, 2026
a69ed1b
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Apr 29, 2026
99b0a83
Some more tech review fixes for animation-action
chrisdavidmills Apr 29, 2026
e0892bd
Merge branch 'main' into scroll-triggered-animations
estelle Apr 30, 2026
f061758
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills May 1, 2026
111df09
Updates based on conversation with estelle
chrisdavidmills May 1, 2026
52259b0
Merge branch 'main' into scroll-triggered-animations
estelle May 12, 2026
e3c744f
Update files/en-us/web/css/guides/animation_triggers/index.md
chrisdavidmills May 12, 2026
26afc11
Update files/en-us/web/css/guides/animation_triggers/index.md
chrisdavidmills May 12, 2026
3507bc2
Update files/en-us/web/css/guides/animation_triggers/index.md
chrisdavidmills May 12, 2026
fcb8a86
Add non-support banner to animation triggers landing
chrisdavidmills May 13, 2026
d06222a
Update files/en-us/web/css/reference/properties/animation/index.md
chrisdavidmills May 13, 2026
b9f343b
Fixes for estelle review comments
chrisdavidmills May 13, 2026
6bc727b
Update files/en-us/web/css/reference/properties/animation/index.md
chrisdavidmills May 13, 2026
e06b873
Update files/en-us/web/css/guides/animation_triggers/index.md
chrisdavidmills May 14, 2026
a68e368
Update files/en-us/web/css/guides/animation_triggers/index.md
chrisdavidmills May 14, 2026
cf9ad13
Moar
chrisdavidmills May 14, 2026
393b28e
Fix merge conflict
chrisdavidmills May 14, 2026
7eec9e2
Update files/en-us/web/css/reference/properties/animation/index.md
chrisdavidmills May 15, 2026
62cf9d3
small update to trigger wording
chrisdavidmills May 15, 2026
edcfd6b
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Jun 2, 2026
0a90f43
Moar
chrisdavidmills Jun 2, 2026
2f62890
Merge branch 'main' into scroll-triggered-animations
estelle Jun 8, 2026
15fc703
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Jun 9, 2026
8fd1771
Latest fixes for estelle comments
chrisdavidmills Jun 9, 2026
564b930
Latest fixes, mostly around timeline-trigger
chrisdavidmills Jun 10, 2026
35fe940
A few more fixes and tweaks from another read-through
chrisdavidmills Jun 10, 2026
6eb4224
Merge branch 'main' into scroll-triggered-animations
estelle Jun 24, 2026
ecc071c
Merge branch 'main' into scroll-triggered-animations
estelle Jun 25, 2026
77db092
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Jun 25, 2026
f88edb4
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Jun 25, 2026
238dc5c
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Jun 25, 2026
efbe072
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Jun 25, 2026
d78e10b
Update files/en-us/web/css/reference/values/animation-action/index.md
chrisdavidmills Jun 25, 2026
3f6d648
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jun 25, 2026
cb374c0
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jun 25, 2026
769c3e7
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jun 25, 2026
2cae876
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jun 25, 2026
d3ff91b
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jun 25, 2026
2533e41
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jun 25, 2026
c500a2d
Latest round of edits
chrisdavidmills Jun 26, 2026
220d694
Implement useful changes from https://github.com/chrisdavidmills/cont…
chrisdavidmills Jul 1, 2026
c4d3e82
Cut trigger-scope section right down
chrisdavidmills Jul 1, 2026
b1cbe3f
A few more changes from last review round
chrisdavidmills Jul 1, 2026
eb1b146
A few more changes from last review round
chrisdavidmills Jul 1, 2026
3ce0cae
More guide updates
chrisdavidmills Jul 13, 2026
c557cdb
A few further estelle changes
chrisdavidmills Jul 13, 2026
8af126a
Adjust play-forwards and play-backwards descriptions around playbackRate
chrisdavidmills Jul 16, 2026
c5e3651
`animation-trigger` review
estelle Jul 17, 2026
16f89c8
revert
estelle Jul 17, 2026
79e767a
Code review
estelle Jul 18, 2026
eec36f4
lost suggestions
estelle Jul 18, 2026
579da5d
Update index.md
estelle Jul 18, 2026
fb4ddf0
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
estelle Jul 18, 2026
d9a530c
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
estelle Jul 18, 2026
0e867d8
Apply suggestion from @estelle
chrisdavidmills Jul 21, 2026
4c995c1
Merge pull request #19 from mdn/trigger4
chrisdavidmills Jul 21, 2026
eb78ee4
explain multiple triggers for the same animation
chrisdavidmills Jul 21, 2026
5e2406c
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Jul 22, 2026
8f1ee35
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Jul 22, 2026
88a0716
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Jul 22, 2026
521a7cf
Add HTML summary
chrisdavidmills Jul 22, 2026
c0cbee9
Review of guide and animation-trigger
estelle Jul 23, 2026
db7cfea
Update files/en-us/web/css/guides/animation_triggers/using_scroll-tri…
chrisdavidmills Jul 24, 2026
cddebc9
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Jul 24, 2026
f863a94
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Jul 24, 2026
8d60b87
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Jul 24, 2026
2dbd28c
Some copy edits
chrisdavidmills Jul 24, 2026
ba31f36
Merge pull request #20 from estelle/review-10
chrisdavidmills Jul 24, 2026
1e2989b
Correct animation-trigger description
chrisdavidmills Jul 27, 2026
b485f80
Review of animation-triggers
estelle Jul 31, 2026
af7ece7
Review of timeline-trigger-name
estelle Aug 2, 2026
b7f3366
Review of timeline-trigger-name
estelle Aug 2, 2026
d8c33fe
duplicated line
estelle Aug 2, 2026
c1998d0
Small tweak
chrisdavidmills Aug 2, 2026
3f29242
Remove confusing/unneeded statement
chrisdavidmills Aug 2, 2026
be36d1f
Change The to A for bullet consistency
chrisdavidmills Aug 2, 2026
72cff09
Merge pull request #21 from estelle/animation-trigger-review
chrisdavidmills Aug 2, 2026
5a31a78
partial review: t-trigger-source
estelle Aug 2, 2026
3b6178d
Update files/en-us/web/css/reference/properties/animation-trigger/ind…
chrisdavidmills Aug 3, 2026
4dd5d94
Merge pull request #23 from estelle/timeline-trigger-source
chrisdavidmills Aug 3, 2026
d358453
Small grammar update
chrisdavidmills Aug 4, 2026
d0e2564
grammar/structure tweaks
chrisdavidmills Aug 4, 2026
f1916c9
Add trigger-scope information
chrisdavidmills Aug 4, 2026
c1ccd83
grammar
chrisdavidmills Aug 4, 2026
987177d
grammar
chrisdavidmills Aug 4, 2026
c9314f7
grammar
chrisdavidmills Aug 4, 2026
46d4266
grammar
chrisdavidmills Aug 4, 2026
39ee74d
grammar
chrisdavidmills Aug 4, 2026
45479f1
Update files/en-us/web/css/reference/properties/timeline-trigger-name…
chrisdavidmills Aug 4, 2026
7ae9a61
Merge pull request #22 from estelle/timeline-trigger-name
chrisdavidmills Aug 4, 2026
e74dcee
Remove repeated padding declarations in @supports blocks
chrisdavidmills Aug 4, 2026
54caf7a
tts-2
estelle Aug 6, 2026
8f590d8
Review: trigger-scope property
estelle Aug 6, 2026
5018f40
grammar
chrisdavidmills Aug 11, 2026
de0c88d
grammar, structure
chrisdavidmills Aug 11, 2026
a84c51b
grammar, spelling
chrisdavidmills Aug 11, 2026
bb28319
grammar, cleanup
chrisdavidmills Aug 11, 2026
abbee85
Merge pull request #25 from estelle/trigger-scope1
chrisdavidmills Aug 11, 2026
1e25ad4
fix
chrisdavidmills Aug 11, 2026
a4a4788
Fix broken example
chrisdavidmills Aug 11, 2026
b1d92c9
grammar
chrisdavidmills Aug 11, 2026
94ed8ac
Merge pull request #24 from estelle/tts-2
chrisdavidmills Aug 11, 2026
2eecbbb
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Aug 11, 2026
eb6e696
Make sure all Values intro sentences are consistent and in the right …
chrisdavidmills Aug 11, 2026
d147227
Make basic usage examples consistent, using animation-trigger as a te…
chrisdavidmills Aug 11, 2026
98e5afc
Attempt to rewrite timeline-trigger-source auto none descriptions
chrisdavidmills Aug 11, 2026
e7d873f
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Aug 18, 2026
09d1833
Add more detail about timeline-trigger-source auto and none
chrisdavidmills Aug 18, 2026
bce1ab4
Tweak source none wording
chrisdavidmills Aug 19, 2026
123833a
Merge branch 'main' into scroll-triggered-animations
estelle Aug 19, 2026
9ed742a
Review: timeline-trigger-source
estelle Aug 19, 2026
73c35c8
Re-review of trigger scope
estelle Aug 20, 2026
fb76676
Update files/en-us/web/css/reference/properties/trigger-scope/index.md
estelle Aug 20, 2026
b6301a9
Review: module page
estelle Aug 20, 2026
f30d398
Re-review: animation-action
estelle Aug 20, 2026
38116ab
Merge pull request #26 from estelle/trigger-source-final
chrisdavidmills Aug 24, 2026
a8f0539
A few typos and grammar nits
chrisdavidmills Aug 24, 2026
17654ea
Merge pull request #28 from estelle/animation_triggers
chrisdavidmills Aug 24, 2026
7bfb9d5
grammar nit
chrisdavidmills Aug 24, 2026
d73ed20
Merge pull request #27 from estelle/trigger-scope3
chrisdavidmills Aug 24, 2026
6bb350d
grammarly suggestions
chrisdavidmills Aug 24, 2026
57808a2
Merge pull request #29 from estelle/animation-action
chrisdavidmills Aug 24, 2026
0f3639c
Merge branch 'main' into scroll-triggered-animations
estelle Aug 24, 2026
e3d443f
re-review: animation-trigger
estelle Aug 26, 2026
6ad1c9d
Update files/en-us/web/css/reference/properties/animation/index.md
chrisdavidmills Aug 26, 2026
2a435d9
grammar tweaks
chrisdavidmills Aug 26, 2026
fc4f00c
Merge pull request #30 from estelle/Tanimation-action
chrisdavidmills Aug 26, 2026
cd79978
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Aug 27, 2026
2779630
Merge branch 'main' into scroll-triggered-animations
estelle Sep 7, 2026
df52550
timeline-trigger-name: final review
estelle Sep 7, 2026
7c7da0d
timeline-trigger-name: final review
estelle Sep 7, 2026
662c047
review timeline-trigger shorthand
estelle Sep 7, 2026
2b132c8
This property ...
estelle Sep 7, 2026
fc971a9
A few tweaks
chrisdavidmills Sep 7, 2026
028b103
Merge pull request #31 from estelle/ttn
chrisdavidmills Sep 7, 2026
56df2fe
Text tweaks
chrisdavidmills Sep 7, 2026
c6ab9cd
Merge pull request #32 from estelle/timelinetrigger
chrisdavidmills Sep 7, 2026
46e1308
Review: timeline-trigger-activation-range-start
estelle Sep 8, 2026
e82d862
Review: timeline-trigger-activation-range-start
estelle Sep 8, 2026
ae8fdac
Tweaks and fixes
chrisdavidmills Sep 9, 2026
da21149
Merge branch 'main' into scroll-triggered-animations
chrisdavidmills Sep 9, 2026
ba88e94
Merge pull request #33 from estelle/timeline-trigger-activation-range…
chrisdavidmills Sep 9, 2026
f7af0a6
duplicate changes across all range properties
chrisdavidmills Sep 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
251 changes: 251 additions & 0 deletions files/en-us/web/css/guides/animation_triggers/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
---
title: CSS animation triggers
short-title: Animation triggers
slug: Web/CSS/Guides/Animation_triggers
page-type: css-module
spec-urls: https://drafts.csswg.org/animation-triggers-1/
sidebar: cssref
---

The **CSS animation triggers** module provides functionality for triggering standard time-based [CSS animations](/en-US/docs/Web/CSS/Guides/Animations) that are initiated when a particular timeline trigger occurs.

**Scroll-triggered animations** allow you to control when a regular time-based animation starts, pauses, or stops based on when a trigger activates or deactivates, without using JavaScript. This could, for example, include when a scrolling element enters or leaves a [timeline range](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations/Timeline_insets).

The source of these ranges is normally [view progress timelines](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations/Timelines#view_progress_timelines), enabling, for example, an animation to be started when an element enters a scrollport and paused when it leaves the scrollport. Properties enable changing the timeline range, as well as controlling the active and activation ranges. Triggers can specify different actions when entering versus exiting the timeline range, allowing control over animation playback.

The animation trigger module also defines **event triggers**. When supported, these will be used to activate timeline-based animations when specific DOM events occur.

## Animation triggers in action

This example demonstrates [scroll-triggered animations](/en-US/docs/Web/CSS/Guides/Animation_triggers/Using_scroll-triggered_animations). Scroll the box up and down — the appearance of the "bouncer" text will trigger the ball's animation, and its disappearance will trigger the same animation in reverse. Scroll further, and the same process will repeat when the "another bouncer" text appears and then disappears from the scrollport.
Comment thread
estelle marked this conversation as resolved.

```html hidden live-sample___in-action
<section>
<div>
<p>scroll down</p>
<p id="trigger">bouncer</p>
<p>keep scrolling</p>
<p>keep scrolling</p>
<p>keep scrolling</p>
<p id="trigger2">another bouncer</p>
<p>scroll up</p>
</div>
</section>

<span id="ball"><span></span></span>
```

```css hidden live-sample___in-action
#ball,
#ball span {
animation:
moveright 2s 1 ease-out both,
moveright 2s 1 ease-out forwards;
animation-trigger:
--t play-forwards play-backwards,
--t2 play-forwards play-backwards;
}
#ball span {
animation-name: bounce, bounce;
}

#trigger {
timeline-trigger-name: --t;
timeline-trigger-source: view();
}
#trigger2 {
timeline-trigger-name: --t2;
timeline-trigger-source: view();
}

html {
font-family: sans-serif;
font-size: 1.3rem;
}

* {
box-sizing: border-box;
}

@layer scroller {
section {
border: solid;
width: 200px;
height: 250px;
margin-top: 50px;
overflow: scroll;
}
p {
text-align: center;
font-size: 1.5rem;
margin: 100% 0;
}
#trigger,
#trigger2 {
padding: 0;
color: red;
}
}

@layer animation-setup {
#ball {
position: fixed;
top: 96vh;
}
#ball span {
background: red;
border-radius: 50%;
height: 5vw;
display: block;
aspect-ratio: 1/1;
}

@keyframes moveright {
from {
transform: translatex(0);
}
to {
transform: translatex(90vw);
}
}

@keyframes bounce {
9%,
24%,
35%,
44%,
51%,
58%,
63%,
68%,
72%,
76%,
to {
transform: translatey(0);
animation-timing-function: ease-out;
}
from,
17%,
30%,
40%,
48%,
55%,
61%,
66%,
70%,
74% {
animation-timing-function: ease-in;
}
0% {
transform: translatey(-96vh);
}
17% {
transform: translatey(-57.6vh);
}
30% {
transform: translatey(-34.56vh);
}
40% {
transform: translatey(-20.74vh);
}
48% {
transform: translatey(-12.44vh);
}
55% {
transform: translatey(-7.46vh);
}
61% {
transform: translatey(-4.48vh);
}
66% {
transform: translatey(-2.69vh);
}
70% {
transform: translatey(-1.61vh);
}
74% {
transform: translatey(-0.97vh);
}
}
}
Comment thread
estelle marked this conversation as resolved.
```

```css hidden live-sample___in-action
@supports not (timeline-trigger-source: view()) {
body::before {
content: "Your browser does not support scroll-triggered animations.";
Comment thread
estelle marked this conversation as resolved.
background-color: wheat;
padding: 1rem 0;
text-align: center;
padding: 1rem 0;

z-index: 1;
position: fixed;
inset: 40% 0 auto;
}
}
```

{{embedlivesample("in-action", "100%", 400)}}

Both trigger elements have a {{cssxref("timeline-trigger-name")}} and {{cssxref("timeline-trigger-source")}}, causing the text blocks to define animation triggers. The bouncing ball has the bouncing {{cssxref("animation")}} set on it twice, plus an {{cssxref("animation-trigger")}} property that references both trigger names and specifies animation actions to perform whenever an animation is activated by a "bouncer" element coming into view and deactivated when it exits the scrollport.

## Reference

### Properties

- {{cssxref("animation-trigger")}}
- {{cssxref("timeline-trigger")}} shorthand
- {{cssxref("timeline-trigger-activation-range")}} shorthand
- {{cssxref("timeline-trigger-activation-range-end")}}
- {{cssxref("timeline-trigger-activation-range-start")}}
- {{cssxref("timeline-trigger-active-range")}} shorthand
- {{cssxref("timeline-trigger-active-range-end")}}
- {{cssxref("timeline-trigger-active-range-start")}}
- {{cssxref("timeline-trigger-name")}}
- {{cssxref("timeline-trigger-source")}}
- {{cssxref("trigger-scope")}}

The CSS animation triggers module also introduces the `event-trigger`, `event-trigger-name`, and `event-trigger-source` properties. Currently, no browsers support these features.

### Data types and values

- {{cssxref("&lt;animation-action>")}}

## Guides

- [Using CSS scroll-triggered animations](/en-US/docs/Web/CSS/Guides/Animation_triggers/Using_scroll-triggered_animations)
- : A guide to implementing CSS scroll-triggered animations.
Comment thread
estelle marked this conversation as resolved.
Outdated
- [Timeline range names](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations/Timeline_range_names)
- : The {{cssxref("timeline-range-name")}} data type: Understanding the various timeline range names.
Comment thread
estelle marked this conversation as resolved.
- [Understanding timeline insets](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations/Timeline_insets)
- : Understanding the animation attachment range syntax used to inset scroll-driven and scroll-triggered animations.

## Related concepts

- [CSS animations](/en-US/docs/Web/CSS/Guides/Animations) module
- {{cssxref("animation-timeline")}}
- {{cssxref("@keyframes")}} at-rule
- [`<keyframe-selector>`](/en-US/docs/Web/CSS/Reference/Selectors/Keyframe_selectors)
- [CSS scroll-driven animations](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations) module
- {{cssxref("animation-range")}} shorthand
- {{cssxref("animation-range-end")}}
- {{cssxref("animation-range-start")}}
- {{cssxref("scroll-timeline")}} shorthand
- {{cssxref("scroll-timeline-axis")}}
- {{cssxref("scroll-timeline-name")}}
- {{cssxref("timeline-scope")}}
- {{cssxref("view-timeline")}} shorthand
- {{cssxref("view-timeline-axis")}}
- {{cssxref("view-timeline-inset")}}
- {{cssxref("view-timeline-name")}}

## Specifications

{{Specifications}}

## See also

- [Using CSS animations](/en-US/docs/Web/CSS/Guides/Animations/Using)
- [CSS scroll-driven animations](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations)
- [CSS scroll-triggered animations are coming!](https://developer.chrome.com/blog/scroll-triggered-animations) on developer.chrome.com (2025)
Comment thread
estelle marked this conversation as resolved.
Comment thread
estelle marked this conversation as resolved.
Loading