Diseña con confianza y velocidad: aprende a configurar Tailwind CSS en Astro y a extender el theme con colores, tipografías, espaciados y tamaños de fuente personalizados. La clave está en un tailwind.config.mjs bien definido y en aprovechar las clases de utilidad sin escribir CSS adicional.
¿Cómo configurar Tailwind CSS en Astro?
Astro genera el archivo de configuración en la raíz: tailwind.config.mjs. Desde ahí exporta la configuración por defecto y permite adaptarla a lo que el proyecto necesita. Tailwind trabaja en tiempo de compilación para leer las clases que usas y generar solo los estilos necesarios. Así mantienes el CSS optimizado.
¿Dónde vive tailwind.config.mjs y qué hace?
Está en la raíz del proyecto.
Exporta una configuración por defecto ajustable.
Permite integrar plugins y soporte para Tailwind CSS.
¿Qué archivos escanea Tailwind CSS?
Se define una regla de contenido dentro de "CRC" y en todos los niveles.
Detecta extensiones como .astro, .html, .js, .jsx, .md, .mdx.
Con esto, Tailwind reconoce las clases usadas y exporta los estilos necesarios.
// tailwind.config.mjsexportdefault{content:['./CRC/**/*.{astro,html,js,jsx,md,mdx}',],theme:{extend:{// aquí irán tus extensiones personalizadas},},plugins:[],}
¿Cómo extender el theme para colores, tipografías y espaciado?
Astro te deja personalizar y extender según tus necesidades. En theme.extend puedes crear configuraciones propias: colores de marca, familias tipográficas, spacing y font size. Así alineas la UI con el layout y la guía de estilo.
¿Cómo definir una paleta de colores primary con light, default y dark?
Crea un objeto de color primary con variantes.
Usa light para la versión clara, default como color principal y dark para la versión oscura.
Esta paleta suele venir del equipo de diseño y mantiene la coherencia visual.
// theme.extend.colorscolors:{primary:{light:'#fffffe',// tu color claro.default:'#ffdd00',// tu color principal.dark:'#222222',// tu color oscuro.},},
¿Cómo asignar font family para sans y heading?
Define fontFamily.sans con tu tipografía base, por ejemplo Inter.
Define fontFamily.heading para títulos, por ejemplo Ubuntu.
Incluye una segunda opción como sans-serif para mayor compatibilidad.
Si necesitas una regla fuera de los múltiplos de cuatro, agrega spacing propio.
Ejemplo: clave 72 con valor 18rem para espacios grandes.
Para texto muy pequeño, crea un font size "XXS" = 0.65rem y úsalo donde haga sentido.
// theme.extend.spacing y theme.extend.fontSizespacing:{72:'18rem',},fontSize:{XXS:'0.65rem',},
¿Cómo aplicar y verificar los cambios en componentes?
La magia está en usar las nuevas utilidades por su nombre. Lo que declares en colors, fontFamily, spacing y fontSize se invoca con sus prefijos de utilidad: text para tamaños, font para familias, bg o text para colores, gap/m-/p- para espaciados.
¿Cómo usar las clases de utilidad personalizadas en components/header?
Si el título tenía text-2xl y en small pasaba a 3xl, puedes probar con text-XXS para un caso puntual.
Evitas CSS inline o clases personalizadas sueltas.
Con estas prácticas, Tailwind queda 100% alineado a tu diseño y sigues aprovechando las clases de utilidad. ¿Qué otra extensión del theme te gustaría ver aplicada a tu proyecto con dark mode o UI específica? Cuéntalo en los comentarios.
Tailwind se actualizó recientemente a la versión 4
Ya no es necesario configurar en el archivo tailwind.config.mjs.
Solo hay que seguir la [Documentación](https://tailwindcss.com/docs/adding-custom-styles)
para agregar nuevas variables de tema con tailwind 4.0 lo hacen de esta forma
Para quienes insisten en utilizar la versión 4.0 de la herramienta, les confirmo que a 31/03/2025 esta versión básicamente tiene dos tipos de instalación. La tipo CLI y la tipo PostCSS que es la que se emplea cuando se instala junto con otros frameworks como en este caso Astro.
De estos tipos de instalación la opción PostCSS es la que permite instalar plugins adicionales y realizar personalización en la configuración de Tailwind, ya que la instalación del tipo CLI, ni siquiera genera archivo Tailwind.config.js
Otro argumento por el que creo que el problema está asociado al instalador de esta dependencia en TailwindCSS 4.0, es que al utilizar un entorno ideal empleando Docker, se presentaron los mismos problemas de la instalación del tipo PostCSS a nivel local además de no encontrar en Docker Hub una imagen oficial de TailwindCSS 4.0 con este tipo de instalación.
Por lo anterior les sugiero instalar la versión 3.4.17 que aparece al seleccionar dicha versión en la esquina superior izquierda de la página oficial de Tailwind, en donde podrán encontrar la instalación del tipo PostCSS para dicha versión.
Esta instalación se debe realizar después de haber instalado Astro y en lugar de emplear el comando utilizado por el profesor en el minuto 3:08 de la clase 14 de este mismo curso que se ve a continuación,
se inicia la instalación del tipo PostCSS de la versión 3.4.17, la cual inicia con el comando:
Si se ejecutó el comando que empleó el profesor para agregar Tailwind, es necesario borrar las dependencias instaladas que se reportan como resultado de esta ejecución, antes de iniciar la instalación de la versión 3.4.17, para lo cual se debe emplear el comando:
Una vez borradas las dependencias e instalada la versión 3.4.17 de Tailwind de tipo PostCSS, les sugiero que revisen su archivo de configuración de astro.config.mjs, para eliminar las líneas que hagan referencia a Vite, ya que esto evitará que se generen conflictos debido a que la instalación de la versión 4.0 que se acaba de borrar, incluye este empaquetador por defecto.
Después de borrar la información de Vite del archivo de configuración de Astro, se deben crear los archivos de configuración tanto de Tailwind como de PostCSS, utilizando el siguiente comando:
Finalmente, dado que el archivo de configuración de PostCSS se genera con el nombre postcss.config.js, la extensión debe ser cambiada por mjs, lo cual se puede hacer manualmente o utilizando el siguiente comando:
Este cambio de extensión se hace porque el archivo postcss.config.mjs emplea sintaxis de ESModules, lo cual exige que por convención se emplee la extensión mjs en lugar de js, aunque sino es cambiada, el proyecto funciona correctamente.
Este procedimiento resuelve lo necesario para instalar la versión 3.4.17 de TailwindCSS e integrarla a Astro sin problemas. Si alguien realizó una instalación limpia del tipo PostCSS en la versión 4.0 de TailwindCSS, le agradezco publicar el procedimiento.
Oscar, yo instalé tailwind con el CLI, a mi no me salió ese archivo.
A mi no me funciono de esa manera lo que yo hice fue lo siguiente:
1.- Ejecutar el comando
- npm create astro@latest
2.- Escribir el nombre del proyecto
3.- Seleccionar el template
4.- Intalar dependencias
5.- Iniciar repositorio de git
6.- Ingresar a la carpeta del proyecto y buscar el archivo src\pages\index.astro en ese archivo agregue el cdn de tailwind en las secciones respectivas
7.- Continué con la edición del Header conforme lo hace el video
tengo una pregunta, si estoy usando la nueva version de Tailwind en que parte puedo hacer los estilos personalizados?
Lo puedes hacer en el archivo css que usas para importar "tailwindcss"
npm install -D tailwindcss@3 con este comando y la versión que usa el profe le crea los archivos