---
> 1. Tailwind Makes Your Code Difficult to Read
This one is interesting to me. I think devs should take responsibility for writing easy to read code. A framework is a framework. I agree shotgunning classes all over markup is messy, but Tailwind doesn't do that - you do.
I would encourage the author to understand the concepts of extracting[0] and defining components[1] within Tailwind. That can make things very easy to read by the author's logic.
> 2. Tailwind Is Vendor Lock-in
Not necessarily. Especially if components are defined, if anything it makes it easier to change. Because you have a css class abstracted at the same level of your markup. In the world of various competing component frameworks, I would argue the opposite is true. You can just as easily apply tailwind component classes to Vue as to React as to Svelte etc.
> 3. Tailwind Is Bloated
As others have mentioned purge css[2]
> 4. Tailwind Is an Unnecessary Abstraction
"Because instead of repeating styles in your CSS, you’re now repeating them in your HTML", "you’re still writing the exact same amount of CSS, disguised as class names" This just isn't true if you use it correctly again see extracting and defining components.
> 5. Semantics Is Important. Tailwind Forgoes It.
Author recommends BEM and then in the end says "You don’t really need BEM, either". I agree with component scoped css, BEM is less important. Tailwind
> 6. Tailwind and Dev Tools Don’t Play Nicely
What? Anyone who experiences this should revisit CSS order of precedence. It behaves exactly as expected. I've never had a problem with chrome/firefox dev tools.
> 7. Tailwind Is Still Missing Some Key Features
So use css? Using tailwind isn't a binary option. You can use both tailwind and css. It's a tool, use it where it makes sense.
---
[0]: https://tailwindcss.com/docs/extracting-components
[1]: https://tailwindcss.com/docs/plugins#adding-components
[2]: https://tailwindcss.com/docs/optimizing-for-production
[3]: https://jigsaw.w3.org/css-validator/validator?uri=https%3A%2...