Un petit topic ouvert par frustration, mais avec une vraie question. On vient de me refiler un site web fait avec TailwindCSS, il paraît que c’est le futur trop bien et… le code HTML est horrible, plein de noms de classes imbitables copiés-collés d’une ligne à l’autre, et c’est atroce à modifier pour ajouter du contenu.
Ce n’est pas un problème avec les personnes qui ont fait le site, puisque la documentation de ce framework CSS (TailwindCSS) propose exactement de faire ça, comme si c’était une bonne pratique: Utility First:
Using utility classes to build custom designs without writing CSS
<div class="max-w-sm mx-auto flex p-6 bg-white rounded-lg shadow-xl"> <div class="flex-shrink-0"> <img class="h-12 w-12" src="/img/logo.svg" alt="ChitChat Logo"> </div> <div class="ml-6 pt-1"> <h4 class="text-xl text-gray-900 leading-tight">ChitChat</h4> <p class="text-base text-gray-600 leading-normal">You have a new message!</p> </div> </div>
Ensuite la doc utilise deux pages complètes pour dire que oui, c’est à vomir, mais en fait c’est trop bien, ça a l’air horrible mais c’est super génial. On se retrouve avec des noms de classe copiés-collés partout ? Les auteurs du framework ont la réponse: Extracting Components.
<!-- In use -->
<VacationCard
img="/img/cancun.jpg"
imgAlt="Beach in Cancun"
eyebrow="Private Villa"
title="Relaxing All-Inclusive Resort in Cancun"
pricing="$299 USD per night"
url="/vacations/cancun"
/>
<!-- ./components/VacationCard.vue -->
<template>
<div>
<img class="rounded" :src="img" :alt="imgAlt">
<div class="mt-2">
<div>
<div class="text-xs text-gray-600 uppercase font-bold">{{ eyebrow }}</div>
<div class="font-bold text-gray-700 leading-snug">
<a :href="url" class="hover:underline">{{ title }}</a>
</div>
<div class="mt-2 text-sm text-gray-600">{{ pricing }}</div>
</div>
</div>
</div>
</template>
Donc en fait le conseil c’est d’arrêter d’utiliser du CSS (à part comme langage pour que chacun définisse son jeu de balises de bases préférée, un peu différent du voisin), de hardcoder tout dans le style, et d’utiliser un moteur de template pour toutes les parties de son site web.
Et je ne pense pas que ce soit spécifique à TailwindCSS. J’ai utilisé Bootstrap récemment et c’est pareil, le résultat est tout aussi pourri.
On dirait qu’il y a un truc bizarre où les leçons du "HTML d’avant" (séparer le contenu et le style, etc.) ont été complètement oubliées, et qu’on essaie de se convaincre tous, collectivement, que tout mettre dans le HTML c’est trop génial.
Est-ce qu’il y a des gens ici qui y comprennent quelque chose et qui peuvent expliquer cette atmosphère de folie collective dans les frameworks CSS/HTML ?