Super Guia Componentes y Clases Tailwind CSS

Tailwind CSS es un framework CSS orientado a utilidades (utility-first) para el desarrollo y maquetado rápido de páginas y aplicaciones web.

A diferencia de Bootstrap, no proporciona componentes preconstruidos con nombres rígidos (como .btn o .card); en su lugar, ofrece miles de clases de bajo nivel que puedes combinar directamente en tu HTML para crear diseños únicos sin escribir una sola línea de CSS propio.

Es open source, cuenta con una de las comunidades más activas de la web actual, y es el estándar de la industria para proyectos modernos gracias a su flexibilidad y optimización de rendimiento.

Al final del articulo les dejo los archivos de descargar que incluye el HTML de los ejemplos que vamos a ver en esta guia y ademas el tailwind compilado en css para usar en lugar de un cdn.

Cómo Usar Tailwind CSS

Para integrar Tailwind CSS en tus proyectos, existen dos caminos principales dependiendo de la etapa de desarrollo:

1. Uso de la CDN (Ideal para Prototipos y Pruebas)

La forma más rápida de empezar es añadir su script de desarrollo directamente en tu archivo HTML. Esto compila las clases al vuelo directamente en el navegador.

<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>

2. Instalación por CLI / PostCSS (Para Producción)

En proyectos profesionales, Tailwind se instala mediante Node.js para que un compilador analice tus archivos y genere un archivo CSS optimizado que contiene únicamente las clases que realmente usaste, reduciendo el peso del archivo a unos pocos kilobytes.

npm install -D tailwindcss

Plantilla Básica de Tailwind CSS

Esta plantilla básica incluye el acceso a Tailwind mediante CDN y estructura un menú de navegación junto con un contenedor responsivo de tres columnas. Puedes guardar este código como tailwind1.html para ejecutarlo en tu navegador:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Plantilla Básica de Tailwind CSS</title>
    <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-50 text-gray-800 font-sans antialiased">

  <nav class="bg-gray-900 text-white shadow-md">
    <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
      <div class="flex items-center justify-between h-16">
        <div class="flex items-center space-x-4">
          <a href="#" class="text-xl font-bold tracking-tight">TailwindApp</a>
          <div class="hidden md:flex space-x-4">
            <a href="#" class="bg-gray-800 px-3 py-2 rounded-md text-sm font-medium text-white">Dashboard</a>
            <a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium transition">Features</a>
            <a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium transition">Pricing</a>
          </div>
        </div>
      </div>
    </div>
  </nav>

  <main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mt-10">
    <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
      <div class="bg-white p-6 rounded-lg shadow-sm border border-gray-200 text-center font-medium">Columna 1</div>
      <div class="bg-white p-6 rounded-lg shadow-sm border border-gray-200 text-center font-medium">Columna 2</div>
      <div class="bg-white p-6 rounded-lg shadow-sm border border-gray-200 text-center font-medium">Columna 3</div>
    </div>
  </main>

</body>
</html>

Equivalencias de Conceptos y Listado de Utilidades

En Tailwind, al no existir componentes con nombres fijos, construimos la UI combinando utilidades atómicas. A continuación, se detalla cómo se estructuran las categorías principales:

Categoría en BootstrapConcepto Equivalente en Tailwind CSSClases Clave Utilizadas
Grid System & ContainersFlexbox, CSS Grid y utilidades de ancho máximocontainer, mx-auto, flex, grid, grid-cols-*, gap-*
FormulariosEstilizado manual de elementos nativosfocus:ring-2, focus:border-blue-500, rounded, border-gray-300
Paleta de ColoresEscala cromática numérica muy ampliabg-blue-600, text-gray-700, border-red-200
InteractividadControl de transiciones y estados dinámicoshover:*, focus:*, active:*, transition, duration-300

Paleta de Colores en Tailwind CSS

A diferencia de los nombres fijos de Bootstrap, Tailwind ofrece una paleta extendida donde cada color tiene una escala de intensidad que va desde 50 (el más claro) hasta 950 (el más oscuro). Los modificadores se aplican con prefijos como bg-, text-, o border-.

  • Primary / Accent (Generalmente Blue o Indigo): bg-blue-600 o text-indigo-600. Utilizado para los llamados a la acción principales.
  • Success (Green / Emerald): bg-emerald-600. Para confirmaciones y estados positivos.
  • Danger (Red / Rose): text-red-600 o bg-rose-600. Errores, alertas críticas o eliminación de datos.
  • Warning (Amber / Yellow): bg-amber-500. Llamados de atención y estados preventivos.
  • Neutrals (Slate, Gray, Zinc): bg-slate-100, text-zinc-800. Ideales para tipografía, bordes y fondos de la interfaz.

