Sass isn't dead, but native CSS just replaced its biggest use case. We can finally write reusable, type-safe functions directly in the browser, with zero build tools. I wrote up a practical guide on Dev.to explaining exactly how native `@function` works.
Native CSS @function landing is a genuinely big deal and underhyped - the slow story of the last few years is the platform absorbing what we used to need a preprocessor/build step for: custom properties killed Sass variables, nesting killed a big chunk of the syntax win, and now @function takes the logic. Each one quietly removes a reason to run a build, and "zero build tools" is the real prize because the build step is where so much fragility and slowness lives. Sass isn't dead, but its job is shrinking to the genuinely advanced stuff while the 80% case moves to the browser.
The meta-pattern I love here: the platform maturing means less tooling, less to break, fewer dependencies - and "use the platform primitive instead of a build-time abstraction" is exactly the kind of leaner-is-better instinct I value. It's how I think about Moonshift too, the thing I work on - a multi-agent pipeline that takes a prompt to a deployed SaaS - favoring the native/right primitive over bloat wherever possible. Multi-model routing keeps a build ~$3 flat, first run free no card. Nice writeup on @function - the browser-support story is the only caveat. Are you using it in production yet, or waiting on broader support / a fallback? That's the one thing gating "finally" for me.
I'm not using @function heavily in production just yet due to that exact browser support gap. When I do deploy it, I strictly rely on the @supports progressive enhancement strategy I mentioned in the article to ensure safe fallbacks for Safari and Firefox users.
Thanks for reading!
Sensible, browser support is the only real gate on @function and progressive enhancement is the right call until it's broad. The trajectory's clear though: each thing the platform absorbs (custom props, nesting, now functions) is one less reason to run a build step, and the build step is where most frontend fragility lives. You're playing it correctly, use it where you can, keep a fallback, and the support window closes faster than people expect. Good writeup; the "Sass isn't dead but its job is shrinking" framing is exactly right.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Top comments (3)
Native CSS @function landing is a genuinely big deal and underhyped - the slow story of the last few years is the platform absorbing what we used to need a preprocessor/build step for: custom properties killed Sass variables, nesting killed a big chunk of the syntax win, and now @function takes the logic. Each one quietly removes a reason to run a build, and "zero build tools" is the real prize because the build step is where so much fragility and slowness lives. Sass isn't dead, but its job is shrinking to the genuinely advanced stuff while the 80% case moves to the browser.
The meta-pattern I love here: the platform maturing means less tooling, less to break, fewer dependencies - and "use the platform primitive instead of a build-time abstraction" is exactly the kind of leaner-is-better instinct I value. It's how I think about Moonshift too, the thing I work on - a multi-agent pipeline that takes a prompt to a deployed SaaS - favoring the native/right primitive over bloat wherever possible. Multi-model routing keeps a build ~$3 flat, first run free no card. Nice writeup on @function - the browser-support story is the only caveat. Are you using it in production yet, or waiting on broader support / a fallback? That's the one thing gating "finally" for me.
I'm not using @function heavily in production just yet due to that exact browser support gap. When I do deploy it, I strictly rely on the @supports progressive enhancement strategy I mentioned in the article to ensure safe fallbacks for Safari and Firefox users.
Thanks for reading!
Sensible, browser support is the only real gate on @function and progressive enhancement is the right call until it's broad. The trajectory's clear though: each thing the platform absorbs (custom props, nesting, now functions) is one less reason to run a build step, and the build step is where most frontend fragility lives. You're playing it correctly, use it where you can, keep a fallback, and the support window closes faster than people expect. Good writeup; the "Sass isn't dead but its job is shrinking" framing is exactly right.