GH GambleHub

Efectos de orientación e interactividad

1) Función de guía en UX

Hover/press/focus es un lenguaje de retroalimentación. El usuario debe entender instantáneamente:
  • «¿Es interactivo?» (desplazamiento/cursor/retroiluminación),
  • "dónde estoy?" (estilo de enfoque),
  • «¿Qué va a pasar con la cábala?» (estado y affordance),
  • «¿La acción funcionó?» (active/pressed y posterior feedback).

Principio: los efectos refuerzan el significado, no lo sustituyen. La información clave y el acceso a la acción no deben ocultarse sólo detrás de la dirección.

2) Modelo de estados y semántica

Conjunto básico: 'default' → 'hover' → 'focus' → 'active/pressed' → 'disabled' → 'loading' (opcional).
Para los enlaces añadimos 'visited', para los interruptores, 'checked'.

Requisitos de diferenciación:
  • Entre estados, la diferencia visual es la forma/grosor/icono, no sólo el color.
  • Contraste de texto/iconos al fondo: ≥ 4. 5:1 (texto normal), ≥ 3:1 (grande/gordo).
  • El enfoque es visible sin guía (teclado/screenrider).

3) Dispositivos y consultas de medios

No todo tiene hover. Planifique la interactividad para diferentes tipos de entrada:
css
/ There is an exact pointer and hover (mouse/trackpad )/
@ media (hover: hover) and (pointer: fine) {/hover effects/}

/ No hover or rough pointer (touch/remote control )/
@ media (hover: none), (pointer: coarse) {/alternatives to hover/}

/ Any type of pointer (hybrid devices )/
@ media (any-hover: hover) {/minimal improvements/}
Reglas:
  • En los dispositivos de tracción, los efectos de guiado no son críticos para detectar la acción: utilice affordances explícitos: color/icono/marco/sugerencia.
  • No esconda la navegación/controles sólo «debajo de hover».

4) Duración y curvas

Breve y previsible:
  • Hover: 120-180 ms
  • Focus: 120-180 ms
  • Active/Pressed: 80–120 мс
  • Ripple/ink (si se utiliza): ≤ 240 ms, 1 ciclo

Curva predeterminada: 'cubic-bezier (0. 2, 0, 0. 2, 1)`

Active - más rápido ('cubic-bezier (0. 4, 0, 1, 1) '), la salida es más suave (' cubic-bezier (0, 0, 0. 2, 1)`).

5) Tokens del sistema de diseño (ejemplo)

json
{
"interactive": {
"duration": { "hover": 160, "focus": 160, "active": 90 },
"easing": { "std": "cubic-bezier(0. 2,0,0. 2,1)", "acc": "cubic-bezier(0. 4,0,1,1)" },
"shadow": { "hover": "var(--elev-2)", "focus": "0 0 0 3px var(--focus-ring)" },
"opacity": { "disabled": 0. 38, "muted": 0. 64 }
}
}

6) Botones: patrón de referencia

Default: texto legible ≥ 4. 5:1 al relleno.
Hover: −ΔL de fondo 0. 02–0. 04, sombra ligera, cursor 'pointer'.
Active: aún −ΔL 0. 02–0. 04, sombra acortada/compresión (escala 0. 98), dura. 80-100 ms.
Focus: anillo de contraste 2-3 px sin blur.
Disabled: курсор `not-allowed`/`default`, opacity ≤ 0. 38, sin efectos hover.

css
.button {
transition: background-color. 16s var(--ease), transform. 09s var(--ease-acc), box-shadow. 16s var(--ease);
}
@media (hover:hover) and (pointer:fine) {
.button:hover  { background: var(--btn-bg-hover); box-shadow: var(--shadow-hover); }
}
.button:active  { transform: scale(.98); }
.button:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--focus-ring); }
.button[disabled] { opacity:.38; pointer-events: none; }

7) Enlaces y acciones de texto

La diferencia no es solo por el color: el subrayado por defecto o por hover/focus.
Para guiar: ganancia de subrayado (espesor/offset), cambio de tono fácil.
'Visited' es otro matiz de la misma paleta, el contraste se ha guardado.

css a { text-decoration: underline; text-underline-offset:.12em; }
@media (hover:hover) and (pointer:fine) {
a:hover { text-underline-offset:.2em; }
}
a:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--focus-ring); }

8) Tarjetas, listas, tablas

Tarjetas:
  • Hover: sombra suave/marco de retroiluminación, cursor 'pointer' sólo si se hace clic en toda la tarjeta.
  • Active: prensado corto, resaltado de encabezado.
  • Focus: anillo visible alrededor de la tarjeta, no sólo dentro.
Filas de tabla:
  • Fondo Hover con Δ L 0. 02–0. 04; cadena activa - marco claro.
  • Los clics de línea sólo son válidos cuando hay affordance explícito (icono «→», sugerencia).
Listas:
  • Limite diligentemente el «leñador» de los retrasos en cascada - un máximo de 6-8 elementos (stagger 20-30 ms).

9) Formularios y campos de entrada

Hover en los campos: retroiluminación fina del marco (Δ L ~ 0. 05), sin cambiar el tamaño de la unidad.
Focus: anillo de contraste + cambio de color del marco; placeholder sigue siendo distinguible (≥ 3:1).
Error: color + icono/texto; «shake» corto es permisible ≤ 6 px, ≤ 140 ms, una vez.

10) Iconos y pequeños objetivos

