Skip to content

Make CSS is animatable data consistent - #30417

Open
chrisdavidmills wants to merge 7 commits into
mdn:mainfrom
chrisdavidmills:css-is-animatable-consistency
Open

Make CSS is animatable data consistent#30417
chrisdavidmills wants to merge 7 commits into
mdn:mainfrom
chrisdavidmills:css-is-animatable-consistency

Conversation

@chrisdavidmills

@chrisdavidmills chrisdavidmills commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

As per #30358 (comment), This PR aims to make CSS data more consistent in cases where a feature (property or type) started its life off not animatable, but was made animatable later on.

In such cases, I am using the following keys:

  • is_animatable when the data point describes when the feature was made @keyframe animatable, or @keyframe animatable and transitionable.
  • is_transitionable when the data point describes when the feature was made transitionable.

And the following description structure:

  • "@keyframe animatable" when the data point describes when the feature was made @keyframe animatable.
  • "Transitionable" when the data point describes when the feature was made transitionable.
  • "@keyframe animatable and transitionable" when the data point describes when the feature was made @keyframe animatable and transitionable.

The description also has an optional suffix: "when x", where x is a particular condition under which the feature is animatable and/or transitionable. For example — "@keyframe animatable and transitionable when setting inset properties"

Notes:

  • text-combine-upright started off animatable in Fx, but that was a mistake, and it was corrected per spec later on. I don't think this is worth adding a separate data point for, so I've just left that one as a note.
  • I've not added a guideline for this yet, as I'm not sure where to do that. I am hoping the above will for the basis of that.

Test results and supporting details

Related issues

@github-actions github-actions Bot added data:css Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS size:m [PR only] 25-100 LoC changed labels Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs).

@ddbeck ddbeck left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for starting this, Chris! I think this will be a nice improvement. I've got one inline suggestion.

Additionally, I'd say that I don't love the @keyframe text, though I don't feel super strongly about it. I kinda think "Animatable and transitionable" gets the point across, but maybe others will have a different take.

For the guideline text, that will need to go into a new file: docs/data-guidelines/css.md. It'll look something like this:

# Data guidelines for CSS features

This file contains guidelines that are specific to CSS features (`css/`).

## Animatable and transitionable

Use the key name `is_animatable` to…

<!-- whatever else you have to say here, ideally imperative mood -->

This guideline was proposed in [#30417](https://github.com/mdn/browser-compat-data/pull/30417/).

There will be just one guideline in it, to start. That's fine.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

AFAICT, the only difference here is between Chrome 116 and 117, so I think here we ought to have one "normal" is_animatable feature, where Chrome is partial at 116 and fully implemented at 117.

If that makes sense, we can dispense with the special case of is_transitionable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is a nice idea. I've had a go at updating it.

Notes:

  • On the 116 partial data, I've put a note "@keyframe animatable only"
  • For the overall description, I've put a slightly different form than previous ones we've discussed — "@keyframe animatable; transitionable when setting transition-behavior: allow-discrete". This is because the keyframe animatable part doesn't require transition-behavior: allow-discrete to be set, but transitions do. I didn't want people thinking transition-behavior: allow-discrete was required for both.

@github-actions github-actions Bot added size:l [PR only] 101-1000 LoC changed and removed size:m [PR only] 25-100 LoC changed labels Sep 4, 2026
@chrisdavidmills

Copy link
Copy Markdown
Contributor Author

Additionally, I'd say that I don't love the @keyframe text, though I don't feel super strongly about it. I kinda think "Animatable and transitionable" gets the point across, but maybe others will have a different take.

The @keyframe bit looks slightly messier and wordier, but I think it is useful just to make it clear what kind of animations we are talking about. Some people think @keyframe animations and transitions are interchangeable, some people might think we are talking about SVG or even JS animations.

Maybe it's not that important. Perhaps we should get a third opinion on this.

@github-actions github-actions Bot added the docs Issues or pull requests regarding the documentation of this project. label Sep 4, 2026
@chrisdavidmills

Copy link
Copy Markdown
Contributor Author

For the guideline text, that will need to go into a new file: docs/data-guidelines/css.md.

I've added the data guideline too.

Comment thread css/properties/display.json Outdated
Comment thread docs/data-guidelines/css.md Outdated
@ddbeck ddbeck added the meeting agenda Issues or pull requests in need of discussion in a project meeting. label Sep 11, 2026

@ddbeck ddbeck left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm happy with this, but this needs more eyes from owners. I've put it on the agenda for the next BCD meeting.

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

Labels

data:css Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS docs Issues or pull requests regarding the documentation of this project. meeting agenda Issues or pull requests in need of discussion in a project meeting. size:l [PR only] 101-1000 LoC changed

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants