TailwindCSS
Tailwind is in our feeds again this weekend because some chudley on the Internet has decided to be ultra-negative on Dev.to. This is the post in question.
I don't agree with him: I think his take on Tailwind CSS is pretty entry-level. The "it's just inline styles with extra steps!" argument is so pervasive and so easily-dismissable that the Tailwind guys even have a whole section on their site just to address it.
That being said: I've tried Tailwind; it's fine, but I don't think it's a good fit for the way that I like to write my styles. In fact, I don't think it's a very good fit for anyone who cares a lot about CSS. And not all developers do; in fact, I think a lot of developers actively don't want to care about CSS, or styling in general. Which is fine, I guess.
The Internet doesn't need another white dude explaining why Tailwind is or isn't bad—there are plenty of those already. I think that most of the people who don't like Tailwind actually don't like Tailwind's proponents—this'd explains why other CSS frameworks don't attract the same vitriol that Tailwind does.
I think there are probably 3 main reasons why Tailwind attracts a troop of Reply Guys on Twitter:
- Tailwind looks pretty good out of the box
- Tailwind lets you completely ignore CSS
- The Tailwind team has been very public about their success
I think that particular combination of factors breeds just the right kind of "well, actually" guy that likes to run rampant on Twitter, since it feeds into the Reply Guy's three fundamental attributes: a lack of critical thinking, a focus on style over substance, and public winning.
Style: It looks pretty good out of the box
I think the first thing to address is that Tailwind looks very good. If Bootstrap feels like Twitter circa 2011, and Bulma feels like Bootstrap should have been circa 2016, Tailwind feels like, well, it feels like something entirely new, and entirely 2021.
I think a lot of people are responding well to that: their Tailwind UI project—a paid library of drop-in components—has seen widespread enough adoption that other big tech names are starting to take notice of Tailwind-ish-looking sites across the Internet. Even Wathan himself (in the comments of the tweet linked above) admits that many more people are using Tailwind UI without changing the defaults than he could have expected.
The great thing about Tailwind UI is that it builds in accessibility and best practices—the Tailwind team have clearly sweated the details here. But not everyone is building with Tailwind UI—a lot of people just copy paste long strings of class names from elsewhere and are good to go. Some people edit or tweak their Tailwind UI components to their own use case. Tailwind is still seen as more of a "how it looks" framework than a "how it works" framework.
And a lot of people come to the Tailwind ecosystem because Tailwind looks so much better than its competitors, and because the Tailwind team have considered the details.
Which leads me into the next point: Tailwind attracts a the sort of person who doesn't want to put in unnecessary legwork.
Critical thinking: you don't need to think about CSS
Adam Wathan, Steve Schoger, and the rest of the folks at the Tailwind team are excellent critical thinkers. They have particularly good eyes for design and developer experience. They've thought through all of the concerns, they've anticipated arguments. They have approached their product from all angles, and the Tailwind ecosystem that we see today is a result of that.
And all of the work that Wathan & co. have put in is meant to prevent you having to do that work on your end. This is by design—it's part of Tailwind's marketing efforts. A lot of the copy on the Tailwind's site is about how easy Tailwind makes things. Most of Wathan's most popular videos on YouTube are of him building conventionally difficult interfaces (kanban boards, email clients) at lightning speed. Tailwind UI's primary selling point is how easy it makes things for you: just copy-paste into your editor.
The main Tailwind pitch is that you're thinking about your design too much. That you're putting too much thought into CSS. The big H1 on the Tailwind CSS site as of May 2021 reads "Rapidly build modern websites without ever leaving your HTML." As in, don't even bother opening a CSS file.
And this don't-think-about-it attitude is extremely popular on Twitter, since it generates engagement and interactions on a gut level. This isn't news. Twitter is designed to be consumed 10 seconds at a time—not long enough to carefully reason through an argument, but definitely long enough to get a gut feeling on something. Which makes Twitter a perfect platform for Tailwind Reply Guys, who love to win in as few words as possible. Mic drop.
Which, let's talk more about that.
Winning: being public about Tailwind's success
The Tailwind ecosystem has brought Adam Wathan & co. a lot of success, and a lot of wealth. Tailwind UI, the component library I mentioned above, made something like $2 million in 6 months. The team has been expanding rapidly (and publically), and every job posted goes for 6 figures. Adam Wathan got the fancy $6k Apple display (the one with the $1k stand, which yes he got too) right after it came out and promotes it at every opportunity.
And Tailwind Reply Guys on Twitter feed the cycle, promoting and declaiming success and shouting down dissenters. Tailwind succeeds extremely publically.
Which, I'm glad for Adam Wathan, and I'm glad for Steve Schoger and I'm glad for the rest of the team at Tailwind. I don't want to hook a but onto the end of that sentence—given the opportunity to work there, I'd want to work there too. They're living the dream, aren't they? He's getting the true value of his labour, which is more than I can say for most people.
Buuuuut.
People like to hook onto public success stories: Elon Musk, Steve Jobs. Americans are particularly bad at this because of the national inclination towards hero worship, but it happens at a general level across the board. And it happens with a very particular type of person: the dude who has been told throughout his life that hard work will naturally lead to success. That money is equal to virtue. That if you're successful, if you're wealthy, it's because you are a Good Person and you do The Right Thing and you Work Hard and your success belongs to you and only you.
It's no coincidence that this demographic largely overlaps with the kind of person who has never experienced any form of systemic oppression. I'm talking about the kind of oppression that will keep you down and keep you poor even if you spend you entire life being a Good Person and doing The Right Thing and Working Hard. I'm talking about the kind of oppression that's largely invisible to people who don'texperience it: to the point where a lot of people who don't experience it will tell you that it just doesn't exist.
This isn't a post about oppression or success or work, though. I'm just trying to explain where the majority of the vocal Tailwind proponents on Twitter are coming from. They're certainly not coming from a place of oppression; and it certainly looks like they are coming from a culture that embraces Winning and Success and the Almighty Dollar and denies evidence that sometimes a smart idea doesn't lead to instant success, since in Tailwind's case, it did. And from that perspective it's very easy to feel that Tailwind is for Winners, and that people who don't like Tailwind are Losers, because they're not working hard enough, or they're not working smart enough, or they just don't get it.
What I'm not saying
I'm not saying that Tailwind is a bad framework. Tailwind is actually a very good framework. It is easy to use. It is well-designed. I'm not sure that I agree with utility-first, and it's not what I reach for first, but I certainly do agree that utility classes are a valuable part of any CSS design system.
Wathan and company do great work and I want them to continue. But so long as their followers continue to be insufferable on the Internet, there'll be a vocal anti-Tailwind faction out there to respond to them.
And Brian Boyko at Dev.to, from the link at the top of the post: he's a bonehead.
Next
Some meandering thoughts on what it means to be an effective person in a tech career.