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
- Template Layout (formerly: Advanced Layout)
describes a new way to position elements using constraints on
their alignment to each other and on their flexibility. The
layout is described by a template, which resembles a traditional
layout grid, with rows and columns as in a table. It can be
applied to a page or to individual elements, e.g., to lay out a
form.
- 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
-
CSS Aural Style Sheets Level 3
WD ? |
- 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
- Marquee contains the properties that control the
speed and direction of the “marquee” effect.
Marquees are a scrolling mechanism that needs no user
intervention: overflowing content moves into and out of view by
itself. Marquee is mostly used on mobile phones. (Until April
2008, the marquee properties were part of the Box
module.)
- 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 transparency and the various notations for the
<color>
value type.
- Editors
- L. David Baron, 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, John Daggett, Jason Cranford Teague,
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
- This module was dropped in March 2008.
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.
- 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
-
- 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 three parts: Text, Text Layout,
and Line Grid.
- Editors
- Elika Etemad (fantasai), Paul Nelson,
Michel Suignard, Chris Lilley
- Specification Track
-
- Description
- Text Layout describes the properties that control
text direction: horizontal lines of text that are stacked from
top to bottom (normal for most languages), vertical lines of
text that are stacked from right to left (often used for
Japanese), vertical lines that stack from left to right
(Mongolian), or horizontal lines that stack from bottom to top
(for special effects, such as the XING PED sign on American
streets). It also describes the order of letters inside the line
(bi-directionality) and the rotation that may occur for certain
letters inside vertical text.
- Editors
- Elika Etemad (fantasai), Alex Mogilevsky, Saloni Mira Rai
- Specification Track
-
CSS Text Layout Level 3
WD 2008-12 |
See CSS3 Text |
- Description
- Line Grid describes text where each symbol in a
line is aligned to an invisible grid, so that symbols in all
lines line up vertically. This is commonly used for text that
mainly consists of ideographs, such as Japanese. (This feature
previously was part of the Text Layout
module.)
- Editors
- Alex Mogilevsky
- Specification Track
-
CSS Line Grid Level 3
WD 2009 |
- 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, John Daggett, Jason Cranford Teague,
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
-
- Description
- The Flexible Box Module allows an element to be
displayed as either a column or a row of child elements. Several
properties then determine how the size of each element depends
on the total length of the row/column and the size of sibling
elements. Other properties specify the size of the space between
the elements. This is primarily useful for row-column layouts in
a graphical user interface.
- Editors
- -
- Specification Track
-
- Description
- The Transitions Module defines a property to
animate the transitions between pseudo-classes (e.g., when an
element enters or leaves the ':hover' state). During a given
delay, certain property values gradually change from the old value
to the new, rather than instantaneously, as in level 2. This
module is currently (summer 2008) under consideration for
inclusion in the next charter of the CSS working group.
- Editors
- -
- Specification Track
-
- Description
- The Animation Module specifies which properties
change their values during an animation, what values they take
successively, and during how much time. It does not define what
causes a particular animation to start, only what happens during
one. (Compare this to the Transitions
module, which also animates properties, but between state changes,
i.e., pseudo-classes.) This module is currently (summer 2008)
under consideration for inclusion in the next charter of the CSS
working group.
- Editors
- -
- 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
-
Some properties are specifically for styling SVG (or similar
graphics languages) and are defined in the SVG spec, rather than in
a CSS module. They can be used together with other properties in a
style sheet, but usually don't apply to the same elements. They
specify things such as color of strokes and fills, and the shape of
the ends of strokes.
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.