Agile Standardization in CSS

A number of people have expressed concerns that the W3C process inhibits agile specification development. This need not be the case. Fantasai and Tab Atkins will share their experience of how the CSS Working Group develops a major Web technology as a living standard within the W3C process. We'll talk about techniques for successful modularization, the specification development process, the editor/WG authority split, and mixing sources of innovation. Steve Zilles will moderate and expand the discussion to how these techniques can be applied in other WGs.

Presented much more fully in Fantasai's blog post at

Agile Standardization in CSS

Modularization Considered Helpful

CSS 1 was tiny, and had no need for modules.

CSS 2 was large, and the lack of modules was severely painful. Each chapter was too tangled up with the others.

CSS 3 attempted to do modules, but ended up still being too interconnected. Dependencies killed us.

We finally got it right by rebasing CSS3 over a new 2.1 bedrock, and making the majority of CSS3 modules depend only on 2.1.

We are gradually rewriting the bedrock portions of 2.1 into CSS3 modules, but that doesn't stop the progress of other new modules.

The Real Spec Process

The W3C officially recognizes the following stages:

  1. Editor's Draft
  2. Working Draft
  3. Last Call
  4. Candidate Rec
  5. Proposed Rec
  6. Rec

The Real Spec Process

In practice, we treat the W3C process as having 3 stages:

Editor's Draft (transient)
Working Draft (Design)
Last Call (transitional)
Candidate Rec (Testing)
Proposed Rec (transitional)
Rec (Maintenance)

The Spec Maturation Process

We observe that specs mature in sub-stages that roughly map to the W3C process.

Exploring The spec is incomplete, rapidly changing, and might include many features that will be dropped later. pre-FPWD and early WDs
Revising The module is mostly complete and has a well-defined scope. The spec will go through several rounds of revisions still. mid-stage WDs
Stabilizing Spec is fairly stable at this point. Only minor polishing and LC comments are left. New feature suggestions are deferred to the next level. late-stage WDs and LC

The Spec Maturation Process


Call for Implementations Spec is considered complete. While experimental implementations were welcome before, at this point implementations are officially requested for feedback. Testsuites are written here. beginning of CR.
Recommended Spec is considered stable and ready for wide use, though testing may not yet be complete, and minor issues might still come in for handling. To indicate this stage, we put the spec in our CSS Snapshot. late CR
Finished Spec is done and enters maintenance mode. The only changes at this stage are errata. Rec

Editor / WG Authority Split

We've found that neither the editor nor the WG should be responsible for all decisions. While the CSSWG is officially always in control, it delegates varying amounts of authority based on the spec's maturity level.

Sources of Innovation

Any debate over whether specs should be driven by standards bodies, or by implementations, or by web designers is pointless and wrong-headed.

A good spec combines contributions from all three sources at every stage.

Sources of Innovation

For example, just within the Backgrounds and Borders module:

implementations lead
Rounded corners
designers lead
Image borders
specs lead
Multiple backgrounds

At a module level:

implementations lead
Transitions, Animations, and Transforms
specs lead
Selectors, Multi-column Layout, Media Queries, Color
total mashup
Basic UI, Flexbox Layout, Text, Conditional Rules