csstools/cssdb

Abandon the previous definitions for something more granular and in alignment with present expectations

jonathantneal opened this issue · 2 comments

I’m displeased with the current “stages”. I’m proposing new ones.

The rise and fall of @apply has taught me a lot about the spec process.

The story goes; the @apply specification was written by a member of the CSSWG and implemented in Chrome behind a flag. This happened before the CSSWG ever approved it. This is because CSSWG members often have a vendor’s ear, so to speak. Its appearance in Chrome gave developers a false impression that the spec had the support of the CSSWG and the endorsement of Google. Developers felt burned when the feature was “unexpectedly” abandoned by its author. Developers errantly expected a longer “deprecation” process, as well as an “heir” for the feature moving forward. We failed to understand that this feature did not even have the support of the CSSWG, therefore there was no committee to discuss this or to offer any speculative alternative for the future.

Now, with developers still asking for this feature, there needs to be a special “Rejected Stage” to help people understand what happened to that idea. I think the CSSWG “outsider” spec should be considered “Stage 0”, and the inside spec considered “Stage 1”, because the odds are still in favor of a CSSWG member’s spec becoming reality.

Therefore, I’m proposing the following, because it better reflects reality:

Stage Justification Perception
0 Personal Draft Aspirational This is my personal crazy idea.
1 CSSWG Member Draft Enthusiastic This is a crazy idea.
2 CSSWG Hosted Draft Experimental This idea might not be crazy.
3 Working Draft Allowable This idea is not crazy.
4 Candidate Embraced This idea is becoming part of the web.
5 Recommendation Standardized This idea is part of the web.
- Rejected I had no idea what I was doing.

justification column

Stage 0: Aspirational

A CSS Editor’s Draft championed outside the CSSWG. It should be considered highly unstable and subject to change.

Stage 1: Enthusiastic

A CSS Editor’s Draft championed inside the CSSWG. It should still be considered highly unstable and subject to change.

Stage 2: Experimental

A CSS Editor’s Draft hosted by the CSSWG or W3C. It should be considered highly unstable and subject to change.

Stage 3: Allowable

A CSS Working Draft hosted by the CSSWG or W3C and requiring implementations to move forward. It should be considered stable and subject to little change. It is still subject to rejection as a standard.

Stage 4: Embraced

A CSS Candidate Recommendation hosted by the CSSWG or W3C and being implemented by at least 2 recognized browser vendors, possibly behind a flag. It should be considered stable and subject to little change. It will likely become a standard.

Stage 5: Standardized

A CSS Recommendation hosted by the CSSWG or W3C and implemented by all recognized browser vendors. It is a standard.


The CSSWG probably only concerns themselves with Stages 2 - 5, but some of the most popular emerging features to polyfill are still Stage 1.

I would love feedback, especially from @dbox or @bkardell.

dbox commented

I think this is a great change. +1 from me