Introduction to CSS3

W3C Working Draft, 6 April 2001

This version:
Latest version:
Previous version:
Eric A. Meyer <>
Bert Bos (W3C) <>


The members of the CSS&FP Working Group have decided to modularize the CSS specification. This modularization will help to clarify the relationships between the different parts of the specification, and reduce the size of the complete document. It will also allow us to build specific tests on a per module basis and will help implementors in deciding which portions of CSS to support. Furthermore, the modular nature of the specification will make it possible for individual modules to be updated as needed, thus allowing for a more flexible and timely evolution of the spcification as a whole.

This document lists all the modules to be contained in the future CSS3 specification.

Status of this document

This is an official introduction, issued by the CSS Working Group, which details the modularization of the CSS3 specification and the CSS test suite. This document should be considered to be informative, not normative. See the Style overview pages for more information on W3C's work on style sheets, including CSS.

This is a public W3C Working Draft for review by W3C members and other interested parties. As a draft document, it may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress."

A list of current W3C Recommendations and other technical documents including Working Drafts and Notes can be found at

Please send comments to the mailing list (see how to subscribe) or to the editor.

Table of contents

1. Why Modules?

As the popularity of CSS grows, so does interest in making additions to the specification. Rather than attempting to shove dozens of updates into a single monolithic specification, it will be much easier and more efficient to be able to update individual pieces of the specification. Modules will enable CSS to be updated in a more timely and precise fashion, thus allowing for a more flexible and timely evolution of the spcification as a whole.

For resource constrained devices, it may be impractical to support all of CSS. For example, an aural browser may be concerned only with aural styles, whereas a visual browser may care nothing for aural styles. In such cases, a user agent may implement a subset of CSS. Subsets of CSS are limited to combining selected CSS modules, and once a module has been chosen, all of its features must be supported.

2. Module Overview

All modules contain a "Conformance: Requirements and Recommendations" section. Any module whose table row is backed with green is considered part of the "CSS Core." The listed deadlines (backed in red) represent the time at which a module should be ready for Working Draft publication. There are also columns which indicate a module's participation in each of three "profiles": HTML Basic, CSS3, and SVG. A module without any indicated module participation is at risk of being dropped from CSS3 before it reaches Proposed Recommendation status. A module without a listed editor is backed in yellow, and is in serious danger of being dropped.

Module Editor(s) HTML
Syntax / grammar / etc. X X - - - - - - -
Selectors Tantek Çelik, Daniel Glazman, Ian Hickson X X 5 Oct 2000 - 26 Jan 2001 1 Mar 2001 - - -
Values, Units Håkon Lie, Chris Lilley X X - - - - - - -
Value assignment / cascade / inheritance Håkon Lie X X - - - - - - -
Box model / vertical Bert Bos X X - - - - - - -
Positioning Bert Bos X - - - - - - -
Color / gamma / color profiles Tantek Çelik, Chris Lilley X X 22 Jun 1999 5 Mar 2001 - - - - -
Background Tim Boland X X - - - - - - -
Line box model Eric Meyer X X - - - - - - -
Text / bidi / vertical alignment Chris Lilley, Michel Suignard X X - - - - - - -
Ruby Michel Suignard X 16 Feb 2001 - - - - - -
Font properties Chris Lilley, Michel Suignard X X - - - - - - -
WebFonts Chris Lilley X - - - - - - -
Generated content / markers Håkon Lie X - - - - - - -
Replaced content Eric Meyer X - - - - - - -
Paged media Steve Zilles X 28 Sep 1999 - - - - - -
User interface Tantek Çelik X 16 Sep 1999 16 Feb 2000 - - - - -
Tables Bert Bos X X - - - - - - -
Columns Håkon Lie X 22 Jun 1999 18 Jan 2001 - - - - -
SVG Chris Lilley X X - - - - - - -
Math Angel Diaz - - - - - - -
BECSS Michel Suignard 4 Aug 1999 - - - - - -
ACSS - - - - - - -
Media queries Håkon W. Lie X 4 Apr 2001 - - - - - -
SMIL Debbie Newman - - - - - - -
Test Suite Eric Meyer X - - - - - - -

3. Module Descriptions and Related Information

3.1. Introduction

This provides a general overview of the specification's goals, as well as basic notes on how CSS works, acknowledgments, and so forth.

3.2. Syntax / grammar

A way to attach arbitrary properties to a hierarchically structured document or other data structure, with the characteristic that it has built-in "forward-compatibility" (a.k.a. "extensibility").

3.3. Selectors

Describes the selectors of CSS3. Selectors are used to select elements in an HTML or XML document, in order to attach (style) properties to them. The draft includes the selectors of CSS1 and CSS2 and extends them with new proposals that allow, for example, elements to be selected based on whether they contain a certain word, or whether they are the only element of their kind.

