Tailwind CSS es un framework utility-first que proporciona clases de bajo nivel para construir interfaces web directamente en el HTML. Permite una gran flexibilidad , rapidez de desarrollo y consistencia visual .
✅ Ventajas de usar Tailwind
🔧 CSS Utility-first : clases reutilizables para cada propiedad de estilo.
🎨 Configuración personalizada : puedes adaptar el tema a tus necesidades.
⚡ Compilación optimizada : elimina clases no utilizadas (purge) y reduce el tamaño final del CSS.
🏗️ Maquetación directa en HTML : no necesitas escribir CSS personalizado para todo.
📦 Consistencia visual : diseño sistematizado mediante escalas predefinidas.
🔁 Fomenta la componetización de la UI.
📋 Componentes reutilizables de proyectos como Flowbite , DaisyUI , etc.
❌ Desventajas de Tailwind
🧱 HTML verboso con muchas clases.
👀 Difícil de leer al principio si no estás familiarizado.
🧹 Mantenimiento de clases complejo en proyectos grandes.
📘 Curva de aprendizaje para principiantes.
🔧 Dependencia de herramientas externas .
🧪 Requiere configuración inicial para aprovechar todo su potencial.
🏷️ Pérdida de semántica : se tiende a usar <div> con clases en lugar de etiquetas semánticas (<card>, <section>, etc.).
🚀 Instalación de Tailwind CSS
🔹 Opción rápida (CDN - Solo para pruebas)
< script src = " https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4 " ></ script >
⚠️ No recomendado para producción.
🔹 Instalación en un proyecto (Vite o CLI)
npm install tailwindcss @tailwindcss/vite
npm install -D tailwindcss @tailwindcss/cli
⚙️ Configuración básica
Vite Plugin (vite.config.js)
import { defineConfig } from ' vite '
import tailwindcss from ' @tailwindcss/vite '
export default defineConfig ({
plugins: [ tailwindcss ()],
Comando para compilar
npx tailwindcss -i ./input.css -o ./assets/output.css --watch
Quita el script CDN si lo usabas.
Asegúrate de importar output.css en tu HTML.
🧠 IntelliSense en VSCode
Instala la extensión Tailwind CSS IntelliSense para autocompletado, documentación emergente y más.
Además, si @theme da error en los .css, ya que es algo propio de tailwind y no de css asocia los archivos css a tailwind:
🎨 Customización del tema
Tailwind permite modificar su tema predeterminado desde el archivo tailwind.config.js.
Variables personalizadas
--font-inter: 'Inter', sans-serif ;
@apply para clases reutilizables
@ apply p- 2 size- 10 xs :size-12 flex items-center justify-center rounded-full hover:scale-110 transition-transform;
🅰️ Añadir fuentes personalizadas
src : url ( ' https://fonts.gstatic.com/s/inter/v3/UcCo7F8a1b4d5f6e2a4c.woff2 ' ) format ( ' woff2 ' );
Luego la puedes poner en el tema y usarla en tu CSS:
--font-inter: 'Inter', sans-serif ;
🌀 Animaciones
Animaciones personalizadas
Puedes definir animaciones con @keyframes y aplicar con @apply:
transform : rotate ( -3 deg );
Plugin de animaciones
npm install @midudev/tailwind-animations
Configuración :
import animations from ' @midudev/tailwind-animations '
@plugin '@midudev/tailwind-animations';
📝 Plugins útiles
📐 Breakpoints
Tailwind usa estas media queries por defecto:
Clave Tamaño mínimo sm640px md768px lg1024px xl1280px 2xl1536px
👥 Utilidad group y peer
Permite aplicar estilos a elementos hijos o hermanos cuando un evento ocurre:
< button class = " group-hover:rotate-12 transition-transform " > Hover me </ button >
Cheat Sheet
📦 Layout
Clase Descripción containerContenedor responsivo box-borderModelo de caja border-box box-contentModelo de caja content-box block inline inline-blockComportamiento de display flex inline-flexContenedor flex gridContenedor grid hiddenOculta el elemento
🧭 Flexbox & Grid
Clase Descripción flex-row flex-colDirección de los elementos items-centerAlineación vertical justify-centerAlineación horizontal gap-x-4 gap-y-2Espaciado entre items grid-cols-3N° de columnas en grid
📐 Spacing
Clase Descripción m-4 mt-2Margen p-4 px-2Relleno (padding) space-x-4Espaciado horizontal entre hijos space-y-4Espaciado vertical entre hijos
📏 Sizing
Clase Descripción w-1/2Ancho 50% h-64Altura fija (ej. 16rem) min-w-fullAncho mínimo completo max-h-screenAltura máxima pantalla
🎨 Color
Clase Descripción bg-blue-500Fondo azul text-whiteTexto blanco border-red-300Borde rojo placeholder-gray-400Placeholder gris
🔤 Tipografía
Clase Descripción text-sm text-2xlTamaño de texto font-boldNegrita italicCursiva tracking-wideEspaciado entre letras leading-tightAltura de línea text-centerAlineación centrada
🧱 Borders & Radius
Clase Descripción border border-2Ancho de borde border-gray-300Color del borde rounded rounded-lgBordes redondeados divide-x divide-yLíneas divisorias
🧊 Efectos visuales
Clase Descripción shadow shadow-lgSombra del elemento opacity-50Opacidad blur-smDesenfoque (blur) transitionTransición CSS duration-300Duración de transición hover:bg-gray-100Hover/focus state
🖱️ Interacción
Clase Descripción cursor-pointerCambia el cursor a “mano” select-noneNo se puede seleccionar texto pointer-events-noneDesactiva interacción
🧑💻 Responsive
Sufijos Dispositivos sm:>= 640px md:>= 768px lg:>= 1024px xl:>= 1280px 2xl:>= 1536px