CSS Snapshot 2024
CSS Snapshot 2024
Editor’s Draft
21 November 2025
More details about this document
This version:
Latest published version:
Feedback:
CSSWG Issues Repository
Editors:
Tab Atkins Jr.
Google
Elika J. Etemad / fantasai
Apple
Florian Rivoal
Invited Expert
Chris Lilley
W3C
Sebastian Zartner
Invited Expert
Suggest an Edit for this Spec:
GitHub Editor
World Wide Web Consortium
W3C
liability
trademark
and
permissive document license
rules apply.
Abstract
This document collects together into one definition all the specs that
together form the current state of Cascading Style Sheets (CSS) as of 2024.
The primary audience is CSS implementers, not CSS authors, as this definition
includes modules by specification stability, not Web browser adoption rate.
CSS
is a language for describing the rendering of structured documents
(such as HTML and XML)
on screen, on paper, etc.
Status of this document
This is a public copy of the editors’ draft.
It is provided for discussion only and may change at any moment.
Its publication here does not imply endorsement of its contents by W3C.
Don’t cite this document other than as work in progress.
Please send feedback
by
filing issues in GitHub
(preferred),
including the spec code “css-2024” in the title, like this:
“[css-2024]
…summary of comment…
”.
All issues and comments are
archived
Alternately, feedback can be sent to the (
archived
) public mailing list
www-style@w3.org
This document is governed by the
18 August 2025 W3C Process Document
This document represents the state of CSS as of 2024.
1.
Introduction
When the first CSS specification was published,
all of CSS was contained in one document that defined CSS Level 1.
CSS Level 2 was defined also by a single, multi-chapter document.
However for CSS beyond Level 2,
the CSS Working Group chose to adopt a modular approach,
where each module defines a part of CSS,
rather than to define a single monolithic specification.
This breaks the specification into more manageable chunks
and allows more immediate, incremental improvement to CSS.
Since different CSS modules are at different levels of stability,
the CSS Working Group has chosen to publish this profile
to define the current scope and state of Cascading Style Sheets as of 2024.
1.1.
What is CSS?
Cascading Style Sheets (CSS)
CSS is a language for writing
style sheets
and is designed to describe the rendering of structured documents
(such as HTML and XML)
on a variety of media.
CSS is used to describe the presentation of a
source document
and usually does not change the underlying semantics
expressed by its
document language
Style sheet
A set of rules that specify the presentation of a document.
Style sheets are written by an
Author
and interpreted by a
user agent
to present the document to the
User
Source document
The document to which one or more style sheets apply.
A source document’s structure and semantics are encoded
using a
document language
(e.g., HTML, XHTML, or SVG).
Author
An author is a person who writes documents and associated style sheets.
An
authoring tool
is a
user agent
that generates style sheets.
User
A user is a person who interacts with a user agent
to view, hear, or otherwise use the document.
User agent (UA)
A user agent is any program that interprets a document
and its associated
style sheets
on behalf of a
user
user agent
may display a document, read it aloud,
cause it to be printed, convert it to another format, etc.
For the purposes of the CSS specifications,
user agent
is one that supports and interprets
Cascading Style Sheets
as defined in these specifications.
1.2.
Background: The W3C Process and CSS
This section is non-normative.
In the
W3C Process
a Recommendation-track document passes through three levels of stability,
summarized below:
Working Draft (WD)
This is the design phase of a W3C spec.
The WG iterates the spec in response to internal and external feedback.
The first official Working Draft is designated the “First Public Working Draft” (FPWD).
In the CSSWG, publishing FPWD indicates that the Working Group as a whole has agreed to work on the module,
roughly as scoped out and proposed in the editor’s draft.
The transition to the next stage is sometimes called “Last Call Working Draft” (LCWD) phase.
The CSSWG transitions Working Drafts once we have resolved all known issues,
and can make no further progress without feedback from building tests and implementations.
This “Last Call for Comments” sets a deadline for reporting any outstanding issues,
and requires the WG to specially track and address incoming feedback.
The comment-tracking document is the Disposition of Comments (DoC).
It is submitted along with an updated draft for the Director’s approval,
to demonstrate wide review and acceptance.
Candidate Recommendation (CR)
This is the testing phase of a W3C spec.
Notably, this phase is about using tests and implementations to test the specification:
it is not about testing the implementations.
This process often reveals more problems with the spec,
and so a Candidate Recommendation will morph over time in response to implementation and testing feedback,
though usually less so than during the design phase (WD).
Demonstration of two correct, independent implementations of each feature is required to exit CR,
so in this phase the WG builds a test suite and generates implementation reports.
The transition to the next stage is “Proposed Recommendation” (PR).
During this phase the W3C Advisory Committee must approve the transition to REC.
Recommendation (REC)
This is the completed state of a W3C spec and represents a maintenance phase.
At this point the WG only maintains an errata document
and occasionally publishes an updated edition that incorporates the errata back into the spec.
An
Editor’s Draft
is effectively a live copy of the editors’ own working copy.
It may or may not reflect Working Group consensus,
and can at times be in a self-inconsistent state.
(Because the publishing process at W3C is time-consuming and onerous,
the
Editor’s Draft
is usually the best (most up-to-date) reference for a spec.
Efforts are currently underway to reduce the friction of publishing,
so that official drafts will be regularly up-to-date
and
Editor’s Drafts
can return to their original function as scratch space.)
2.
Classification of CSS Specifications
A list of all CSS modules, stable and in-progress,
and their statuses
can be found at the
CSS Current Work page
2.1.
Cascading Style Sheets (CSS) — The Official Definition
This profile includes only specifications that we consider stable
and
for which we have enough implementation experience that we are sure of that stability.
Note:
This is not intended to be a CSS Desktop Browser Profile:
inclusion in this profile is based on feature stability only
and not on expected use or Web browser adoption.
This profile defines CSS in its most complete form.
As of 2024,
Cascading Style Sheets (CSS)
is defined by the following
specifications.
CSS Level 2, latest revision
(including errata)
[CSS2]
This defines the core of CSS, parts of which are overridden by later specifications.
We recommend in particular reading
Chapter 2
which introduces some of the basic concepts of CSS
and its design principles.
CSS Syntax Module Level 3
[CSS-SYNTAX-3]
Replaces CSS2§4.1, CSS2§4.2, CSS2§4.4, and CSS2§G,
redefining how CSS is parsed.
CSS Style Attributes
[CSS-STYLE-ATTR]
Defines how CSS declarations can be embedded in markup attributes.
Media Queries Level 3
[CSS3-MEDIAQUERIES]
Replaces CSS2§7.3 and expands on the syntax for media-specific styles.
CSS Conditional Rules Module Level 3
[CSS-CONDITIONAL-3]
Extends and supersedes CSS2§7.2,
updating the definition of
@media
rules to allow nesting
and introducing the
@supports
rule for feature-support queries.
Selectors Level 3
[SELECTORS-3]
Replaces CSS2§5 and CSS2§6.4.3, defining an extended range of selectors.
CSS Namespaces Module Level 3
[CSS3-NAMESPACE]
Introduces an
@namespace
rule to allow namespace-prefixed selectors.
CSS Cascading and Inheritance Level 4
[CSS-CASCADE-4]
Extends and supersedes CSS2§1.4.3 and CSS2§6, as well as
[CSS-CASCADE-3]
Describes how to collate style rules and assign values to all properties on all elements.
By way of cascading and inheritance, values are propagated for all properties on all elements.
CSS Values and Units Module Level 3
[CSS-VALUES-3]
Extends and supersedes CSS2§1.4.2.1, CSS2§4.3, and CSS2§A.2.1–3,
defining CSS’s property definition syntax
and expanding its set of units.
CSS Custom Properties for Cascading Variables Module Level 1
[CSS-VARIABLES-1]
Introduces cascading variables as a new primitive value type that is accepted by all CSS properties,
and custom properties for defining them.
CSS Box Model Module Level 3
[CSS-BOX-3]
Replaces CSS2§8.1, §8.2, §8.3 (but not §8.3.1), and §8.4.
CSS Color Module Level 4
[CSS-COLOR-4]
Extends and supersedes CSS2§4.3.6, CSS2§14.1, and CSS2§18.2,
also extends and supersedes
[CSS-COLOR-3]
introducing an extended range of color spaces beyond sRGB,
extended color values,
and CSS Object Model extensions for color.
Also defines the
opacity
property.
CSS Backgrounds and Borders Module Level 3
[CSS-BACKGROUNDS-3]
Extends and supersedes CSS2§8.5 and CSS2§14.2,
providing more control of backgrounds and borders,
including layered background images,
image borders,
and drop shadows.
CSS Images Module Level 3
[CSS-IMAGES-3]
Redefines and incorporates the external 2D image value type,
introduces native 2D gradients,
and adds additional controls for replaced element sizing and rendering.
CSS Fonts Module Level 3
[CSS-FONTS-3]
Extends and supersedes CSS2§15
and provides more control over font choice and feature selection.
CSS Writing Modes Level 3
[CSS-WRITING-MODES-3]
Defines CSS support for various international writing modes,
such as left-to-right (e.g. Latin or Indic),
right-to-left (e.g. Hebrew or Arabic),
bidirectional (e.g. mixed Latin and Arabic) and vertical (e.g. Asian scripts).
Replaces and extends CSS2§8.6 and §9.10.
CSS Multi-column Layout Module Level 1
[CSS-MULTICOL-1]
Introduces multi-column flows to CSS layout.
CSS Flexible Box Layout Module Level 1
[CSS-FLEXBOX-1]
Introduces a flexible linear layout model for CSS.
CSS Basic User Interface Module Level 3
[CSS-UI-3]
Extends and supersedes CSS2§18.1 and CSS2§18.4,
defining
cursor
outline
, and several new CSS features that also enhance the user interface.
CSS Containment Module Level 1
[CSS-CONTAIN-1]
Introduces the
contain
property,
which enforces the independent CSS processing of an element’s subtree
in order to enable heavy optimizations by user agents when used well.
CSS Transforms Module Level 1
[CSS-TRANSFORMS-1]
Introduces coordinate-based graphical transformations to CSS.
Compositing and Blending Level 1
[COMPOSITING]
Defines the compositing and blending of overlaid content
and introduces features to control their modes.
CSS Easing Functions Level 1
[CSS-EASING-1]
Describes a way for authors to define a transformation
that controls the rate of change of some value.
Applied to animations,
such transformations can be used to produce animations
that mimic physical phenomena such as momentum
or to cause the animation to move in discrete steps producing robot-like movement.
CSS Counter Styles Level 3
[CSS-COUNTER-STYLES-3]
Introduces the
@counter-style
rule,
which allows authors to define their own custom counter styles
for use with CSS list-marker and generated-content counters
[CSS-LISTS-3]
It also predefines a set of common counter styles,
including the ones present in CSS2 and CSS2.1.
Note:
Although we don’t anticipate significant changes to the specifications that form this snapshot,
their inclusion does not mean they are frozen.
The Working Group will continue to address problems as they are found in these specs.
Implementers should monitor
www-style
and/or the
CSS Working Group Blog
for any resulting changes, corrections, or clarifications.
2.2.
Reliable Candidate Recommendations
The following specifications are considered to be in a reliable state, meaning they have largely stable implementations and specifications, but are not yet at the Recommendation level due to minor issues or the need for additional implementation reports.
Media Queries Level 4
[MEDIAQUERIES-4]
Extends and supersedes
[CSS3-MEDIAQUERIES]
expanding the syntax,
deprecating most media types,
and introducing new media features.
CSS Scroll Snap Module Level 1
[CSS-SCROLL-SNAP-1]
Contains features to control panning and scrolling behavior with “snap positions”.
CSS Scrollbars Styling Module Level 1
[CSS-SCROLLBARS-1]
Defines properties to influence the visual styling of scrollbars,
introducing controls for their color and width.
CSS Grid Layout Module Level 1
[CSS-GRID-1]
Introduces a two-dimensional grid-based layout system,
optimized for user interface design.
In the grid layout model, the children of a grid container
can be positioned into arbitrary slots in a predefined flexible or fixed-size layout grid.
CSS Grid Layout Module Level 2
[CSS-GRID-2]
Extends and supersedes
[CSS-GRID-1]
introducing “subgrids” for managing nested markup in a shared grid framework.
2.3.
Fairly Stable Modules with limited implementation experience
The following modules have completed design work,
and are fairly stable,
but have not received much testing and implementation experience yet.
We hope to incorporate them into the
official definition of CSS
in a future snapshot.
Media Queries Level 4
[MEDIAQUERIES-4]
Extends and supersedes
[CSS3-MEDIAQUERIES]
expanding the syntax, deprecating most media types,
and introducing new media features.
CSS Display Module Level 3
[CSS-DISPLAY-3]
Replaces CSS2§9.1.2, §9.2.1 (but not §9.2.1.1), §9.2.2 (but not §9.2.2.1), §9.2.3, and §9.2.4 (and lays the foundations for replacing §9.7),
defining how the CSS formatting box tree is generated
from the document element tree
and defining the
display
property that controls it.
CSS Writing Modes Level 4
[CSS-WRITING-MODES-4]
Extends and supersedes
[CSS-WRITING-MODES-3]
adding more options for vertical writing.
CSS Fragmentation Module Level 3
[CSS-BREAK-3]
Describes the fragmentation model that partitions a flow into pages, columns, or regions
and defines properties that control it.
Extends and supersedes CSS2§13.3.
CSS Box Alignment Module Level 3
[CSS-ALIGN-3]
Introduces properties to control the alignment of boxes
within their containers in the various CSS box layout models:
block layout, table layout, flex layout, and grid layout.
CSS Shapes Module Level 1
[CSS-SHAPES-1]
Extends floats (CSS2§9.5) to effect non-rectangular wrapping shapes.
CSS Text Module Level 3
[CSS-TEXT-3]
Extends and supersedes CSS2§16 excepting §16.3,
defining properties for text manipulation and specifying their processing model.
It covers line breaking, justification and alignment, white space handling, and text transformation.
CSS Text Decoration Module Level 3
[CSS-TEXT-DECOR-3]
Extends and supersedes CSS2§16.3,
providing more control over text decoration lines
and adding the ability to specify text emphasis marks
and text shadows.
CSS Masking Module Level 1
[CSS-MASKING-1]
Replaces CSS2§11.1.2
and introduces more powerful ways of clipping and masking content.
CSS Scroll Snap Module Level 1
[CSS-SCROLL-SNAP-1]
Contains features to control panning and scrolling behavior with “snap positions”.
CSS Speech Module Level 1
[CSS-SPEECH-1]
Replaces CSS2§A,
overhauling the (non-normative) speech rendering chapter.
CSS View Transitions Module Level 1
[CSS-VIEW-TRANSITIONS-1]
Defines the View Transition API, along with associated properties and pseudo-elements,
which allows developers to create animated visual transitions representing
changes in the document state.
2.4.
Modules with Rough Interoperability
Although the following modules have been widely deployed with
rough interoperability
their details are not fully worked out or sufficiently well-specified
and they need more testing and bugfixing.
We hope to incorporate them into the
official definition of CSS
in a future snapshot.
CSS Transitions
[CSS-TRANSITIONS-1]
and
CSS Animations Level 1
[CSS-ANIMATIONS-1]
Introduces mechanisms for transitioning the computed values of CSS properties over time.
CSS Will Change Module Level 1
[CSS-WILL-CHANGE-1]
Introduces a performance hint property called
will-change
Filter Effects Module Level 1
[FILTER-EFFECTS-1]
Introduces filter effects as a way of processing an element’s rendering before it is displayed in the document.
CSS Font Loading Module Level 3
[CSS-FONT-LOADING-3]
Introduces events and interfaces used for dynamically loading font resources.
CSS Box Sizing Module Level 3
[CSS-SIZING-3]
Overlays and extends CSS§10.,
expanding the value set of the sizing properties,
introducing more precise sizing terminology,
and defining with more precision and detail
various automatic sizing concepts only vaguely defined in CSS2.
CSS Transforms Module Level 2
[CSS-TRANSFORMS-2]
Builds upon
[CSS-TRANSFORMS-1]
to add new transform functions and properties for three-dimensional transforms,
and convenience functions for simple transforms.
CSS Lists and Counters Module Level 3
[CSS-LISTS-3]
Contains CSS features related to list counters:
styling them,
positioning them,
and manipulating their value.
CSS Logical Properties and Values Level 1
[CSS-LOGICAL-1]
Introduces logical properties and values
that provide the author with the ability to control layout through logical,
rather than physical,
direction and dimension mappings.
Also defines logical properties and values for the features defined in
[CSS2]
These properties are writing-mode relative equivalents
of their corresponding physical properties.
CSS Positioned Layout Module Level 3
[CSS-POSITION-3]
Contains defines coordinate-based positioning and offsetting schemes of CSS:
relative positioning
sticky positioning
absolute positioning
and
fixed positioning
Resize Observer
[RESIZE-OBSERVER-1]
This specification describes an API for observing changes to element’s principal box’s size.
Web Animations
[WEB-ANIMATIONS-1]
Defines a model for synchronization and timing of changes to the presentation of a Web page.
Also defines an application programming interface for interacting with this model.
CSS Fonts Module Level 4
[CSS-FONTS-4]
Extends and supersedes CSS Fonts 3
and provides more control over font choice and feature selection,
including support for OpenType variations.
CSS Color Adjustment Module Level 1
[CSS-COLOR-ADJUST-1]
This module introduces a model and controls over automatic color adjustment by the user agent to handle user preferences and device output optimizations.
CSS Conditional Rules Module Level 4
[CSS-CONDITIONAL-4]
Extends CSS Conditional 3 to allow testing for supported selectors.
CSS Cascading and Inheritance Level 5
[CSS-CASCADE-5]
Extends CSS Cascade 4 to add cascade layers.
Motion Path Module Level 1
[MOTION-1]
This module allows authors to position any graphical object and animate it along an author specified path.
CSS Scroll Anchoring Module Level 1
[CSS-SCROLL-ANCHORING-1]
This module aims to minimize content shifts
by locking the scroll position of a scroll container to a particular anchor element.
CSS Object Model (CSSOM)
[CSSOM-1]
This module defines APIs for parsing, serializing,
and manipulating CSS, Media Queries, and Selectors.
CSS Color Module Level 5
[CSS-COLOR-5]
Extends CSS Color 4 to add color spaces and color modification functions.
Selectors Level 4
[SELECTORS-4]
Extends Selectors Level 3 by introducing new pseudo-classes,
pseudo-elements, and combinators,
enhancing the ability to select elements
based on more complex criteria and states.
2.5.
CSS Levels
Cascading Style Sheets does not have versions in the traditional sense;
instead it has
levels
. Each level of CSS builds on the previous,
refining definitions and adding features. The feature set of each higher
level is a superset of any lower level, and the behavior allowed for a given
feature in a higher level is a subset of that allowed in the lower levels.
A user agent conforming to a higher level of CSS is thus also conformant to
all lower levels.
CSS Level 1
The CSS Working Group considers the
CSS1 specification
to be
obsolete.
CSS Level 1
is defined as all the features defined
in the CSS1 specification (properties, values, at-rules, etc), but using
the syntax and definitions in the
CSS2.1 specification
CSS Style Attributes
defines its inclusion in element-specific style attributes.
CSS Level 2
Although the
CSS2 specification
is technically a W3C Recommendation, it passed into the Recommendation stage
before the W3C had defined the Candidate Recommendation stage. Over time
implementation experience and further review has brought to light many problems
in the CSS2 specification, so instead of expanding an already
unwieldy
errata list
, the CSS Working Group chose to define
CSS Level 2
Revision 1
(CSS2.1). In case of any conflict between the two specs
CSS2.1 contains the definitive definition.
Once CSS2.1 became Candidate Recommendation—effectively though not
officially the same level of stability as CSS2—obsoleted the CSS2
Recommendation. Features in CSS2 that were dropped from CSS2.1 should be
considered to be at the Candidate Recommendation stage, but note that many
of these have been or will be pulled into a CSS Level 3 working draft, in
which case that specification will, once it reaches CR, obsolete the
definitions in CSS2.
The
CSS2.1 specification
defines
CSS Level 2
and the
CSS
Style Attributes specification
defines its inclusion in
element-specific style attributes.
CSS Level 3
CSS Level 3
builds on CSS Level 2 module by module, using the CSS2.1
specification as its core. Each module adds functionality and/or
replaces part of the CSS2.1 specification. The CSS Working Group
intends that the new CSS modules will not contradict the CSS2.1
specification: only that they will add functionality and refine
definitions. As each module is completed, it will be plugged in to
the existing system of CSS2.1 plus previously-completed modules.
From this level on modules are levelled independently: for example
Selectors Level 4 may well be completed before CSS Line Module Level 3.
Modules with no
CSS Level 2
equivalent start at Level 1;
modules that update features that existed in
CSS Level 2
start at Level 3.
CSS Level 4
and beyond
There is no CSS Level 4.
Independent modules can reach level 4 or beyond,
but CSS the language no longer has levels.
("CSS Level 3" as a term is used only to differentiate it from the previous monolithic versions.)
2.6.
CSS Profiles
Not all implementations will implement all functionality defined in CSS.
In the past, the Working Group published a few Profiles,
which were meant to define the minimal subset of CSS
that various classes of user agents were expected to support.
This effort has been discontinued,
as the Working Group was not finding it effective or useful,
and the profiles previously defined are now unmaintained.
Note:
Partial implementations of CSS, even if that subset is an official profile,
must follow the forward-compatible parsing rules for
partial implementations
3.
Requirements for Responsible Implementation of CSS
The following sections define several conformance requirements
for implementing CSS responsibly,
in a way that promotes interoperability in the present and future.
3.1.
Partial Implementations
So that authors can exploit the forward-compatible parsing rules to assign fallback values,
CSS renderers
must
treat as invalid
(and
ignore as appropriate
any at-rules, properties, property values, keywords, and other syntactic constructs
for which they have no usable level of support
In particular, user agents
must not
selectively ignore
unsupported property values and honor supported values in a single multi-value property declaration:
if any value is considered invalid (as unsupported values must be),
CSS requires that the entire declaration be ignored.
3.2.
Implementations of Unstable and Proprietary Features
To avoid clashes with future stable CSS features,
the CSSWG recommends the following best practices for the implementation of
unstable
features and
proprietary extensions
to CSS:
3.2.1.
Experimentation and Unstable Features
Implementations of
unstable
features
that are described in W3C specifications
but are not interoperable
should not be released broadly for general use;
but may be released for limited, experimental use in controlled environments.
Why?
We want to allow both authors and implementors to experiment with the feature and give feedback,
but prevent authors from relying on them in production websites
and thereby accidentally "locking in" (through content dependence)
certain syntax or behavior that might change later.
For example,
a UA could release an
unstable
features for experimentation
through beta or other testing-stage builds;
behind a hidden configuration flag;
behind a switch enabled only for specific testing partners;
or through some other means of limiting dependent use.
A CSS feature is considered
unstable
until
its specification has reached the Candidate Recommendation (CR) stage in the W3C process.
In exceptional cases,
the CSSWG may additionally, by an officially-recorded resolution,
add pre-CR features to the set that are considered safe to release for broad use.
See
§ 4 Safe to Release pre-CR Exceptions
Note:
Vendors should consult the WG explicitly and not make assumptions on this point,
as a pre-CR spec that hasn’t changed in awhile is usually more out-of-date than stable.
3.2.2.
Proprietary and Non-standardized Features
To avoid clashes with future CSS features,
the CSS2.1 specification reserves a
prefixed syntax
[CSS2]
for proprietary and experimental extensions to CSS.
A CSS feature is a
proprietary extension
if it is meant for use
in a closed environment accessible only to a single vendor’s user agent(s).
A UA should support such
proprietary extensions
only through a vendor-
prefixed
syntax
and not expose them to open (multi-UA) environments such as the World Wide Web.
Why?
The prefixing requirement allows shipping specialized features in closed environments
without conflicting with future additions to standard CSS.
The restriction on exposure to open systems is to prevent
accidentally causing the public CSS environment
to depend on an unstandardized
proprietary extensions
For example,
Firefox’s XUL-based UI, Apple’s iTunes UI, and Microsoft’s Universal Windows Platform app
use extensions to CSS implemented by their respective UAs.
So long as these UAs do not allow Web content to access these features,
they do not provide an opportunity for such content
to become dependent on their
proprietary extensions
Even if a feature is intended to eventually be used in the Web,
if it hasn’t yet been standardized
it should still not be exposed to the Web.
3.2.3.
Market Pressure and De Facto Standards
If a feature is
unstable
(i.e. the spec has not yet stabilized), but
at least three UAs implement the feature
or
a UA has broken the other rules and shipped for broad use
an
unstable
or otherwise non-standard feature in a production release),
and
the implementations have rough interoperability,
and
the CSS Working Group has recorded consensus
that this feature should exist and be released,
implementers may ship that feature
unprefixed
in broad-release builds.
Rough interoperability
is satisfied by a subjective judgment
that even though there may be differences,
the implementations are sufficiently similar
to be used in production websites for a substantial number of use cases.
Note that the CSSWG must still be consulted to ensure coordination across vendors
and to ensure coherency review by the CSS experts from each vendor.
Note also that
rough interoperability
still usually means
painful lack of interop in edge (or not-so-edge) cases,
particularly because details have not been ironed out through the standards review process.
Why?
If a feature is sufficiently popular that three or more browsers have implemented it before it’s finished standardization,
this clause allows releasing the pressure to ship.
Also, if a feature has already escaped into the wild and sites have started depending on it,
pretending it’s still “experimental” doesn’t help anyone.
Allowing others to ship unprefixed recognizes that the feature is now de facto standardized
and encourages authors to write cross-platform code.
3.2.3.1.
Vendor-prefixing Unstable Features
When exposing such a standards-track
unstable
feature to the Web in a production release,
implementations should support
both
vendor-prefixed
and unprefixed syntaxes
for the feature.
Once the feature has stabilized and the implementation is updated to match interoperable behavior,
support for the
vendor-prefixed
syntax should be removed.
Why?
This is recommended so that authors can use the unprefixed syntax to target all implementations,
but when necessary, can target specific implementations
to work around incompatibilities among implementations
as they get ironed out through the standards/bugfixing process.
The lack of a phase
where only the prefixed syntax is supported
greatly reduces the risk of stylesheets
being written with only the vendor-prefixed syntax.
This in turn allows UA vendors to retire
their prefixed syntax once the feature is stable,
with a lower risk of breaking existing content.
It also reduces the need occasionally felt by some vendors
to support a feature with the prefix of another vendor,
due to content depending on that syntax.
Anyone promoting
unstable
features to authors
should document them using their standard unprefixed syntax,
and avoid encouraging the use of the
vendor-prefixed
syntax
for any purpose other than working around implementation differences.
3.2.3.2.
Preserving the Openness of CSS
In order to preserve the open nature of CSS as a technology,
vendors should make it possible for other implementors
to freely implement any features that they do ship.
To this end, they should provide spec-editing and testing resources
to complete standardization of such features,
and avoid other obstacles (e.g., platform dependency, licensing restrictions)
to their competitors shipping the feature.
3.3.
Implementations of CR-level Features
Once a specification reaches the Candidate Recommendation stage,
implementers should release an
unprefixed
implementation
of any CR-level feature they can demonstrate
to be correctly implemented according to spec,
and should avoid exposing a prefixed variant of that feature.
To establish and maintain the interoperability of CSS across
implementations, the CSS Working Group requests that non-experimental
CSS renderers submit an implementation report (and, if necessary, the
testcases used for that implementation report) to the W3C before
releasing an unprefixed implementation of any CSS features. Testcases
submitted to W3C are subject to review and correction by the CSS
Working Group.
Further information on submitting testcases and implementation reports
can be found from on the CSS Working Group’s website at
Questions should be directed to the
public-css-testsuite@w3.org
mailing list.
4.
Safe to Release pre-CR Exceptions
The following features have been explicitly and proactively cleared
by the CSS Working Group for broad release
prior to the spec reaching Candidate Recommendation.
See
§ 3.2.1 Experimentation and Unstable Features
The flow-relative equivalents of
the sizing properties (
width
height
, etc.),
the border properties,
the margin and padding properties.
See
explanation
and
specification
The
min-content
and
max-content
keywords of the sizing properties.
See
decision
and
specification
The
conic-gradient()
gradient notation. See
decision
The
aspect-ratio
property.
[CSS-SIZING-4]
The
translate
rotate
, and
scale
properties.
[CSS-TRANSFORMS-2]
The
hyphenate-character
property.
[CSS-TEXT-4]
The
color-mix()
function.
[CSS-COLOR-5]
The

