Skip to content

[css-2025] New Categories, and Adding specs to Official Definition #9770

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
SebastianZ opened this issue Jan 5, 2024 · 11 comments
Open

[css-2025] New Categories, and Adding specs to Official Definition #9770

SebastianZ opened this issue Jan 5, 2024 · 11 comments
Assignees
Labels
css-2025 The new, improved CSS snapshot

Comments

@SebastianZ
Copy link
Contributor

SebastianZ commented Jan 5, 2024

There are a bunch of specifications which might be promoted to be in the Official Definition section.

Media Queries 4

Current status: CRD (last published: 25 December 2021)
WPT: passing tests: Chrome: 1671, Edge: 1671, Firefox: 1671, Safari: 1668; interop: 1659 / 1695 (97.9%)
Current Snapshot section: Fairly Stable
Open issues: on GitHub: 21, in spec.: 0

Notes: Very high interoperability, spec. in CRD, though many open issues. So it might also be put into Rough Interoperability, instead.

CSS Scroll Snap 1

Current status: CR (last published: 11 March 2021)
WPT: passing tests (stable): Chrome: 693, Edge: 685, Firefox: 640, Safari: 637; interop: 632 / 698 (90.5%)
Current Snapshot section: Fairly Stable
Open issues: on GitHub: 20, in spec.: 0

Notes: High interooperability, spec. in CR, though many open issues. So it might also be put to Rough Interoperability, instead.

CSS Scrollbars 1

Current status: CR (with request to move it to PR; last published: 9 December 2021)
WPT: passing tests (experimental): Chrome: 113, Edge: 113, Firefox: 113, Safari: 51; interop: 51 / 113 (45.1%), 113 / 113 (100%) for Chrome, Edge and Firefox
Current Snapshot section: Fairly Stable
Open issues: on GitHub: 6, in spec.: 0

Notes: 100% interoperability between two engines, spec. in CR, few open issues.

CSS Grid 2

Current status: CRD (last published: 18 December 2020)
WPT: passing tests (stable): Chrome: 12010, Edge: 12010, Firefox: 11268, Safari: 11640; interop: 11064 / 12094 (91.5%)
Current Snapshot section: Rough Interoperability
Open issues: on GitHub: 12, in spec.: 2

Notes: High interoperability, spec. in CRD, still some open issues, last published version outdated. It might also move to Rough Interoperability, instead.
CSS Grid 1 is currently listed under Rough Interoperability, as well, though as it is superseded by Level 2, it can probably be removed.

CSS Will Change 1

Current status: CRD (last published: 5 May 2022)
WPT: passing tests (stable): Chrome: 162, Edge: 159, Firefox: 170, Safari: 160; interop: 152 / 170 (89,4%), 162 / 170 (95.3%) for Chrome and Firefox
Current Snapshot section: Rough Interoperability
Open issues: on GitHub: 8, in spec.: 0

Notes: Very high interoperability, spec. in CRD, some open issues.

Color Adjust 1

Current status: CRD (last published: 14 June 2022)
WPT: passing tests (stable): Chrome: 152, Edge: 152, Firefox: 144, Safari: 89; interop: 75 / 161 (46.6%), 135 / 161 (83.9%) for Chrome, Edge and Firefox
Current Snapshot section: Rough Interoperability
Open issues: on GitHub: 8, in spec.: 1

Notes: High interoperability between two engines, spec. in CRD, some open issues.

CSS Conditional 4

Current status: CR (last published: 17 February 2022)
WPT: passing tests (stable): Chrome: 2768, Edge: 2752, Firefox: 2627, Safari: 2645; interop: 2573 / 2809 (91.6%)
Current Snapshot section: Rough Interoperability
Open issues: on GitHub: 3, in spec.: 1

Notes: High interoperability, spec. in CR, few open issues.
This spec. is currently a delta spec. against Level 3. And Level 3 is currently part of the Official Definition. So when the rest of Level 3 gets incorporated into Level 4, so it supersedes Level 3, it should replace Level 3 in the Official Definition.

Geometry 1

Current status: CR (last published: 4 December 2018)
WPT: passing tests: Chrome: 1547, Edge: 1551, Firefox: 1539, Safari: 1530; interop: 1522 / 1554 (97.9%)
Current Snapshot section: -
Open issues: on GitHub: 23, in spec.: 0

Notes: Very high interoperability, spec. in CR, though many open issues and last published version outdated. So it might also be put to Rough Interoperability, instead.

