Skip to content

Conversation

@Calme1709
Copy link
Contributor

The first step towards implementing CSS scroll driven animations.

Some of the imported tests continue to fail due to the fact that we serialize coordinating value list longhands (e.g. scroll-timeline-axis, animation-duration, etc) incorrectly in that if all values are the same we serialize them as a single value.

Gains us ~320 WPT tests.

@Calme1709 Calme1709 requested a review from AtkinsSJ as a code owner November 23, 2025 13:11
Avoids a crash when `animation-duration` was `auto`
The remaining failing tests in scroll-timeline-shorthand.html are due to
either:
 a) incorrect tests, see web-platform-tests/wpt#56181 or;
 b) a wider issue where we collapse coordinating value list longhand
properties to a single value when we shouldn't.
The remaining failing tests in view-timeline-shorthand.html are due to
either:
 a) incorrect tests, see web-platform-tests/wpt#56181 or;
 b) a wider issue where we collapse coordinating value list longhand
properties to a single value when we shouldn't.
Required for `animation-timeline` and the various `animation-trigger-*`
properties within the `animation` coordinating value list
@Calme1709 Calme1709 force-pushed the scroll-animations-properties branch from db51aa5 to 925bb54 Compare November 28, 2025 01:38
@Calme1709
Copy link
Contributor Author

Changes:
Added FIXMEs to propagate animation-duration auto value as distinct from 0s, this is required as it is how the normalize specified timing algorithm distinguishes between time and progress-based animations.

Copy link
Member

@AtkinsSJ AtkinsSJ left a comment

Choose a reason for hiding this comment

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

Very cool! I wasn't expecting this any time soon. Just a couple of very minor things.

(It also bothers me every time reset-only longhands still have to be done manually, or coordinating value lists, or parsing a list not always returning a list. I'll have to see if I can revive my branch for the former. 😅)

auto stringified_inset = inset_values[i]->to_string(mode);

if (stringified_inset != "auto"sv)
builder.appendff(" {}", inset_values[i]->to_string(mode));
Copy link
Member

Choose a reason for hiding this comment

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

You can use stringified_inset here.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants