En fait @mhash tu t’es répondu à toi même sur l’intérêt de Tailwind. Tu fais en gros du CSS avec des composants agnostiques que tu customises avec des classes utilitaires.
Tailwind est simplement l’extension de ce système sauf qu’il est inversé. Habituellement nous les intés on fait une abstraction avant de coder de ce qui doit être un composant. Tailwind propose de créer cette abstraction après les faits, quand on voit que le pattern se répète et qu’il mérite donc de devenir une abstraction.
C’est à cela que sert la fonction @apply
(lien), et aussi parce que eux aussi trouvent cela illisible tous ces noms de classe. L’exemple donné dans l’article est assez clair : combien de fois tu réutilises une navbar? Aucune fois ou presque, tu en fais une et basta. Du coup est-ce vraiment utile d’en faire une abstraction ? Probablement pas, des classes utilitaires suffisent.
En soi c’est pour ce workflow que je trouve Tailwind intéressant et que je vais l’essayer. Je pense que ça peut rendre le boulot moins pénible et plus efficace. J’étais pas du tout convaincu pour les même raisons que beaucoup, notamment parce qu’il faut se mettre d’accord si qui crée les classes utilitaires et est-ce qu’elles sont assez complètes pour permettre la souplesse dont on a besoin ? Et aussi comment faire pour que personne ne crée une duplicate de classe utilitaire ou une nouvelle règle de style ? Mais si on utilise Tailwind qui apporte la majorité des classes nécessaires, on évitera ce problème aussi.
Bref je sens que c’est pas naturel ce qu’ils proposent, mais j’ai envie d’essayer. Je le prendrais pas pour tous les projets (notamment pour les petits) mais pour les gros cela pourrait carrément aider.