Datos y Tablas en Tailwind CSS

Las tablas en Tailwind se construyen con elementos HTML nativos y se les da formato celda por celda o fila por fila. Para que sean responsivas, se envuelven en un contenedor con desbordamiento horizontal automático.

<div class="overflow-x-auto rounded-xl border border-gray-200 shadow-sm">
  
  <table class="min-w-full border-collapse table-auto text-sm text-left">
    
    <thead class="bg-gray-900 text-white font-semibold uppercase tracking-wider">
      <tr>
        <th class="px-4 py-3">Código</th>
        <th class="px-4 py-3">Producto</th>
        <th class="px-4 py-3 text-right">Precio</th>
      </tr>
    </thead>
    
    <tbody class="divide-y divide-gray-200 bg-white text-gray-700">
      <tr class="odd:bg-white even:bg-gray-50/80 hover:bg-blue-50/40 transition duration-150">
        <td class="px-4 py-3 font-mono text-xs text-gray-500 whitespace-nowrap">#INV-001</td>
        <td class="px-4 py-3 font-medium text-gray-900">Licencia SaaS Premium</td>
        <td class="px-4 py-3 text-right font-semibold">$99.00</td>
      </tr>
      <tr class="odd:bg-white even:bg-gray-50/80 hover:bg-blue-50/40 transition duration-150">
        <td class="px-4 py-3 font-mono text-xs text-gray-500 whitespace-nowrap">#INV-002</td>
        <td class="px-4 py-3 font-medium text-gray-900">Soporte Técnico Anual</td>
        <td class="px-4 py-3 text-right font-semibold">$350.00</td>
      </tr>
      <tr class="odd:bg-white even:bg-gray-50/80 hover:bg-blue-50/40 transition duration-150">
        <td class="px-4 py-3 font-mono text-xs text-gray-500 whitespace-nowrap">#INV-003</td>
        <td class="px-4 py-3 font-medium text-gray-900">Soporte Técnico Mensual</td>
        <td class="px-4 py-3 text-right font-semibold">$250.00</td>
      </tr>
    </tbody>

  </table>
</div>

💡 Tip Extra: Puedes alternar el color de las filas de forma automática usando el modificador even:bg-gray-50 o odd:bg-gray-50 en las etiquetas <tr> dentro del <tbody>.

Elementos de Formulario en Tailwind CSS

Formulario de Registro (Ejemplo)

Este es un ejemplo de un formulario de registro en Tailwind Aplicando elementos como campos de entrada, de password, checkbox y botones.

<div class="flex min-h-screen items-center justify-center bg-gray-50 px-4 py-12 sm:px-6 lg:px-8">
  <div class="w-full max-w-md space-y-8 rounded-2xl bg-white p-8 shadow-sm border border-gray-100">
    
    <!-- Encabezado del Formulario -->
    <div class="text-center">
      <h2 class="text-3xl font-bold tracking-tight text-gray-900">Crear cuenta</h2>
      <p class="mt-2 text-sm text-gray-600">
        ¿Ya tienes cuenta? 
        <a href="#" class="font-medium text-blue-600 hover:text-blue-500 transition">Inicia sesión aquí</a>
      </p>
    </div>

    <!-- Formulario -->
    <form class="mt-8 space-y-5" action="#" method="POST">
      
      <!-- Fila de Nombre y Apellido (Grid de 2 columnas en PC, apilados en móvil) -->
      <div class="grid grid-cols-1 gap-4 sm:grid-cols-2">
        <div class="space-y-1.5">
          <label for="first-name" class="block text-sm font-medium text-gray-700">Nombre</label>
          <input type="text" id="first-name" name="first-name" required 
                 class="w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 transition" 
                 placeholder="Juan">
        </div>
        <div class="space-y-1.5">
          <label for="last-name" class="block text-sm font-medium text-gray-700">Apellido</label>
          <input type="text" id="last-name" name="last-name" required 
                 class="w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 transition" 
                 placeholder="Pérez">
        </div>
      </div>

      <!-- Campo de Email -->
      <div class="space-y-1.5">
        <label for="email" class="block text-sm font-medium text-gray-700">Correo electrónico</label>
        <input type="email" id="email" name="email" required 
               class="w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 transition" 
               placeholder="juan.perez@correo.com">
      </div>

      <!-- Campo de Contraseña -->
      <div class="space-y-1.5">
        <label for="password" class="block text-sm font-medium text-gray-700">Contraseña</label>
        <input type="password" id="password" name="password" required 
               class="w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 transition" 
               placeholder="••••••••">
        <p class="text-xs text-gray-500">Debe tener al menos 8 caracteres.</p>
      </div>

      <!-- Casilla de Términos y Condiciones -->
      <div class="flex items-start">
        <div class="flex h-5 items-center">
          <input type="checkbox" id="terms" name="terms" required 
                 class="h-4 w-4 rounded border-gray-300 text-blue-600 accent-blue-600 focus:ring-blue-500">
        </div>
        <div class="ml-3 text-sm">
          <label for="terms" class="font-medium text-gray-700 select-none">
            Acepto los <a href="#" class="text-blue-600 hover:underline">Términos de servicio</a> y la <a href="#" class="text-blue-600 hover:underline">Política de privacidad</a>.
          </label>
        </div>
      </div>

      <!-- Botón de Envío (Submit) -->
      <div>
        <button type="submit" 
                class="w-full inline-flex items-center justify-center rounded-lg bg-blue-600 px-4 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-blue-700 active:bg-blue-800 outline-none focus:ring-2 focus:ring-blue-500/30 transition duration-150">
          Registrar cuenta
        </button>
      </div>

    </form>
  </div>
