Cascading Style Sheets
Current Work
This page contains descriptions and a rough schedule of what the CSS WG (Cascading Style Sheets Working Group, formerly “CSS & FP WG”) is working on. If you want to follow the development of CSS3, this page is the place to start. Publication descriptions are ordered roughly according to their priority within the working group. (See explanation.)
If you want to help
The CSS working group also occasionally writes on a blog. If you react to a blog article, please, send a “pingback.”
Everybody can take part in the discussions on the archived mailing list www-style@w3.org. You can subscribe yourself. This is the preferred place for discussions, since the members of the working group will see them. Please don't use this list for questions of the type "How do I...". Use comp. infosystems. www. authoring. stylesheets ("ciwas") or see "Learning CSS".
If you work for a W3C member organization, you can also read the minutes of the CSS working group and rough drafts before they are published. You can also participate in the working group, but only if you can commit to (on average) 1 day per week. Contact me or your organization's W3C contact person.
A specification is not a manual. There is no excuse for badly written drafts and please complain if you find one. But specs do target a specific audience. J. David Eisenberg has written a useful How to read W3C specs.
About the test suites
The CSS working group intends to spend a lot of time on developing the CSS test suites along with the CSS specifications. The CSS1 test suite has been very useful, and still is, not only for people developing software, but also for people looking for examples of each feature. By providing a test suite for each module as soon as the module is published, we hope not only that CSS3 implementations will conform to the specification much earlier, but also that people will have an easier time understanding the formal text of the spec.
Common technologies for HTML, XML and CSS
- Description
- Selectors describes the element selectors in CSS3. Selectors are used to select elements in an HTML or XML document, in order to attach (style) properties to them. It 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 are the immediate sibling of another element, or whether they are the only child element of their kind.
- Editors
- Tantek Çelik, Daniel Glazman, Ian Hickson,
Peter Linss, John Williams
- Specification Track
-
- Test Suite Track
-
CSS Revision
- Description
- CSS Level 2 Revision 1 corrects errors in CSS2 and adds a select few highly requested features originally planned for CSS3, which have already been widely implemented. But most of all CSS 2.1 represents a "snapshot" of CSS usage: it consists of all CSS features that are implemented interoperably for HTML and XML at the date of publication of the Recommendation.
- Editors
- Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie
- Specification Track
-
- Test Suite Track
-
- Description
- CSS Snapshot 2007 links to all the specifications that together represent the current state of CSS. Because large parts of CSS are still under development and it is often difficult to know what their state is, the CSS working group decided to publish this document, which contains only the parts of CSS that are stable and have been shown to work.
- Editor
- Elika J. Etemad
- Specification Track
-
CSS Modules
Note: The source mark-up of these modules follows certain conventions (which is useful for automatic processing).
- Description
- Advanced Layout contains various new ideas for positioning and sizing boxes, using constraints on their alignment to each other and on their flexibility, as well as constraints on the spaces between them. The goal is to help with positioning the controls of a GUI, the fields of a form, and the areas of a page template. Some of the expected ideas include properties for putting stretchable space between blocks, moving an element to take the place of another, and properties for associating a grid-like template with an element for the layout of the descendant elements.
- Editors
- Bert Bos
- Specification Track
-
- Description
- Many primarily visual devices are in fact capable of making sound as well, sometimes even of very high quality. In CSS3 those multimedia capabilities will be available to designers. The audio module contains properties for attaching background sounds to elements and sound effects to state transitions, such as link activation or "hovering" over an element. Expected possibilities include overlaying multiple sounds, positioning a sound left or right in stereo space and playing a sound in a loop.
- Editors
- Dave Raggett, Daniel Glazman
- Specification Track
-
- Description
- Backgrounds and Borders describes background colors and images and the style of borders. New functionality includes the ability to stretch the background image, to use images for the borders, to round the corners of the box and to add a box shadow outside the border.
- Editors
- Bert Bos, Tim Boland
- Specification Track
-
- Description
- Basic User Interface contains features for styling some interactive, dynamic aspects of Web pages: the look of form elements in their various states and more cursors and colors to describe GUIs (graphical user interfaces) that blend well with the user's desktop environment.
- Editors
- Tantek Çelik
- Specification Track
-
- Description
- The Box Model describes the layout of block-level content in normal flow. When documents are laid out on visual media (e.g. screen or paper), CSS represents the elements of the document as rectangular boxes that are laid out one after the other or nested inside each other in an ordering that is called a flow. The flow can be horizontal (typical for most languages) or vertical (often used for Japanese & Chinese).
- Editors
- Bert Bos
- Specification Track
-
- Description
- The Extended Box Model provides extra control over positioning of floats and the size of boxes.
- Editors
- Bert Bos
- Specification Track
-
- Description
- Cascading and Inheritance describes how values are assigned to properties. CSS allows several style sheets to influence the rendering of a document, and the process of combining these style sheets is called "cascading". If no value can be found through cascading, a value can be inherited from the parent element or the property's initial value is used.
- Editors
- Håkon Wium Lie
- Specification Track
-
- Description
- Color specifies the color-related aspects of CSS, including color profiles, the
<color>
value type, and several color-related properties.
- Editors
- Tantek Çelik, Chris Lilley
- Specification Track
-
- Description
- Fonts contains the properties to select fonts, as well as properties for font "adjustments", such as emboss and outline effects, kerning, and smoothing/anti-aliasing. Font selection is identical to the similar section in CSS2. The font adjustment properties are new to CSS3.
- Editors
- Paul Nelson,
Michel Suignard, Chris Lilley
- Specification Track
-
- Description
- Generated Content for Paged Media contains advanced properties for printing, beyond what the Paged Media module provides. It has properties for creating footnotes, cross references ("see section X on page Y") and constructing running headers from section titles.
- Editors
- Håkon Wium Lie
- Specification Track
-
- Description
- Generated and Replaced Content defines how to put content before, after, or in place of an element. The content can be text or an external object, such as an image. E.g., when a document contains an element that links to an image, it is this module that allows a designer to choose whether the image is shown in place of the element or not.
- Editors
- Ian Hickson
- Specification Track
-
- Description
- Hyperlinks Presentation deals with the various ways hyperlinks can be presented. CSS1 already provided the ':visited' and ':link' pseudo-classes to select hyperlinks. This module will provide properties to control which hyperlinks are active and where the target is shown when the user traverses the link (e.g., in a new window or in-line in the current document). Note that not all links have to be presented as hyperlinks; some may be handled as replaced elements (see the Generated and replaced content module) and some are outside the scope of CSS (such as links to scripts, namespace definitions, P3P policies, etc.)
- Editors
- Tantek Çelik, Bert Bos, Daniel Glazman
- Specification Track
-
- Description
- The Introduction will eventually contain the introductory chapter of CSS3, with short descriptions of each module. This is likely to be the last draft to be finished and thus, until CSS3 is ready, the page you are reading now will be more up to date.
- Editors
- Håkon Wium Lie,
Eric A. Meyer, Bert Bos
- Specification Track
-
- Description
- Line describes the alignment of text and other boxes within a line. It expands the 'vertical-align' property of CSS1 and CSS2 to allow for alignment of multiple scripts, including Indic scripts and ideographs. The module also describes the formatting of the 'first-line' and 'first-letter' pseudo-elements: compared to CSS1 and CSS2 there is better control over the size and alignment of drop caps.
- Editors
- Ian Hickson
- Specification Track
-
- Description
- Lists contains the properties for styling lists, in particular various types of bullets and numbering systems.
- Editors
- Ian Hickson
- Specification Track
-
- Description
- Math contains properties targeted at styling mathematical formulas, building on on the layout model of the "presentational" elements of MathML. The module is being developed in cooperation with the Math interest group.
- Editors
- Tim Boland
- Specification Track
-
- Description
- Multi-column Layout proposes new properties to flow content into flexibly-defined columns.
- Editors
- Håkon Wium Lie
- Specification Track
-
- Description
- XML-based formats can use “namespaces” to distinguish multiple uses of the same element name from each other, and this draft explains how CSS selectors can be extended to select those elements based on their “namespace” as well as their local name.
- Editors
- Elika Etemad (fantasai), Anne van Kesteren,
Peter Linss
- Specification Track
-
- Description
- The DOM specifies the functions that are found in several programming libraries (and browsers) to manipulate HTML, XML & CSS documents. Programmers can call them from their programs rather than write their own. Some of those functions deal with adding & deleting rules and changing properties in CSS style sheets. These APIs form the CSS Object Model or CSS-OM. They are useful for stand-alone programs as well as for scripts and applets. DOM level 2 contains two chapters on the CSS-OM (CSS Object Model) and the CSS WG will develop a level 3 CSS-OM.
- Editors
- Anne van Kesteren
- Specification Track
-
CSS Object Model Level 3
WD 2006? |
- Description
- The APIs introduced by this specification provide authors with a way to inspect and manipulate the view information of a document. This includes getting the position of element layout boxes, obtaining the width of the viewport through script, and also scrolling an element.
- Editors
- Anne van Kesteren
- Specification Track
-
- Description
- Paged Media extends the properties that CSS2 already had with new ones to control such things as running headers and footers and page numbers.
- Editors
- Melinda Grant, Håkon Wium Lie,
Jim Bigelow
- Specification Track
-
- Description
- Positioning defines "absolute", "fixed" and "relative" postioning. These are ways to take an element out of the normal flow of elements (as specified by the box model) and put it somewhere else: either relative to the root or some other element's box (absolute), relative to the viewport (fixed), or simply slightly offset from where it would normally be (relative).
- Editors
- Ian Hickson
- Specification Track
-
CSS Positioning Level 3
WD ? |
- Description
- Presentation Levels introduces a way to step forward and backward through multiple renderings of the same document, which is especially useful for slide show presentations (highlight list items one at a time) and outline views (show more or less detail). The model is that each element has a presentation level and three styles (three states): one for when the browser is at a lower presentation level, one for an exact match and one when the browser's presentation level is above that of the element. The browser must offer the user an easy way to increase and decrease the browser's level.
- Editors
- Håkon Wium Lie
- Specification Track
-
- Description
- The keyword 'reader' is a media type for use in Media Queries (similar to 'screen', 'print', 'projection', etc.). Devices that might choose to apply rules inside '@media reader' are devices like screen readers, that display a page on screen and speak it at the same time, or display the page and simultaneously render it on a dynamic braille device. The properties that apply to this media type are therefore the combination of the properties for screen, speech and braille. At the moment (February 2004), the 'reader' keyword is not much more than an idea. It needs further investigation to see if it is needed and if so, how well it matches what screen readers do. It is currently not meant for multimedia renderings, where parts of a document are rendered in one medium and other parts in another. It also does not allow properties for explicit timing.
- Editors
- Tantek Çelik
- Specification Track
-
- Description
- Ruby describes CSS properties to manipulate the position of "ruby", which are small annotations on top of or next to words, especially common in Chinese and Japanese. They are often used to give the pronunciation or meaning of difficult ideograms.
- Editors
- Paul Nelson,
Michel Suignard
- Specification Track
-
- Editors
- Daniel Glazman
- Specification Track
-
- Description
- An element with columns (as in Multi-column Layout) establishes an implicit grid. Together with optional explicit grid lines, that establishes a coordinate system for positioning floats and absolutely positioned boxes. This module proposes properties to position and size floating boxes relative to this grid.
- Editors
- Markus Mielke
- Alex Mogilevsky
- Specification Track
-
- Description
- Speech contains properties to specify how a document is rendered by a speech synthesizer: volume, voice, speed, pitch, cues, pauses, etc. There was already an ACSS (Aural CSS) module in CSS2, but it was never correctly implemented and it was not compatible with the Speech Synthesis Markup Language (SSML), W3C's language for controling speech synthesizers. The ACSS module of CSS2 has therefore been split in two parts: speech (for actual speech, compatible with SSML) and audio (for sound effects on other devices). The speech properties in CSS3 will be similar to those in CSS2, but have different values. (The old properties can still be used with the deprecated 'aural' media type, but the new ones should be used inside the new 'speech' medium, as well as in style sheets for 'all' media.)
- Editors
- Dave Raggett, Claudio Santambrogio, Daniel Glazman
- Specification Track
-
- Description
- Syntax of CSS rules in HTML's "style" attribute is strictly speaking not part of CSS3, but is mentioned here, because it is produced by the CSS working group. It was made necessary, because XHTML 1.0, in contrast to HTML 4.0, doesn't define the syntax of CSS rules in its style attribute. However, the specification is valid for all similar attributes (e.g., those in SVG), not just for HTML.
- Editors
- Tantek Çelik, Bert Bos,
Marc Attinasi
- Specification Track
-
- Description
- Syntax contains the generic (forward-compatible) grammar that all levels of CSS adhere to. Every property also has restrictions on the syntax of its value, but those can be found in the other CSS modules.
- Editors
- L. David Baron
- Specification Track
-
- Description
- Tables describes the layout of tables: rows, columns, cells and captions, with their borders and alignments. The model in CSS3 will be the same as in CSS2, but described in more detail.
- Editors
- Bert Bos
- Specification Track
-
CSS Tables Level 3
WD ? |
WD |
- Description
- Text contains the text-related properties of CSS2 (underlining, justification, text wrapping, etc.) plus several new properties, many for dealing with text in different languages and scripts (line breaking, kashida, hyphenation, etc.). It includes (and replaces) the proposal in the International layout draft. Also see the Line module for things like vertical alignment within a line, line height calculation and styles for first-line/first-letter.
The Text module reached CR status in 2003, but very little was implemented. Some common typography required too many properties, while many combinations of values were not useful. The rewrite started in 2004 and should result in the same functionality, but with fewer properties and better defaults. The Text module has been split into two parts: Text and Text Layout.
- Editors
- Elika Etemad (fantasai), Paul Nelson,
Michel Suignard, Chris Lilley
- Specification Track
-
- Description
- Text Layout describes he text layout model in CSS and the properties that control it. It covers vertical text, bidirectionality, grid layout, and other special inline text layout effects.
- Editors
- Paul Nelson, Elika Etemad (fantasai)
- Specification Track
-
CSS Text Layout Level 3
WD 2006-10? |
See CSS3 Text |
- Description
- Values and Units describes the common values and units that CSS properties accept. Also, it describes how "specified values", which is what a style sheet contains, are processed into "computed values" and "actual values".
- Editors
- Håkon Wium Lie, Chris Lilley
- Specification Track
-
- Description
- Web Fonts provides syntax for describing fonts: their name, their style, which characters they cover and also where to download them from. Adding such descriptions to a style sheet allows a designer to be more precise in font selection and, if the browser supports font downloading, to use fonts that people are unlikely to have installed, including fonts that the designer created himself for the purpose. Web fonts are also used by SVG and, conversely, one can use SVG to create fonts for download. Web fonts existed already in CSS2.
- Editors
- Chris Lilley,
Michel Suignard
- Specification Track
-
- Description
- Behavioral Extensions to CSS defines the 'binding' property for XBL. The property was called 'behavior' in the first draft. That draft contained a number of other proposals that are no longer pursued. (To some extent, they have been replaced by XBL.)
- Editor
- Ian Hickson
- Specification Track
-
CSS Profiles
- Description
- CSS Mobile Profile describes a subset of CSS that is suitable for handheld devices, such as mobile phones. This profile further fills in the 'handheld' media type.
- Editors
- Svante Schubert,
Robin Berjon, Ted Wugofski, Doug Dominiak, Peter Stark, Tapas Roy
- Specification Track
-
- Test Suite Track
-
- Description
- CSS Print Profile describes a subset of CSS that is suitable for documents printed on low-cost printers. It is a companion to the XHTML Print Profile.
- Editors
- Melinda Grant,
Jim Bigelow
- Specification Track
-
- Test Suite Track
-
- Description
- CSS TV profile describes a subset of CSS that is suitable for documents displayed on TV sets, including text documents that are broadcast over digital TV.
- Editors
- Glenn Adams, Tantek Çelik, Sean Hayes, Håkon Wium Lie
- Specification Track
-
Explanation of colors & status codes
W3C indicates the stability of specifications by a status code. The CSS working group uses the following, from least to most stable:
The names are defined in sections 7.3 and 7.4 of the W3C process document. A REC is what is normally referred to as a “standard.” W3C encourages everyday use starting from CR.