Cuando trabajas con Tailwind CSS y comienzas a reutilizar componentes como cards o botones, repetir las mismas clases utilitarias una y otra vez se convierte en un problema real. La extracción de componentes es la solución que ofrece Tailwind para mantener tu código limpio sin abandonar el enfoque utility first.
¿Qué es la extracción de componentes en Tailwind CSS?
La extracción de componentes permite agrupar múltiples clases utilitarias dentro de una sola clase personalizada [00:40]. En lugar de copiar y pegar largas cadenas de clases en cada elemento que se repite, defines una única clase que las contiene todas. Esto es especialmente útil para elementos que aparecen varias veces en la interfaz, como cards, botones o secciones recurrentes.
Dentro de la documentación oficial de Tailwind, esta funcionalidad se encuentra en la sección llamada "extracción de componentes", ubicada junto a las opciones de utility first y responsive [00:30].
¿Cómo funciona la directiva apply?
El corazón de la extracción de componentes es la directiva @apply [01:05]. Esta directiva permite tomar clases utilitarias de Tailwind y aplicarlas dentro de una clase CSS personalizada. Por ejemplo, en la documentación se muestra un botón llamado .button-indigo que utiliza @apply para incorporar todos sus estilos en un solo lugar.
El proceso es sencillo:
- Abres tu hoja de estilos de Tailwind CSS, la que se encuentra en tu carpeta source donde importas las directivas.
- Creas una nueva clase, por ejemplo
.cards, con su punto al inicio como cualquier clase CSS [01:50].
- Dentro de las llaves, escribes
@apply seguido de todas las clases utilitarias que necesitas.
- Copias los estilos que tenías en tu HTML y los pegas después de
@apply.
¿Por qué es necesario ejecutar un build después de los cambios?
Un detalle crucial que no puedes pasar por alto: Tailwind necesita un archivo de configuración que se compile [02:30]. Cada vez que realizas cambios en tu hoja de estilos personalizada, debes correr el comando run tailwind build en la terminal. Sin este paso, los cambios no se reflejarán en el navegador.
Una vez que el build se ejecuta correctamente, puedes regresar a tu archivo HTML y reemplazar toda la cadena de clases utilitarias por el nombre de tu nueva clase. En este caso, donde antes había un bloque extenso de estilos, ahora simplemente aparece la palabra card [02:20].
¿Cuándo conviene usar la extracción de componentes?
Aunque esta técnica es poderosa, Tailwind no está diseñado para que absolutamente todas las clases se manejen de esta forma [03:05]. La recomendación es evaluar con cuidado cuáles son los componentes que realmente vas a reutilizar múltiples veces en tu interfaz.
Algunos criterios para decidir cuándo aplicar extracción de componentes:
- El componente aparece más de una vez en la interfaz.
- Las clases utilitarias que lo componen son extensas y difíciles de leer cuando se repiten.
- Quieres mantener el principio de código limpio sin sacrificar la flexibilidad de Tailwind.
El principio de utility first sigue siendo la base de Tailwind. La extracción de componentes es un complemento para casos específicos donde la repetición genera ruido en tu código. Identifica esos elementos recurrentes en tu proyecto y aplica esta técnica solo donde realmente aporte valor.
¿Ya identificaste qué componentes de tu proyecto necesitan extracción? Comparte tu experiencia en los comentarios.