, defined in
[CSS-COLOR-4]
and used for interpolation of linear, radial and conic gradients.
[CSS-IMAGES-4]
The
relative color
syntax, defined in
[CSS-COLOR-5]
The following features have been explicitly and retroactively cleared
by the CSS Working Group for broad release
prior to the spec reaching Candidate Recommendation:
Everything in
CSS Animations Level 1
and
CSS Transitions Level 1
5.
Indices
These sections are non-normative.
5.1.
Terms Index
1st
2d matrix
2nd
3rd
4th
absolute length
absolute length unit
absolute scroll
abstract dimensions
activeborder
activecaption
active duration
actual value
additive tuple
adjusted radius dimension
advance measure
after-change style
aliceblue
alignment baseline
alignment container
alignment context
alignment subject
alphabetic baseline

ambiguous image url
an+b
anchor
anchor unit
animation origin
animation-tainted
anonymous
anonymous box
antiquewhite
apply to
appworkspace
aqua
aquamarine
are a valid escape
aspect value
atomic inline
atomic inline box
at-rule
augmented grid
aural box model
author origin
author-origin
author presentational hint origin
author style sheet
automatic column position
automatic grid position
automatic placement
automatic position
automatic row position
auto-placement
auto-placement cursor
available font faces
available grid space
avoid break values
axis-lock
axis value
azure
backdrop
background
background color
background image
background image layer
background painting area
background positioning area
baseline
baseline alignment
baseline alignment preference
baseline content-alignment
baseline self-alignment
baseline set
baseline-sharing group
baseline table
base size
bearing angle
before-change style
before flag
beige
bfc
bidi formatting characters
bidi-isolate
bidi-isolated
bidi isolation
bidi paragraph
bidirectionality
bi-orientational
bi-orientational transform
bisque
black
blanchedalmond
()-block
[]-block
block
{}-block
block at-rule
block axis
block-axis
block box
block container
block container box
block dimension
block end
block-end
block flow direction
block formatting context
block formatting context root
blockification
blockify
block layout
block-level
block-level box
block-level content
block scripts
block size
block-size
block start
block-start
blue
blueviolet
blur radius
boolean context
border color
border image
border image area
border image region
border radius
border style
border width
bottom
box
box alignment properties
box-corner
box fragment
box tree
break
brown
burlywood
buttonface
buttonhighlight
buttonshadow
buttontext
cadetblue
cancel
canonical unit
canvas background
canvas surface
captiontext
captures snap positions
cascade
cascade-dependent keyword
cascaded value
cascade origin
central baseline
character
character map
chartreuse
check if three code points would start an ident sequence
check if three code points would start a number
check if three code points would start a unicode-range
check if two code points are a valid escape
child combinator
chinese
chocolate
circled-lower-latin
clamp a grid area
clipping path
clipping region
clustered scripts
collapsed
collapsed flex item
collapsed grid track
collapsed gutter
collapsible white space