CSS Shapes 1

Current status: WD (last published: 15 November 2022)
WPT: passing tests: Chrome: 5094, Edge: 5012, Firefox: 5789, Safari: 5069; interop: 4951 / 5829 (84.9%)
Current Snapshot section: -
Open issues: on GitHub: 16, in spec.: 0

Notes: High interoperability, though spec. only in WD and many open issues. So it might also be put to Rough Interoperability, instead.


Note that this issue only covers specs that should move to the Official Definition section. I'll go through all the other specs and create separate issues for the others sections if needed.

Sebastian

@SebastianZ SebastianZ added the css-2024 The 2024 snapshot label Jan 5, 2024
@SebastianZ
Copy link
Contributor Author

I've added Geometry 1 to the list. Not sure about its state, though. It's in CR and interop is very high, though it it seems to have many unresolved issues. So maybe it should rather move to Rough Interoperability?

Sebastian

@dbaron
Copy link
Member

dbaron commented Jan 6, 2024

The Interop 2023 dashboard might be a good list of things that have likely become broadly interoperable in the past year.

@SebastianZ
Copy link
Contributor Author

SebastianZ commented Jan 7, 2024

The Interop 2023 dashboard might be a good list of things that have likely become broadly interoperable in the past year.

That's true, though it mostly only covers parts of specifications. I've been digging through the different items there and the tests behind them and it looks like these specs might move to the Official Definition, though they still have some open issues and/or need to be published as CR(D)s:

CSS Containment 2

Current status: WD (last published: 17 September 2022)
WPT: passing tests (experimental; excluding container queries, not sure how to restrict to specific spec. level): Chrome: 941, Edge: 927, Firefox: 877, Safari: 902; interop: 829 / 957 (86.6%)
Current Snapshot section: -
Open issues: on GitHub: 38, in spec.: 1

Notes: High interoperability, though spec. only in WD and many open issues. So it might also be put to Rough Interoperability, instead.
If added to Official Definition, it supersedes level 1.

CSS Masking 1

Current status: CRD (last published: 5 August 2021)
WPT: passing tests (experimental): Chrome: 3521, Edge: 3521, Firefox: 4204, Safari: 3311; interop: 3278 / 4251 (77.1%)
Current Snapshot section: Fairly Stable
Open issues: on GitHub: 13, in spec.: 2

Notes: Relatively high interoperability, spec. in CRD, some open issues.

Motion Path 1

Current status: WD (last published: 5 Nov 2024)
WPT: passing tests (experimental): Chrome: 3295, Edge: 3295, Firefox: 3298, Safari: 3128; interop: 2939 / 4699 (62.5%)
Current Snapshot section: -
Open issues: on GitHub: 11, in spec.: 2

Notes: Some interoperability, spec. only in WD, some open issues.

CSS Overscroll Behavior 1

Current status: WD (last published: 6 June 2019)
WPT: passing tests: Chrome: 60, Edge: 60, Firefox: 60, Safari: 61; interop: 59 / 61 (96.7%)
Current Snapshot section: -
Open issues: on GitHub: 10, in spec.: 0

Notes: Very high interoperability, some open issues, though spec. only in WD and last published version outdated.

CSS Cascade 5

Current status: WD (last published: 13 January 2022)
WPT: passing tests (experimental): Chrome: 601, Edge: 601, Firefox: 620, Safari: 610; interop: 559 / 623 (89.7%)
Current Snapshot section: -
Open issues: on GitHub: 16, in spec.: 2

Notes: High interoperability, some open issues, though spec. only in WD.
Supersedes level 4 in official definition.

CSS Position 3

Current status: WD (last published: 3 April 2023)
WPT: passing tests (excluding overlay, not sure how to restrict to specific spec. level): Chrome: 1325, Edge: 1323, Firefox: 1212, Safari: 1256; interop: 1168 / 1329 (87.9%)
Current Snapshot section: Rough Interoperability
Open issues: on GitHub: 36, in spec.: 2

Notes: High interoperability, though many open issues and spec. only in WD.