</div>

Form Control (Campos de Entrada)

En Tailwind, eliminas el aspecto por defecto del navegador utilizando appearance-none y diseñas el input desde cero para garantizar un foco visual impecable.

<div class="space-y-1.5">
  <label class="block text-sm font-medium text-gray-700">Email</label>
  <input type="email" class="w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm placeholder-gray-400 shadow-sm outline-none focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 transition" placeholder="nombre@correo.com">
</div>

💡 Tip Extra: El modificador focus:ring-2 junto con un color opaco (como focus:ring-blue-500/20) crea una sombra suave de enfoque que mejora drásticamente la estética.

Select (Menú Desplegable)

Puedes diseñar listas desplegables elegantes utilizando utilidades de borde, fondo y espaciado.

<div class="space-y-1.5">
  <label class="block text-sm font-medium text-gray-700">Elegir lenguaje</label>
  <select class="w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-700 shadow-sm outline-none focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 transition">
    <option selected disabled>Selecciona una opción...</option>
    <option value="1">PHP</option>
    <option value="2">Python</option>
  </select>
</div>

Checks & Radios (Casillas y Botones de Opción)

Modificar el color nativo de los checkboxes es extremadamente simple en Tailwind utilizando la utilidad accent-*.

<div class="flex items-center space-x-3">
  <input type="checkbox" id="checkOpt" class="h-4 w-4 rounded border-gray-300 text-blue-600 accent-blue-600 focus:ring-blue-500">
  <label for="checkOpt" class="text-sm font-medium text-gray-700 select-none">Recordar sesión</label>
</div>

Estructuras de Contenido y Contenedores

Tarjetas (Card)

Las tarjetas se maquetan agrupando utilidades de fondo, bordes, sombras y espaciados internos (padding).

<div class="max-w-sm rounded-xl border border-gray-200 bg-white shadow-sm overflow-hidden">
  <div class="border-b border-gray-100 bg-gray-50/70 px-5 py-3 font-semibold text-gray-700">Encabezado</div>
  <div class="p-5 space-y-3">
    <h5 class="text-lg font-bold text-gray-900 tracking-tight">Título de Tarjeta</h5>
    <p class="text-sm text-gray-600 leading-relaxed">Este es un bloque estructurado de ejemplo usando componentes utilitarios de Tailwind CSS.</p>
    <a href="#" class="inline-flex justify-center rounded-md bg-blue-600 px-4 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-700 transition">Ir al módulo</a>
  </div>
  <div class="border-t border-gray-100 bg-gray-50/70 px-5 py-2.5 text-xs text-gray-500">Actualizado hace 2 min</div>
</div>

💡 Tip Pro: Al usar overflow-hidden en el contenedor padre, te aseguras de que los fondos de los encabezados o imágenes respeten el radio redondeado (rounded-xl) de las esquinas.

Componentes de Botones y Cargadores

Botones o Buttons

La flexibilidad de Tailwind permite definir estados de interacción completos (hover, focus, active) de manera completamente explícita.

<div class="flex flex-wrap gap-3 p-6 bg-white rounded-xl shadow-sm border border-gray-100">
  <button class="px-4 py-2 bg-blue-600 text-white font-semibold rounded-lg hover:bg-blue-700 transition shadow-sm">Primary</button>
  <button class="px-4 py-2 bg-gray-600 text-white font-semibold rounded-lg hover:bg-gray-700 transition shadow-sm">Secondary</button>
  <button class="px-4 py-2 bg-emerald-600 text-white font-semibold rounded-lg hover:bg-emerald-700 transition shadow-sm">Success</button>
  <button class="px-4 py-2 bg-red-600 text-white font-semibold rounded-lg hover:bg-red-700 transition shadow-sm">Danger</button>
  <button class="px-4 py-2 bg-amber-500 text-gray-950 font-semibold rounded-lg hover:bg-amber-600 transition shadow-sm">Warning</button>
  <button class="px-4 py-2 border border-blue-600 text-blue-600 font-semibold rounded-lg hover:bg-blue-600 hover:text-white transition">Outline Primary</button>
  <button class="px-4 py-2 border border-emerald-600 text-emerald-600 font-semibold rounded-lg hover:bg-emerald-600 hover:text-white transition">Outline Success</button>
  <button class="px-4 py-2 border border-amber-500 text-amber-500 font-semibold rounded-lg hover:bg-amber-500 hover:text-white transition">Outline Warning</button>
  <button class="px-4 py-2 border border-red-600 text-red-600 font-semibold rounded-lg hover:bg-red-600 hover:text-white transition">Outline Danger</button>
</div>

Botones Nuevos

En tailwind se pueden crear botones muy diferentes a los que tienen bootstrap 5, por ejemplo glassmorfismo y gradientes y mas.

<div class="flex flex-wrap items-center justify-center gap-8 p-12 bg-gray-950 rounded-2xl border border-gray-800 shadow-2xl">

  <div class="p-4 bg-gradient-to-tr from-indigo-900/40 to-purple-900/40 rounded-xl border border-white/5">
    <button class="px-5 py-2.5 bg-white/10 text-white font-medium text-sm rounded-xl border border-white/20 backdrop-blur-md hover:bg-white/20 active:scale-95 transition-all outline-none">
      Glassmorphism
    </button>
  </div>

  <button class="px-5 py-2.5 bg-amber-400 text-black font-bold text-sm uppercase tracking-wider rounded-lg border-2 border-black shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-[2px_2px_0px_0px_rgba(0,0,0,1)] active:translate-x-[4px] active:translate-y-[4px] active:shadow-none transition-all outline-none">
    Neo-Brutalist
  </button>

  <div class="p-[2px] bg-gradient-to-r from-pink-500 via-red-500 to-yellow-500 rounded-xl inline-block group cursor-pointer transition-transform active:scale-95">
    <div class="px-5 py-2.5 bg-gray-950 text-white font-semibold text-sm rounded-[10px] group-hover:bg-transparent transition duration-300 select-none">
      Gradient Border
    </div>
  </div>

  <div class="relative group inline-block active:scale-95 transition-transform">
    <div class="absolute -inset-0.5 bg-gradient-to-r from-cyan-500 to-blue-500 rounded-lg blur opacity-50 group-hover:opacity-100 transition duration-300"></div>
    <button class="relative px-5 py-2.5 bg-black text-sm text-white font-medium rounded-lg leading-none flex items-center divide-x divide-gray-700 outline-none">
      <span class="pr-3 text-cyan-400 font-bold">SaaS Pro</span>
      <span class="pl-3 text-gray-300 group-hover:text-white transition duration-200">Glow Effect &rarr;</span>
    </button>
  </div>
</div>

Spinners o Cargadores

Crear animaciones complejas como bucles giratorios se resuelve con una sola clase nativa de Tailwind: animate-spin.

<button class="inline-flex items-center gap-2 rounded-md bg-blue-600 px-4 py-2 text-sm font-semibold text-white disabled:opacity-75 cursor-not-allowed shadow-sm" disabled>
  <svg class="h-4 w-4 animate-spin text-white" fill="none" viewBox="0 0 24 24">
    <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
    <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path>
  </svg>
  Cargando datos...
</button>

Alertas e Indicadores Visuales

Alerts (Mensajes de Estado)

Las alertas combinan colores de fondo de baja intensidad con texto de alta intensidad para garantizar un contraste perfecto y legible acorde a las normas de accesibilidad.

