An Inside View of the CSS Working Group at W3C
This series of posts is about how the CSS Working Group operates in reality.
Sources of Innovation
There have been many debates about whether it's better for standards to be derived from implementations, or whether implementations should be derived from standards, or whether web designers should instead write the web standards. In my opinion, and in CSS WG practice, the whole debate is moot. The CSS standard has successfully incorporated designs from all three sources and various combinations thereof, and all of them have been valuable in shaping CSS.
CSS itself, as a whole, is an example of a successful standards-created technology. It was originally designed by Håkon Wium Lie and Bert Bos at W3C. Later it was implemented in Internet Explorer, Amaya, and soon after, ubiquitously on the Web. It incorporates proposals that were brought forth by individuals on the www-style mailing list, that were submitted for standardization by developers with existing implementations, and that were designed in-house by the CSS WG in response to feature requests or a perceived need in the community. In many cases, a feature started out in one camp, was adopted and further developed by another, and passed back and forth until it wound up in specs and implementations.
Take for example, the CSS3 Backgrounds and Borders module.
- implementations lead
- The border-radius properties were first implemented in Mozilla as a vendor extension for its UI. They were then adopted as part of CSS3 and extended to handle elliptic curves by the CSS WG.
- designers lead
- The ability to assign images to corners was originally requested on www-style by Robert Koberg. This sparked a thread in which www-style participants hashed out various proposals. Eventually one wound up in the first draft of CSS3 Borders. The proposal was later refined by the WG into the familiar border-image property. It was then given the outset ability and split apart into longhand properties as a result of web designer feedback. Implementations followed.
- standards lead
- Multiple backgrounds is an example of a feature first drawn up by the CSS WG to solve a perceived need in the authoring community. The box-shadow property, like text-shadow before it, is another example of a feature designed into the spec first and implemented (much) later.
If we look at the module level,
Selectors Level 3,
CSS Multi-column Layout,
Media Queries, and
CSS3 Color were all specced out
long before they were implemented, whereas for
CSS Animations, and
CSS 2D Transforms
the specification follows (and still lags behind) implementations.
Most modules, however, are a mix, and the design of many features is the
result of input from multiple sources.
Flexbox, for example,
originated with Mozilla's implementation, but has since been majorly
revised under Tab Atkins’s influence.
CSS3 UI includes features
that were designed then implemented, designed then never implemented,
and implemented then standardized.
CSS3 Text includes features
pulled from IE6, XSL:FO, PrinceXML, and various internationalization
proposals, some of which have been revised beyond recognition and others
which remain pretty much intact.
CSS3 Conditional Rules
adds an at-rule that began as a proprietary feature (
and an at-rule that was designed at W3C in response to web designers’
very strong demands (
IMHO, to pretend that useful innovation can only come from one source is to be blind to the reality of crafting a Web standard. The strength of W3C standardization is not in bringing implementers together, or in bringing web designers to the table, or in putting standardization experts to work. It's in bringing all of them to collaborate.