7 stupid arguments CSS fanboys make

Bence Meszaros
6 min readMay 7, 2021

--

If you are new to my content you should know that I really, really despise CSS both as a language and as a technology. But what I hate even more are the zealots vehemently trying to argue that it is literally the best thing in the world since sliced bread.

CSS is objectively bad. It is one of those few things that are so obvious that I don’t even start to explain myself, because I literally don’t even know where to begin. It doesn’t mean that you cannot like CSS or that it is impossible to build with it, it just means that it is a badly designed, inconsistent and ad-hoc language. I think that if CSS is your level of awesomeness, you are setting the bar very low.

With all this being said, here are my top seven worst arguments CSS fanboys make. And to misquote Douglas Crockford, “warning, this article will hurt your feelings.”

1. “It’s actually not difficult in CSS, just use one of these tricks”

In CSS there are endless situations where you just can’t do what you want in a straightforward way. And I am not talking about just minor issues here and there, I am talking about fundamental layout building defects. But fear not, I am sure that you can find at least a dozen “CSS tricks” for any of your problems on the internet. There is even a website called css-tricks.com. I mean, really? Tricks?

Aren’t we supposed to be engineers building tech, and not some trained animals jumping through hoops for a treat?

Think about this for a second. You step into an elevator or onto a bridge and the structural engineer tells you that they didn’t actually weld the pieces together but don’t worry, they used a neat little trick with duct tape, that should do it.

Trick or treat? How about coherent rules instead?

Image: Nick Fewings

2. “CSS is amazing, you just don’t know how to use it”

One of my favorite pseudo-arguments: playing the incompetence card. It’s like wannabe contemporary artists saying that an empty room is art, you just don’t get it.

No. CSS is a teeny-tiny little language. It’s not rocket science. If you cannot learn it in a month, then it is a badly designed system. I appreciate that you’ve spent the majority of your life memorizing all those quirks and tricks but some of us already have a life and many, many other things to do.

3. “You are using it wrong”

This one is probably right. If I need a hammer but you give me a screwdriver I will most definitely misuse it. But again, whose fault is it really? CSS is ad-hoc because every solution is specific to one single use case. Using the same solution in any other case will result in unexpected behavior. Not to mention that if a new design trend appears, we are back to square one trying to craft a brand new CSS tool to chase it.

Problems need to be generalized before they can be solved efficiently, otherwise we are just going in circles. Isn’t it ironic that CSS grids are actually table based layouts in disguise?

“You are holding it wrong” — Image: Michael Weidemann

4. “CSS is not complicated, it’s robust”

This argument is probably the most versatile as it can be paired with any buzzword that nobody really understands like “responsiveness”, “accessibility” or “context”.

Is something utterly stupid in CSS? Well, it has to be because, you know, accessibility. After all nobody wants to mess with people with disabilities. Is something overcomplicated? Well, otherwise it wouldn’t be responsive. Everybody knows that most of the web traffic comes from mobile devices.

If an issue comes up with CSS, just throw some bullshit words around that make you look competent. For instance, if I have a problem with the fact that in CSS there are 16 different ways to center an element, you can just simply say that of course there are, because we have different contexts. You probably have absolutely no idea why we even have different contexts but hey, it sounds cool, it makes the system robust, and that’s good because more is always better. Except when it’s not.

Conjoined Triangles of CSS
The principles of CSS

5. “CSS is awesome because look at all these beautiful pure CSS sites”

This argument is pretty interesting and quite common in the world in general, not just when discussing CSS. Some people genuinely think that just because someone is satisfied with something everyone else should be too. I am truly amazed for example, that someone was able to draw a zombie using only CSS, but it’s just pretty irrelevant when it comes to what my clients need.

I am glad, that CSS in its current form is sufficient for many websites, but it isn’t for a lot more that couldn’t even be born. You think that CSS is awesome, because you have a highly biased statistical sample: you don’t see designs that cannot be built with CSS, you only see the ones that can be. And this makes you think that this is everything people would ever need.

It’s like when you want to buy a car, but the salesman says, “What about a nice bike instead? We have mountain bikes, we have track bikes, we have monocycles, tricycles, we even have tandems. Look at all these different types, colors and configurations, I am sure you’ll find something you like.”

6. “You don’t respect tradition”

If someone dares to criticize CSS long enough, at some point this straw-man fallacy will eventually come up. Things like “you don’t respect the 30 years of work in this field”, “Sir Tim Berners-Lee” or “backwards compatibility” are already included in my bullshit bingo but there are many other similar false arguments being thrown around in this topic.

To be clear, I do respect tradition, but I respect innovation even more. Excessive backwards compatibility blocks innovation, makes entire systems bloated and makes publishers lazy. I think that it is actually quite bad that modern browsers can still parse 30-year-old websites even though the server hardware underneath them has been replaced at least 5 times already. But if it is so important to you, just keep a Windows XP in your office and see how that goes and let the browsers evolve.

I mean look around in IT. If a software is a few years old, it is prehistoric. Each year we get new hardwares, we get new operating systems and these aren’t just minor upgrades. MacOS, for example, has received multiple major UI redesigns in the past few years (retina, flat, dark and now iOS flavors), introduced the APFS file system and transitioned entirely to the brand new M1 chip just to name a few. We have 5G, we have WiFi 6, we have high-speed consumer internet literally coming from space and we still use an ancient markup language and an incomprehensible cascading mess to jerry-rig 4D, interactive, accessible and responsive web apps in plain text.

Any system that wants to stay relevant has to be completely redesigned every 5–6 years. There is no other way to move forward. If you don’t take my word for it, just take it from Jim Keller.

People might think that HTML and CSS are too big to fail, but with the ever-growing power and popularity of JavaScript and WebAssembly, it is just a matter of time before someone flips the table and rewrites the rules. The only question is: will it also be the end of the free and open web as we know it?

7. “You are a fascist”

And last but not least, there is the good old ad hominem. If all else fails and you have no real arguments to make to protect your precious little CSS just use a basic personal attack instead of using your brain. After all, drinking the Kool-Aid is always easier than using logic.

Conclusion

CSS is bad. But if you think it’s the opposite, I am up for a debate. Just please use logic, not just scratch the surface with cult-like buzzwords. To put it simply with a quote:

“Never go full retard.”

--

--

Bence Meszaros
Bence Meszaros

Written by Bence Meszaros

Lead Software Engineer, Fillun & Decketts

Responses (15)