Olá,
A analogia com SQL na view é forte. Mas no front-end moderno, a "separação de preocupações" virou separação de arquivos, não de responsabilidades.
O Tailwind troca a semântica das classes pela transparência visual: você vê exatamente o estilo sem sair do componente. E resolve dores reais em escala: CSS que não cresce indefinidamente, zero context switching e consistência forçada por design tokens.
-
Sem Tailwind: Você lê
e precisa mapear o que .user-profile faz. Pode estar em um arquivo, pode estar em 5 arquivos, pode ter @apply ou media queries aninhadas. Você ganha "entendimento rápido" da semântica, mas perde a transparência visual. -
Com Tailwind: Você lê
. Você sabe exatamente como essa div se parece sem sair do arquivo. Você perde a semântica (user-profile), mas ganha transparência visual.
Não é necessariamente uma evolução, é troca de trade-offs. Pra quem preza arquitetura clássica, incomoda. Pra quem preza produtividade e manutenibilidade em times grandes, faz sentido.
E tá tudo bem odiar. Mas não é à toa que virou padrão.