Apologies, perhaps I assumed too strongly that it would be considered a
minor extension to the scroll-driven animations API.

I've written an explainer
<https://github.com/explainers-by-googlers/scroll-triggered-animations/blob/main/ANIMATION_TIMELINE_RANGE_SCROLL.md>
and updated the chromestatus page with it.
Happy to provide further info.

On Wed, Jan 14, 2026 at 11:10 AM Alex Russell <[email protected]>
wrote:

> So there's no explainer, no developer feedback, and no examples...are we
> being asked to ship this first? Feels higher risk than it should be. Can a
> developer combine `scroll` and `exit`, e.g.?
>
> On Wednesday, January 14, 2026 at 7:34:26 AM UTC-8 David Awogbemila wrote:
>
>> I think this CSSWG issue comment
>> <https://github.com/w3c/csswg-drafts/issues/9367#issuecomment-1730320477> 
>> might
>> be the only external one I have; I've added it to the chromestatus page.
>>
>> Bramus's comment also highlights that the "scroll" keyword will be
>> particularly useful for Scroll-Triggered Animations:
>> it allows authors to effectively create timeline ranges with a single
>> trigger point (since the boundaries of the "scroll" range cannot be
>> crossed).
>>
>> On Wed, Jan 14, 2026 at 9:48 AM Bramus Van Damme <[email protected]>
>> wrote:
>>
>>>
>>>
>>> On Wednesday, January 14, 2026 at 2:57:24 PM UTC+1 Yoav Weiss (@Shopify)
>>> wrote:
>>>
>>> On Tuesday, January 13, 2026 at 5:19:24 PM UTC+1 David Awogbemila wrote:
>>>
>>> *Contact emails*
>>> [email protected]
>>>
>>> *Explainer*
>>> *No information provided*
>>>
>>> *Specification*
>>> https://drafts.csswg.org/scroll-animations-1/#valdef-
>>> animation-timeline-range-scroll
>>>
>>> *Summary*
>>> This feature expands the set of named ranges of view timelines, adding a
>>> "scroll" range. The Scroll-Driven Animations API introduced ViewTimelines
>>> along with named ranges which refer to portions of a ViewTimeline that
>>> define an animation's range[1]. However, all the named ranges provided were
>>> restricted to the portion of the ViewTimeline where its subject is visible.
>>> It is useful for authors to be able to refer to the full extent of the
>>> scroll container underlying the timeline. This feature facilitates this by
>>> adding a named range of "scroll" to the existing set ("entry", "exit",
>>> "cover", "contain").
>>>
>>> [1] https://developer.mozilla.org/en-US/docs/Web/CSS/
>>> Reference/Properties/animation-range
>>>
>>> *Blink component*
>>> Blink>Animation
>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EAnimation%22>
>>>
>>> *Web Feature ID*
>>> Missing feature
>>>
>>> *Motivation*
>>> A scroll-driven animation's range[1] can be described in terms of the
>>> (named) ranges of a ViewTimeline, i.e. "cover", "contain", "entry", "exit."
>>> This allows authors to tie the progress of the animation directly to the
>>> the position of the ViewTimeline's subject within the scroll container
>>> underlying the ViewTimeline.
>>>
>>> However, ViewTimelines are, by default, constrained to the portion of
>>> the underlying scroll container within which the subject is (wholly or
>>> partially) visible, i.e. the "cover" range, i.e. { rangeStart: cover 0%,
>>> rangeEnd: cover 100%}. This means that an author has no way, for example,
>>> to refer to a range that starts when the subject is visible but ends at the
>>> end of the scrolling container (rather than when then subject stops being
>>> visible). They could opt for a hack like { rangeStart: cover 0%, rangeEnd:
>>> cover 10000%}, having attempted to manually calculate rangeEnd. Similarly,
>>> to set rangeStart, to the start of the scroll container they'd need to
>>> compute some negative percentage or px offset.
>>>
>>> With a named range of "scroll", the author would write "scroll 0%" or
>>> "scroll 100%" instead of manually-calculated values.
>>>
>>> [1] https://developer.mozilla.org/en-US/docs/Web/CSS/
>>> Reference/Properties/animation-range
>>>
>>> *Initial public proposal*
>>> https://github.com/w3c/csswg-drafts/issues/9367#issuecomment-1854280461
>>>
>>> *TAG review*
>>> We think this should be covered by the TAG review[1] for scroll-driven
>>> animations as it extended the API introduced in that feature by one
>>> keyword.
>>>
>>> [1] https://github.com/w3ctag/design-reviews/issues/828
>>>
>>> *TAG review status*
>>> Pending
>>>
>>> *Risks*
>>>
>>>
>>> *Interoperability and Compatibility*
>>> *No information provided*
>>>
>>> *Gecko*: No signal
>>>
>>> *WebKit*: No signal
>>>
>>>
>>> Can you ask for signals?
>>>
>>>
>>>
>>> *Web developers*: No signals
>>>
>>>
>>> Presumably, we're shipping this because this is something developers
>>> want to use..
>>>
>>>
>>> Yes, authors need this. Not only for Scroll-Driven Animations, but also
>>> for Scroll-Triggered Animations when you want to implement a trigger that
>>> fires only once. The end of the activation range for such a trigger is then
>>> typically set to “scroll 100%”.
>>>
>>>
>>>
>>>
>>>
>>> *Other signals*:
>>>
>>> *WebView application risks*
>>>
>>> Does this intent deprecate or change behavior of existing APIs, such
>>> that it has potentially high risk for Android WebView-based applications?
>>> *No information provided*
>>>
>>>
>>> *Debuggability*
>>> *No information provided*
>>>
>>> *Will this feature be supported on all six Blink platforms (Windows,
>>> Mac, Linux, ChromeOS, Android, and Android WebView)?*
>>> Yes
>>>
>>> *Is this feature fully tested by web-platform-tests
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
>>> Yes
>>> https://wpt.fyi/results/scroll-animations/view-
>>> timelines?label=master&label=experimental&aligned&q=view-
>>> timeline-get-current-time-range-name.tentative.html http
>>> s://wpt.fyi/results/scroll-animations/css/view-timeline-
>>> range-animation.html?label=master&label=experimental&
>>> aligned&q=view-timeline-range-animation.html https://wpt.
>>> fyi/results/scroll-animations/view-timelines/view-timeline-
>>> get-set-range.html?label=master&label=experimental&
>>> aligned&q=view-timeline-get-set-range.html
>>>
>>> *Flag name on about://flags*
>>> *No information provided*
>>>
>>> *Finch feature name*
>>> *No information provided*
>>>
>>> *Non-finch justification*
>>> *No information provided*
>>>
>>> *Rollout plan*
>>> Will ship enabled for all users
>>>
>>> *Requires code in //chrome?*
>>> False
>>>
>>> *Tracking bug*
>>> https://crbug.com/41483848
>>>
>>> *Estimated milestones*
>>> Shipping on desktop146Shipping on Android146Shipping on WebView146
>>>
>>> *Anticipated spec changes*
>>>
>>> Open questions about a feature may be a source of future web compat or
>>> interop issues. Please list open issues (e.g. links to known github issues
>>> in the project for the feature specification) whose resolution may
>>> introduce web compat/interop risk (e.g., changing to naming or structure of
>>> the API in a non-backward-compatible way).
>>> *No information provided*
>>>
>>> *Link to entry on the Chrome Platform Status*
>>> https://chromestatus.com/feature/6522328437620736?gate=6481153257242624
>>>
>>> This intent message was generated by Chrome Platform Status
>>> <https://chromestatus.com/>.
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA6pwF4nNvMjUUQbW8GEPL2-CNfqWoka%3DWxdM1%3DzSCKmr%3Dj57w%40mail.gmail.com.

Reply via email to