Cascading Styles
A deep-dive into the algorithms that take us from simple property/value declarations to a fully-styled web application. Along the way, we’ll explore new features like nesting, cascade layers, scope, and the :has() selector.

CodePen Demos
- Resilient HTML
- The Cascade (as a funnel)
- No !important keyframes
- Important Shadow Context
- Quick Layers Live Demo
- Excluding v Overriding
- Una Kravets Space Facts CQ + :has() Demo
- Has light/dark selection
- Scope proximity demo
- Visualizing scope
- Scope boundary demo
Resources
- Cascading HTML Style Sheets – a proposal, by Håkon Wium Lie
- List of CSS Properties
- Cascading & Inheritance Level 5
- Cascading & Inheritance, Level 6
- Cascade Layers polyfill
- Selectors specification
- Disclosure Widgets, by Adrian Roselli
- Can I Use: Cascade Layers
- Example layer orders
- Can I Use: CSS Nesting
- Can I Use: :has()
- Can I Use: the @scope rule
- On branded CSS conventions by Chris Coyier
- CSS Systems by Natalie Downe
- Object Oriented CSS by Nicole Sullivan
- CUBE CSS by Andy Bell
- Style with Stateful, Semantic Selectors by Ben Myers
- Axiomatic CSS and
LobotomizedOwls by Heydon Pickering - Semantic CSS With Intelligent Selectors by Heydon Pickering
- Selectors specification
- User Agent Table Styles
- Inverted Triangle CSS by Harry Roberts
- Example layer orders on Mastodon
- About HTML semantics and front-end architecture by Nicolas Gallagher
- A Dao of Web Design by John Allsopp
- Be The Browser’s Mentor, Not Its Micromanager by Andy Bell
- Resilient, Declarative, Contextual by Keith J. Grant
- CSS Classes considered harmful by Keith Cirkel
- CSS Guidelines by Harry Roberts
- The Way We Talk About CSS by Rachel Andrew
- Block Element Modifier