color
color stop
color stop list
color transition hint
column box
column break
column gap
column height
column rule
column width
combinators
combined duration
compatible baseline alignment preferences
compatible units
complete
completed transition
component value
composite face
computed
computed repeat notation
computed track list
computed track size
computed value
concrete object size
conditional group rule
conditionally hang
constraint rectangle
consume a block
consume a block's contents
consume a component value
consume a declaration
consume a function
consume a list of component values
consume a list of declarations
consume a list of rules
consume an at-rule
consume an escaped code point
consume an ident-like token
consume an ident sequence
consume a number
consume a numeric token
consume a qualified rule
consume a simple block
consume a string token
consume a style block's contents
consume a stylesheet's contents
consume a token
in css-syntax-3
in css-syntax-3, for token stream
in css-syntax-3, for tokenizer
consume a unicode-range token
consume a url token
consume comments
consume the next input token
consume the remnants of a bad declaration
consume the remnants of a bad url
consume the value of a unicode-range descriptor
contain constraint
containing block
containing block chain
containing block for all descendants
containment
content-based minimum size
in css-flexbox-1
in css-grid-1
content distribution
content-distribution
content-distribution properties
content language
content size suggestion
in css-flexbox-1
in css-grid-1
content writing system
continuous media
convert a string to a number
coordinated self-alignment preference
coral
cornflowerblue
cornsilk
counter style
counter symbol
cover constraint
crimson
cross axis
cross-axis
cross-axis baseline set
cross dimension
cross-end
cross size
cross size property
cross-start
css bracketed range notation
css-connected
css feature queries
cssfontfacerule
cssfontfeaturevaluesrule
css ident
css identifier
css ident sequence
css qualified name
css value definition syntax
css-wide keywords
cubic bézier easing function
currentcolor
current input code point
current input token
current transformation matrix
current value
cursive script
custom property
cyan
darkblue
darkcyan
darkgoldenrod
darkgray
darkgreen
darkgrey
darkkhaki
darkmagenta
darkolivegreen
darkorange
darkorchid
darkred
darksalmon
darkseagreen
darkslateblue
darkslategray
darkslategrey
darkturquoise
darkviolet
declaration
declared
declared value
decode bytes
decorating box
deeppink
deepskyblue
default face
default namespace
default object size
default sizing algorithm
definite
definite column position
definite column span
definite grid position
definite grid span
definite position
definite row position
definite row span
definite size
definite span
descriptor
descriptor declarations
destination
determine the fallback encoding
device pixel
dice
digit
dimension
dimgray
dimgrey
direction-agnostic size
directional embedding
directional override
discard a mark
discard a token
discard whitespace
display type
distributed alignment
distribute extra space
document
in css-speech-1
in css-style-attr
document order
document white space
document white space characters
dodgerblue
dominant baseline
easing function
east asian width property
effective character map
element
element tree
emoji presentation participating code points
empty
encapsulation contexts
end
ending point
ending shape
ending token
endmost
end time
end value
environment encoding
eof code point
escaping
establish an independent formatting context
establish an orthogonal flow
established an independent formatting context
establishes an independent formatting context
establishing an independent formatting context
expanded name
explicit grid
explicit grid column
explicit grid properties
explicit grid row
explicit grid track
explicitly-assigned line name
fallback alignment
false in the negative range
feature value block
fetch a font
fetch an @import
filter code points
filtered code points
filter function
filter primitive
filter primitive attributes
filter primitive subregion
filter primitive tree
filter region
find the matching font faces
fire a font load event
firebrick
first available font
first-baseline alignment
first-baseline content-alignment
first baselines
first-baseline self-alignment
first baseline set
first cross-axis baseline set
first formatted line
first main-axis baseline set
first symbol value
fixed sizing function
flex base size
flex basis
flex container
flex direction
flex factor
in css-flexbox-1
in css-grid-1, for grid-template-columns, grid-template-rows
flex factor sum
flex formatting context
flex fraction
flex grow factor
flexible
flexible length
flexible sizing function
flexible tracks
flex item
flex layout
flex-level
flex line
flex shrink factor
float area
floralwhite
flow layout
flow-relative
flow-relative direction
font block period
font download timer
font failure period
font feature value block
font feature value declaration
font-relative lengths
font source
font specific
font swap period
footnote
forced break
forced break values
forced line break
forced paragraph break
forestgreen
formatting context
fragment
fragmentainer
fragmentation
fragmentation break
fragmentation container
fragmentation context
fragmentation direction
fragmentation root
fragmented flow
free space
fuchsia
full-size
full-size kana
full-width
fully inflexible
function
functional notation
gainsboro
general category
generate a counter
generate a counter representation
generate baselines
ghostwhite
go
gold
goldenrod
gradient-average-color
gradient box
gradient center
gradient function
gradient line
grapheme cluster
gray
graytext
green
greenyellow
grey
grid
grid area
grid cell
grid column
grid column line
grid container
grid formatting context
grid item
grid item placement algorithm
grid layout
grid layout algorithm
grid-level
grid line
grid-modified document order
grid order
grid placement
grid-placement property
grid position
grid row
grid row line
grid sizing algorithm
grid span
grid track
growth limit
guaranteed-invalid value
gutter
half-width
hang
hanging glyph
height
hex digit
highlight
highlighttext
honeydew
horizontal axis
horizontal-axis
horizontal block flow
horizontal dimension
horizontal offset
horizontal-only
horizontal script
horizontal typographic mode
horizontal writing mode
hotpink
hyphenate
hyphenation
hyphenation opportunity
hypothetical cross size
hypothetical fr size
hypothetical main size
ident
ident code point
identifier
identity transform
identity transform function
ident sequence
ident-start code point
ignored
implicit grid
implicit grid column
implicit grid lines
implicit grid properties
implicit grid row
implicit grid track
implicitly-assigned line name
implicitly-named area
important
import conditions
inactiveborder
inactivecaption
inactivecaptiontext
indefinite
indefinite size
independent formatting context
index
indianred
indigo
infinitely growable
in flow
in-flow
infobackground
infotext
inherit
in css-cascade-4
in css-cascade-4, for CSS
inheritance
in css-cascade-4
in css-cascade-4, for CSS
inherited property
inherited value
initial containing block
initial free space
initial representation for the counter value
initial value
inline
inline axis
inline-axis
inline base direction
inline block
inline block box
inline box
inline dimension
inline end
inline-end
inline formatting context
inline-level
inline-level box
inline-level content
inline size
inline-size
inline start
inline-start
inlinification
inlinify
inner box-shadow
inner display type
input progress value
input stream
installed font fallback
integer
intended direction
intended direction and end position
intended end position
internal ruby box
internal ruby element
internal table box
internal table element
interpreter
in css-namespaces-3
in css-style-attr
intrinsic sizing function
invalid
invalid at computed-value time
invalid image
invalid rule error
invisible
invisible box
isolated sequence
isolation
iteration order
ivory
japanese
justification opportunity
keyword
khaki
known
korean
last-baseline alignment
last-baseline content-alignment
last baselines
last-baseline self-alignment
last baseline set
last cross-axis baseline set
last main-axis baseline set
lavender
lavenderblush
lawngreen
laying out in-place
layout containment
layout containment box
layout-internal
left
leftover space
legacy name alias
legacy shorthand
legacy value alias
lemonchiffon
letter
in css-syntax-3
in css-text-3
lightblue
lightcoral
lightcyan
lightgoldenrodyellow
lightgray
lightgreen
lightgrey
lightpink
lightsalmon
lightseagreen
lightskyblue
lightslategray
lightslategrey
light source
lightsteelblue
lightyellow
lime
limegreen
limited max-content contribution
limited min-content contribution
linear easing function
linear timing function
line break
in css-break-3
in css-text-3
line breaking
line breaking process
line-left
linen
line name
line name set
line orientation
line-over
line-relative
line-relative direction
line-right
line-under
loading image
local coordinate system
local url flag
logical height
logical width
longhand
longhand property
lowercase letter
magenta
main axis
main-axis
main-axis baseline set
main dimension
main-end
main size
main size property
main-start
mark
marked indexes
maroon
mask border image
mask border image area
mask image
mask layer image
mask painting area
mask-position
mask positioning area
mask-size
matching transition delay
matching transition duration
matching transition-property value
matching transition timing function
max cross size
max cross size property
maximum allowed code point
max inner height
max inner width
max main size
max main size property
max track sizing function
media condition
media feature
media query
media query list
media query modifier
media type
mediumaquamarine
mediumblue
mediumorchid
mediumpurple
mediumseagreen
mediumslateblue
mediumspringgreen
mediumturquoise
mediumvioletred
menutext
midnightblue
min cross size
min cross size property
minimum contribution
min inner height
min inner width
min main size
min main size property
mintcream
min track sizing function
mistyrose
moccasin
monolithic
multicol container
multi-col line
multicol line
multi-column container
multi-column formatting context
multi-column layout
multi-column line
multi-column spanner
multi-column spanning element
multi-line flex container
multiply
named cell token
named grid area
namespace prefix
name-start code point
natural aspect ratio
natural dimension
natural end-point
natural height
natural size
natural width
navajowhite
navy
nearest neighbor
newline
next input code point
next input token
next-sibling combinator
next token
non-ascii code point
non-ascii ident code point
non-overridable counter-style names
non-printable code point
non-replaced
non-replaced element
normal
normalize into a token stream
null cell token
number
numeric data types
objects
object size negotiation
occupied
oldlace
olive
olivedrab
opacity
operating coordinate space
optimal viewing region
orange
orangered
orchid
order-modified document order
orthogonal
orthogonal flow
other space separators
outer box-shadow
outer display type
out of flow
out-of-flow
output of the cascade
output progress value
outset-adjusted border radius
over
overflow alignment
overflow columns
page break
paged media
pagination
paint containment
paint containment box
palegoldenrod
palegreen
paleturquoise
palevioletred
papayawhip
parent box
parse
parse a block's contents
parse a comma-separated list according to a css grammar
parse a comma-separated list of component values
parse a component value
parse a css stylesheet
parse a declaration
parse a list
parse a list of component values
parse a list of declarations
parse a list of rules
parse a rule
parse a style block's contents
parse a stylesheet
parse a stylesheet's contents
parse error
parse something according to a css grammar
parsing a list
participates in baseline alignment
pass through filter
peachpuff
pending on the environment
pending-substitution value
percentage
peru
physical
physical bottom
physical dimensions
physical direction
physical left
physical right
physical top
physical unit
pink
pixel unit
plum
positional alignment
post-multiplied
post-multiply
powderblue
pre-multiplied
pre-multiply
preserved tokens
preserved white space
primary filter primitive tree
principal box
principal writing mode
process
propagate
propagation
property
property declarations
purple
qualified rule
range context
reconsume the current input code point
reconsume the current input token
red
reference box
in css-shapes-1, for
in css-transforms-1
reference pixel
region break
relative length
relative length unit
relative scroll
remaining fragmentainer extent
remaining free space
render with a fallback font face
render with an invisible fallback font face
replaced
replaced element
representation
reset-only sub-property
re-snap
resolved type
restore a mark
reversing-adjusted start value
reversing shortening factor
right
root element
rosybrown
royalblue
rule
run-in
run-in box
run-in sequence
running transition
saddlebrown
salmon
sandybrown
scaled flex shrink factor
script property
scrollbar
scroll snap
scroll snap area
scroll snap container
scroll snapport
scroll snap position
seagreen
seashell
segment break
selector
self-alignment
self-alignment properties
semitone
sequence of simple selectors
serialize an value
set entries
shared alignment context
shorthand
shorthand property
sideways typesetting
sienna
silver
simple block
simple selector
single-line flex container
size containment
size containment box
sizing as if empty
sizing function
skyblue
slateblue
slategray
slategrey
small
small kana
snow
soft wrap break
soft wrap opportunity
source
spaces
space to fill
span count
specified size
specified size suggestion
in css-flexbox-1
in css-grid-1
specified value
spread break
spread distance
springgreen
start
starting point
startmost
starts with an ident sequence
starts with a number
starts with a valid escape
start time
start value
start with an ident sequence
start with a number
statement at-rule
static-position rectangle
stationary scroll
steelblue
step easing function
step position
steps
stop or comma
stretched
strictness value
stroke bounding box
structural pseudo-classes
stuck on the environment
style attribute
style change event
style rule
style sheet
in css-namespaces-3
in css-speech-1
stylesheet
subjects of the selector
sub-property
subsequent-sibling combinator
substitute a var()
support
in css-conditional-3, for CSS
in css-fonts-4
supports queries
switch the fontfaceset to loaded
switch the fontfaceset to loading
synthesize baseline
synthesized baseline
table caption box
tabs
tab size
tab stop
tan
target main size
teal
text node
text sequence
textual data types
thistle
threeddarkshadow
threedface
threedhighlight
threedlightshadow
threedshadow
timing function
tokenization
tokenize
tokens
token stream
tomato
top
tracking
track list
track section
track sizing algorithm
track sizing function
transfer function element
transfer function element attributes
transferred size suggestion
in css-flexbox-1
in css-grid-1
transformable element
transformation matrix
transformed element
transitionable
transition origin
transitions
transparent
trash token
triangle
trinary
turquoise
type selector
typeset sideways
typesetting sideways
typesetting upright
typeset upright
typographic character
typographic character unit
typographic letter unit
typographic mode
ua
ua origin
ua-origin
ua style sheet
under
unforced break
unicode category
unicode east asian width
unicode general category
unicode script
unicode vertical orientation
universal selector
unknown
unoccupied
upper-alpha-legal
uppercase letter
upright typesetting
url
use a negative sign
used value
user agent
user-agent origin
user-agent style sheet
user coordinate system
user origin
user-origin
user style sheet
uses a negative sign
valid image
value definition syntax
var() substitution
vertical axis
vertical-axis
vertical block flow
vertical dimension
vertical offset
vertical-only
vertical orientation
vertical script
vertical typographic mode
vertical writing mode
viewport-percentage lengths
violet
visual angle unit
wheat
white
whitesmoke
white space
whitespace
white space characters
width
window
windowframe
windowtext
word separator
word-separator character
would start an ident sequence
would start a number
would start a unicode-range
wrap
in css-shapes-1
in css-text-3
wrapping
in css-shapes-1
in css-text-3
writing mode
x-axis
y-axis
yellow
yellowgreen
5.2.
Selector Index
:active
::after
::before
:checked
:disabled
:empty
:enabled
:first-child
::first-letter
::first-line
:first-of-type
:focus
:hover
:lang
:last-child
:last-of-type
:link
:not()
:nth-child()
:nth-last-child()
:nth-last-of-type()
:nth-of-type()
:only-child
:only-of-type
:root
:target
:visited
5.3.
At-Rule Index
@annotation
@character-variant
@charset
@counter-style
@font-face
@font-feature-values
@font-palette-values
@historical-forms
@import
@keyframes
@media
@namespace
@ornaments
@styleset
@stylistic
@supports
@swash
5.4.
Property Index
--*
align-content
in css-align-3
in css-flexbox-1
align-items
in css-align-3
in css-flexbox-1
align-self
in css-align-3
in css-flexbox-1
all
animation
animation-delay
animation-direction
animation-duration
animation-fill-mode
animation-iteration-count
animation-name
animation-play-state
animation-timing-function
background
background-attachment
background-blend-mode
background-clip
background-color
background-image
background-origin
background-position
background-repeat
background-size
border
border-bottom
border-bottom-color
border-bottom-left-radius
border-bottom-right-radius
border-bottom-style
border-bottom-width
border-color
border-image
border-image-outset
border-image-repeat
border-image-slice
border-image-source
border-image-width
border-left
border-left-color
border-left-style
border-left-width
border-radius
border-right
border-right-color
border-right-style
border-right-width
border-style
border-top
border-top-color
border-top-left-radius
border-top-right-radius
border-top-style
border-top-width
border-width
box-decoration-break
box-shadow
box-sizing
break-after
break-before
break-inside
caret-color
clip
clip-path
clip-rule
color-interpolation-filters
column-count
column-fill
column-gap
column-rule
column-rule-color
column-rule-style
column-rule-width
columns
column-span
column-width
contain
cue
cue-after
cue-before
cursor
direction
display
filter
flex
flex-basis
flex-direction
flex-flow
flex-grow
flex-shrink
flex-wrap
flood-color
flood-opacity
font
font-family
font-feature-settings
font-kerning
font-language-override
font-optical-sizing
font-palette
font-size
font-size-adjust
font-stretch
font-style
font-synthesis
font-synthesis-position
font-synthesis-small-caps
font-synthesis-style
font-synthesis-weight
font-variant
font-variant-alternates
font-variant-caps
font-variant-east-asian
font-variant-emoji
font-variant-ligatures
font-variant-numeric
font-variant-position
font-variation-settings
font-weight
font-width
gap
glyph-orientation-vertical
grid
grid-area
grid-auto-columns
grid-auto-flow
grid-auto-rows
grid-column
grid-column-end
grid-column-gap
grid-column-start
grid-gap
grid-row
grid-row-end
grid-row-gap
grid-row-start
grid-template
grid-template-areas
grid-template-columns
grid-template-rows
hanging-punctuation
hyphens
image-orientation
image-rendering
isolation
justify-content
in css-align-3
in css-flexbox-1
justify-items
justify-self
letter-spacing
lighting-color
line-break
mask
mask-border
mask-border-mode
mask-border-outset
mask-border-repeat
mask-border-slice
mask-border-source
mask-border-width
mask-clip
mask-composite
mask-image
mask-mode
mask-origin
mask-position
mask-repeat
mask-size
mask-type
mix-blend-mode
object-fit
object-position
order
orphans
outline
outline-color
outline-offset
outline-style
outline-width
overflow-wrap
pause
pause-after
pause-before
place-content
place-items
place-self
resize
rest
rest-after
rest-before
row-gap
scroll-margin
scroll-margin-block
scroll-margin-block-end
scroll-margin-block-start
scroll-margin-bottom
scroll-margin-inline
scroll-margin-inline-end
scroll-margin-inline-start
scroll-margin-left
scroll-margin-right
scroll-margin-top
scroll-padding
scroll-padding-block
scroll-padding-block-end
scroll-padding-block-start
scroll-padding-bottom
scroll-padding-inline
scroll-padding-inline-end
scroll-padding-inline-start
scroll-padding-left
scroll-padding-right
scroll-padding-top
scroll-snap-align
scroll-snap-stop
scroll-snap-type
shape-image-threshold
shape-margin
shape-outside
speak
speak-as
tab-size
text-align
text-align-all
text-align-last
text-combine-upright
text-decoration
text-decoration-color
text-decoration-line
text-decoration-style
text-emphasis
text-emphasis-color
text-emphasis-position
text-emphasis-style
text-indent
text-justify
text-orientation
text-overflow
text-shadow
text-transform
text-underline-position
transform
transform-box
transform-origin
transition
transition-delay
transition-duration
transition-property
transition-timing-function
unicode-bidi
visibility
voice-balance
voice-duration
voice-family
voice-pitch
voice-range
voice-rate
voice-stress
voice-volume
white-space
widows
will-change
word-break
word-spacing
word-wrap
writing-mode
5.5.
Values Index
absolute
in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
add
additive
alias
all
in css-multicol-1, for column-span
in css-transitions-1, for transition-property
in css-writing-modes-4, for text-combine-upright
in mediaqueries-4, for @media
allow-end
all-petite-caps
all-scroll
all-small-caps
alpha
in css-masking-1, for mask-border-mode
in css-masking-1, for mask-mode
in css-masking-1, for mask-type
alphabetic
alternate
alternate-reverse
always
in css-scroll-snap-1, for scroll-snap-stop
in css-speech-1, for speak

