CSS has changed more in the last two years than in the previous ten. The features that once required JavaScript or preprocessors now ship in the browser.
Container queries
Components can finally respond to their own container size instead of the viewport, which makes truly reusable layouts possible.
The :has() selector
Often called the “parent selector,” :has() lets you style an element based on its children — a long-requested capability that removes countless JavaScript hacks.
Cascade layers tame specificity wars in large codebases. Together these features mean you can write less CSS and reason about it more clearly.