Saltar al contenido
EspañolEnglish
Todos los componentes (204)

Cinta de progreso

Superficies · ReadingProgress

Qué es y cuándo usarlo

La cinta fina pegada arriba (o abajo) de la ventana que dice cuánto llevas leído de una página larga. Se mide sola al desplazar.

Cuándo usarlo

  • Artículos, guías, condiciones legales: páginas largas que se leen de arriba abajo.
  • Una por página, montada una vez: escucha el desplazamiento de la ventana entera, no el de un contenedor.

Cuándo no

  • Una tarea que avanza y acaba (subir, importar): Progress.
  • Un nivel que sube o baja (espacio usado, stock): Gauge.
  • Una página que cabe entera en la ventana: no hay nada que recorrer y la cinta sale llena.

Teclado: no es enfocable ni se puede pulsar (pointer-events: none).

Accesibilidad: por defecto es decoración y se declara como tal (aria-hidden): un porcentaje que cambia con cada giro de la rueda, en voz alta, no hay quien lo aguante, y lo leído ya se sabe leyendo. withLabel la convierte en un progressbar llamado «Progreso de lectura», con el valor redondeado («62 % leído»); ese nombre no se puede cambiar. La medida va dentro de un requestAnimationFrame, para no recalcular el diseño en cada evento de desplazamiento.

Aspecto fino: sin variables propias: se ajusta con las clases amset-reading, amset-reading--top/--bottom (según position) y amset-reading--<tone> (accent por defecto). Va en position: fixed, en la capa --amset-layer-reading; el alto lo pone thickness (3 px por defecto).

En esta página: cada historia va en su propio marco. Baja dentro de él para ver la cinta avanzar.

Cómo se ve

Baja por esta página: la cinta de arriba de esta caja avanza con lo que llevas leído. En una página de verdad va pegada al borde de la ventana.

<ReadingProgress tone="accent" thickness={4} />
<article>...</article>

Props

Se importa con import { ReadingProgress } from '@amset/ui'. Las obligatorias van marcadas.

PropTipoPara qué sirve
classNamestringSe une a las clases de la biblioteca, no las sustituye.
position"top" | "bottom"Pegada arriba o abajo del todo. Por defecto arriba.
thicknessnumberAlto de la cinta. Por defecto 3 px.
tone"neutral" | "accent" | "secondary" | "tertiary" | "info" | "success" | "warning" | "error"El color de lo leido. `neutral` es el gris de la tinta secundaria. Por defecto, `accent`.
withLabelbooleanLa cuenta tambien con numeros y para el lector de pantalla. Por defecto no: una cinta de lectura es decoracion, y anunciar el porcentaje en cada scroll es insoportable.

Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.

En el banco de pruebas

Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech: