Variantes y estados: hover, focus y feedback real

Aprende a diseñar estados de interacción en Tailwind para que botones y enlaces respondan bien al usuario.

Un componente sin estados se ve bien en captura, pero falla en uso real.

Con Tailwind puedes definir hover, focus y active en la misma línea donde declaras el estilo base.

El punto profesional está en el foco de teclado: si no se ve, la accesibilidad cae en picado.

En esta lección construirás un botón con estados claros y un enlace con feedback visual limpio.

  • No es decoración: los estados comunican acción disponible, foco y confirmación de interacción.
  • hover indica que un elemento es interactivo cuando usas ratón.
  • focus y focus-visible son clave para navegación por teclado.
  • active da sensación de respuesta inmediata al hacer clic o pulsar Enter/Espacio.
  • Estado base legible y estable.

Estados que mejoran UX de verdad

No es decoración: los estados comunican acción disponible, foco y confirmación de interacción.

hover indica que un elemento es interactivo cuando usas ratón.

focus y focus-visible son clave para navegación por teclado.

active da sensación de respuesta inmediata al hacer clic o pulsar Enter/Espacio.

  • Estado base legible y estable.
  • Hover sutil pero visible.
  • Focus con ring claro y contraste suficiente.
  • Active con pequeño ajuste de color o escala.

Botón completo con variantes

Este patrón te sirve como punto de partida para casi cualquier CTA.

Orden mental para escribir variantes

Empieza por el estilo base y luego añade estados en bloque para mantener claridad.

Si el estilo base no funciona, los estados no salvarán el componente.

Usa transition para suavizar cambios de color o sombra y evitar parpadeos duros.

Evita 8 estados distintos si no hay razón de producto: prioriza consistencia.

Tailwind CSS
06

Variantes y estados: hover, focus y feedback real

Aprende a diseñar estados de interacción en Tailwind para que botones y enlaces respondan bien al usuario.

Código del tema: Utilidades composables + responsive

📘 Teoría

Estados que mejoran UX de verdad

No es decoración: los estados comunican acción disponible, foco y confirmación de interacción.

hover indica que un elemento es interactivo cuando usas ratón.

focus y focus-visible son clave para navegación por teclado.

active da sensación de respuesta inmediata al hacer clic o pulsar Enter/Espacio.

  • Estado base legible y estable.
  • Hover sutil pero visible.
  • Focus con ring claro y contraste suficiente.
  • Active con pequeño ajuste de color o escala.

Botón completo con variantes

Este patrón te sirve como punto de partida para casi cualquier CTA.

Botón accesible con hover/focus/active
<button class="rounded-lg bg-indigo-500 px-4 py-2 font-semibold text-white transition hover:bg-indigo-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-300 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-900 active:bg-indigo-600">Guardar cambios</button>

Orden mental para escribir variantes

Empieza por el estilo base y luego añade estados en bloque para mantener claridad.

1

Si el estilo base no funciona, los estados no salvarán el componente.

2

Usa transition para suavizar cambios de color o sombra y evitar parpadeos duros.

3

Evita 8 estados distintos si no hay razón de producto: prioriza consistencia.

🧪 Aprende probando

Ejemplo Demo: barra de acciones con estados Dos botones con estados claros y foco visible para teclado.
Ejemplo Demo interactiva: estados completos (hover, focus, active, disabled, group, peer, checked) Practica estados de interacción y dependencias entre elementos en un único laboratorio visual.

🏁 Retos

Reto Reto: añade foco visible al botón Haz que el botón sea claramente accesible al navegar con teclado.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Tailwind CSS.

Test de Tailwind CSS

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .