Skip to content

Editorial review: Document scroll-triggered animations#43158

Open
chrisdavidmills wants to merge 52 commits intomdn:mainfrom
chrisdavidmills:scroll-triggered-animations
Open

Editorial review: Document scroll-triggered animations#43158
chrisdavidmills wants to merge 52 commits intomdn:mainfrom
chrisdavidmills:scroll-triggered-animations

Conversation

@chrisdavidmills
Copy link
Copy Markdown
Contributor

@chrisdavidmills chrisdavidmills commented Feb 18, 2026

Description

Chrome 146 adds support for scroll-triggered animations; see https://chromestatus.com/feature/5181996801982464.

This PR adds documentation for this new feature, including:

  • A module page for the new Animation triggers module.
  • A guide that explains and demonstrates all the important sub-features.
  • Ref page for the animation-trigger property.
  • Ref page for the <animation-action> type.
  • Ref page for the trigger-scope property.
  • Ref page for the timeline-trigger shorthand property.
  • Ref page for the timeline-trigger-name property.
  • Ref page for the timeline-trigger-source property.
  • Ref page for the timeline-trigger-activation-range shorthand property.
  • Ref page for the timeline-trigger-activation-range-start property.
  • Ref page for the timeline-trigger-activation-range-end property.
  • Ref page for the timeline-trigger-active-range shorthand property.
  • Ref page for the time-trigger-active-range-start property.
  • Ref page for the time-trigger-active-range-end property.

Motivation

Additional details

Related issues and pull requests

@chrisdavidmills chrisdavidmills requested a review from a team as a code owner February 18, 2026 16:51
@chrisdavidmills chrisdavidmills requested review from hamishwillee and removed request for a team and hamishwillee February 18, 2026 16:51
@github-actions github-actions bot added the Content:CSS Cascading Style Sheets docs label Feb 18, 2026
@chrisdavidmills chrisdavidmills changed the title Document scroll-triggered animations Technical review: Document scroll-triggered animations Feb 18, 2026
@github-actions github-actions bot added the size/xl [PR only] >1000 LoC changed label Feb 18, 2026
@chrisdavidmills chrisdavidmills marked this pull request as draft February 18, 2026 16:51
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 18, 2026

Preview URLs (18 pages)
Flaws (15)

Note! 16 documents with no flaws that don't need to be listed. 🎉

Found an unexpected or unresolvable flaw? Please report it here.

URL: /en-US/docs/Web/CSS/Reference/Properties/animation
Title: animation
Flaw count: 1

  • broken_links:
    • Link /en-US/docs/Web/CSS/Reference/Values/number-token doesn't resolve

URL: /en-US/docs/Web/CSS/Reference/Properties/timeline-trigger
Title: timeline-trigger CSS property
Flaw count: 14

  • macros:
    • Macro cssinfo produces link /en-US/docs/Web/CSS/timeline-trigger-range-start which doesn't resolve
    • Macro cssinfo produces link /en-US/docs/Web/CSS/timeline-trigger-range-end which doesn't resolve
    • Macro cssinfo produces link /en-US/docs/Web/CSS/timeline-trigger-exit-range-start which doesn't resolve
    • Macro cssinfo produces link /en-US/docs/Web/CSS/timeline-trigger-exit-range-end which doesn't resolve
    • Macro cssinfo produces link /en-US/docs/Web/CSS/timeline-trigger-range which doesn't resolve
    • and 9 more flaws omitted
External URLs (2)

URL: /en-US/docs/Web/CSS/Guides/Animation_triggers
Title: CSS animation triggers


URL: /en-US/docs/Web/CSS/Guides/Animation_triggers/Using_scroll-triggered_animations
Title: Using CSS scroll-triggered animations

(comment last updated: 2026-04-10 12:10:02)

@chrisdavidmills chrisdavidmills marked this pull request as ready for review March 2, 2026 18:02
Copy link
Copy Markdown
Contributor

@bramus bramus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m halfway through reviewing but already submitting my comments as I see there are some terms that are getting used in places where they should not be.

The themes I am seeing, where wrong names are use:

  • A trigger vs an animation becoming active / inactive: it is the trigger that becomes active / inactive. Animations will do something (play, pause, etc) in response to that trigger becoming active / inactive.

  • An element being a trigger vs a ViewTimeline being a trigger: it is the ViewTimeline that is the trigger, not the element itself.

I’m seeing these terms (trigger / animation / element) get mixed up through all files I reviewed.

Files I did not review, but most likely also have this mixup:

  • files/en-us/web/css/reference/properties/timeline-trigger-active-range-end/index.md
  • files/en-us/web/css/reference/properties/timeline-trigger-activation-range/index.md
  • files/en-us/web/css/reference/properties/timeline-trigger-active-range-start/index.md
  • files/en-us/web/css/reference/properties/timeline-trigger-active-range/index.md
  • files/en-us/web/css/reference/properties/timeline-trigger-name/index.md
  • files/en-us/web/css/reference/properties/timeline-trigger-source/index.md
  • files/en-us/web/css/reference/properties/timeline-trigger/index.md
  • files/en-us/web/css/reference/properties/trigger-scope/index.md

