Configurar tema personalizado en Tailwind CSS
Clase 15 de 19 • Curso de TailwindCSS
Contenido del curso
Fundamentos de TailwindCSS
Diseño responsivo con TailwindCSS
Componentes y personalización avanzada
- 14

Instalación de Astro con Tailwind CSS
11:13 min - 15

Configurar tema personalizado en Tailwind CSS
Viendo ahora - 16

Plugins de Tailwind: forms y videos responsive
07:28 min - 17

Plugin Typography de Tailwind: clase prose
09:02 min - 18

Cómo Next.js y Astro integran Tailwind CSS
08:34 min - 19

Acelera tu desarrollo con IA y Tailwind CSS
03:11 min
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.mjs export default { 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.colors colors: { 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.
// theme.extend.fontFamily fontFamily: { sans: ['Inter', 'sans-serif'], heading: ['Ubuntu', 'sans-serif'], },
¿Cómo crear spacing y font size personalizados?
- 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.fontSize spacing: { 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.
- Mantienes la coherencia del sistema de diseño.
<!-- components/Header.astro --> <h1 class="text-XXS sm:text-3xl">Título</h1>
¿Cómo validar en el entorno de desarrollo local?
- Guarda cambios y ejecuta el entorno de desarrollo local con run dev.
- Recarga y verifica en mobile si la clase text-XXS aplica.
- En las herramientas del navegador verás la regla generada: text-XXS → font-size: 0.65rem.
- A medida que crece el viewport, el título pasa a 3xl y deja de aplicar la clase pequeña.
// Estructura completa combinada export default { content: ['./CRC/**/*.{astro,html,js,jsx,md,mdx}'], theme: { extend: { colors: { primary: { light: '#fffffe', default: '#ffdd00', dark: '#222222' }, }, fontFamily: { sans: ['Inter', 'sans-serif'], heading: ['Ubuntu', 'sans-serif'], }, spacing: { 72: '18rem' }, fontSize: { XXS: '0.65rem' }, }, }, plugins: [], }
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.