Aumente la zona de clics a 32 × 32 (escritorio )/40 × 40 (móvil), incluso si el propio icono es 20-24 px.
Hover: cambio de opacidad/relleno/espesor, no más de 1-2 propiedades.
Active: breve «snap» por escala 0. 98.
Focus: anillo por contenedor de la zona de clic.

11) Disponibilidad (A11y) y teclado

Admite ': focus-visible' (para el ratón no mostramos estilos focales, para el teclado - mostramos).
Los elementos que crean pistas hover están obligados a tener un equivalente en el enfoque (el mismo contenido aparece en la tecla Amb/Enter).
Atributos aria: los interactivos tienen 'role', 'aria-pressed '/' aria-expanded '/' aria-current' según la situación.
Prefers-reduced-motion: reemplazamos la escala/desplazamiento por un mínimo (opacity/fill), desactivamos las pulsaciones.

css
@media (prefers-reduced-motion: reduce) {
{ transition-duration:.01ms! important; animation: none! important; }
}

12) Rendimiento

Anime sólo 'opacity' y 'transformación'; evite los 'width/height/left/top', los blur/sombras pesados en muchos elementos.
Use moderadamente 'will-change'; limpie después de terminar la transición.
En las listas/tablas hay efectos mínimos, sin repaintes «globales».

13) Hover-intent y «pegajosidad»

En el escritorio, reduzca los disparadores hover falsos:
  • Umbral de latencia de 80-120 ms antes de mostrar un complejo tooltip/menú.
  • «Pegajosidad» del cursor: si el usuario se mueve de un elemento a un menú en un ángulo, damos 200-300 ms de «pasillo» (triángulo Fitts).
  • Por touch - Reemplazamos hover por press o el botón explícito «todavía».

14) Tooltip/menú/dropdowns

Apertura: hover-intent (escritorio )/press (tach), cierre - por cuidado/blur/CES.
Posición - a la fuente, flecha alineada; max-width y las transferencias están incluidas.
Accesibilidad: 'role =' tooltip '', enlazamos 'aria-describedby'; para menús - 'role =' menu '+ control de flechas.

15) Especificidad de iGaming

Coeficientes/mandos: hover realza la fila/celda, pero no cambia las métricas de posicionamiento (sin «saltar»).
Tarjetas de torneos/bonos: hover puede «animar» el marco/icono, pero el texto CTA y las condiciones permanecen legibles (≥ 4. 5:1).
Notificaciones responsables (18 +, límites): sin efectos de distracción; solo se permite el subrayado de enlaces y un enfoque claro cuando se guía.
Botones de apuestas/compras: active-feedback obligatorio (clic visual/presionado) e inequívoco disable después del envío.

16) Ejemplos de recetas de interfaz

Botón-CTA (luz/oscuridad):
css
.cta {
background: var(--role-primary);
color: var(--on-primary);
transition: background-color. 16s var(--ease), transform. 09s var(--ease-acc), box-shadow. 16s var(--ease);
}
@media (hover:hover) and (pointer:fine) {
.cta:hover { background: var(--role-primary-hover); box-shadow: var(--elev-2); }
}
.cta:active { transform: scale(.98); }
.cta:focus-visible { box-shadow: 0 0 0 3px var(--focus-ring); }
Tarjeta:
css
.card { transition: box-shadow. 16s var(--ease), border-color. 16s var(--ease); }
@media (hover:hover) and (pointer:fine) {
.card:hover { box-shadow: var(--elev-2); border-color: var(--border-strong); }
}
.card:focus-visible { box-shadow: 0 0 0 3px var(--focus-ring); }
Fila de tabla:
css
.table tr { transition: background-color. 12s var(--ease); }
@media (hover:hover) and (pointer:fine) {
.table tr:hover { background: var(--row-hover); }
}
.table tr:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }

17) Anti-patrones

Ocultar actividades/menús críticos sólo por detrás de hover.
Cambiar las dimensiones/distribuciones cuando se mueven (saltos layout).
Apoyarse sólo en el color para distinguir estados.
Parpadeo, pulsaciones infinitas, glow «ácido» en los textos.
La ausencia de estilos focus o su invisibilidad sobre un tema oscuro.
Apuntar el cursor 'pointer' a elementos no interactivos.

18) Lista de comprobación de QA

Disponibilidad

  • Todos los interactivos son alcanzables a través del teclado; el enfoque ve.
  • El contenido de hover está disponible por 'focus '/' aria'.
  • El contraste de texto e iconos corresponde a WCAG.

la Conducta

  • Hover/active/disabled/visited son distinguibles por la forma y el tono.
  • No hay retraso en la respuesta> 120 ms.
  • Hay una alternativa al tac.

Performance

  • Sólo 'transformación '/' opacity' se animan.
  • No hay blur/sombras pesadas en muchos elementos.
  • En las listas largas, los efectos se minimizan.

19) Documentación en el sistema de diseño

Tabla de estados para componentes básicos (botones, referencias, tarjetas, campos, filas de tablas).
Señales de duración/curvas/sombras y código de ejemplo para luz/oscuridad.
Sección «Hover vs Touch»: reglas alternativas y ejemplos.
"Do/Don 't' con clips cortos y métricas de contraste.

Resumen breve

Los efectos de guía son una parte auxiliar pero crítica del lenguaje de interfaz. Hazlos concisos y predecibles, admite teclado y tac, proporciona contraste y enfoque visible, anima sólo propiedades baratas. Entonces, la interactividad aumenta la claridad y la velocidad de las acciones, en lugar de interferir con ellas.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Telegram
@Gamble_GC
Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.