CSS settings
introduction
The CSS switches precisely control CSS interpretation. If you are checking a site with a CSS version contemporary to the given HTML version (see html.version), you can ignore them. Otherwise, you probably only need css.version.
css.version
The css.version switch accepts the following values:
| 1 | CSS 1.0 |
| 2.0 | CSS 2.0 |
| 2.1 | CSS 2.1 |
| 2.2 | CSS 2.2 (Feb 2022 draft) |
| 3 | all CSS level 3 (but see note on module numbering below) |
| 4 | all CSS level 4 (but see note on module numbering below) |
| 5 | all CSS level 5 (but see note on module numbering below) |
| 6 | all CSS |
| 2007 | 2007 snapshot |
| 2010 | 2010 snapshot |
| 2015 | 2015 base snapshot |
| 2015+ | 2015 wibbly snapshot |
| 2015++ | 2015 wibbly–wobbly snapshot |
| 2017 | 2017 base snapshot |
| 2017+ | 2017 wibbly snapshot |
| 2017++ | 2017 wibbly–wobbly snapshot |
| 2018 | 2018 base snapshot |
| 2018+ | 2018 wibbly snapshot |
| 2018++ | 2018 wibbly–wobbly snapshot |
| 2020 | 2020 base snapshot |
| 2020+ | 2020 wibbly snapshot |
| 2020++ | 2020 wibbly–wobbly snapshot |
| 2021 | 2021 base snapshot |
| 2021+ | 2021 wibbly snapshot |
| 2021++ | 2021 wibbly–wobbly snapshot |
| 2022 | 2022 base snapshot |
| 2022+ | 2022 wibbly snapshot |
| 2022++ | 2022 wibbly–wobbly snapshot |
| 2023 | 2023 base snapshot |
| 2023+ | 2023 wibbly snapshot |
| 2023++ | 2023 wibbly–wobbly snapshot |
| 2024 | 2024 base snapshot |
| 2024+ | 2024 wibbly snapshot |
| 2024++ | 2024 wibbly–wobbly snapshot |
| 2024+++ | 2024 weally–wibbly–wobbly snapshot |
| html5/24 | 2024+++ with HTML5 (see below) |
| 2025 | 2025 base snapshot |
| 2025+ | 2025 wibbly snapshot |
| 2025++ | 2025 wibbly–wobbly snapshot |
| 2025+++ | 2025 weally–wibbly–wobbly snapshot |
| html5/25 | 2025+++ with HTML5 (see below) |
snapshot years
The years are CSS snapshots, whether the year itself for stable modules, with + for wobbly modules, ++ for wibbly–wobbly modules, and +++ for weally–wibbly–wobbly modules, as per the corresponding W3 CSS snapshots (the terminology in those snapshots is inconsistent, hence the use of alternative a daft–ish who–ish language).
module numbering
CSS module numbering is inconsistent. CSS level 1 was defined in 1997, and the definition is complete, yet some CSS modules have been published more recently and claim to be part of CSS level 1, even though:
- they depend on other modules which are not part of CSS level 1,
- the contents of the module are not included in the CSS level 1 specification.
ssc ignores these inconsistencies, and pretends that all modules published after the CSS level 1 and CSS level 2 specifications are level three and higher, as per the great majority of such modules.
Thus, for levels 3, 4, 5 and 6, modules that are part of neither CSS 1 nor CSS 2.x specifications are numbered three and upwards in ssc. Hence, if you wish to use an extension named … level 1, that is not part of CSS 1, specify 3. Similarly, for those named level 2 that are not part of any CSS 2 specification, specify 4, etc..
living standard
HTML5/24 extends 2024+++ with the CSS requirements of Math 4 Core and the August 2025 HTML Living Standard. Similarly, HTML25 extends 2025+++, which was published in September 2025.
more CSS switches
Here are some more switches that you may, in rare circumstances, find useful.
| css.extension ext | Presume files with extension ‘.ext’ are CSS files. |
| css.external | Nitpick CSS files found on other sites that are used by the current site |
| css.verify | Verify CSS files (replaces --general.css). |
| css.version ver | See above. |
CSS modules
These switches allow you to precisely specify the CSS modules presumed, and will only be useful in very specific circumstances. Specific modules are defined at w3.org.
| css.adjust X | Use CSS Colour Adjustment level X, where X is 0 or 3. |
| css.adv-lay X | Use CSS Advanced Layout level X, where X is 0 or 3. |
| css.anchor X | Use CSS Scrollbar Anchoring level X, where X is 0 or 3. |
| css.anchor-pos X | Use CSS Anchor Positioning level X, where X is 0 or 3. |
| css.animation X | Use CSS Animation level X, where X is 0, 3 or 4. |
| css.background X | Use CSS Backgrounds and Borders level X, where X is 0 or 3. |
| css.box-align X | Use CSS Box Alignment level X, where X is 0 or 3. |
| css.box-model X | Use CSS Box Model level X, where X is 0, 3 or 4. |
| css.box-sizing X | Use CSS Box Sizing level X, where X is 0, 3 or 4. |
| css.cascade X | Use CSS Cascading and Inheritance level X, where X is 0, 3, 4, 5 or 6. |
| css.colour X | Use CSS Colour level X, where X is 0, 3, 4 or 5. |
| css.compositing X | Use CSS Compositing and Blending level X, where X is 0 or 3. |
| css.cond-rule X | Use CSS Conditional Rules level X, where X is 0, 3, 4, or 5. |
| css.contain X | Use CSS Contain level X, where X is 0, 3, 4 or 5: see --css.version for gen. |
| css.content X | Use CSS Generated Content level X, where X is 0 or 3. |
| css.cs X | Use CSS Counter Style level X, where X is 0 or 3. |
| css.custom X | Use CSS Custom Properties for Cascading Variables level X, where X is 0 or 3. |
| css.device X | Use CSS Device Adaption level X, where X is 0 or 3. |
| css.display X | Use CSS Display level X, where X is 0 or 3. |
| css.ease X | Use CSS Easing Functions level X, where X is 0 or 3. |
| css.exclude X | Use CSS Exclusions level X, where X is 0 or 3. |
| css.fbl X | Use CSS Flexible Box Layout level X, where X is 0 or 3. |
| css.fill X | Use CSS Fill & Stroke Effect level X, where X is 0 or 3. |
| css.filter X | Use CSS Filter Effects level X, where X is 0 or 3. |
| css.float X | Use CSS Page Floats level X, where X is 0 or 3. |
| css.font X | Use CSS Fonts level X, where X is 0, 3, 4 or 5. |
| css.frag X | Use CSS Fragmentation level X, where X is 0, 3, or 4. |
| css.grid X | Use CSS Grid level X, where X is 0, 3 or 4: see --css.version for gen. |
| css.highlight X | Use CSS Custom Highlights level X, where X is 0 or 3. |
| css.hyperlink X | Use CSS Hyperlink level X, where X is 0 or 3. |
| css.image X | Use CSS Images level X, where X is 0, 3 or 4. |
| css.inline X | Use CSS Inline Layout level X, where X is 0 or 3. |
| css.line-grid X | Use CSS Line Grid level X, where X is 0 or 3. |
| css.list X | Use CSS Lists and Counters level X, where X is 0 or 3. |
| css.logic X | Use CSS Logical Properties level X, where X is 0 or 3. |
| css.marquee X | Use CSS Marquee level X, where X is 0 or 3. |
| css.masking X | Use CSS Masking level X, where X is 0 or 3. |
| css.media X | Use CSS Media Queries level X, where X is 0, 3, 4 or 5. |
| css.mobile | Test against the CSS Mobile Profile. |
| css.motion | Use CSS Motion Path level X, where X is 0 or 3. |
| css.multi-column X | Use CSS Multi-Column level X, where X is 0 or 3. |
| css.namespace X | Use CSS Namespaces level X, where X is 0 or 3. |
| css.nes X | Use CSS Non-Element Selectors level X, where X is 0 or 3. |
| css.nesting X | Use CSS Nesting level X, where X is 0 or 3. |
| css.overflow X | Use CSS Overflow level X, where X is 0, 3 or 4. |
| css.overscroll X | Use CSS Overscroll Behaviour level X, where X is 0 or 3. |
| css.page X | Use CSS Paged Media level X, where X is 0 or 3. |
| css.position X | Use CSS Positions level X, where X is 0 or 3. |
| css.present X | Use CSS Presentation Levels level X, where X is 0 or 3. |
| css.print | Test against the CSS Print Profile. |
| css.pseudo X | Use CSS Pseudo–Elements level X, where X is 0, 3 or 4. |
| css.region X | Use CSS Regions level X, where X is 0 or 3. |
| css.rhythm X | Use CSS Rhythmic Sizing level X, where X is 0 or 3. |
| css.round X | Use CSS Round Display level X, where X is 0 or 3. |
| css.ruby X | Use CSS Ruby Annotations level X, where X is 0 or 3. |
| css.scope X | Use CSS Scoping level X, where X is 0 or 3. |
| css.scrollbar X | Use CSS Scrollbar Style level X, where X is 0 or 3. |
| css.sda X | Use CSS Scroll-Driven Animations Style level X, where X is 0 or 3. |
| css.selector X | Use CSS Selectors level X, where X is 0, 3 or 4. |
| css.shadow X | Use CSS Shadow Parts level X, where X is 0 or 3. |
| css.shape X | Use CSS Shapes level X, where X is 0, 3 or 4. |
| css.snap X | Use CSS Scroll Snap level X, where X is 0 or 3. |
| css.snap-points X | Use CSS Scroll Snap Points level X, where X is 0 or 3. |
| css.spatial X | Use CSS Spatial Navigation level X, where X is 0 or 3. |
| css.speech X | Use CSS Speech level X, where X is 0 or 3. |
| css.style X | Use CSS Style level X, where X is 0 or 3. |
| css.syntax X | Use CSS Syntax level X, where X is 0 or 3. |
| css.table X | Use CSS Tables level X, where X is 0 or 3 (this is an experimental spec, likely to change). |
| css.text X | Use CSS Text level X, where X is 0, 3 or 4. |
| css.text-dec X | Use CSS Text Decoration level X, where X is 0, 3 or 4. |
| css.transform X | Use CSS Transforms level X, where X is 0, 3 or 4: see --css.version for gen. |
| css.transition X | Use CSS Transitions level X, where X is 0 or 3. |
| css.tv | Test against the CSS TV Profile. |
| css.ui X | Use CSS Basic User Interface level X, where X is 0, 3 or 4. |
| css.value X | Use CSS Values and Units level X, where X is 0, 3 or 4. |
| css.view X | Use CSS View Transitions level X, where X is 0 or 3. |
| css.viewport X | Use CSS Viewport level X, where X is 0 or 3. |
| css.wc X | Use CSS Will Change level X, where X is 0 or 3. |
| css.writing X | Use CSS Writing Mode level X, where X is 0, 3 or 4. |
Note that level 0 means do not check that particular CSS module.