Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feat(ux): abrir y cerrar el detalle con clic directo sobre el orbe

Abierto
#170 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
30/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
typescript
Área
design, desktop

Línea de trabajo

Read the interaction code for ProviderGauge and openFor, then inspect the existing hover timing and related tests. The issue leaves the click and hover behavior as product decisions, including whether clicking the visible provider opens or switches the panel; implementation can be scoped once those choices are resolved.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Qué propone

Abrir y cerrar el panel de detalle con un clic directo sobre el orbe, además del hover actual. Es un cambio de UX multiplataforma, así que va por separado del arreglo de Wayland (#169).

Motivación

Hoy el panel abre por mouseenter con OPEN_DELAY y cierra por mouseleave + temporizador. En Linux eso es frágil:

  • No hay una segunda señal que filtre el paso accidental del puntero. El muestreo nativo de presencia (#154) solo existe en macOS porque ahí WebKit deja de emitir mouseleave; en WebKitGTK los eventos del DOM funcionan, así que no hay motivo para añadirlo.
  • El único freno es el temporizador de apertura. Con 90 ms el detalle se dispara al recorrer la tira con el cursor; con 350 ms (lo que lleva ahora solo Linux en #169) el barrido deja de abrirlo, pero 350 ms también se siente lento cuando querés abrirlo a propósito.
  • Un clic es una intención explícita y no depende del recorrido del puntero.
Decisión de producto que hace falta

El clic tiene que coexistir con el hover, y ahí está la pregunta que no quiero resolver por mi cuenta:

  1. Clic como atajo, hover intacto. OPEN_DELAY se queda como está; el clic abre al instante. Simple y retrocompatible. El coste: en Linux el hover a 350 ms sigue sintiéndose lento para quien ya se acostumbró al clic.
  2. Clic como interruptor, hover reducido. Un clic sobre un orbe con el panel abierto lo cierra, y sobre otro orbe lo cambia directamente. Es el comportamiento que many desktop apps usan para menús popover. El coste: es un cambio de modelo mental respecto al hover puro, y hay que decidir si el hover sigue abriendo o solo cambia.
  3. Clic excluyente en Linux. Donde el hover es frágil, el clic es el mecanismo principal y el hover solo cambia entre orbes ya abierto. Es lo más coherente con el diagnóstico, pero diverge por plataforma.

También hay que decidir si el clic debe abrir también el panel ya visible desde el orbe correspondiente (por ejemplo, para cambiar de provider sin cerrar antes).

Por qué no va en #169

Porque no es un arreglo de una plataforma: es una decisión de interacción que afecta a los tres. En #169, OPEN_DELAY quedó acotado a Linux y el toggle por clic fuera, para no mezclar un cambio de comportamiento global con el acotamiento de los recoveries por plataforma.

Alcance de la implementación, si se aprueba
  • ProviderGauge acepta un onClick opcional; si no se pasa, el comportamiento actual queda intacto.
  • openFor(id, el, immediate) con immediate para saltar el temporizador.
  • Un test que fije que el clic abre, que el segundo clic sobre el mismo orbe cierra, y que sobre otro orbe cambia.
  • Decisión de plataforma documentada en el propio código.
Nota

Mientras tanto, en Linux el OPEN_DELAY de #169 queda en 350 ms. Si esta issue se aprueba con la opción 3, ese valor podría volver a 90 ms para Linux porque el clic pasa a ser la vía principal.

Lenguaje dominante
TypeScript
Estrellas
10
Forks
2
Merge medio
3 h 24 min
PR fusionados (30 d)
89

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de egdev6/quorb

Todos los issues de egdev6/quorb

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.