CSS-Next / css-next

Admin repo for meetings, charter, and action items for the CSS-Next community group, a part of the w3c.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Definition of CSS4, CSS5

una opened this issue · comments

In our meeting today (August 7, 2023) we discussed the need to define CSS4 and CSS5, specifically for the card sort buckets.

We resolved on a few key facts:

  1. The goal of the card sort survey is to test our hypothesis. Because of this, we need to expose a definition that is as close as possible to what we actually mean by those buckets, and not try to obfuscate it.
  2. Dates need to be a part of this at some point, since once we have defined a closed bucket, we will not be adding more features to it or removing features from it.
  3. We are not redefining CSS3. The CSS3 column will be immutable in the card sort.

I am not completely happy with these definitions, but this is what I've been working on. I am trying to keep CSS for print in mind as a potential engine to qualify a feature.

We've also discussed not tying this to browser support, but we also settled on needing dates. I'm not sure how else to pick reasonable dates without looking at browser support.

I had been considering CSS4 as something that would have ended in 2016-2018, but we are so far into CSS5 (or even CSS6) territory now that it feels odd to cut off CSS4 so early. So, I settled on 2020 for this definition, but I'm not completely convinced of what year to use.

I was thinking in sort of groups of 5 years - maybe CSS3 implementation ends in 2015, then CSS4 ends in 2020, and CSS5 ends in 2025.

CSS4
Feature sets introduced after the original CSS Level 3 specifications that were implemented in at least two engines before the end of 2020. These are features that every CSS developer should learn as soon as a project requires.

CSS5
Feature sets implemented in at least two engines before the end of 2025. These are features that every CSS developer should aware of and consider implementing when it solves a problem that is a good candidate for progressive enhancement.

CSS3
These are the features defined in 2009 as being part of CSS3.

CSS4
The CSS features that were not part of CSS3 but are necessary to understand and use CSS on a professional level today.

CSS5
The CSS features that are not quite ready yet, but that promise to have a high impact on how CSS is used. Things To Watch.

CSS6
All other features.

Once we start on CSS5 we'll up all version numbers by one.

Opinion:
Don't refer to dates.
Don't refer to specs.

I'll add up on @pp-koch's answer.

To make this clear, these are the definitions for todays standpoint, these aren't universal time independent definitions, but only for the sake of the survey. So there is no need to overcomplicate things because of how these definitions won't work in x years from now imho. There also isn't a universal definition for CSS3 that explains it in a short matter and excludes all features that got added afterwards.

In my Opinion we also don't need a fixed interval for the versions e.g. below I put CSS4 from 2013-2018 because I didn't wanted to make it to long from a time perspective, but ended CSS5 earlier because I didn't wanted to make it too large from a feature perspective. CSS5 could've already ended with e.g. Container Queries.
This is a pure marketing thingy because I think as versions become to large or long we run into the problem of communicating what is all contained within them.

CSS4 (2013-2018)

Essential CSS features that were not part of CSS3 but are already fundamental part of the everyday life of most developers on a professional level.

I would try to leave out words like necessary because they are too subjective. With the definition above I'm trying to be as objective as possible but still trying to give a brief context.

CSS5 (2019-2023)

Newer features that previously landed whose adoption is steadily growing.

I think, if we agree upon that we are currently in CSS5, this is the definition for most of the features we are trying to put under that umbrella.

CSS6 (2023+)

Experimental and not widely supported features, that are planned to be implemented into all browsers.

I wouldn't per se say that all other features are CSS6, I wouldn't put stuff into that bucket where it's not clear how, when or if they'll ever become widely available across all browsers.

CSS3
Level 3 specs as defined by the CSSWG. (~ 2009-2012)

CSS4
CSS features that landed around 2015-2018 (i.e. CSS grid, etc.)

CSS5
Features that landed around 2020-2023 (i.e. cascade layers, container queries(

CSS6
Future features, features that land after CSS5, and up to/around 2025-2028

Workshopped by the group, in meeting August 21, 2023:
RESOLVED:

CSS3 (~2009-2012)

Level 3 CSS specs as defined by the CSSWG.

CSS4 (~2013-2018)

Essential features that were not part of CSS3 but are already a fundamental part of CSS.

CSS5 (~2019-2024)

Newer features whose adoption is steadily growing.

CSS6 (~2024+)

Early-stage features that are planned for future CSS.