The Problem with CSS
The problem with CSS conventions is that they rely on developers to manually maintain them with a high degree of accuracy to be effective. This problem is compounded as styles grow. Each developer needs to know more context in order to effectively style UI. That’s why “You should just write good CSS” is an insufficient response to “How do we keep styles maintainable?” Even developers who write great CSS are challenged with an ever-growing problem.
All that to say, the problem with CSS isn’t CSS, it’s humans. We can only keep so much in our heads, and sharing that knowledge across teams, even teams who really care about consistent styling is really hard. You can argue that the cascade is a design flaw, but I’d disagree. We’re scaling CSS in ways no one could have imagined at its inception. And to manage that scale, we need better tools.
When engineers have to spend an inordinate amount of effort thinking about basic styling, we’re wasting their time and talent. But we’re also wasting our designers’ talent as well. Instead of thinking about higher-level user experience, they’re checking spacing and color. Typography, spacing, color, etc. should largely be solved problems. Yes, there are instances where more thought needs to be given, but if we have an effective system, those should be few and far between.
Often the benefits mentioned when discussing effective systems are the bottom of the barrel. I want to free up engineers and designers to think about higher-level concerns that actually make our customers lives better. I want to build better experiences instead of being lost in the details.