Tailwind permite un prototipado rápido, cuando conoces
sus "clases" y es, a priori, más sencillo de usar que Vainilla CSS
el cual requiere cierto nivel de conocimientos sobre su funcionamiento,
por contra aumenta el peso el sitio.
Pros
1. Prototipado rápido, por ejemplo, el código de los botones:
Tailwind usa lo que llama "Utility classes" o "clases de utilidad",
esto asigna una regla concreta a cada clase, por ejemplo, para alinear un texto
a la derecha podemos definir una clase de utilidad en CSS así:
.text-right {
text-align: right;
}
2. Librerías de componentes listos para usar, por ejemplo
Flowbite
3. Es un estándar en la industria.
Muchas empresas usan Tailwind y es una ventaja para el trabajo en equipos de desarrollo.
Contras
1. WPO o Web Performance Optimization
Hace unos días hice un pequeño proyecto con Tailwind y Flowbite.
Cargue los ficheros JS "minificados", de forma estática en local,
además algunos componentes de Flowite tienen su propio código, por ejemplo, un datepicker.
En Cuanto al peso de estos recursos tenemos lo siguiente:
Recurso
Peso
TailwindCss 3.4.1:
367.8 kB
Flowbite 2.3.0:
84.1 kB
DatePicker Flowbite:
43.1 kB
Para maquetar los botones del ejemplo anterior en principio
se requiere el primer fichero.
Si maquetamos los botones directamente con CSS
tendríamos, por ejemplo, el siguiente HTML:
Se puede apreciar que el HTML se reduce un poco, esto puede ser importante, según el caso.
Imaginemos, por ejemplo, que el par de botones se rotulan como "Editar" y "Eliminar"
y se añaden a cada registro de una página que muestra 50 registros. En este caso las "utility classes" aumentan bastante el tamaño de la página.
El CSS de ejemplo minificado no llega a 1 kB (731 bytes)
Conclusiones
Usar TailwindCss impacta en el WPO del sitio negativamente,
sin embargo, si el WPO no es muy importante y no posees buenos conocimientos de maquetación
es una opción recomendable.
Por cierto, si inspeccionas el código de este sitio, veras que hay "utility classes",
las uso hace años, mucho antes de oir hablar de Tailwind,
ésta es mi librería.
En realidad, uso un mix de "utility classes" con "clases orientadas a componentes"
como en el CSS del ejemplo y esta página en concreto carga dos ficheros CSS,
uno que se usa en todo el sitio con 9.6 kB de peso y otro que
se carga en las páginas del blog con 1.5 kB.