3.4. Values & units

Things which are applied to values.

3.5. Value assignment / cascade / inheritance

How properties interact, and the core of how CSS operates.

3.6. Box model / vertical

The box model describes the basics of the normal text flow, including how to "float" blocks of text or images, but excluding columns, tables, and other advanced layouts; i.e., it describes how text and other objects are strung into lines, and lines into blocks (paragraphs), and how those blocks are put below each other or side by side with the help of margins and borders. It treats both horizontal text and vertical writing modes.

3.7. Positioning

This describes the process of placing an element someplace other than it would normally be in the normal flow of the document.

3.8. Color / gamma / color profiles

In general, basic color descriptions and color handling in multiple environments. The color profiles section describes how two properties can be attached to embedded images to specify their "color space," which is the information a renderer needs to paint the right color for each pixel. It should do away with the annoying problem that images, especially GIF and JPEG, but sometimes also PNG, look different on a Mac than on a PC, or other platforms.

3.9. Colors and Backgrounds

A description of how element foregrounds and backgrounds are formatted.

3.10. Line box model

A description of the line box model for inline elements, and the inline content of block elements.

3.11. Text / bidi / vertical alignment

Description of the handling of text in user agents.

3.12. Fonts

Description of the handling of fonts in user agents.

3.13. Ruby

A draft that contains proposals for new style properties for typographic traditions that have so far had little attention in CSS, such as vertical Japanese and Arabic. The CSS working group is cooperating with W3C's Internationalization working group on this.

3.14. Generated content / markers

A description of how content is generated and markers are displayed.

3.15. Replaced content

A module explaining how replaced content is handled and what qualifies as replaced content.

3.16. Paged media

Extends the properties that CSS2 already had with new ones to control such things as running headers and footers, page numbers and print-style cross-references ("see page...").

3.17. User interface

Contains features for styling some interactive, dynamic aspects of Web pages: the look of form elements in their various states, more cursors and colors to describe GUIs (graphical user interfaces) that blend well with the user's desktop environment, and a proposal for "kiosk" mode.

3.18. WebFonts

Authors continue to clamor for "more control" over their pages, and the fonts used in presenting them. This module will attempt to provide a way to make fonts more Web-friendly.

3.19. ACSS

An attempt to make styled content even more accessible.

3.20. SMIL

An attempt to link CSS and SMIL together.

3.21. Tables

The tables module contains the properties to lay out boxes in rows and columns. It allows a designer to assign roles like "table," "cell," "row," or "caption" to boxes and provides for various alignments and border styles.

3.22. Columns

Proposes new properties to create flexible column layouts.

3.23. SVG

A format that expresses shapes (lines, circles, splines, etc.) in an XML-based language and their style (fill color, stroke width, etc.) in CSS. This should make it easy to create text and graphics in the same style simply by using a single style sheet for both. SVG uses several existing CSS properties, but also introduces new ones that may or may not be useful for styling text. It will progress to Recommendation as a separate specification, but the (new) CSS properties are coordinated with the CSS working group.

3.24. Math

An attempt to provide style properties for mathematical expressions. This will obviously be deeply linked to the MathML specification.

3.25. BECSS

A proposal to use the CSS syntax and CSS's system of cascading and inheritance to attach "behavior" (rather than style) to elements. Behavior in this context refers to any dynamic changes to the style or the document in response to user events, such as clicks and key presses. The behaviors themselves are expressed as pieces of script, in languages such as ECMAscript.

3.26. Media queries

To describe in more detail what type of devices a style sheet applies to, this document proposes media queries. A media query consists of a media type and one or more expressions to limit the scope of a certain style sheet. Among the proposed media features that can be used in expressions are "width", "height" (size of the display), and "color" (color depth of the display).

3.27. Test Suite

Providing implementation guidelines, concrete examples, and user insight into implementation support, a test suite is crucial to the success of any specification. Although the Test Suite is a module in itself and has a module owner, individual module owners are responsible for assisting in the creation and review of tests for their specific module.

4. Appendices

Some appendices will be split up to go with individual modules. These are:

For example, the changes between one version of a module and another should be tracked in an appendix to that module, not a single appendix to the entire specification. Similarly, there should be a property reference for each module. There may be a single cumulative reference for the entire specification, although this is not yet known with any certainty. Each module should also include an appendix listing any dependencies on other modules or specifications.

There will also be a few specification-wide appendices. There are projected to be:

5. Module template

All modules should conform to the format defined in the CSS3 editing rules [member-only link]. In addition to the definitions of properties and values, each module contains a list of dependencies on other modules or specifications, and also provides a list of changes from CSS2.