Why I Don’t Use CSS Preprocessors
Published on Dec 14, 2016 (updated Jun 6, 2021), filed under development (feed). (Share this on Mastodon or Bluesky?)
Though late I wish to follow Roger as I couldn’t agree more with him: I don’t use CSS preprocessors, either (never so in my personal projects), because CSS preprocessors are like a solution in need of a problem to me, too.
My reasons almost perfectly match Roger’s:
I don’t feel the problems CSS preprocessors intend to solve are serious enough to warrant the cost, either, and to me the solution is worse than the problems as well.
I want absolute control of my CSS and work directly on it, too, and likewise see exactly what will be sent to the browser before it’s getting minified and compressed. (In this list I don’t care too much that parts of the concerns may be addressed through better tools in the future.)
I don’t want to learn and depend on a non-standard syntax to wrap my CSS in, either, neither would I want to learn several syntaxes, and again neither would I want my teams to.
I want my source CSS to be deployable at all times, too, and if any build processes fail I equally like to be able to deploy the source CSS as an emergency solution.
I don’t want to have to wait for compilation before seeing the results of CSS changes, either.
In addition to these points, I could always mirror preprocessor functionality through languages like PHP, just like Bert Bos had brought forth as a main argument against CSS constants.
The only exception to me, and there I disagree with Roger, is that we don’t only need but can actually have pretty DRY CSS without preprocessors. Not repeating ourselves should be first nature to us, a part of our craft, and as we can’t yet automate DRYing up CSS it’s on us to keep our style sheets efficient and maintainable.
As for CSS post-processors, I don’t use them, either, then, again at least not in my personal projects; yet that’s a different story, and I close with another hat tip to Roger. Listen to what he says 😊
About Me
I’m Jens (long: Jens Oliver Meiert), and I’m a web developer, manager, and author. I’ve worked as a technical lead and engineering manager for small and large enterprises, I’m an occasional contributor to web standards (like HTML, CSS, WCAG), and I write and review books for O’Reilly and Frontend Dogma.
I love trying things, not only in web development and engineering management, but also in other areas like philosophy. Here on meiert.com I share some of my experiences and views. (I value you being critical, interpreting charitably, and giving feedback.)