QuicklyCSS v2 · Docs
States
Versión v2.0 alpha.2
MÓDULO•UTILIDADES

Utilidades · Interacción

States (variantes interactivas)

Aplica estilos en respuesta a hover, foco, activación y controles deshabilitados; también coordina elementos relacionados mediante group y peer.

v2.0

Siete contextos

Hover, focus, focus-visible, active, disabled, group y peer cubren los estados frecuentes.

Sintaxis explícita

El prefijo indica cuándo actúa la utilidad: hover:text-secondary.

Foco visible

Las variantes focus-visible conservan una señal clara para la navegación con teclado.

Los dos puntos forman parte del nombre

En HTML escribe hover:text-secondary. El escape hover\:text-secondary se utiliza únicamente dentro del selector CSS.

Código + resultado

Compara todas las familias de estado

Selecciona una opción y prueba el resultado con puntero, teclado o el control nativo correspondiente.

¿Cambia el propio elemento?Usa hover:, focus: o active:
¿El control no está disponible?Usa el atributo HTML y disabled:
¿Responde otro elemento?Usa group-* o peer-*
HTML
<a class="border hover:text-secondary hover:bg-muted hover:border-primary hover:opacity-75" href="#">
  Ver proyecto
</a>
Resultado aplicadoHOVER · 4 PROPIEDADES
Pasa el cursor sobre el control

Opciones: texto primary, secondary, success, warning, danger, info, muted y text; fondo y borde admiten los siete colores semánticos; opacidad admite 50, 75 y 100.

Puntero

Hover para color, fondo, borde y opacidad

El prefijo hover: aplica la declaración mientras el puntero permanece sobre el propio elemento.

hover:text-*TEXTO

Color tipográfico

<a class="hover:text-secondary" href="#">
  Ver proyecto
</a>

Cambia el color sin modificar fondo ni borde.

hover:bg-*FONDO

Superficie interactiva

<button class="border hover:bg-primary hover:text-primary hover:border-primary">
  Guardar cambios
</button>
Resultado

bg-primary es una superficie clara; texto y borde primarios mantienen el contraste.

hover:border-*BORDE

Énfasis de contorno

<a class="border hover:border-info" href="#">
  Más información
</a>

Requiere que el elemento ya tenga estructura de borde.

hover:opacity-*OPACIDAD

Intensidad visual

<img class="hover:opacity-75"
  src="proyecto.jpg" alt="Proyecto">
ResultadoInterior de un proyecto arquitectónico

También admite hover:opacity-50 y hover:opacity-100.

Teclado y formularios

Focus y focus-visible cumplen funciones distintas

focus: responde a cualquier foco; focus-visible: limita la señal visual a los casos en que el navegador la considera necesaria.

ClaseEfectoUso recomendado
focus:outline-noneElimina el outline nativo.Sólo cuando se proporciona una alternativa visible.
focus:text-primaryCambia el color del texto.Enlaces y controles con etiqueta.
focus:bg-primaryCambia el fondo.Controles que necesitan énfasis adicional.
focus:border-primaryCambia el color del borde.Campos con borde previamente definido.
focus-visible:ringOutline de 2px.Navegación visible con teclado.
focus-visible:ring-2Outline de 3px.Énfasis reforzado en acciones principales.
No elimines el foco sin reemplazoSi utilizas focus-visible:outline-none, combínalo con focus-visible:ring o focus-visible:ring-2.

Respuesta y disponibilidad

Active y disabled

Active comunica la pulsación actual; disabled refleja controles nativos que no pueden ejecutarse.

active:scale-95ACTIVE

Escala al 95%

Produce una respuesta física breve durante la pulsación.

active:opacity-75ACTIVE

Opacidad al 75%

Reduce temporalmente la intensidad del control.

active:bg-primaryACTIVE

Fondo primario

Refuerza el estado presionado con color.

disabled:opacity-50DISABLED

Opacidad al 50%

Comunica indisponibilidad sin ocultar el control.

disabled:pointer-events-noneDISABLED

Sin eventos de puntero

Evita interacciones del puntero en un control deshabilitado.

disabled:cursor-not-allowedDISABLED

Cursor no permitido

Añade una pista visual; no reemplaza el atributo HTML disabled.

Referencia oficial

Clases disponibles

Esta tabla refleja el archivo fuente de la versión 2.0.0-alpha.2.

FamiliaClases disponibles
Hover · textohover:text-primary, hover:text-secondary, hover:text-success, hover:text-warning, hover:text-danger, hover:text-info, hover:text-muted, hover:text
Hover · fondohover:bg-primary, hover:bg-secondary, hover:bg-success, hover:bg-warning, hover:bg-danger, hover:bg-info, hover:bg-muted
Hover · bordehover:border-primary, hover:border-secondary, hover:border-success, hover:border-warning, hover:border-danger, hover:border-info, hover:border-muted
Hover · opacidadhover:opacity-50, hover:opacity-75, hover:opacity-100
Focusfocus:outline-none, focus:text-primary, focus:bg-primary, focus:border-primary
Focus visiblefocus-visible:outline-none, focus-visible:ring, focus-visible:ring-2
Activeactive:scale-95, active:opacity-75, active:bg-primary
Disableddisabled:opacity-50, disabled:opacity-30, disabled:pointer-events-none, disabled:cursor-not-allowed
Group hovergroup, group-hover:text-primary, group-hover:bg-primary, group-hover:border-primary, group-hover:opacity-75
Peerpeer, peer-checked:text-primary, peer-checked:bg-primary, peer-checked:border-primary, peer-focus:ring, peer-focus-visible:ring

Recomendaciones

Estados comprensibles y accesibles

01

No dependas sólo de hover

Toda acción debe funcionar también con teclado, tacto y tecnologías de asistencia.

02

Conserva el foco

Evita eliminar el outline si no añades una señal visible equivalente o superior.

03

Usa atributos nativos

disabled:* necesita el atributo disabled; la apariencia no sustituye la semántica.

04

Suaviza con intención

Combina estados con Transition y respeta siempre prefers-reduced-motion.