annotation()
annotation()
anywhere
in css-text-3, for line-break
in css-text-3, for overflow-wrap
arabic-indic
arc
armenian
aural
auto
in css-align-3, for align-self
in css-align-3, for justify-self
in css-backgrounds-3, for background-size
in css-backgrounds-3, for border-image-width
in css-break-3, for break-before, break-after
in css-break-3, for break-inside, page-break-inside
in css-counter-styles-3, for @counter-style/range
in css-counter-styles-3, for @counter-style/speak-as
in css-flexbox-1, for align-items, align-self
in css-flexbox-1, for flex-basis
in css-fonts-4, for @font-face/font-display
in css-fonts-4, for font-kerning
in css-fonts-4, for font-optical-sizing
in css-fonts-4, for font-synthesis-position
in css-fonts-4, for font-synthesis-small-caps
in css-fonts-4, for font-synthesis-style
in css-fonts-4, for font-synthesis-weight
in css-grid-1, for
in css-grid-1, for grid-template-columns, grid-template-rows
in css-images-3, for image-rendering
in css-multicol-1, for column-count
in css-multicol-1, for column-fill
in css-multicol-1, for column-width
in css-scroll-snap-1, for scroll-padding, scroll-padding-inline, scroll-padding-inline-start, scroll-padding-inline-end, scroll-padding-block, scroll-padding-block-start, scroll-padding-block-end
in css-speech-1, for speak
in css-speech-1, for voice-duration
in css-text-3, for hyphens
in css-text-3, for line-break
in css-text-3, for text-align-last
in css-text-3, for text-justify
in css-text-decor-3, for text-underline-position
in css-ui-3, for caret-color
in css-ui-3, for cursor
in css-will-change-1, for will-change
in filter-effects-1, for color-interpolation-filters
auto-fill
auto-fit
[ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>
avoid
in css-break-3, for break-before, break-after
in css-break-3, for break-inside, page-break-inside
avoid-column
in css-break-3, for break-before, break-after
in css-break-3, for break-inside, page-break-inside
avoid-page
in css-break-3, for break-before, break-after
in css-break-3, for break-inside, page-break-inside
avoid-region
in css-break-3, for break-before, break-after
in css-break-3, for break-inside, page-break-inside
backwards
balance
balance-all
baseline
in css-align-3, for justify-self, justify-items, align-content, align-self, align-items,
in css-flexbox-1, for align-items, align-self

bengali
bidi-override
blink
block
in css-display-3, for display,
in css-fonts-4, for @font-face/font-display
in css-scroll-snap-1, for scroll-snap-type
bold
bolder
border-box
in css-backgrounds-3, for background-clip
in css-backgrounds-3, for background-origin
in css-masking-1, for mask-clip
in css-masking-1, for mask-origin
in css-shapes-1, for , shape-outside
in css-transforms-1, for transform-box
in css-ui-3, for box-sizing
both
in css-animations-1, for animation-fill-mode
in css-scroll-snap-1, for scroll-snap-type
bottom
in css-backgrounds-3, for background-position
in css-transforms-1, for transform-origin
braille
break-all
break-spaces
break-word
in css-text-3, for overflow-wrap
in css-text-3, for word-break
bullets
by
cambodian
capitalize
caption
ccw
cell
center
in css-align-3, for , , justify-self, align-self, justify-content, align-content
in css-backgrounds-3, for background-position
in css-flexbox-1, for align-content
in css-flexbox-1, for align-items, align-self
in css-flexbox-1, for justify-content
in css-scroll-snap-1, for scroll-snap-align
in css-speech-1, for voice-balance
in css-text-3, for text-align
in css-transforms-1, for transform-origin
ch
character-variant(#)
character-variant(#)
child
ch unit
circle
in css-counter-styles-3, for
in css-images-3, for
in css-text-decor-3, for text-emphasis-style
cjk-decimal
cjk-earthly-branch
cjk-heavenly-stem
cjk-ideographic
clip
clone
close
closest-corner
closest-side
cm
coarse
collapse
color
color-burn
color-cbdt
color-colrv0
color-colrv1
color-dodge
color-sbix
color-svg
col-resize
column
in css-break-3, for break-before, break-after
in css-flexbox-1, for flex-direction
in css-grid-1, for grid-auto-flow
column-reverse
common-ligatures
condensed
contain
in css-backgrounds-3, for background-size
in css-images-3, for object-fit
content
in css-contain-1, for contain
in css-flexbox-1, for flex-basis
content-box
in css-backgrounds-3, for background-clip
in css-backgrounds-3, for background-origin
in css-masking-1, for mask-clip
in css-masking-1, for mask-origin
in css-shapes-1, for , shape-outside
in css-transforms-1, for transform-box
in css-ui-3, for box-sizing
contents
in css-display-3, for display,
in css-will-change-1, for will-change
context-menu
contextual
copy

cover
in css-backgrounds-3, for background-size
in css-images-3, for object-fit
crisp-edges
crosshair
cursive
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,

curve
cw
cyclic
dark
in css-fonts-4, for base-palette
in css-fonts-4, for font-palette
darken
dashed

decimal
decimal-leading-zero
default
deg
dense
devanagari
diagonal-fractions
difference
digits
digits ?
digits ?
disc
disclosure-closed
disclosure-open
discretionary-ligatures
distribute
dot
dotted
double
double-circle
dpcm
dpi
dppx
each-line
ease
ease-in
ease-in-out
ease-out
ellipse
ellipsis
em
embed
embossed
emoji
em unit
end
in css-align-3, for , , justify-self, align-self, justify-content, align-content
in css-easing-1, for steps()
in css-scroll-snap-1, for scroll-snap-align
in css-text-3, for text-align
e-resize
ethiopic-numeric
evenodd
ew-resize
ex
exclude
exclusion
expanded
extends
extra-condensed
extra-expanded
ex unit
fallback
fantasy
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
farthest-corner
farthest-side
fast
in css-speech-1, for voice-rate
in mediaqueries-4, for @media/update
features-aat
features-graphite
features-opentype
female
fill
in css-backgrounds-3, for border-image-slice
in css-images-3, for object-fit
in css-masking-1, for mask-border-slice
fill-box
in css-masking-1, for clip-path
in css-masking-1, for mask-clip
in css-masking-1, for mask-origin
in css-transforms-1, for transform-box
filled
fine
first
in css-align-3, for justify-self, justify-items, align-content, align-self, align-items,
in css-text-3, for hanging-punctuation
first baseline
fixed
in css-backgrounds-3, for background-attachment
in css-counter-styles-3, for @counter-style/system
flex
in css-display-3, for display,
in css-flexbox-1, for display

<'flex-basis'>
flex-end
in css-align-3, for , , justify-self, align-self, justify-content, align-content
in css-flexbox-1, for align-content
in css-flexbox-1, for align-items, align-self
in css-flexbox-1, for justify-content
<'flex-grow'>
<'flex-shrink'>
flex-start
in css-align-3, for , , justify-self, align-self, justify-content, align-content
in css-flexbox-1, for align-content
in css-flexbox-1, for align-items, align-self
in css-flexbox-1, for justify-content
flip
flow
flow-root
force-end
format( )
forwards
fr
from-image
fr unit
full-size-kana
full-width
in css-fonts-4, for font-variant-east-asian
in css-text-3, for text-transform
generic(fangsong)
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
generic(kai)
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
generic(khmer-mul)
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
generic(nastaliq)
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
georgian
grab
grabbing
grad
grid
in css-display-3, for display,
in css-grid-1, for display
<'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>?
<'grid-template-rows'> / <'grid-template-columns'>
groove
gujarati
gurmukhi
half-border-box
handheld
hanging
hard-light
hebrew
help
hidden
in css-backgrounds-3, for , border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border
in css-display-3, for visibility
high
in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
high-quality
hiragana
hiragana-iroha
historical-forms
historical-ligatures
horizontal-tb
hover
hue
hz
icon
in
incremental
infinite
in css-animations-1, for animation-iteration-count
in mediaqueries-4, for @media/resolution
inherit
initial
inline
in css-display-3, for display,
in css-scroll-snap-1, for scroll-snap-type
inline-block
inline-flex
in css-display-3, for display,
in css-flexbox-1, for display
inline-grid
in css-display-3, for display,
in css-grid-1, for display
inline-table
inset
in css-backgrounds-3, for , border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border
in css-backgrounds-3, for box-shadow
[ | ] && ?
inter-character
interlace
intersect
inter-word
invert
isolate
isolate-override
italic
japanese-formal
in css-counter-styles-3, for
in css-counter-styles-3, for
japanese-informal
in css-counter-styles-3, for
in css-counter-styles-3, for
jis04
jis78
jis83
jis90
jump-both
jump-end
jump-none
jump-start
justify
justify-all
kannada
katakana
katakana-iroha
keep-all

khmer
khz
korean-hangul-formal
korean-hanja-formal
korean-hanja-informal
landscape
lao
large
last
in css-align-3, for justify-self, justify-items, align-content, align-self, align-items,
in css-text-3, for hanging-punctuation
last baseline
layout
left
in css-align-3, for justify-content, justify-self, justify-items
in css-backgrounds-3, for background-position
in css-break-3, for break-before, break-after
in css-fonts-4, for font-style
in css-speech-1, for voice-balance
in css-text-3, for text-align
in css-text-decor-3, for text-emphasis-position
in css-text-decor-3, for text-underline-position
in css-transforms-1, for transform-origin
leftwards
legacy

in css-text-3, for letter-spacing
in css-text-3, for text-indent
in css-text-3, for word-spacing

{2}
light
in css-fonts-4, for base-palette
in css-fonts-4, for font-palette
lighten
lighter
line
linear
linearrgb
[ ? ? ? ]+ [ / ]?
line-through
lining-nums
list-item
literal-punctuation
local
local( )
local( )
loose
loud
low
in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
lower-alpha
lower-armenian
lowercase
lower-greek
lower-latin
lower-roman
ltr
luminance
in css-masking-1, for mask-border-mode
in css-masking-1, for mask-mode
in css-masking-1, for mask-type
luminosity
malayalam
male
mandatory
manual
margin-box
match-parent
match-source
math
in css-fonts-4, for font-family
in css-fonts-4, for font-family,
in css-fonts-4, for font-size
max-content
medium
in css-backgrounds-3, for , border-width, border-top-width, border-left-width, border-bottom-width, border-right-width, border
in css-speech-1, for pause-before, pause-after
in css-speech-1, for rest-before, rest-after
in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
in css-speech-1, for voice-rate
in css-speech-1, for voice-volume
message-box
min-content
mixed
mm
moderate
mongolian
monospace
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
move
in css-shapes-1, for shape()
in css-ui-3, for cursor
ms
multiply
myanmar
ne-resize
nesw-resize
neutral
never
no-clip
no-common-ligatures
no-contextual
no-discretionary-ligatures
no-drop
no-historical-ligatures
none
in css-animations-1, for animation-fill-mode
in css-animations-1, for animation-name
in css-backgrounds-3, for , border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border
in css-backgrounds-3, for background-image
in css-backgrounds-3, for box-shadow
in css-contain-1, for contain
in css-display-3, for display,
in css-flexbox-1, for flex
in css-fonts-4, for font-kerning
in css-fonts-4, for font-optical-sizing
in css-fonts-4, for font-size-adjust
in css-fonts-4, for font-synthesis-position
in css-fonts-4, for font-synthesis-small-caps
in css-fonts-4, for font-synthesis-style
in css-fonts-4, for font-synthesis-weight
in css-fonts-4, for font-variant
in css-fonts-4, for font-variant-ligatures
in css-grid-1, for grid-template
in css-grid-1, for grid-template-areas
in css-grid-1, for grid-template-rows, grid-template-columns
in css-images-3, for image-orientation
in css-images-3, for object-fit
in css-multicol-1, for column-span
in css-scroll-snap-1, for scroll-snap-align
in css-scroll-snap-1, for scroll-snap-type
in css-shapes-1, for shape-outside
in css-speech-1, for pause-before, pause-after
in css-speech-1, for rest-before, rest-after
in css-speech-1, for voice-stress
in css-text-3, for hanging-punctuation
in css-text-3, for hyphens
in css-text-3, for text-justify
in css-text-3, for text-transform
in css-text-decor-3, for text-decoration-line
in css-text-decor-3, for text-emphasis-style
in css-transitions-1, for transition-property
in css-ui-3, for cursor
in css-writing-modes-4, for text-combine-upright
in mediaqueries-4, for @media/hover
in mediaqueries-4, for @media/overflow-block
in mediaqueries-4, for @media/overflow-inline
in mediaqueries-4, for @media/pointer
in mediaqueries-4, for @media/update
nonzero
no-punctuation
no-repeat
normal
in compositing-1, for
in css-align-3, for align-self
in css-align-3, for justify-content, align-content
in css-align-3, for justify-self
in css-align-3, for row-gap, column-gap, gap
in css-animations-1, for animation-direction
in css-fonts-4, for font-feature-settings
in css-fonts-4, for font-kerning
in css-fonts-4, for font-language override
in css-fonts-4, for font-palette
in css-fonts-4, for font-style
in css-fonts-4, for font-variant
in css-fonts-4, for font-variant-alternates
in css-fonts-4, for font-variant-caps
in css-fonts-4, for font-variant-east-asian
in css-fonts-4, for font-variant-emoji
in css-fonts-4, for font-variant-ligatures
in css-fonts-4, for font-variant-numeric
in css-fonts-4, for font-variant-position
in css-fonts-4, for font-weight
in css-fonts-4, for font-width
in css-scroll-snap-1, for scroll-snap-stop
in css-speech-1, for speak-as
in css-speech-1, for voice-rate
in css-speech-1, for voice-stress
in css-text-3, for letter-spacing
in css-text-3, for line-break
in css-text-3, for overflow-wrap
in css-text-3, for white-space
in css-text-3, for word-break
in css-text-3, for word-spacing
in css-writing-modes-4, for unicode-bidi
not
not-allowed
nowrap
in css-flexbox-1, for flex-wrap
in css-text-3, for white-space
n-resize
ns-resize
numbers
numeric
nw-resize
nwse-resize
objectboundingbox
in css-masking-1, for clipPathUnits
in css-masking-1, for maskContentUnits
in css-masking-1, for maskUnits
oblique ?
oblique-only
off
old
oldstyle-nums
on
only
open
optional
ordinal
oriya
ornaments()
ornaments()
outset
over
overlay
overline
p3
padding-box
in css-backgrounds-3, for background-clip
in css-backgrounds-3, for background-origin
in css-masking-1, for mask-clip
in css-masking-1, for mask-origin
in css-shapes-1, for , shape-outside
page
paged
paint
palettes
paused
pc

persian
petite-caps
pixelated
plaintext
pointer
portrait
pre
pre-line
preserve
pre-wrap
progress
progressive
projection
proportional-nums
proportional-width
proximity
pt
px
rad


rec2020
recto
reduced
region
rem
rem unit
repeat
in css-backgrounds-3, for background-repeat
in css-backgrounds-3, for border-image-repeat
repeat-x
repeat-y
reverse
revert
ridge
right
in css-align-3, for justify-content, justify-self, justify-items
in css-backgrounds-3, for background-position
in css-break-3, for break-before, break-after
in css-fonts-4, for font-style
in css-speech-1, for voice-balance
in css-text-3, for text-align
in css-text-decor-3, for text-emphasis-position
in css-text-decor-3, for text-underline-position
in css-transforms-1, for transform-origin
rightwards
round
in css-backgrounds-3, for background-repeat
in css-backgrounds-3, for border-image-repeat
row
in css-flexbox-1, for flex-direction
in css-grid-1, for grid-auto-flow
row-resize
row-reverse
rtl
ruby
in css-display-3, for display,
in css-fonts-4, for font-variant-east-asian
ruby-base
ruby-base-container
ruby-text
ruby-text-container
run-in
running
safe
sans-serif
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
saturation
scale-down
screen
in compositing-1, for
in mediaqueries-4, for @media
scroll
in css-backgrounds-3, for background-attachment
in mediaqueries-4, for @media/overflow-block
in mediaqueries-4, for @media/overflow-inline
scroll-position
self-end
self-start
semi-condensed
semi-expanded

in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
se-resize
serif
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
sesame
sideways
sideways-lr
sideways-right
sideways-rl
silent
simp-chinese-formal
simp-chinese-informal
simplified
size
slashed-zero
slice
slow
in css-speech-1, for voice-rate
in mediaqueries-4, for @media/update
small
small-caps
small-caption
smooth
in css-images-3, for image-rendering
in css-shapes-1, for shape()
soft
soft-light
solid
space
in css-backgrounds-3, for background-repeat
in css-backgrounds-3, for border-image-repeat
space-around
in css-align-3, for align-content, justify-content,
in css-flexbox-1, for align-content
in css-flexbox-1, for justify-content
space-between
in css-align-3, for align-content, justify-content,
in css-flexbox-1, for align-content
in css-flexbox-1, for justify-content
space-evenly
span && [ || ]
speech
spell-out
in css-counter-styles-3, for @counter-style/speak-as
in css-speech-1, for speak-as
square
s-resize
srgb
in filter-effects-1, for color-interpolation-filters
in mediaqueries-4, for @media/color-gamut
stacked-fractions
start
in css-align-3, for , , justify-self, align-self, justify-content, align-content
in css-easing-1, for steps()
in css-scroll-snap-1, for scroll-snap-align
in css-text-3, for text-align
status-bar
step-end
step-start
stretch
in css-align-3, for align-content, justify-content,
in css-align-3, for align-self
in css-align-3, for justify-self
in css-backgrounds-3, for border-image-repeat
in css-flexbox-1, for align-content
in css-flexbox-1, for align-items, align-self
strict
in css-contain-1, for contain
in css-text-3, for line-break
+
stroke-box
in css-masking-1, for clip-path
in css-masking-1, for mask-clip
in css-masking-1, for mask-origin
in css-transforms-1, for transform-box
strong
in css-speech-1, for pause-before, pause-after
in css-speech-1, for rest-before, rest-after
in css-speech-1, for voice-stress
styleset(#)
styleset(#)
stylistic()
stylistic()
sub
subtract
super
swap
swash()
swash()
sw-resize
symbolic
system-ui
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
table
table-caption
table-cell
table-column
table-column-group
table-footer-group
table-header-group
table-row
table-row-group
tabular-nums
tamil
tech( # )
telugu
text
in css-fonts-4, for font-variant-emoji
in css-ui-3, for cursor
thai
thick
thin
tibetan
titling-caps
to
top
in css-backgrounds-3, for background-position
in css-transforms-1, for transform-origin
|
trad-chinese-formal
trad-chinese-informal
traditional
triangle
tty
turn
tv
ui-monospace
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
ui-rounded
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
ui-sans-serif
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
ui-serif
in css-fonts-4, for font-family,
in css-fonts-4, for font-family,
ultra-condensed
ultra-expanded
under
in css-text-decor-3, for text-emphasis-position
in css-text-decor-3, for text-underline-position
underline
unicase
unicode
unsafe
unset
upper-alpha
upper-armenian
uppercase
upper-latin
upper-roman
upright

userspaceonuse
in css-masking-1, for clipPathUnits
in css-masking-1, for maskContentUnits
in css-masking-1, for maskUnits
variations
verso
vertical-lr
vertical-rl
vertical-text
vh
view-box
in css-masking-1, for clip-path
in css-masking-1, for mask-clip
in css-masking-1, for mask-origin
in css-transforms-1, for transform-box
visible
vmax
vmin
vw
wait
weak
in css-speech-1, for pause-before, pause-after
in css-speech-1, for rest-before, rest-after
words
wrap
wrap-reverse
w-resize
x-fast
x-high
in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
x-loud
x-low
in css-speech-1, for voice-pitch
in css-speech-1, for voice-range
x-slow
x-soft
x-strong
in css-speech-1, for pause-before, pause-after
in css-speech-1, for rest-before, rest-after
x-weak
in css-speech-1, for pause-before, pause-after
in css-speech-1, for rest-before, rest-after
young
zoom-in
zoom-out
6.
Acknowledgements
Special thanks to Florian Rivoal for creating the initial draft of the
§ 3.2.1 Experimentation and Unstable Features
recommendations.
Conformance
Document conventions
Conformance requirements are expressed with a combination of
descriptive assertions and RFC 2119 terminology. The key words “MUST”,
“MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
“RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
document are to be interpreted as described in RFC 2119.
However, for readability, these words do not appear in all uppercase
letters in this specification.
All of the text of this specification is normative except sections
explicitly marked as non-normative, examples, and notes.
[RFC2119]
Examples in this specification are introduced with the words “for example”
or are set apart from the normative text with
class="example"
like this:
This is an example of an informative example.
Informative notes begin with the word “Note” and are set apart from the
normative text with
class="note"
, like this:
Note, this is an informative note.
Advisements are normative sections styled to evoke special attention and are
set apart from other normative text with

, like
this:
UAs MUST provide an accessible alternative.
Tests
Tests relating to the content of this specification
may be documented in “Tests” blocks like this one.
Any such block is non-normative.
Conformance classes
Conformance to this specification
is defined for three conformance classes:
style sheet
CSS
style sheet
renderer
UA
that interprets the semantics of a style sheet and renders
documents that use them.
authoring tool
UA
that writes a style sheet.
A style sheet is conformant to this specification
if all of its statements that use syntax defined in this module are valid
according to the generic CSS grammar and the individual grammars of each
feature defined in this module.
A renderer is conformant to this specification
if, in addition to interpreting the style sheet as defined by the
appropriate specifications, it supports all the features defined
by this specification by parsing them correctly
and rendering the document accordingly. However, the inability of a
UA to correctly render a document due to limitations of the device
does not make the UA non-conformant. (For example, a UA is not
required to render color on a monochrome monitor.)
An authoring tool is conformant to this specification
if it writes style sheets that are syntactically correct according to the
generic CSS grammar and the individual grammars of each feature in
this module, and meet all other conformance requirements of style sheets
as described in this module.
Partial implementations
So that authors can exploit the forward-compatible parsing rules to
assign fallback values, CSS renderers
must
treat as invalid (and
ignore
as appropriate
) any at-rules, properties, property values, keywords,
and other syntactic constructs for which they have no usable level of
support. In particular, user agents
must not
selectively
ignore unsupported component values and honor supported values in a single
multi-value property declaration: if any value is considered invalid
(as unsupported values must be), CSS requires that the entire declaration
be ignored.
Implementations of Unstable and Proprietary Features
To avoid clashes with future stable CSS features,
the CSSWG recommends
following best practices
for the implementation of
unstable
features and
proprietary extensions
to CSS.
Non-experimental implementations
Once a specification reaches the Candidate Recommendation stage,
non-experimental implementations are possible, and implementors should
release an unprefixed implementation of any CR-level feature they
can demonstrate to be correctly implemented according to spec.
To establish and maintain the interoperability of CSS across
implementations, the CSS Working Group requests that non-experimental
CSS renderers submit an implementation report (and, if necessary, the
testcases used for that implementation report) to the W3C before
releasing an unprefixed implementation of any CSS features. Testcases
submitted to W3C are subject to review and correction by the CSS
Working Group.
Further information on submitting testcases and implementation reports
can be found from on the CSS Working Group’s website at
Questions should be directed to the
public-css-testsuite@w3.org
mailing list.
References
Normative References
[COMPOSITING]
Chris Harrelson.
Compositing and Blending Level 1
. URL:
[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper.
CSS Backgrounds and Borders Module Level 3
. URL:
[CSS-BOX-3]
Elika Etemad.
CSS Box Model Module Level 3
. URL:
[CSS-CASCADE-4]
Elika Etemad; Tab Atkins Jr..
CSS Cascading and Inheritance Level 4
. URL:
[CSS-COLOR-4]
Tab Atkins Jr.; Chris Lilley; Lea Verou.
CSS Color Module Level 4
. URL:
[CSS-COLOR-5]
Chris Lilley; Una Kravets; Lea Verou.
CSS Color Module Level 5
. URL:
[CSS-CONDITIONAL-3]
Chris Lilley; David Baron; Elika Etemad.
CSS Conditional Rules Module Level 3
. URL:
[CSS-CONTAIN-1]
Tab Atkins Jr.; Florian Rivoal.
CSS Containment Module Level 1
. URL:
[CSS-CONTAIN-2]
Tab Atkins Jr.; Florian Rivoal; Vladimir Levin.
CSS Containment Module Level 2
. URL:
[CSS-COUNTER-STYLES-3]
Tab Atkins Jr..
CSS Counter Styles Level 3
. URL:
[CSS-DISPLAY-3]
Elika Etemad; Tab Atkins Jr..
CSS Display Module Level 3
. URL:
[CSS-EASING-1]
Brian Birtles; Dean Jackson; Matt Rakow.
CSS Easing Functions Level 1
. URL:
[CSS-FLEXBOX-1]
Elika Etemad; Tab Atkins Jr.; Rossen Atanassov.
CSS Flexible Box Layout Module Level 1
. URL:
[CSS-FONTS-3]
John Daggett; Myles Maxfield; Chris Lilley.
CSS Fonts Module Level 3
. URL:
[CSS-FONTS-4]
Chris Lilley.
CSS Fonts Module Level 4
. URL:
[CSS-IMAGES-3]
Tab Atkins Jr.; Elika Etemad; Lea Verou.
CSS Images Module Level 3
. URL:
[CSS-IMAGES-4]
Elika Etemad; Tab Atkins Jr.; Lea Verou.
CSS Images Module Level 4
. URL:
[CSS-MULTICOL-1]
Florian Rivoal; Rachel Andrew.
CSS Multi-column Layout Module Level 1
. URL:
[CSS-POSITION-3]
Elika Etemad; Tab Atkins Jr..
CSS Positioned Layout Module Level 3
. URL:
[CSS-SIZING-3]
Tab Atkins Jr.; Elika Etemad.
CSS Box Sizing Module Level 3
. URL:
[CSS-SIZING-4]
Tab Atkins Jr.; Elika Etemad; Jen Simmons.
CSS Box Sizing Module Level 4
. URL:
[CSS-STYLE-ATTR]
Tantek Çelik; Elika Etemad.
CSS Style Attributes
. URL:
[CSS-SYNTAX-3]
Tab Atkins Jr.; Simon Sapin.
CSS Syntax Module Level 3
. URL:
[CSS-TEXT-4]
Elika Etemad; et al.
CSS Text Module Level 4
. URL:
[CSS-TRANSFORMS-1]
Simon Fraser; et al.
CSS Transforms Module Level 1
. URL:
[CSS-TRANSFORMS-2]
Tab Atkins Jr.; et al.
CSS Transforms Module Level 2
. URL:
[CSS-UI-3]
Tantek Çelik; Florian Rivoal.
CSS Basic User Interface Module Level 3 (CSS3 UI)
. URL:
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad.
CSS Values and Units Module Level 3
. URL:
[CSS-VARIABLES-1]
Tab Atkins Jr..
CSS Custom Properties for Cascading Variables Module Level 1
. URL:
[CSS-WILL-CHANGE-1]
Tab Atkins Jr..
CSS Will Change Module Level 1
. URL:
[CSS-WRITING-MODES-3]
Elika Etemad; Koji Ishii.
CSS Writing Modes Level 3
. URL:
[CSS2]
Bert Bos; et al.
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification
. URL:
[CSS3-MEDIAQUERIES]
Florian Rivoal.
Media Queries Level 3
. URL:
[CSS3-NAMESPACE]
Elika Etemad.
CSS Namespaces Module Level 3
. URL:
[RFC2119]
S. Bradner.
Key words for use in RFCs to Indicate Requirement Levels
. March 1997. Best Current Practice. URL:
[SELECTORS-3]
Tantek Çelik; et al.
Selectors Level 3
. URL:
[SELECTORS-4]
Elika Etemad; Tab Atkins Jr..
Selectors Level 4
. URL:
Non-Normative References
[CSS-ALIGN-3]
Elika Etemad; Tab Atkins Jr..
CSS Box Alignment Module Level 3
. URL:
[CSS-ANIMATIONS-1]
David Baron; et al.
CSS Animations Level 1
. URL:
[CSS-BREAK-3]
Rossen Atanassov; Elika Etemad.
CSS Fragmentation Module Level 3
. URL:
[CSS-CASCADE-3]
Elika Etemad; Tab Atkins Jr..
CSS Cascading and Inheritance Level 3
. URL:
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr..
CSS Cascading and Inheritance Level 5
. URL:
[CSS-COLOR-3]
Tantek Çelik; Chris Lilley; David Baron.
CSS Color Module Level 3
. URL:
[CSS-COLOR-ADJUST-1]
Elika Etemad; et al.
CSS Color Adjustment Module Level 1
. URL:
[CSS-CONDITIONAL-4]
Chris Lilley; David Baron; Elika Etemad.
CSS Conditional Rules Module Level 4
. URL:
[CSS-FONT-LOADING-3]
Tab Atkins Jr..
CSS Font Loading Module Level 3
. URL:
[CSS-GRID-1]
Tab Atkins Jr.; et al.
CSS Grid Layout Module Level 1
. URL:
[CSS-GRID-2]
Tab Atkins Jr.; et al.
CSS Grid Layout Module Level 2
. URL:
[CSS-LISTS-3]
Elika Etemad; Tab Atkins Jr..
CSS Lists and Counters Module Level 3
. URL:
[CSS-LOGICAL-1]
Elika Etemad; Rossen Atanassov.
CSS Logical Properties and Values Module Level 1
. URL:
[CSS-MASKING-1]
Dirk Schulze; Brian Birtles; Tab Atkins Jr..
CSS Masking Module Level 1
. URL:
[CSS-SCROLL-ANCHORING-1]
Tab Atkins Jr..
CSS Scroll Anchoring Module Level 1
. URL:
[CSS-SCROLL-SNAP-1]
Matt Rakow; et al.
CSS Scroll Snap Module Level 1
. URL:
[CSS-SCROLLBARS-1]
Tantek Çelik; Rossen Atanassov; Florian Rivoal.
CSS Scrollbars Styling Module Level 1
. URL:
[CSS-SHAPES-1]
Alan Stearns; Rossen Atanassov; Noam Rosenthal.
CSS Shapes Module Level 1
. URL:
[CSS-SPEECH-1]
Léonie Watson; Elika Etemad.
CSS Speech Module Level 1
. URL:
[CSS-TEXT-3]
Elika Etemad; Koji Ishii; Florian Rivoal.
CSS Text Module Level 3
. URL:
[CSS-TEXT-DECOR-3]
Elika Etemad; Koji Ishii.
CSS Text Decoration Module Level 3
. URL:
[CSS-TRANSITIONS-1]
Chris Marrin; et al.
CSS Transitions Module Level 1
. URL:
[CSS-VIEW-TRANSITIONS-1]
Tab Atkins Jr.; Jake Archibald; Khushal Sagar.
CSS View Transitions Module Level 1
. URL:
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii.
CSS Writing Modes Level 4
. URL:
[CSSOM-1]
Daniel Glazman; Emilio Cobos Álvarez.
CSS Object Model (CSSOM)
. URL:
[FILTER-EFFECTS-1]
Dirk Schulze; Dean Jackson.
Filter Effects Module Level 1
. URL:
[MEDIAQUERIES-4]
Tab Atkins Jr.; Florian Rivoal.
Media Queries Level 4
. URL:
[MOTION-1]
Tab Atkins Jr.; Dirk Schulze; Jihye Hong.
Motion Path Module Level 1
. URL:
[RESIZE-OBSERVER-1]
Aleks Totic; Greg Whitworth.
Resize Observer
. URL:
[WEB-ANIMATIONS-1]
Brian Birtles; et al.
Web Animations
. URL: