Ir al contenido principal

Acordeones ultra simples con details + Tailwind (sin JS)

Si alguna vez has montado un acordeón con JS «porque toca»… prueba esto: HTML nativo con <details> y <summary>.

✅ Accesible por defecto
✅ Soporta teclado (tab/enter)
✅ Cero dependencias
✅ Y con Tailwind se ve pro en 2 minutos

1) El acordeón mínimo (y ya funciona)

<details class="rounded-xl border p-4">
  <summary class="cursor-pointer font-medium">
    ¿Qué incluye Flowtitude?
  </summary>

  <div class="mt-3 text-sm opacity-80">
    Componentes, utilidades, patrones y una base sólida para construir rápido.
  </div>
</details>

2) Con icono animado usando open: (Tailwind)

open: te deja aplicar estilos cuando el acordeón está abierto.

<details class="rounded-xl border p-4 open:border-zinc-900/20">
  <summary class="flex cursor-pointer list-none items-center justify-between font-medium">
    ¿Necesito JS?
    <span class="transition-transform open:rotate-180">⌄</span>
  </summary>

  <div class="mt-3 text-sm opacity-80">
    Nope. Esto ya abre/cierra con HTML nativo 🙂
  </div>
</details>

3) Versión “pro” con group-open: (control total del interior)

Si quieres que otros elementos dentro reaccionen al estado abierto, usa group + group-open:.

<details class="group rounded-xl border p-4">
  <summary class="flex cursor-pointer list-none items-center justify-between font-medium">
    ¿Puedo estilizar todo al abrir?
    <span class="transition-transform group-open:rotate-180">⌄</span>
  </summary>

  <div class="mt-3 text-sm opacity-80 group-open:opacity-100">
    Sí: iconos, separadores, colores, sombras… lo que quieras.
  </div>
</details>

📌 Idea clave: si el acordeón no necesita lógica compleja, details/summary + open: / group-open: es de esas «victorias rápidas» que encajan perfecto con el enfoque Flowtitude: menos fricción, más avance.

Acordeones ultra simples con details + Tailwind (sin JS)