(Other specs covered in Interop 2022 and 2023 may move to the Rough Interoperability section and some features may be added to Safe to Release pre-CR Exceptions. So again, I'll file separate issues for them.)

Sebastian

@svgeesus
Copy link
Contributor

I agree with all the suggested Official Definition suggestions from your first comment except Geometry 1, which I agree would be better in Rough Interop.

@svgeesus
Copy link
Contributor

For CSS Motion 1 it needs an updated WD which we resolved to do in August 2023. It could then go in Rough Interop.

@SebastianZ
Copy link
Contributor Author

SebastianZ commented Aug 1, 2024

I've updated the statistics for all the specs listed and moved CSS Shapes 1 up to the initial comment.

As time is passing quickly, let's add this to the agenda.

I think definite candidates for the official definition are:

  • CSS Scrollbars 1
  • CSS Will Change 1
  • Color Adjust 1
  • CSS Conditional 4 (requires incorporation of CSS Conditional 3 contents; supersedes level 3 in Official Definition)
  • CSS Masking 1
  • CSS Overscroll Behavior 1 (requires moving to CRD)
  • CSS Cascade 5 (requires moving to CRD; supersedes level 4 in Official Definition)

The others listed above need more debate. (See the notes I've added.)

Sebastian

@svgeesus
Copy link
Contributor

svgeesus commented Aug 3, 2024

Related:

@svgeesus
Copy link
Contributor

svgeesus commented Aug 3, 2024

Related to CSS Scrollbars 1 and degree of interop:

@astearns astearns moved this to TPAC/FTF agenda items in CSSWG Agenda TPAC 2024 Sep 13, 2024
@astearns astearns moved this from TPAC/FTF agenda items to Regular agenda items in CSSWG Agenda TPAC 2024 Sep 13, 2024
@fantasai
Copy link
Collaborator

fantasai commented Nov 13, 2024

I think it's worth pointing out that the "Official Definition" section is the "This is basically a REC, just ironing out interop on a few details", i.e. the spec is extremely stable and implementations are almost completely interoperable. Some of these specs should move there, but probably not all of them.

@css-meeting-bot
Copy link
Member

The CSS Working Group just discussed [css-2024] Add specs to Official Definition, and agreed to the following:

  • RESOLVED: Add new category, shorthanded as "reliable CR"
  • RESOLVED: add MQ4 and Scroll Snap to "reliable CR"
  • RESOLVED: Move Scrollbars to "reliable CR"
  • RESOLVED: Move Grid 1 and 2 to "reliable CR"
The full IRC log of that discussion <Rossen0> ack fantasai
<TabAtkins> fantasai: high-level comment. reason for the snapshot was becasue the status of our specs didn't alway sreflect the actual stability
<TabAtkins> fantasai: we'd have a WD that's basically a Rec, etc
<TabAtkins> fantasai: was confuising, people didn't know stability
<TabAtkins> fantasai: what we ended up with in the snapshot is 3 lists, i think i'm gonna propose 4 lists
<TabAtkins> fantasai: we've got "official definition", that's the list of "these are (basically) Recs". some actually Recs, others are same stability level, just waiting on some bugfixes or minor issues
<TabAtkins> fantasai: usually blocker is missing an impl report
<TabAtkins> fantasai: then we have two lists, one is "these are pretty stable, maybe not enough impl experience, but not really changing"
<TabAtkins> fantasai: and "spec is a mess but impls are shipping and roughly interoperable"
<TabAtkins> fantasai: poster child is Transitions & Animations
<TabAtkins> fantasai: tons of issues, but people wer eshipping and they were widely used
<TabAtkins> fantasai: so we have Rec-levle, CR-level with limited impl, and CR-level impl with limited spec
<TabAtkins> fantasai: might want a fourth list of "spec is pretty stable, largely implemented, largely reliable for use"
<TabAtkins> fantasai: probably a lot of our specs should be there
<TabAtkins> fantasai: so i propose we add this new list as the second list (in order) in the snapshot
<TabAtkins> florian: altho it's more things, i do think it's simpler overall. too many things that don't fit well in any of our three categories
<dbaron> does this mean there are now 2 axes rather than 1?
<TabAtkins> ChrisL: i think it makes sense to go thru what Sebastian has done, then go thru th enew category. would rather see that in an ED and then we can move around
<TabAtkins> florian: I might be opposed to some of the moves, becuase it's the wrong place; the right place will be the new category
<TabAtkins> fantasai: yeah that's why i brought it up too
<TabAtkins> dbaron: does this new category mean we're classifying on 2 rather than 1 axis? if so, what?
<TabAtkins> fantasai: we've always been categorizing, just missing this quadrant
<TabAtkins> fantasai: how stable is spec, how stable is impl
<TabAtkins> florian: we had "both great", "impl good, spec bad", and "spec good, impl not". didn't have "both good (but not done)"
<TabAtkins> fantasai: rough interop was "we have interop but spec doesn't reflect that"
<TabAtkins> fantasai: we just need one where we ahve interop and spec does roughly match
<TabAtkins> dbaron: so we had a category for "impl 1, spec 1", "impl 1, spec 0", and "impl 0, spec 1". this new one is "impl 1/2, spec 1/2"
<TabAtkins> fantasai: roughly, yeah. (quibble on the exact numbers, but idea is right)
<TabAtkins> Rossen0: so it fits the model. my proposal is we go thru the list of specs we have currently here.
<TabAtkins> SebastianZ: first is MQ4, current is CRD, last published 2021
<TabAtkins> SebastianZ: lots of tests for this spec, interop is very good
<TabAtkins> SebastianZ: 98%
<TabAtkins> SebastianZ: but still some open gh issues
<TabAtkins> florian: i suspect it's really good in terms of syntax, but MQs are notably hard to test
<TabAtkins> florian: i suspect there are still quite a few media features that are good ideas but not particularly tested or implemented
<TabAtkins> florian: i'm unsure, for example, of overflow-block/inline, unsure about how close reality is for the hover/pointer ones
<fantasai> 4 categories: REC-like, reliable spec + implementation, low-experience CR, implemented + badly specced
<fantasai> s/implemented/shipping/
<TabAtkins> SebastianZ: we'd need to check on that, i was just collecting data around open issues and tests
<TabAtkins> SebastianZ: didn't check every feature in those specs
<TabAtkins> florian: i know for a long time we were lackign impl and coverage for some features. we might have improved, just not sure where we are now.
<TabAtkins> ChrisL: i noticed mq4 doesn't have wpt annotations, that would have helped
<fantasai> A) REC-like; B) reliable spec + implementations; C) low-experience CR; D) shipping + badly specced
<TabAtkins> florian: for MQ syntax we should have this, no question. but many media features are basically not testable in an autoamtic manner
<TabAtkins> florian: so not just lacking annotation, lacking *tests*
<TabAtkins> florian: it's "run this on a device with these cahracteristics, and see if it works"
<TabAtkins> dbaron: in theory we might eventually want to show that there *is* some impl or device that does each value
<TabAtkins> florian: i know we weren't there for a long time, might have gotten there while i wasn't looking
<TabAtkins> florian: also i'm listed as a co-editor, and i don't dislike that, but i'm no longer sponsored for it
<TabAtkins> florian: i just suspect that until we can properly audit, we can't move it.
<TabAtkins> florian: suspect it's good but can't show it
<TabAtkins> fantasai: we *could* move it into the new category, reliable spec + impls
<TabAtkins> florian: maybe. parts of it at least
<TabAtkins> fantasai: i'm fine either way
<TabAtkins> SebastianZ: two options, one is to defer it, and add wpt tests so we can see what's covered and what still needs coverage
<TabAtkins> SebastianZ: other is to add it to th enew list
<TabAtkins> SebastianZ: no strong opinion
<TabAtkins> Rossen0: just saying that having 98% interop on what's already tests is great
<TabAtkins> fantasai: but if it's jsut testing parsing that's not much
<TabAtkins> Rossen0: if there are missing tests, that's on us
<TabAtkins> Rossen0: if i'm being a neutral observer, it seems like a spec tha'ts moving along well
<TabAtkins> Rossen0: whatever's put in a test case impls are doing, that's great
<TabAtkins> florian: i don't know if that's useful, the tests aren't a bar *we* set, they're mostly written by the impls
<TabAtkins> florian: passing a lot of tests without evaluating coverage, i don't know if it's saying anything useful
<TabAtkins> florian: recentlyw e almost pushed Scrollbars to rec, everyone had super high test rates despite Safari not implementing it *at all*
<TabAtkins> Rossen0: I get that, but if you're an editor and not seeing enough coverage, we can say that and outline what parts aren't covered
<TabAtkins> florian: for MQ4 i'm saying this was the case a few years ago, last I checked. if somebody fixed it more recently I dunno.
<TabAtkins> Rossen0: so I'm looking at Sebastian as someone who's looked at this more recently
<TabAtkins> SebastianZ: i didn't check all the features, i checked a few in each spec
<TabAtkins> SebastianZ: that's why i put it on th elist to add it to the official definition
<TabAtkins> fantasai: i think unless we have some evidence that the behavior is implemented correctly (not just parsing and OM), we can't reasonably put it in rec-like section
<TabAtkins> florian: i just checked - some features that didn't have tests before still don't
<TabAtkins> Rossen0: so are we moving at all? or leaving it?
<TabAtkins> florian: we could move it to the new bucket, it has some sections that are stable but some that aren't. so either leave it or put it in th enew bucket
<TabAtkins> Rossen0: so here's ane xample of a spec which'll have the new bucket
<TabAtkins> SebastianZ: let's still continue on this one
<TabAtkins> fantasai: next is SCroll Snap, i think this is meaningfully implemented everywhere. not 100% interop, and some minor issues.
<TabAtkins> fantasai: i'd say this should move either into the "reliable CR" section, and probably next year if we resovle the remaining issues we can put it in "reliable Rec" section
<TabAtkins> Rossen: so scroll snap should move to "reliable CR" new bucket?
<TabAtkins> Rossen0: we have two candidates already, let's just resolve on the new bucket
<TabAtkins> ChrisL: let's
<TabAtkins> Rossen0: anyone objecting to adding this new bucket?
<TabAtkins> fantasai: I'll call it "reliable CR" as shorthand, work on wording later
<fantasai> A) REC-like; B) reliable spec + implementations; C) low-experience CR; D) shipping + badly specced
<TabAtkins> SebastianZ: no objection, just wondering if some specs in A would fit into B instead
<TabAtkins> Rossen0: we can see what goes in it once we have it
<TabAtkins> RESOLVED: Add new category, shorthanded as "reliable CR"
<TabAtkins> Rossen0: with that, we'll add MQ4 and Scroll Snap to "reliable CR". objections?
<TabAtkins> RESOLVED: add MQ4 and Scroll Snap to "reliable CR"
<TabAtkins> florian: i'd argue Scrollbars 1 goes in "reliable CR" too. Very small spec.
<TabAtkins> florian: Like I mentioned, Safari has great pass rates but they're going down as tests are reviewed and made to actually fail when not supported
<TabAtkins> ChrisL: so we don't know how well it's implemented?
<TabAtkins> florian: there are impls, and th ekey aspects do work in chrome and firefox
<TabAtkins> florian: details are little more iffy, many have been recently fixed. test suit needs a little work
<TabAtkins> florian: better than a CR with no impl, but not Rec. we could leave it where it is if we're not sure.
<TabAtkins> fantasai: seems to have a usable level of interop
<TabAtkins> florian: there are corner cases, but the core of it works in two browsers
<TabAtkins> Rossen0: any objections to moving it?
<TabAtkins> RESOLVED: Move Scrollbars to "reliable CR"
<TabAtkins> fantasai: Grid 1 and 2 should also move to "reliable CR"
<TabAtkins> Agreed
<TabAtkins> fantasai: spec needs an update, that's on me. after that it's very stable, we have very few issues agaisnt Grid.
<TabAtkins> Rossen0: i think that sounds reasonable. objections?
<TabAtkins> SebastianZ: just wondering, we have 12k tests on this spec, 92% interop
<TabAtkins> SebastianZ: dont' you think that verifies it to go official?
<TabAtkins> fantasai: I'll propose doing that as soon as I publish an update, spec is out of date now. if I get that befor ened of year we can move it
<TabAtkins> Rossen0: objections?
<TabAtkins> RESOLVED: Move Grid 1 and 2 to "reliable CR"
<TabAtkins> Rossen0: are there more to discuss before we move on?
<TabAtkins> florian: a bunch
<TabAtkins> fantasai: we should triage and come back with a batch resolution
<TabAtkins> SebastianZ: i'd like the editors of the specs to post their opinions

@fantasai
Copy link
Collaborator

New categorization (adding category B):

  • A) REC-level stability -- might be REC, might be CR without an implementation report, or a few bugs in implementations etc.
  • B) reliable CR-level stability -- should be in CR, or close and has usable shipping implementations
  • C) stable spec with limited implementation experience (could be destabilized once we try to implement)
  • D) unreliable spec with shipping, mostly usable implementations

@svgeesus svgeesus self-assigned this Feb 27, 2025
@svgeesus svgeesus added css-2025 The new, improved CSS snapshot and removed css-2024 The 2024 snapshot labels Feb 27, 2025
@svgeesus svgeesus changed the title [css-2024] Add specs to Official Definition [css-2025] New Categories, and Adding specs to Official Definition Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
css-2025 The new, improved CSS snapshot
Projects
Status: Not for TPAC?
Development

No branches or pull requests

5 participants