<div class=" p-8  rounded-2xl shadow-2xl space-y-4 border">

  <div class="flex items-center gap-2.5 rounded-xl border border-emerald-500/20 bg-emerald-500/10 px-3.5 py-2.5 text-emerald-400 text-sm font-medium">
    <svg class="h-4 w-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
    <span>¡Éxito! El registro fue guardado.</span>
  </div>

  <div class="border-l-4 border-amber-500 bg-slate-800/60 px-3.5 py-2.5 rounded-r-xl flex items-center gap-2.5 text-amber-400 text-sm font-medium">
    <svg class="h-4 w-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
    <span>Tu sesión expirará pronto.</span>
  </div>

  <div class="flex flex-col sm:flex-row sm:items-center justify-between gap-2 rounded-xl border border-blue-500/20 bg-blue-500/10 px-3.5 py-2.5 text-blue-400 text-sm font-medium">
    <div class="flex items-center gap-2.5">
      <svg class="h-4 w-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
      <span>Nueva versión disponible.</span>
    </div>
    <button class="text-xs font-bold bg-blue-500 text-white px-2 py-1 rounded hover:bg-blue-600 transition self-end sm:self-auto">Actualizar</button>
  </div>

  <div class="flex items-center justify-between gap-2.5 rounded-xl border border-red-500/20 bg-red-500/10 px-3.5 py-2.5 text-red-400 text-sm font-medium">
    <div class="flex items-center gap-2.5">
      <svg class="h-4 w-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
      <span>Error al procesar el pago.</span>
    </div>
    <button class="text-red-400 hover:text-red-200 transition p-0.5 rounded">
      <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>
    </button>
  </div>

  <div class="flex justify-center">
    <div class="inline-flex items-center gap-2 rounded-full bg-slate-800 border border-slate-700 px-3 py-1 text-slate-300 text-xs font-medium shadow-sm">
      <span class="h-1.5 w-1.5 rounded-full bg-indigo-400 animate-pulse"></span>
      <span class="font-bold uppercase text-[10px] text-indigo-400 tracking-wider">Tip</span>
      <span>Usa atajos de teclado para navegar.</span>
    </div>
  </div>

  <div class="flex items-center gap-2.5 rounded-xl border-2 border-black bg-purple-400 px-3.5 py-2 text-black font-black text-xs uppercase tracking-tight shadow-[3px_3px_0px_0px_rgba(0,0,0,1)]">
    <span>⚡ ¡Cupón aplicado con éxito!</span>
  </div>

  <div class="flex items-center gap-2.5 rounded-xl border border-white/10 bg-white/5 px-3.5 py-2.5 text-gray-200 text-sm font-medium backdrop-blur-md">
    <svg class="h-4 w-4 text-cyan-400 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 10V3L4 14h7v7l9-11h-7z" /></svg>
    <span>Servidor optimizado (<span class="text-cyan-400">12ms</span>).</span>
  </div>

  <div class="flex items-center gap-2.5 rounded-xl border border-zinc-700 bg-zinc-800/80 px-3.5 py-2.5 text-zinc-300 text-sm font-medium">
    <div class="h-2 w-2 rounded-full bg-zinc-500 animate-ping"></div>
    <span>Modo fuera de línea activado.</span>
  </div>

  <div class="rounded-xl bg-gradient-to-r from-orange-500 to-amber-500 p-[1px]">
    <div class="flex items-center justify-between gap-2 rounded-[11px] bg-slate-900 px-3.5 py-2 text-white text-xs font-semibold">
      <span>🔥 Oferta por tiempo limitado.</span>
      <a href="#" class="text-amber-400 hover:underline">Ver</a>
    </div>
  </div>

  <div class="relative group">
    <div class="absolute -inset-0.5 bg-gradient-to-r from-fuchsia-500 to-pink-500 rounded-xl blur opacity-25 group-hover:opacity-50 transition duration-300"></div>
    <div class="relative flex items-center gap-2.5 rounded-xl border border-slate-800 bg-slate-950 px-3.5 py-2.5 text-gray-300 text-sm font-medium">
      <span class="h-2 w-2 rounded-full bg-fuchsia-500 shadow-[0_0_8px_#d946ef]"></span>
      <span>Logro desbloqueado: <span class="text-fuchsia-400 font-bold">Maestro CSS</span>.</span>
    </div>
  </div>

</div>

Descargar

A continuacion te dejo el codigo completo de todos los ejemplos que vimos en esta guia y ademas el tailwind compilado css para que lo uses en tus proyectos sin usar el CDN.

Link: https://drive.google.com/file/d/17RRTf0gBbgQMVcLI5_ims-7vF7kReVyS/view

Conclusión

Mientras que Bootstrap 5 te da velocidad inicial mediante un catálogo cerrado de componentes visuales uniformes, Tailwind CSS te otorga el control absoluto sobre los pixeles y el diseño final. Al no tener que “pelear” contra estilos heredados de clases del framework, la personalización e implementación de interfaces a medida se vuelve un proceso mucho más limpio, fluido y altamente escalable.

👉 DESCUBRE INVENTIO MAX AQUÍ

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading