Native nesting reached broad support this year, which removes the main reason a small stylesheet needed a preprocessor.
.card {
padding: var(--space-m);
& .title { font-weight: 600; }
&:hover { background: var(--surface-2); }
@media (min-width: 40rem) {
display: grid;
}
}
The & is required before a type selector in the earliest implementations, which is the incompatibility with preprocessor syntax that catches people porting a file. What is still missing is everything else a preprocessor does — variables were replaced by custom properties years ago, but mixins and functions have no equivalent, so this removes the build step for a plain stylesheet and not for a design system.