Fuck you, I won't use Tailwind.

And you can't make me. Unless you're my boss, but you're not.

If it just so happens you are my boss, then kindly disregard.

You suck at CSS

It's not that fucking hard. I learned that shit in high school and it's not that different today than it was 25 years ago. Coming up with class names is not hard. Centering a div is easy. Get over it and get good at CSS.

Anyone who is not good at CSS without frameworks will be terrible with one, even Tailwind. Stop using a crutch when you are more than capable of running.

Accessibility Matters

Semantic HTML elements are important for a reason, stop ignoring them. Filling up your HTML with div soup and a thousand utility classes is fucking garbage and looks like shit.

Tailwind is a tool. It's not a religion or a way of life. Get off your high horse and stop obsessing over a fucking hammer, I promise your life is not full of nails.

Just git gud at CSS. We believe in you.

Bad words are scary! 😭

Your virgin eyeballs don't like to read swear words? My point doesn't get through because of the devil's language? Well la-dee-da. Here's an explanation without profanity so you don't write this off because reading the word fuck might open a portal to hell.

The real cost of Tailwind comes in the HTML itself. Using semantic HTML elements like <article>, <nav>, <button>, and <header> is crucial for accessibility, allowing screen readers and assistive technologies to understand page structure. Tailwind's utility-first approach encourages developers to slap classes onto generic <div> and <span> elements, where semantic meaning is lost. And even with semantic HTML, you turn a simple <button> element that gets styled in a CSS file, into this monstrosity: <button class="bg-sky-500 hover:bg-sky-600 active:bg-sky-700 text-white px-4 py-2 rounded-lg">

What in tarnation?! Remember separation of concerns? When did we stop caring about that and being okay with filling up our HTML with garbage just to avoid touching a CSS file? When every element carries 10-15 utility classes, HTML becomes cluttered and unreadable, making it harder to audit for accessibility issues or maintain over time. Vanilla CSS with semantic HTML keeps markup clean and meaningful, which directly benefits users relying on assistive technologies.

Who wouldn't care about accessibility? Or rather, what...?

Vibe coding matters? (lol)

LLMs love Tailwind, and with good reason. The rigid structure and presets of Tailwind, plus every website using Tailwind that the LLMs scrape being so very samey, helps provide context and prevent hallucinations.

That's all well a good for an LLM, and those that use them and don't touch code (or at least want to touch as little of it as possible), but why would a human that already knows CSS very well bother taking the time to learn how Tailwind works, what preflight is and when to disable it or override it, what all these utility classes mean, etc.

Who wants to keep the Tailwind docs or a cheatsheet open to refer back to because I can't remember that one utility class that does the specific thing I want to do, because I have better and more interesting shit to remember than Tailwind's hundreds of utility classes?

Me, that's fucking who. And plenty of you too, I'd wager.