← Todos los artículos

Ventanas en el frontend

El botón flotante de JustZix — una gota de 3 letras con hover state, snap, menú popup

El botón flotante es la pequeña gota de 3 letras que ves en cada página donde JustZix tiene una regla activa. Es la entrada a toda la UI de JustZix — un clic abre un popup con los toggles, el drag te permite reposicionarlo, el snap lo conecta a las barras de acciones. Pequeño visualmente, pero condensa mucha funcionalidad. Este artículo lo abre por dentro.

Label de 3 letras por carpeta

Cada carpeta en JustZix (la unidad principal de agrupación de las reglas) tiene un icono opcional — máx. 3 caracteres, automáticamente en MAYÚSCULAS. El botón flotante muestra el icono de la primera carpeta que coincide (por prefijo URL):

folder.icon = 'qa'      → label «QA»
folder.icon = 'dev'     → label «DEV»
folder.icon = '🐛'      → label «🐛» (emoji truncado a 3 caracteres)
folder.icon = (vacío)   → label «ZIX» (default)

Idea: un power user tiene 5-10 carpetas por proyecto, cada una con un marcador de 3 letras distinto. Ver «QA» en el botón flotante significa que las reglas QA están activas. Feedback visual antes de cualquier interacción.

4 estados visuales — color + opacidad

EstadoClase CSSCuándoAspecto
jz-ontodas las carpetas que coinciden activadasColor plenoColor de acento de la carpeta (o teal por defecto)
jz-mixedalgunas carpetas on, otras offSemitransparenteAtenuado — señala «atención, no todo activo»
jz-offtodas las carpetas que coinciden desactivadasGrisBajo contraste — «inactivo»
jz-globally-offextensión desactivada globalmenteRojizo / llamativo«Toda la extensión desactivada»

El estado se actualiza automáticamente al storage onChanged — conmuta una regla desde cualquier sitio (página de opciones, popup widget, menú contextual de Chrome) → el botón flotante cambia de aspecto enseguida.

Anatomía de un clic — el popup widget

Clic izquierdo en el botón flotante → se abre un popup widget junto a él. El widget contiene:

Un clic fuera cierra el popup (event listener a nivel de document). Pulsar un checkbox activa setBarHidden / setCssPaneEnabled / setFolderEnabled — todas encadenadas vía Promise para evitar race conditions.

Snap connections con barras y panes

El botón flotante participa en las snap connections como pseudo-elemento con el ID '__float'. Mecánica idéntica a los panes:

  1. Arrastra el botón flotante cerca de una barra de acciones (≤20px) → snap, los dos elementos = un grupo
  2. Arrastra cualquier elemento del grupo → todo el grupo se mueve junto
  3. Clic derecho en el botón flotante → menú contextual con las opciones «Desconectar de X»

Caso de uso: botón flotante como «manija de anchor» de todo el grupo. Barras + Output Console enganchadas al botón flotante → arrastrar el botón flotante = mueves todo el dashboard.

Clic derecho = menú contextual

Mismo mecanismo que las barras / CSS pane — menú contextual por elemento. El botón flotante tiene:

Sin fuente/tamaño — el botón flotante es de tamaño fijo (32×32px). Ahí no hay texto que personalizar aparte de la label de 3 letras (que viene de folder.icon).

Caso de uso 1 — Indicador visual del scope

Tienes 3 carpetas: «ALL» (funciona en todas partes), «GHB» (solo github), «GMA» (solo gmail). Cada una con un color distinto (verde, negro, rojo) y un icono de 3 letras. Visitas github.com → el botón flotante muestra «GHB» negro. Visitas gmail.com → «GMA» rojo. Sin comprobar el popup widget ves el scope.

Caso de uso 2 — Pausa global rápida

Llamada de Skype, demostración de una nueva feature a alguien en producción, JustZix podría molestar. Clic en el botón flotante → toggle «Pausa global» → la extensión desactiva todas las reglas. Tras la demo → pulsa de nuevo → activado. Sin entrar en chrome://extensions.

Caso de uso 3 — Ocultar por página hasta la recarga

La regla «Force dark mode» coincide también con el sitio de tu banco — que ya tiene su propio modo oscuro. El botón flotante tapa el logo del banco. Clic derecho en el botón flotante → «Ocultar hasta la recarga» → el botón flotante desaparece solo en esta pestaña, hasta el F5. Las reglas siguen corriendo, solo la UI está oculta.

Caso de uso 4 — Posición por dominio

La posición del botón flotante es persistente en chrome.storage.sync. Por defecto abajo a la derecha (anchor BR). Arrastra → guarda → la próxima visita a ese dominio lo devuelve donde lo dejaste. La posición es por ID de elemento, pero todas las páginas comparten el ID '__float' — así que la posición es global entre los dominios. Si la quieres por página → usa el snap con una barra que sea scope-específica.

Trampas

Qué hacer después

El botón flotante es el «punto de entrada» a toda la UI de JustZix — todos los demás elementos (barras, panes) son más contextuales. Mira también:

Instala JustZix — el botón flotante aparecerá solo en cuanto añadas tu primera regla.

Valora este artículo

Sin valoraciones — sé el primero.

Pruébalo tú mismo

Instala JustZix y pega cualquier snippet de este artículo. Dos minutos de cero a una regla funcionando en todos tus dispositivos.

Obtener JustZix

Funciones · Cómo funciona · Ejemplos · Casos de uso