All other files I have reviewed, and left suggestions that you can immediately apply.

I can do a second review round later, but currently I’m overly busy with some other things.

chrisdavidmills and others added 26 commits March 10, 2026 10:10
…ggered_animations/index.md

Co-authored-by: Bramus <bramus@bram.us>
…ggered_animations/index.md

Co-authored-by: Bramus <bramus@bram.us>
…ggered_animations/index.md

Co-authored-by: Bramus <bramus@bram.us>
…ggered_animations/index.md

Co-authored-by: Bramus <bramus@bram.us>
…ggered_animations/index.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…ex.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range-end/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range-start/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range/index.md

Co-authored-by: Bramus <bramus@bram.us>
…vation-range/index.md

Co-authored-by: Bramus <bramus@bram.us>
@chrisdavidmills chrisdavidmills changed the title Technical review: Document scroll-triggered animations Editorial review: Document scroll-triggered animations Apr 8, 2026
@chrisdavidmills chrisdavidmills requested a review from estelle April 8, 2026 12:17
Copy link
Copy Markdown
Member

@estelle estelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didn't get very far. committing what i have thus far.

- {{cssxref("timeline-trigger-source")}}
- {{cssxref("trigger-scope")}}

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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


> [!NOTE]
> {{cssxref("animation-timeline")}}, {{cssxref("animation-range-start")}}, and {{cssxref("animation-range-end")}} are not currently included in this list, as current implementations are reset-only. This means that including `animation` resets a previously-declared `animation-timeline` value to `auto` and previously-declared `animation-range-start` and `animation-range-end` values to `normal`, but these properties cannot be set via `animation`. When creating [CSS scroll-driven animations](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations), you need to declare these properties after declaring any `animation` shorthand for it to take effect.
> {{cssxref("animation-timeline")}}, {{cssxref("animation-range-start")}}, {{cssxref("animation-range-end")}} and {{cssxref("animation-trigger")}} are not currently included in this list, as current implementations are reset-only. This means that including `animation` resets a previously-declared `animation-timeline` value to `auto`, previously-declared `animation-range-start` and `animation-range-end` values to `normal`, and a previously-declared `animation-trigger` to `none`, but these properties cannot be set via `animation`. When creating CSS [scroll-driven animations](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations) or [triggered animations](/en-US/docs/Web/CSS/Guides/Animation_triggers), you need to declare these properties after declaring any `animation` shorthand for them to take effect.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only animation-timeline is in the shorthand i think, so i don't think this resets the other properties. did you test?

/* Named timeline range value */
timeline-trigger-activation-range-end: contain;
timeline-trigger-activation-range-end: exit;
timeline-trigger-activation-range-end: entry 100%;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

separate the named-only and the named with offsets

timeline-trigger-activation-range-end: 80%;
timeline-trigger-activation-range-end: 400px;

/* Named timeline range value */
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/* Named timeline range value */
/* Named timeline range */


```css
/* Keyword or <length-percentage> */
timeline-trigger-activation-range-end: normal;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's break apart: put normal under a keyword -only header, and vals under a offset header


If the `<timeline-range-name>` value does not include a `<length-percentage>`, the percentage defaults to `100%`.

The `timeline-trigger-activation-range-end`, along with the {{cssxref("timeline-trigger-activation-range-start")}} property, can both be set in a single declaration using the {{cssxref("timeline-trigger-activation-range")}} shorthand.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `timeline-trigger-activation-range-end`, along with the {{cssxref("timeline-trigger-activation-range-start")}} property, can both be set in a single declaration using the {{cssxref("timeline-trigger-activation-range")}} shorthand.
The `timeline-trigger-activation-range-end` and {{cssxref("timeline-trigger-activation-range-start")}} properties can both be set in a single declaration using the {{cssxref("timeline-trigger-activation-range")}} shorthand.


- [CSS scroll-driven animations](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations) module.
- [CSS scroll-driven animations](/en-US/docs/Web/CSS/Guides/Scroll-driven_animations) module
- Properties in the [transitions](/en-US/docs/Web/CSS/Guides/Transitions) CSS module to trigger animations based on user actions.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Properties in the [transitions](/en-US/docs/Web/CSS/Guides/Transitions) CSS module to trigger animations based on user actions.
- [CSS animation triggers](/en-US/docs/Web/CSS/Guides/Animation_triggers) module
- [CSS transitions](/en-US/docs/Web/CSS/Guides/Transitions) module


## See also

- [Using CSS scroll-triggered animations](/en-US/docs/Web/CSS/Guides/Animation_triggers/Using_scroll-triggered_animations)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think we can add this to the guide list. What do you think?

## 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.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can add the animation timeline names guide here. What do you think?


## Related concepts

- [CSS animation triggers](/en-US/docs/Web/CSS/Guides/Animation_triggers) module
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

triggers seems to expand scroll-driven, so we should invert these (i haven't read everything yet, so maybe wrong)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Content:CSS Cascading Style Sheets docs size/xl [PR only] >1000 LoC changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants