CSS Snapshot 2021 W3C Group Note , 31 December 2021 More details about this document This version: https://www.w3.org/TR/2021/NOTE-css-2021-20211231/ Latest published version: https://www.w3.org/TR/css-2021/ Editor's Draft: https://drafts.csswg.org/css-2021/ Previous Versions: https://www.w3.org/TR/2021/NOTE-css-2021-20211221/ History: https://www.w3.org/standards/history/css-2021 Feedback: CSSWG Issues Repository Editors: Tab Atkins Jr. ( Google ) Elika J. Etemad / fantasai ( Invited Expert ) Florian Rivoal ( Invited Expert ) Suggest an Edit for this Spec: GitHub Editor Copyright © 2021 W3C ® ( MIT , ERCIM , Keio , Beihang ). 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 2021. 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 section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/. This document was published by the CSS Working Group as a Group Note using the Note track . Group Notes are not endorsed by W3C nor its Members. Please send feedback by filing issues in GitHub (preferred), including the spec code “css-2021” in the title, like this: “[css-2021] …summary of comment… ”. All issues and comments are archived . Alternately, feedback can be sent to the ( archived ) public mailing list [email protected] . This document is governed by the 2 November 2021 W3C Process Document . The 15 September 2020 W3C Patent Policy does not carry any licensing requirements or commitments on this document. This document represents the state of CSS as of 2021.
The CSS Working Group does not expect any further changes to this document: new snapshots will be published at https://www.w3.org/TR/CSS/ as CSS advances. Table of Contents 1 Introduction 1.1 Background: The W3C Process and CSS 2 Classification of CSS Specifications 2.1 Cascading Style Sheets (CSS) — The Official Definition 2.2 Fairly Stable Modules with limited implementation experience 2.3 Modules with Rough Interoperability 2.4 CSS Levels 2.5 CSS Profiles 3 Requirements for Responsible Implementation of CSS 3.1 Partial Implementations 3.2 Implementations of Unstable and Proprietary Features 3.2.1 Experimentation and Unstable Features 3.2.2 Proprietary and Non-standardized Features 3.2.3 Market Pressure and De Facto Standards 3.3 Implementations of CR-level Features 4 Safe to Release pre-CR Exceptions 5 Indices 5.1 Terms Index 5.2 Selector Index 5.3 At-Rule Index 5.4 Property Index 5.5 Values Index 6 Acknowledgements Conformance Document conventions Conformance classes Partial implementations Implementations of Unstable and Proprietary Features Non-experimental implementations References Normative References Informative References 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 2021. 1.1. 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. 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. As of 2021, 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 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 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 [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 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 Level 3 [CSS-BOX-3] Replaces CSS2§8.1, §8.2, §8.3 (but not §8.3.1), and §8.4. CSS Color Level 3 [CSS-COLOR-3] Extends and supersedes CSS2§4.3.6, CSS2§14.1, and CSS2§18.2, introducing an extended range of color values. Also introduces the opacity property. CSS Backgrounds and Borders 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 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 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 Level 1 [CSS-MULTICOL-1] Introduces multi-column flows to CSS layout. CSS Flexible Box Module Level 1 [CSS-FLEXBOX-1] Introduces a flexible linear layout model for CSS. CSS 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 Level 1 [CSS-TRANSFORMS-1] Introduces coordinate-based graphical transformations to CSS. 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. 2.2. 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 Color Level 4 [CSS-COLOR-4] Extends and supersedes [CSS-COLOR-3] , further expanding the range of colors expressible in CSS. 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.2, 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 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 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 Scrollbars Styling Module Level 1 [CSS-SCROLLBARS-1] Defines properties to influence the visual styling of scrollbars, introducing controls for their color and width. 2.3. 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 Level 1 [CSS-TRANSITIONS-1] and CSS Animations Level 1 [CSS-ANIMATIONS-1] . Introduces mechanisms for transitioning the computed values of CSS properties over time. 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. CSS Will Change 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 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 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. 2.4. 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.5. 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 https://www.w3.org/Style/CSS/Test/ . Questions should be directed to the [email protected] 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 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 . The :dir() , :lang() , and :focus-within pseudo-classes from [SELECTORS-4] . 5. Indices These sections are non-normative. 5.1. Terms Index 100...900 weight values 1st <length> 2d matrix 2nd <length> 3rd <length [0,∞]> 4th <length> absolute length absolutely positioned element abstract dimensions activeborder activecaption active duration actual value actual values additive tuple adjoining adjoining margins advance measure after-change style aliceblue aligned subtree alignment baseline alignment container alignment context alignment subject 'all' media group all-petite-caps all-small-caps alphabetic baseline ambiguous image url an+b ancestor anchor anchor unit animation origin animation-tainted anonymous in css-display-3, for CSS in css2 anonymous box anonymous inline boxes antiquewhite apply to appworkspace aqua in css-color-3 in css-color-3 aquamarine are a valid escape as conformance class in css-fonts-3 in css-speech-1 aspect value at-keyword atomic inline atomic inline box atomic inline-level boxes at-rule at-rules attribute 'audio' media group augmented grid aural "box" model aural box model author authoring tool in css-fonts-3 in css-speech-1 author origin author-origin author presentational hint origin author style sheet auto!!font-kerning automatic column position automatic grid position automatic numbering 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 painting area background positioning area backslash escapes 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 bidirectionality (bidi) bi-orientational bi-orientational transform bisque 'bitmap' media group black in css-color-3 in css-color-3 blanchedalmond ()-block []-block block {}-block block at-rule block axis block-axis block box block boxes 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 boxes block-level content block-level elements block scripts block size block-size block start block-start blue in css-color-3 in css-color-3 blueviolet blur radius bold bolder boolean context border in css-speech-1 in css2 border box border-box border edge border image area border (of a box) border radius bottom box box alignment properties box-corner box fragment box tree break brown burlywood buttonface buttonhighlight buttonshadow buttontext cadetblue cancel canonical unit canvas canvas background canvas surface captiontext captures snap positions cascade in css-cascade-4 in css-speech-1 cascaded value cascade origin central baseline character in css-text-3 in css-text-decor-3 character encoding character map "@charset" chartreuse check if three code points would start an ident sequence check if three code points would start a number check if two code points are a valid escape child child combinator child selector chinese chocolate circled-lower-latin clamp a grid area clearance clearance. clipping path clipping region closest-side clustered scripts collapse collapsed collapsed flex item collapsed gutter collapsed margin collapsed track collapse through collapsible white space collapsing margin color stop color stop list color transition hint column box column break column gap column height column rule column width combinators in css2 in selectors-3 combined duration comments common-ligatures compatible baseline alignment preferences compatible units complete completed transition component value composite face computed <image> computed track list computed value computed values concrete object size condensed conditional group rule conditional import conditionally hang conformance consecutive constraint rectangle consume a component value consume a declaration consume a function 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 token consume a url token consume comments consume the next input token consume the remnants of a bad url contain constraint containing block containing block chain containing block for all descendants containment content in css-speech-1 in css2 content area content-based minimum size in css-flexbox-1 in css-grid-1 content box content-box content distribution content-distribution properties content edge content height content language in css-text-3 in css-text-decor-3 content (of a box) content size suggestion in css-flexbox-1 in css-grid-1 content width content writing system contextual continuous media 'continuous' media group convert a string to a number coordinated self-alignment preference coral cornflowerblue cornsilk counters counter style counter symbol cover constraint crimson cross axis cross-axis cross-axis baseline set cross dimension cross-end cross size cross-size cross size property cross-start css bracketed range notation css-connected css feature queries cssfontfacerule css ident in css-values-3 in css-values-3, for CSS css identifier in css-values-3 in css-values-3, for CSS css ident sequence css qualified name css-wide keywords cubic bézier easing function currentcolor current input code point current input token current transformation matrix current value cursive 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 in css-syntax-3, for CSS in css2 declaration block declared declared value decode bytes decorating box deeppink deepskyblue default face default namespace default object size default sizing algorithm default style sheet 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 descendant descendant-selectors descriptor descriptor_declaration descriptor declarations destination determine the fallback encoding diagonal-fractions dice digit dimension dimgray dimgrey directional embedding directional override discretionary-ligatures display display type distributed alignment distribute extra space document in css-backgrounds-3 in css-speech-1 in css-style-attr-1 document language document order documents document tree document white space document white space characters dodgerblue dominant baseline easing function east asian width property effective character map element in css-display-3, for CSS in css2 element tree empty empty float area encapsulation contexts end ending point ending shape ending token 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 exact matching expanded expanded name explicit grid explicit grid column explicit grid properties explicit grid row explicit grid track explicitly-assigned line name extra-condensed extra-expanded fallback alignment false in the negative range fantasy farthest-side fetch an @import fictional tag sequence filter code points filtered code points 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 in css-flexbox-1 in css-grid-1 flexible sizing function flexible tracks flex item flex layout flex-level flex line flex shrink factor float area float rules floralwhite flow layout flow of an element flow-relative flow-relative direction focus following element font_face_rule font_face_sym font-family font-kerning in css-fonts-3 in css-fonts-3 in css-fonts-3 font-relative lengths font-size-adjust font source font-stretch font-style font-variant-caps font-variant-east-asian font-variant-ligatures in css-fonts-3 in css-fonts-3 font-variant-numeric font-variant-position font-weight footnote forced break forced break values forced line break forced paragraph break forestgreen formatting context formatting structure forward-compatible parsing fragment fragmentainer fragmentation fragmentation break fragmentation container fragmentation context fragmentation direction fragmentation root fragmented flow free space frequency fuchsia in css-color-3 in css-color-3 full-size full-size kana full-width in css-fonts-3 in css-text-3 fully inflexible function functional notation gainsboro general category generate a counter generate a counter representation generate baselines generated content ghostwhite go gold goldenrod gradient-average-color gradient box gradient center gradient function gradient line grapheme cluster gray in css-color-3 in css-color-3 graytext green in css-color-3 in css-color-3 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-level grid line 'grid' media group 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 historical-ligatures honeydew horizontal axis horizontal block flow horizontal dimension horizontal offset horizontal-only horizontal script horizontal typographic mode horizontal writing mode hotpink hyphenate hyphenation hyphenation opportunity hyphen-separated matching hypothetical cross size hypothetical fr size hypothetical main size ident in css-values-3 in css-values-3, for CSS ident code point identifier in css-speech-1 in css-values-3 in css-values-3, for CSS identifiers identity transform function ident sequence ident-start code point ignore ignored ignore unknown ignore valid illegal 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 indianred indigo infinitely growable in flow in-flow infobackground infotext inherit inheritance 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 boxes inline-level content inline-level elements inline size inline-size inline start inline-start inlinification inlinify inner box-shadow inner display type inner edge input progress value input stream integer in css-speech-1 in css-values-3 intended direction intended direction and end position intended end position 'interactive media group internal ruby box internal ruby element internal table box internal table element interpreter in css-namespaces-3 in css-style-attr-1 intrinsic dimensions intrinsic sizing function invalid invalid at computed-value time invalid image invisible isolated sequence isolation italic iteration order ivory japanese jis04 jis78 jis83 jis90 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 in css-text-decor-3 lightblue lightcoral lightcyan lighter lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightslategrey light source lightsteelblue lightyellow lime in css-color-3 in css-color-3 limegreen limited max-content contribution limited min-content contribution linear easing function linear timing function line box 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 lining-nums list properties list-style-image list-style-type 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 main size property main-start map document language elements to table elements margin in css-speech-1 in css2 margin box margin-box margin edge margin (of a box) maroon in css-color-3 in css-color-3 mask border image mask border image area mask image mask layer image mask painting area mask-position mask positioning area mask-size matches 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 may media condition media-dependent import media feature media groups media query media query list media query modifier media type mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred menu 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 monospace multicol container multi-col line multicol line multi-column container multi-column formatting context multi-column layout multi-column line multi-line flex container multiple declarations multiply must must not 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 in css-color-3 in css-color-3 newline next input code point next input token next-sibling combinator no-common-ligatures no-contextual no-discretionary-ligatures no-historical-ligatures non-ascii code point none!!font-kerning none!!font-size-adjust none!!font-variant-ligatures non-negative-number non-printable code point non-replaced non-replaced element no pending font loads normal normal!!font-kerning normal!!font-stretch normal!!font-style normal!!font-variant-caps normal!!font-variant-east-asian normal!!font-variant-ligatures normal!!font-variant-numeric normal!!font-variant-position normal!!font-weight normalize into a token stream null cell token number in css-speech-1 in css-values-3 numeric data types objects object size negotiation oblique occupied oldlace oldstyle-nums olive in css-color-3 in css-color-3 olivedrab operating coordinate space optimal viewing region optional orange orangered orchid order-modified document order in css-display-3 in css-flexbox-1 ordinal orthogonal orthogonal flow other space separators outer box-shadow outer display type outer edge out of flow out-of-flow output of the cascade output progress value over overflow overflow alignment overflow columns padding in css-speech-1 in css2 padding box padding-box padding edge padding (of a box) page area page box page break page context page-context paged media 'paged' media group page selector pagination paint containment paint containment box palegoldenrod palegreen paleturquoise palevioletred papayawhip parent parent box parse 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 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 in css-speech-1 in css-values-3 peru petite-caps physical physical bottom physical dimensions physical direction physical left physical right physical top physical units pink pixel pixel unit plum positional alignment positioned positioned element/box positioning scheme positioning schemes: possibly pending font loads post-multiplied post-multiply powderblue preceding element pre-multiplied pre-multiply preserved tokens preserved white space primary filter primitive tree principal block-level box principal box principal writing mode propagate propagation proper table child proper table row parent property in css-cascade-4, for CSS in css2 property declarations proportional-nums proportional-width pseudo-classes pseudo-elements purple in css-color-3 in css-color-3 qualified rule range context recommended reconsume the current input code point reconsume the current input token red in css-color-3 in css-color-3 reference box in css-shapes-1 in css-transforms-1 reference pixel region break relative length relative positioning relative units remaining fragmentainer extent remaining free space rendered content renderer in css-fonts-3 in css-speech-1 replaced replaced element representation required reset-only sub-property re-snap resolved type reversing-adjusted start value reversing shortening factor right root rosybrown row group box row groups royalblue ruby rule set rules on anonymous table objects run-in run-in box run-in sequence running transition saddlebrown salmon sandybrown sans-serif scaled flex shrink factor scope screen reader script property scrollbar scroll snap scroll snap area scroll snap container scroll snapport scroll snap position seagreen seashell segment break selector in css2 in selectors-3 selector matches self-alignment self-alignment properties semi-condensed semi-expanded semitone separated borders model sequence of simple selectors serialize an <an+b> value serif set entries shall shall not shared alignment context sheets shorthand shorthand properties shorthand property should should not sibling sideways typesetting sienna silver in css-color-3 in css-color-3 simple block simple selector in css2 in selectors-3 simplified single-line flex container size containment size containment box sizing as if empty sizing function skyblue slashed-zero slateblue slategray slategrey small small-caps small kana snow soft wrap break soft wrap opportunity source source document spaces space-separated matching space to fill span count spanner spanning element specified size specified size suggestion in css-flexbox-1 in css-grid-1 specified value specified values 'speech' media group spread break spread distance springgreen stacked-fractions stacking context stack level start starting point 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' media group static-position containing block static position rectangle static-position rectangle steelblue step easing function step position steps stop or comma stretched strictness value string strings stroke bounding box structural pseudo-classes strut size stuck on the environment style attribute style change event style rule style sheet in css-backgrounds-3 in css-namespaces-3 in css-speech-1 style sheet!!as conformance class in css-fonts-3 in css-speech-1 sub subject (of selector) subjects subjects of the selector sub-property subsequent-sibling combinator substitute a var() super support in css-conditional-3, for CSS in css-fonts-3 supports queries switch the fontfaceset to loaded switch the fontfaceset to loading synthesize baseline synthesized baseline system font fallback system fonts table table caption box table element table grid box table wrapper box tabs tab size tab stop tabular container tabular-nums 'tactile' media group tan target main size teal in css-color-3 in css-color-3 text node text run textual data types in css-values-3 in css-values-3, for CSS thistle threeddarkshadow threedface threedhighlight threedlightshadow threedshadow time timing function titling-caps tokenization tokenize tokenizer tomato top tracking track list track section track sizing algorithm track sizing function traditional 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 transparent trash token triangle trinary turquoise type selector in css2 in selectors-3 typeset sideways typesetting sideways typesetting upright typeset upright typographic character typographic character unit typographic letter unit typographic mode ua in css-backgrounds-3 in css-speech-1 ua origin ua-origin ua style sheet ultra-condensed ultra-expanded under unforced break unicase unicode category unicode east asian width unicode general category unicode script unicode vertical orientation universal selector in css2 in selectors-3 unknown unoccupied upper-alpha-legal uppercase letter upright typesetting url use a negative sign used value used values user user agent in css-backgrounds-3 in css-speech-1 user-agent origin user-agent style sheet user agent (ua) user coordinate system user origin user-origin user style sheet uses a negative sign valid image validity valid style sheet value definition syntax values var() substitution vertical axis vertical block flow vertical dimension vertical offset vertical-only vertical orientation vertical script vertical typographic mode vertical writing mode viewport viewport-percentage lengths violet visual angle unit visual box model visual formatting model 'visual' media group weight wheat white in css-color-3 in css-color-3 whitesmoke white space whitespace white space characters width in css-fonts-3 in css-writing-modes-4 window windowframe windowtext word separator word-separator character would start an ident sequence would start a number 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 in css-color-3 in css-color-3 yellowgreen 5.2. Selector Index * :active in css2 in selectors-3 ::after :after ::before :before :checked :disabled :empty :enabled :first :first-child in css2 in selectors-3 first-child ::first-letter :first-letter ::first-line :first-line :first-of-type :focus in css2 in selectors-3 :hover in css2 in selectors-3 :lang in css2 in selectors-3 :lang() :last-child :last-of-type :left :link in css2 in selectors-3 :not() :nth-child() :nth-last-child() :nth-last-of-type() :nth-of-type() :only-child :only-of-type :right :root :target :visited in css2 in selectors-3 5.3. At-Rule Index @charset @counter-style @font-face @import @keyframes @media media @page @supports 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 azimuth 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-collapse 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-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side caret-color clear clip clip-path clip-rule color in css-color-3 in css-color-3 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 content counter-increment counter-reset cue in css-speech-1 in css2 cue-after in css-speech-1 in css2 cue-before in css-speech-1 in css2 cursor direction display elevation empty-cells filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float flood-color flood-opacity font font-family font-feature-settings font-kerning font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight gap globalcompositeoperation 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 height hyphens image-orientation image-rendering isolation justify-content in css-align-3 in css-flexbox-1 justify-items justify-self left letter-spacing lighting-color line-break line-height list-style list-style-image list-style-position list-style-type margin margin-bottom margin-left margin-right margin-top 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 max-height max-width min-height min-width mix-blend-mode object-fit object-position opacity order in css-display-3 in css-flexbox-1 orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap padding padding-bottom padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause in css-speech-1 in css2 pause-after in css-speech-1 in css2 pause-before in css-speech-1 in css2 pitch pitch-range place-content place-items place-self play-during position quotes resize rest rest-after rest-before richness right 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 in css-speech-1 in css2 speak-as speak-header speak-numeral speak-punctuation speech-rate stress table-layout 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 top transform transform-box transform-origin transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi vertical-align visibility voice-balance voice-duration voice-family in css-speech-1 in css2 voice-pitch voice-range voice-rate voice-stress voice-volume volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index 5.5. Values Index absolute in css-speech-1, for voice-pitch in css-speech-1, for voice-range in css2, for position 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 css2, for @media in mediaqueries-4, for @media allow-end all-scroll 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 in css2, for page-break-before, page-break-after, page-break-inside <angle> in css-images-3, for image-orientation in css-images-3, for image-orientation anywhere in css-text-3, for line-break in css-text-3, for overflow-wrap aqua arabic-indic armenian in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type attr(x) 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-grid-1, for <grid-line> 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 css2, for <top>, <right>, <bottom>, <left> in css2, for clip in css2, for height in css2, for overflow in css2, for page-break-before, page-break-after, page-break-inside in css2, for table-layout in css2, for top, right, bottom, left in css2, for width in css2, for z-index 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 in css2, for page-break-before, page-break-after, 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, <baseline-position> in css-flexbox-1, for align-items, align-self in css2, for vertical-align <basic-shape> bengali bidi-override black blink in css-text-decor-3, for text-decoration-line in css2, for text-decoration block in css-display-3, for display, <display-outside> in css-scroll-snap-1, for scroll-snap-type in css2 in css2, for display blue 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-box>, 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 in css2, for clear bottom in css-backgrounds-3, for background-position in css-transforms-1, for transform-origin in css2, for caption-side in css2, for vertical-align braille in css2, for @media in mediaqueries-4, for @media break-all break-spaces break-word in css-text-3, for overflow-wrap in css-text-3, for word-break bullets cambodian capitalize caption cell center in css-align-3, for <self-position>, <content-position>, 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 child circle in css-counter-styles-3, for <counter-style-name> in css-images-3, for <ending-shape> in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style in css2 in css2, for list-style-type cjk-decimal cjk-earthly-branch cjk-heavenly-stem cjk-ideographic clip clone close-quote in css2 in css2, for content closest-corner closest-side cm coarse collapse in css-display-3, for visibility in css2, for border-collapse <color> in css-backgrounds-3, for box-shadow in css-multicol-1, for column-rule-color in css2, for border-color, border-top-color, border-right-color, border-bottom-color, border-left-color color color-burn color-dodge 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 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-box>, shape-outside in css-transforms-1, for transform-box in css-ui-3, for box-sizing contents in css-display-3, for display, <display-box> in css-will-change-1, for will-change context-menu copy <counter> <counter-style-name> cover in css-backgrounds-3, for background-size in css-images-3, for object-fit crisp-edges crosshair cursive <custom-ident> in css-grid-1, for <grid-line> in css-will-change-1, for will-change cyclic darken dashed in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style <decibel> decimal in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type decimal-leading-zero in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type default deg dense devanagari difference digits digits <integer>? disc in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type disclosure-closed disclosure-open distribute dot in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style dotted in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style double in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style double-circle in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style dpcm dpi dppx each-line ease ease-in ease-in-out ease-out ellipse ellipsis em embed embossed in css2, for @media in mediaqueries-4, for @media end in css-align-3, for <self-position>, <content-position>, 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 <ending-shape> e-resize ethiopic-numeric evenodd ew-resize ex exclude exclusion extends <family-name> fantasy farthest-corner farthest-side fast in css-speech-1, for voice-rate in mediaqueries-4, for @media/update 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 in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style fine first in css-align-3, for justify-self, justify-items, align-content, align-self, align-items, <baseline-position> in css-text-3, for hanging-punctuation first baseline fit-content() fixed in css-backgrounds-3, for background-attachment in css-counter-styles-3, for @counter-style/system in css2, for position in css2, for table-layout <flex> flex in css-display-3, for display, <display-inside> in css-flexbox-1, for display <'flex-basis'> flex-end in css-align-3, for <self-position>, <content-position>, 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 <self-position>, <content-position>, 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 in css-images-3, for image-orientation in css-images-3, for image-orientation flow flow-root font-feature-settings font-variant in css-fonts-3 in css-fonts-3 force-end forwards fr <frequency> from-image fr unit fuchsia full-size-kana full-width georgian in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type grab grabbing grad gray green grid in css-display-3, for display, <display-inside> in css-grid-1, for display <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? <'grid-template-rows'> / <'grid-template-columns'> groove in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style gujarati gurmukhi handheld in css2, for @media in mediaqueries-4, for @media hanging hard-light hebrew help hidden in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css-display-3, for visibility in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style in css2, for overflow hide high in css-speech-1, for voice-pitch in css-speech-1, for voice-range high-quality hiragana hiragana-iroha horizontal-tb hover hue hz icon <image> in infinite in css-animations-1, for animation-iteration-count in mediaqueries-4, for @media/resolution inherit initial inline in css-display-3, for display, <display-outside> in css-scroll-snap-1, for scroll-snap-type in css2 in css2, for display inline-block in css-display-3, for display, <display-legacy> in css2 in css2, for display inline-flex in css-display-3, for display, <display-legacy> in css-flexbox-1, for display inline-grid in css-display-3, for display, <display-legacy> in css-grid-1, for display inline-table in css-display-3, for display, <display-legacy> in css2 in css2, for display inset in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css-backgrounds-3, for box-shadow in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style inside <integer> in css-display-3, for order in css-flexbox-1, for order in css-speech-1, for voice-family <integer [1,∞]> <integer> && <custom-ident>? inter-character interlace intersect inter-word invert in css-ui-3, for outline-color in css2 isolate isolate-override italic japanese-formal japanese-informal jump-both jump-end jump-none jump-start justify justify-all kannada katakana katakana-iroha keep-all <keyframes-name> 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, <baseline-position> 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-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-text-emphasis-position in css-text-decor-3, for text-underline-position in css-transforms-1, for transform-origin in css2, for clear in css2, for float in css2, for page-break-before, page-break-after, page-break-inside leftwards legacy <length> in css-backgrounds-3, for background-position in css-images-3, for <size> in css-shapes-1, for shape-margin in css-text-3, for letter-spacing in css-text-3, for text-indent in css-text-3, for word-spacing in css2, for <border-width>, border-top-width, border-right-width, border-bottom-wight, border-left-width, border-width in css2, for <padding-width> in css2, for top, right, bottom, left in css2, for vertical-align <length [0,∞]> <length-percentage> in css-grid-1, for grid-template-columns, grid-template-rows 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-shapes-1, for shape-margin <length-percentage [0,∞]> in css-backgrounds-3, for background-size in css-backgrounds-3, for border-image-width <length-percentage>{2} lighten lighter lime linear linearrgb [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]? line-through in css-text-decor-3, for text-decoration-line in css2, for text-decoration list-item in css-display-3, for display, <display-list-item> in css2 in css2, for display literal-punctuation local loose loud low in css-speech-1, for voice-pitch in css-speech-1, for voice-range lower-alpha in css-counter-styles-3, for <counter-style-name> in css2, for list-style-type lower-armenian lowercase lower-greek in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type lower-latin in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type lower-roman in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type 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 maroon match-parent match-source max-content medium in css-backgrounds-3, for <line-width>, 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 in css2, for <border-width>, border-top-width, border-right-width, border-bottom-wight, border-left-width, border-width in css2, for font-size menu message-box middle min-content minmax() mixed mm moderate mongolian monospace move ms multiply myanmar navy ne-resize nesw-resize neutral never no-clip no-close-quote in css2 in css2, for content no-drop none in css-animations-1, for animation-fill-mode in css-animations-1, for animation-name in css-backgrounds-3, for <line-style>, 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, <display-box> in css-flexbox-1, for flex 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-text-decor-3, for text-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 css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style in css2, for clear in css2, for content in css2, for counter-reset, counter-increment in css2, for display in css2, for float in css2, for list-style-type in css2, for max-height in css2, for max-width in css2, for quotes in css2, for text-decoration 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 none!!font-variant nonzero no-open-quote in css2 in css2, for content no-punctuation no-repeat normal in compositing-1, for <blend-mode> 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-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 in css2, for content in css2, for font-style in css2, for font-variant in css2, for font-weight in css2, for line-height normal!!font-feature-settings normal!!font-variant not not-allowed nowrap in css-flexbox-1, for flex-wrap in css-text-3, for white-space n-resize ns-resize <number> in css-animations-1, for animation-iteration-count in css-flexbox-1, for flex-grow in css-flexbox-1, for flex-shrink in css-fonts-3, for font-size-adjust in css-shapes-1, for shape-image-threshold in css-speech-1, for voice-balance <number [0,∞]> in css-backgrounds-3, for border-image-slice in css-backgrounds-3, for border-image-width 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 old olive only open open-quote in css2 in css2, for content orange oriya outset in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style outside over in css-text-decor-3, for text-emphasis-position in css-text-decor-3, for text-text-emphasis-position overlay overline in css-text-decor-3, for text-decoration-line in css2, for text-decoration 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-box>, shape-outside page paged paint paused pc <percentage> in css-backgrounds-3, for background-position in css-shapes-1, for shape-margin in css-speech-1, for voice-pitch in css-speech-1, for voice-range in css-speech-1, for voice-rate in css-text-3, for text-indent in css2, for <padding-width> in css2, for top, right, bottom, left in css2, for vertical-align <percentage [0,∞]> persian pixelated pixel unit plaintext pointer portrait <position> pre pre-line preserve pre-wrap print in css2, for @media in mediaqueries-4, for @media progress progressive projection in css2, for @media in mediaqueries-4, for @media proximity pt purple px q rad rec2020 recto red reduced region relative rem repeat in css-backgrounds-3, for background-repeat in css-backgrounds-3, for border-image-repeat repeat-x repeat-y reverse revert ridge in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style 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-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-text-emphasis-position in css-text-decor-3, for text-underline-position in css-transforms-1, for transform-origin in css2, for clear in css2, for float in css2, for page-break-before, page-break-after, page-break-inside 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 ruby-base ruby-base-container ruby-text ruby-text-container run-in running s safe sans-serif saturation scale-down screen in compositing-1, for <blend-mode> in css2, for @media in mediaqueries-4, for @media scroll in css-backgrounds-3, for background-attachment in css2, for overflow in mediaqueries-4, for @media/overflow-block in mediaqueries-4, for @media/overflow-inline scroll-position self-end self-start <semitones> in css-speech-1, for voice-pitch in css-speech-1, for voice-range separate se-resize serif sesame in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style show sideways sideways-lr sideways-right sideways-rl silent silver simp-chinese-formal simp-chinese-informal <size> size slice slow in css-speech-1, for voice-rate in mediaqueries-4, for @media/update small small-caps small-caption smooth soft soft-light solid in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border in css2 in css2, for <border-style>, border-top-style, border-right-style, border-bottom-style, border-left-style, border-style 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, <content-distribution> 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, <content-distribution> in css-flexbox-1, for align-content in css-flexbox-1, for justify-content space-evenly span && [ <integer> || <custom-ident> ] speech in css2, for @media in mediaqueries-4, for @media spell-out in css-counter-styles-3, for @counter-style/speak-as in css-speech-1, for speak-as square in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type s-resize srgb in filter-effects-1, for color-interpolation-filters in mediaqueries-4, for @media/color-gamut start in css-align-3, for <self-position>, <content-position>, 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 static status-bar step-end step-start stretch in css-align-3, for align-content, justify-content, <content-distribution> 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 <string> in css-shapes-1, for path() in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style in css2, for content <string>+ [<string> <string>]+ 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 sub subtract super sw-resize symbolic table in css-display-3, for display, <display-inside> in css2 in css2, for display table-caption in css-display-3, for display, <display-internal> in css2 in css2, for display table-cell in css-display-3, for display, <display-internal> in css2 in css2, for display table-column in css-display-3, for display, <display-internal> in css2 in css2, for display table-column-group in css-display-3, for display, <display-internal> in css2 in css2, for display table-footer-group in css-display-3, for display, <display-internal> in css2 in css2, for display table-header-group in css-display-3, for display, <display-internal> in css2 in css2, for display table-row in css-display-3, for display, <display-internal> in css2 in css2, for display table-row-group in css-display-3, for display, <display-internal> in css2 in css2, for display tamil teal telugu text text-bottom text-top thai thick in css-backgrounds-3, for <line-width>, border-width, border-top-width, border-left-width, border-bottom-width, border-right-width, border in css2, for <border-width>, border-top-width, border-right-width, border-bottom-wight, border-left-width, border-width thin in css-backgrounds-3, for <line-width>, border-width, border-top-width, border-left-width, border-bottom-width, border-right-width, border in css2, for <border-width>, border-top-width, border-right-width, border-bottom-wight, border-left-width, border-width tibetan <time> in css-animations-1, for animation-delay in css-animations-1, for animation-duration in css-speech-1, for pause-before, pause-after in css-speech-1, for rest-before, rest-after in css-speech-1, for voice-duration top in css-backgrounds-3, for background-position in css-transforms-1, for transform-origin in css2, for caption-side in css2, for vertical-align <track-list> | <auto-track-list> trad-chinese-formal trad-chinese-informal transparent triangle in css-text-decor-3, for text-emphasis-style in css-text-decor-3, for text-text-emphasis-style tty in css2, for @media in mediaqueries-4, for @media turn tv in css2, for @media in mediaqueries-4, for @media under in css-text-decor-3, for text-emphasis-position in css-text-decor-3, for text-text-emphasis-position in css-text-decor-3, for text-underline-position underline in css-text-decor-3, for text-decoration-line in css2, for text-decoration unsafe unset upper-alpha in css-counter-styles-3, for <counter-style-name> in css2, for list-style-type upper-armenian uppercase upper-latin in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type upper-roman in css-counter-styles-3, for <counter-style-name> in css2 in css2, for list-style-type upright <urange> <uri> in css-speech-1, for cue-before, cue-after in css2, for background-image in css2, for content <url> userspaceonuse in css-masking-1, for clipPathUnits in css-masking-1, for maskContentUnits in css-masking-1, for maskUnits 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 in css-display-3, for visibility in css2, for overflow vmax vmin vw wait weak in css-speech-1, for pause-before, pause-after in css-speech-1, for rest-before, rest-after white words wrap wrap-reverse w-resize x x-fast x-high in css-speech-1, for voice-pitch in css-speech-1, for voice-range x-large x-loud x-low in css-speech-1, for voice-pitch in css-speech-1, for voice-range x-slow x-small 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 xx-large xx-small y yellow 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 <strong class="advisement"> , like this: UAs MUST provide an accessible alternative. Conformance classes Conformance to this specification is defined for three conformance classes: style sheet A CSS style sheet . renderer A UA that interprets the semantics of a style sheet and renders documents that use them. authoring tool A 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 https://www.w3.org/Style/CSS/Test/ . Questions should be directed to the [email protected] mailing list. References Normative References [COMPOSITING] Rik Cabanier; Nikos Andronikos. Compositing and Blending Level 1 . 13 January 2015. CR. URL: https://www.w3.org/TR/compositing-1/ [CSS-BACKGROUNDS-3] Bert Bos; Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3 . 26 July 2021. CR. URL: https://www.w3.org/TR/css-backgrounds-3/ [CSS-BOX-3] Elika Etemad. CSS Box Model Module Level 3 . 22 December 2020. CR. URL: https://www.w3.org/TR/css-box-3/ [CSS-CASCADE-4] Elika Etemad; Tab Atkins Jr.. CSS Cascading and Inheritance Level 4 . 3 December 2021. WD. URL: https://www.w3.org/TR/css-cascade-4/ [CSS-COLOR-3] Tantek Çelik; Chris Lilley; David Baron. CSS Color Module Level 3 . 5 August 2021. REC. URL: https://www.w3.org/TR/css-color-3/ [CSS-COLOR-4] Tab Atkins Jr.; Chris Lilley; Lea Verou. CSS Color Module Level 4 . 15 December 2021. WD. URL: https://www.w3.org/TR/css-color-4/ [CSS-COLOR-ADJUST-1] Elika Etemad; et al. CSS Color Adjustment Module Level 1 . 16 June 2021. WD. URL: https://www.w3.org/TR/css-color-adjust-1/ [CSS-CONDITIONAL-3] David Baron; Elika Etemad; Chris Lilley. CSS Conditional Rules Module Level 3 . 23 December 2021. CR. URL: https://www.w3.org/TR/css-conditional-3/ [CSS-CONTAIN-1] Tab Atkins Jr.; Florian Rivoal. CSS Containment Module Level 1 . 22 December 2020. REC. URL: https://www.w3.org/TR/css-contain-1/ [CSS-COUNTER-STYLES-3] Tab Atkins Jr.. CSS Counter Styles Level 3 . 27 July 2021. CR. URL: https://www.w3.org/TR/css-counter-styles-3/ [CSS-DISPLAY-3] Tab Atkins Jr.; Elika Etemad. CSS Display Module Level 3 . 3 September 2021. CR. URL: https://www.w3.org/TR/css-display-3/ [CSS-EASING-1] Brian Birtles; et al. CSS Easing Functions Level 1 . 1 April 2021. CR. URL: https://www.w3.org/TR/css-easing-1/ [CSS-FLEXBOX-1] Tab Atkins Jr.; et al. CSS Flexible Box Layout Module Level 1 . 19 November 2018. CR. URL: https://www.w3.org/TR/css-flexbox-1/ [CSS-FONTS-3] John Daggett; Myles Maxfield; Chris Lilley. CSS Fonts Module Level 3 . 20 September 2018. REC. URL: https://www.w3.org/TR/css-fonts-3/ [CSS-FONTS-4] John Daggett; Myles Maxfield; Chris Lilley. CSS Fonts Module Level 4 . 21 December 2021. WD. URL: https://www.w3.org/TR/css-fonts-4/ [CSS-GRID-1] Tab Atkins Jr.; et al. CSS Grid Layout Module Level 1 . 18 December 2020. CR. URL: https://www.w3.org/TR/css-grid-1/ [CSS-GRID-2] Tab Atkins Jr.; Elika Etemad; Rossen Atanassov. CSS Grid Layout Module Level 2 . 18 December 2020. CR. URL: https://www.w3.org/TR/css-grid-2/ [CSS-IMAGES-3] Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Images Module Level 3 . 17 December 2020. CR. URL: https://www.w3.org/TR/css-images-3/ [CSS-IMAGES-4] Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Image Values and Replaced Content Module Level 4 . 13 April 2017. WD. URL: https://www.w3.org/TR/css-images-4/ [CSS-LISTS-3] Elika Etemad; Tab Atkins Jr.. CSS Lists and Counters Module Level 3 . 17 November 2020. WD. URL: https://www.w3.org/TR/css-lists-3/ [CSS-LOGICAL-1] Rossen Atanassov; Elika Etemad. CSS Logical Properties and Values Level 1 . 27 August 2018. WD. URL: https://www.w3.org/TR/css-logical-1/ [CSS-MULTICOL-1] Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 1 . 12 October 2021. CR. URL: https://www.w3.org/TR/css-multicol-1/ [CSS-POSITION-3] Elika Etemad; Tab Atkins Jr.. CSS Positioned Layout Module Level 3 . 16 December 2021. WD. URL: https://www.w3.org/TR/css-position-3/ [CSS-SIZING-3] Tab Atkins Jr.; Elika Etemad. CSS Box Sizing Module Level 3 . 17 December 2021. WD. URL: https://www.w3.org/TR/css-sizing-3/ [CSS-SIZING-4] Tab Atkins Jr.; Elika Etemad; Jen Simmons. CSS Box Sizing Module Level 4 . 20 May 2021. WD. URL: https://www.w3.org/TR/css-sizing-4/ [CSS-STYLE-ATTR] Tantek Çelik; Elika Etemad. CSS Style Attributes . 7 November 2013. REC. URL: https://www.w3.org/TR/css-style-attr/ [CSS-SYNTAX-3] Tab Atkins Jr.; Simon Sapin. CSS Syntax Module Level 3 . 24 December 2021. CR. URL: https://www.w3.org/TR/css-syntax-3/ [CSS-TRANSFORMS-1] Simon Fraser; et al. CSS Transforms Module Level 1 . 14 February 2019. CR. URL: https://www.w3.org/TR/css-transforms-1/ [CSS-TRANSFORMS-2] Tab Atkins Jr.; et al. CSS Transforms Module Level 2 . 9 November 2021. WD. URL: https://www.w3.org/TR/css-transforms-2/ [CSS-UI-3] Tantek Çelik; Florian Rivoal. CSS Basic User Interface Module Level 3 (CSS3 UI) . 21 June 2018. REC. URL: https://www.w3.org/TR/css-ui-3/ [CSS-VALUES-3] Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 3 . 6 June 2019. CR. URL: https://www.w3.org/TR/css-values-3/ [CSS-VARIABLES-1] Tab Atkins Jr.. CSS Custom Properties for Cascading Variables Module Level 1 . 11 November 2021. CR. URL: https://www.w3.org/TR/css-variables-1/ [CSS-WILL-CHANGE-1] Tab Atkins Jr.. CSS Will Change Module Level 1 . 3 December 2015. CR. URL: https://www.w3.org/TR/css-will-change-1/ [CSS-WRITING-MODES-3] Elika Etemad; Koji Ishii. CSS Writing Modes Level 3 . 10 December 2019. REC. URL: https://www.w3.org/TR/css-writing-modes-3/ [CSS2] Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification . 7 June 2011. REC. URL: https://www.w3.org/TR/CSS21/ [CSS3-MEDIAQUERIES] Florian Rivoal; et al. Media Queries . 19 June 2012. REC. URL: https://www.w3.org/TR/css3-mediaqueries/ [CSS3-NAMESPACE] Elika Etemad. CSS Namespaces Module Level 3 . 20 March 2014. REC. URL: https://www.w3.org/TR/css-namespaces-3/ [RESIZE-OBSERVER-1] Aleks Totic; Greg Whitworth. Resize Observer . 11 February 2020. WD. URL: https://www.w3.org/TR/resize-observer-1/ [RFC2119] S. Bradner. Key words for use in RFCs to Indicate Requirement Levels . March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119 [SELECTORS-3] Tantek Çelik; et al. Selectors Level 3 . 6 November 2018. REC. URL: https://www.w3.org/TR/selectors-3/ [SELECTORS-4] Elika Etemad; Tab Atkins Jr.. Selectors Level 4 . 21 November 2018. WD. URL: https://www.w3.org/TR/selectors-4/ [WEB-ANIMATIONS-1] Brian Birtles; et al. Web Animations . 18 May 2021. WD. URL: https://www.w3.org/TR/web-animations-1/ Informative References [CSS-ALIGN-3] Elika Etemad; Tab Atkins Jr.. CSS Box Alignment Module Level 3 . 24 December 2021. WD. URL: https://www.w3.org/TR/css-align-3/ [CSS-ANIMATIONS-1] Dean Jackson; et al. CSS Animations Level 1 . 11 October 2018. WD. URL: https://www.w3.org/TR/css-animations-1/ [CSS-BREAK-3] Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 3 . 4 December 2018. CR. URL: https://www.w3.org/TR/css-break-3/ [CSS-CASCADE-3] Elika Etemad; Tab Atkins Jr.. CSS Cascading and Inheritance Level 3 . 11 February 2021. REC. URL: https://www.w3.org/TR/css-cascade-3/ [CSS-FONT-LOADING-3] Tab Atkins Jr.. CSS Font Loading Module Level 3 . 22 May 2014. WD. URL: https://www.w3.org/TR/css-font-loading-3/ [CSS-MASKING-1] Dirk Schulze; Brian Birtles; Tab Atkins Jr.. CSS Masking Module Level 1 . 5 August 2021. CR. URL: https://www.w3.org/TR/css-masking-1/ [CSS-SCROLL-SNAP-1] Matt Rakow; et al. CSS Scroll Snap Module Level 1 . 11 March 2021. CR. URL: https://www.w3.org/TR/css-scroll-snap-1/ [CSS-SCROLLBARS-1] Tantek Çelik; Rossen Atanassov; Florian Rivoal. CSS Scrollbars Styling Module Level 1 . 9 December 2021. CR. URL: https://www.w3.org/TR/css-scrollbars-1/ [CSS-SHAPES-1] Vincent Hardy; Rossen Atanassov; Alan Stearns. CSS Shapes Module Level 1 . 20 March 2014. CR. URL: https://www.w3.org/TR/css-shapes-1/ [CSS-SPEECH-1] Daniel Weck. CSS Speech Module . 10 March 2020. CR. URL: https://www.w3.org/TR/css-speech-1/ [CSS-TEXT-3] Elika Etemad; Koji Ishii; Florian Rivoal. CSS Text Module Level 3 . 22 April 2021. CR. URL: https://www.w3.org/TR/css-text-3/ [CSS-TEXT-DECOR-3] Elika Etemad; Koji Ishii. CSS Text Decoration Module Level 3 . 13 August 2019. CR. URL: https://www.w3.org/TR/css-text-decor-3/ [CSS-TRANSITIONS-1] David Baron; et al. CSS Transitions . 11 October 2018. WD. URL: https://www.w3.org/TR/css-transitions-1/ [CSS-WRITING-MODES-4] Elika Etemad; Koji Ishii. CSS Writing Modes Level 4 . 30 July 2019. CR. URL: https://www.w3.org/TR/css-writing-modes-4/ [FILTER-EFFECTS-1] Dirk Schulze; Dean Jackson. Filter Effects Module Level 1 . 18 December 2018. WD. URL: https://www.w3.org/TR/filter-effects-1/ [MEDIAQUERIES-4] Florian Rivoal; Tab Atkins Jr.. Media Queries Level 4 . 25 December 2021. CR. URL: https://www.w3.org/TR/mediaqueries-4/ #editors-draft Referenced in: 1.1. Background: The W3C Process and CSS (2) #css-level-1 Referenced in: 2.4. CSS Levels #css-level-2 Referenced in: 2.4. CSS Levels (2) (3) #css-level-3 Referenced in: 2.4. CSS Levels #unstable Referenced in: 3.2. Implementations of Unstable and Proprietary Features 3.2.1. Experimentation and Unstable Features (2) 3.2.3. Market Pressure and De Facto Standards (2) 3.2.3.1. Vendor-prefixing Unstable Features (2) #vendor-prefix Referenced in: 3.2.2. Proprietary and Non-standardized Features 3.2.3. Market Pressure and De Facto Standards 3.2.3.1. Vendor-prefixing Unstable Features (2) (3) 3.3. Implementations of CR-level Features #proprietary-extension Referenced in: 3.2. Implementations of Unstable and Proprietary Features 3.2.2. Proprietary and Non-standardized Features (2) (3) #rough-interoperability Referenced in: 2.3. Modules with Rough Interoperability 3.2.3. Market Pressure and De Facto Standards