As someone who writes a lot of CSS, and actually like CSS (yeah, unheard of, I know; I’m some alien), Tailwind doesn’t just seem like it’s reinventing the wheel and wrapping over an existing language, which is weird when you think about those two being mentioned together, is also bad for other reasons:
- UserCSS becomes near impossible to use
- Web scraping becomes a gigantic mess; LLMs become the only viable solution, and let’s not even get started on how crazy that sounds
- Semantic HTML becomes difficult to verify and build upon due to the sheer amouns of TEXT (and if you go “But you can put your most commonly used declarations together in a class selector and use that!” then congratulations you almost just wrote CSS), and in relation to this…
- It encourages bad CSS practices and thus bad HTML practices, as if the terrible walls of text isn’t already difficult to debug when working for accessibility
- RIP traditional SEO, and thus RIP any small players who want to create and maintain their own search engine, and only large companies with a lot of resources can hire people to spend a fuck ton of time to scrape and index the web. SEO already has a ton of problems as it were, and Tailwind just adds a new dimension to the problem.
If the web industry as a whole could slow down and learn to live with the cascade (seriously, the cascade is your friend!), and stop demanding that we do CSS without the C, that’d be great.
Thanks for walking pass me standing on my soapbox that virtually nobody cares about.
I hear you. I’m not crazy about it either. I use it at work and I get the point: it’s awkward to make CSS respect the encapsulation of component-based reactive frameworks like Vue or React. Tailwind alleviates that. On the other hand the actual HTML/CSS produced is disregarded by all measures except size maybe. It’s yet another layer of abstraction and its necessity is debatable at best.
That’s what I mean though, that the popular frameworks are made to fight the cascade.
Modern web development claims that apps aren’t documents and simply disregarded the cascade as an artifact of document-based design, but they’re entirely wrong IMO. The cascade is made for consistency and tempo of your websites, and that’s a universal design principle irrespective of whether you’re making a website, woodcrafting, pottery, or what have you. Tailwind itself claims to give devs the ability to be consistent, but we already have that, and it’s the cascade.
Managing the cascade is, understandably, non-trivial, especially in a large enough team. It requires discipline and a good understanding of what not to do, and can take time to practice and perfect. So I understand that in our crazy economic world where speed is everything, learning something new is treated as something that’s in the way, and so we churn out devs that aren’t proficient in CSS, and they then come to train other devs, who will also not be proficient in CSS. This all lowers the barrier of entry, which is good when looked at microscopically, but in the grand scheme of things, so much of our energy is put into fighting the cascade. Just think of all the styling solutions for CSS-in-JS frameworks that we’ve churned through in the last 10 years. Madness IMO, but economies gotta economize.
Edit: yeah sorry, I get really passionate about this topic
Maybe I’m old, but I completely agree with you. There is a natural tendency to try reinvent something when you don’t understand it enough to be comfortable with it. Then that new thing lacks the maturity and scrutiny that the old thing went through to survive the test of time. This is basically how overconfident tech bros are transforming the web.
Thanks, I hate it
Is it April Fool’s Day already?
This honestly is what tailwind looks like to people who know css.
Tailwind is shit for anyone who does usercss.





