Tailwind Não É Para Mim
As críticas ao Tailwind CSS se concentram em suas classes utilitárias prolixas, na “poluição” do HTML e no aprisionamento em torno da sintaxe não padronizada `@apply`, com alguns desenvolvedores argumentando que ele prejudica o HTML semântico, a acessibilidade e a manutenibilidade de longo prazo. Os apoiadores contra-argumentam que Tailwind melhora a produtividade, mantém o estilo colocalizado com os componentes e reduz problemas comuns do CSS, como nomeação, conflitos de especificidade e crescimento descontrolado de folhas de estilo — especialmente em apps grandes ou desenvolvidos rapidamente. A discussão destaca uma tensão mais ampla entre o HTML/CSS “chato” e abstrações mais novas, além de prioridades diferentes em torno de velocidade de desenvolvimento, legibilidade e preparação para o futuro.
Sentimento geral
- O tópico está nitidamente dividido: alguns veem Tailwind como um enorme ganho de produtividade, enquanto outros o consideram feio, proprietário e ruim para a manutenção a longo prazo.
- Muitos argumentam que a escolha depende em grande parte do fluxo de trabalho pessoal, da escala do projeto e da tolerância ao aprisionamento em ferramentas.
Produtividade vs. manutenibilidade
- Os fãs dizem que Tailwind:
- Elimina a necessidade de nomear classes CSS e de gerenciar grandes folhas de estilo.
- Mantém a “localidade de comportamento” — os estilos ficam ao lado da marcação/componente, sendo mais fáceis de copiar e colar e de raciocinar sobre.
- Acelera protótipos e MVPs, especialmente para quem não é especialista em CSS.
- Os críticos dizem:
- Atributos de classe longos tornam-se ilegíveis, especialmente com 20–50 utilities em um único elemento.
- Refatorar meses depois, ou por outra pessoa, é doloroso.
- Isso incentiva uma “sopa de div/span” e semântica fraca, prejudicando acessibilidade e desempenho.
CSS, arquitetura e separação de preocupações
- Um grupo enfatiza a separação: HTML para estrutura, CSS para estilo, JS para comportamento. Tailwind é visto como um retrocesso em direção a estilos inline e “spaghetti”.
- Outros argumentam que a separação estrita é superestimada; colocar estilos junto com componentes reduz a troca de contexto e armadilhas específicas de CSS (guerras de especificidade, abuso de
!important). - Há debate sobre se Tailwind é “apenas CSS inline” (críticos) ou um sistema de utilities com tema e restrições que evita muitos problemas de estilos inline (apoiadores).
Aprisionamento, ferramentas e portabilidade
- Alguns temem que o
@applydo Tailwind e os tokens de design definidos em JS sejam proprietários e tornem os estilos não portáveis. - Outros apontam ferramentas que convertem entre Tailwind e CSS puro, e projetos voltados a “des-Tailwinding” de código.
- Preocupação: precisar de uma etapa de build e de ferramentas em JS até para CSS; outros observam que muitas stacks já têm um pipeline de build.
Web components, custom elements e Shadow DOM
- Debate sobre usar custom elements (por exemplo,
<ui-card>) para evitar a sopa de divs:- Alguns argumentam que é possível usar tags não declaradas puramente para semântica e direcionamento de CSS.
- Outros enfatizam que isso não é o mesmo que verdadeiros custom elements, que exigem JS e Shadow DOM.
- Shadow DOM é criticado como uma abstração problemática que complica o estilo e a integração com Tailwind e outras ferramentas.
Alternativas e abordagens intermediárias
- Alternativas mencionadas: PicoCSS, CSS puro com recursos modernos, CSS Modules, Styled Components, LESS/SASS, bibliotecas atômicas/de utilities e ferramentas que extraem Tailwind para CSS regular.
- Um compromisso comum: usar utilities para layout/estrutura, classes personalizadas ou componentes para visual e aparência; agrupar classes Tailwind dentro de abstrações de componentes.
Meta-discussão: moda tecnológica e “tecnologia chata”
- Vários comentários lamentam a rotação constante de frameworks e a tecnologia como moda.
- Alguns defendem HTML/CSS/JS “chatos”, sem ferramentas pesadas; outros defendem a experimentação e observam que frameworks frequentemente influenciam padrões futuros.