Why do people complain so much about CSS? There’s memes and jokes about CSS… there’s all sorts of tooling for CSS… On our Frontend Feud episode when we asked, “Name something that frontend devs complain about”, CSS was the #3 answer, which was pretty high up the list.
So it seems like it is a thing that people struggle with, complain about etc. I’m just curious, why do you think that is?
This sparked an interesting conversation where each of us shared some reasons we think this might be the case. (Listen along by clicking right here.)
Feross said it has a lot to do with people not taking the time to learn it:
When you’re just learning to use it, there’s no real constraints around it, and it’s more of like a design eye that you need… So you have this language, and you can make your content look like anything. Without those constraints there, I think that it’s hard to focus that. And then you don’t spend a lot of time thinking about it, and it just kind of cascades from there… (because it’s a stylesheet, get it?) 😉
Adam had a lot to say on the matter (not surprising!). He agreed with Feross on the education piece:
In addition to that, Adam believes there is something bigger going on where best practices haven’t solidified over the years (until recently):
Learning the language is different from learning how to apply it in a maintainable codebase and come up with a system for writing CSS that feels like it scales with your application, and that you can go back and maintain it… And there’s been so many competing philosophies for doing that over the years that it feels like there’s no one true answer.
Related: with Tailwind, Adam believes he has landed on his unified theory of CSS. 👇
I added to the conversation that people sometimes use CSS like a whipping boy when it isn’t really to blame:
It’s easy to conflate your frustration with the technology, when your actual frustration is your lack of design skills. Now I’m just speaking personally… I can get mad at the tool that I’m using – sometimes you know what you want to design, and implementing with this tool is difficult, for whatever reason, so that you get frustrated on that side. But then on the other side of the equation you don’t know what you wanna design, or you’re struggling with the actual design decisions, and there’s nobody to take that out on but yourself, or the tool that you’re using to do the design, so it’s easy to use it as kind of a scapegoat.
So there are a few of our thoughts on the matter. What do you think?
Does CSS deserve the multitude of gripes and complaints that it receives? Or it is unjustly maligned, and why might that be the case?