
About this episode
In this Hasty Treat, Scott and Wes talk about CSS nesting — what it is, when to use it, and why.
Prismic - Sponsor Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.
Sentry - Sponsor If you want to know what’s happening with your code, track errors and monitor performance with Sentry. Sentry’s Application Monitoring platform helps developers see performance issues, fix errors faster, and optimize their code health. Cut your time on error resolution from hours to minutes. It works with any language and integrates with dozens of other services. Syntax listeners new to Sentry can get two months for free by visiting Sentry.io and using the coupon code TASTYTREAT during sign up.
Show Notes 04:22 - What is it?
https://drafts.csswg.org/css-nesting-1/#nest-prefixed
https://twitter.com/argyleink/status/1371874777548267520
06:02 - Why nest?
Easier to read
Easier to write
Prevents refactoring errors, allows for dry-er code. No more typing a parent div 100 times, with a possibility of screwing it up.
08:13 - When to use nesting
Nesting is often overused
Only nest what you would have written un-nested with a short hand (e.g. don’t nest just for the sake of it) .container .item {} .container .item a {}
Use it for scoping
10:06 - Nesting prefixes
In order to nest CSS, you must first start it with a nesting selector
.tweet { & > p { } &.media-included { color: green; } & + .tweet { } // sibling & p { } // descentang } Component-based — tweet, card, company, Link
article{ color: blue; & { color: red; } } and must be the first child of a compound selector
12:44 - @nest rule / media queries
Mostly just a visual way to show nested
.foo { display: grid; @media(orientation: landscape) { & { grid-auto-flow: column; } } } .foo { display: grid; @media (orientation: landscape) { & { grid-auto-flow: column; } @media (min-inline-size > 1024px) { & { max-inline-size: 1024px; } } } } /* equivalent to .foo { display: grid; } @media (orientation: landscape) { .foo { grid-auto-flow: column; } } @media (orientation: landscape) and (min-inline-size > 1024px) { .foo { max-inline-size: 1024px; } } */ 16:30 - How to use nesting today
Literally any CSS preprocessor
PostCSS to use spec
Links Syntax 274: How does stuff get added to CSS? Adam Argyle answers!
Sass
PostCSS
CSS Variables
Tweet us your tasty treats! Scott’s Instagram
LevelUpTutorials Instagram
Wes’ Instagram
Wes’ Twitter
Wes’ Facebook
Scott’s Twitter
Make sure to include @SyntaxFM in your tweets
Get every episode summarized
Each time Syntax - Tasty Web Development Treats publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.
Email me new episodesFree for 3 shows. No card needed.
No transcript yet
This episode has not been transcribed. Request it and it moves to the front of the queue.
More episodes
More from Syntax - Tasty Web Development Treats

1037: WebMCP is here (and you should care)
Syntax - Tasty Web Development Treats
Sep 9, 202656:30transcribing

1036: Cursor & OpenAI Break Up
Syntax - Tasty Web Development Treats
Sep 7, 20261:12:19pending

1035: Why everyone is moving to Stylex?
Syntax - Tasty Web Development Treats
Sep 2, 202626:36pending

1034: Omarchy Quattro Release
Syntax - Tasty Web Development Treats
Aug 31, 20261:15:47pending