Cascading Style Sheets
In 1994, at CERN, the birthplace of the Web, Håkon Wium Lie identified a problem: the Web lacked a means to style documents. Having come from the MIT Media Laboratory, where he had worked on personalized newspaper presentations, he could see that this gap was holding back electronic publishing.
The idea of separating structure from presentation already existed. Tim Berners-Lee had designed his NeXT browser in 1990 with a rudimentary style sheet. But he had published nothing, believing that each browser should find its own display solution. Others were experimenting on their own: Pei Wei with his ViolaWWW browser in 1992, which offered its own style language.
Then came NCSA Mosaic in 1993. This browser, which would popularize the Web, paradoxically represented a step backward: users could only modify a few colors and fonts. Web page creators complained. Marc Andreessen, one of Mosaic’s programmers, initially refused any changes before reversing course when cofounding Netscape.
On October 13, 1994, three days before the announcement of the Netscape browser, Håkon published the first version of Cascading HTML Style Sheets. Dave Raggett, principal architect of HTML 3.0, had pushed him to publish before the “Mosaic and the Web” conference in Chicago. Raggett had understood that HTML would never become a page description language.
Bert Bos joined Håkon. He was then developing Argo, a highly customizable browser with style sheets. Their two initial proposals differ from current CSS but already contain the original concepts. A distinctive feature of the language: it recognizes that the style of a web document cannot come solely from the author or the reader. Their preferences must be combined in a cascade, taking into account the capabilities of the display device and the browser.
The World Wide Web Consortium (W3C) became operational in 1995. A workshop on style sheets was held in Paris. Thomas Reardon from Microsoft committed to integrating CSS into Internet Explorer. At the end of 1995, the W3C established the HTML Editorial Review Board to validate future HTML specifications. The CSS specification became a work item toward a W3C Recommendation.
Internet Explorer 3 was released in August 1996. It was the first commercial browser to support CSS. Chris Wilson’s team at Microsoft reliably implemented most of the color, background, font, and text properties. Netscape followed with Navigator 4.0, but its implementation remained limited. Opera entered the race in November 1998 with version 3.5, which offered more complete CSS1 support.
CSS got its own working group at the W3C in February 1997. Chris Lilley chaired it. The group developed CSS level 2, which became a recommendation in May 1998. Meetings were generally held by phone for one hour per week, with approximately four annual face-to-face meetings in different cities around the world.
Eric Meyer improved the testing process by developing a CSS1 test suite with the help of many volunteers. This suite significantly facilitated the developers’ work. The Web Standards Project (WaSP) monitored browser compliance with W3C recommendations.
CSS developed with more than 60 modules defining different capabilities. The language adapted to new uses: creating electronic books in EPUB format, designing graphical user interfaces. Derived languages appeared. Qt Style Sheets for Qt widgets, JavaFX Style Sheets for JavaFX, MapCSS for describing map styles.
In 2008, web fonts underwent a major evolution. CSS level 2 integrated fonts into a web document, but only Internet Explorer implemented this feature. Microsoft and Monotype developed the proprietary Embedded OpenType format. The situation changed with the emergence of freely distributable fonts on the Web, with the WOFF format being the solution adopted by the community.
CSS has established itself as an essential Web standard: less than five percent of HTML pages do not use style sheets. Specialized conferences and numerous books testify to the vitality of this technology, which continues to evolve to meet the needs of the modern Web.