En esta página
ranuiProgress

Progress

Barra de progreso para mostrar el avance de una tarea, con un tirador arrastrable opcional.

Úsalo cuando necesites una barra que muestre el avance de una tarea. Usa <r-progress> tal cual para un progreso de solo lectura, o type="drag" cuando el usuario deba fijar el valor con un tirador arrastrable.

Inicio rápido

<r-progress percent="40%"></r-progress>

💡 Consejo: r-progress es un elemento de bloque sin ancho intrínseco. Dentro de una fila flex puede colapsar a ancho cero; dale un ancho explícito (por ejemplo style="width:100%") o colócalo en un contexto de bloque.

Referencia de la API

Propiedades

Propiedad Tipo Por defecto Descripción
percent string '0' Progreso actual; admite un número o un porcentaje. Se limita a total.
total string '100' Progreso total; admite un número o un porcentaje.
type string 'primary' Tipo de barra: primary (estática) o drag (clicable y arrastrable).
dot string 'true' Si se muestra el tirador de arrastre: true o false.
sheet string '' CSS inyectado en el shadow DOM del componente.

Valor del progreso percent

Define el progreso actual. Admite un número o una cadena de porcentaje y no puede superar total. Cuando total no está definido, vale 100 por defecto (es decir, percent se lee como porcentaje de 100).

<r-progress percent="30%"></r-progress>
<r-progress percent="70%"></r-progress>
<r-progress percent="100%"></r-progress>

Progreso total total

Define el denominador de percent. Se admiten tanto números como porcentajes, así que percent="30" total="1000" llena la barra al 3%.

<r-progress percent="30" total="1000"></r-progress>
<r-progress percent="70" total="100"></r-progress>
<r-progress percent="10%" total="100%"></r-progress>

Tipo de barra type

  • primary: barra de progreso estática. Es el valor por defecto si no defines type.
  • drag: barra clicable y arrastrable. Hacer clic en la pista o arrastrar el tirador actualiza percent y dispara un evento change. Arrastrar el tirador requiere dot="true".
<r-progress type="drag" percent="30%"></r-progress> <r-progress type="primary" percent="40%"></r-progress>

Tirador de arrastre dot

Activa o desactiva el tirador. Solo se dibuja cuando dot="true" y type="drag"; en una barra primary estática se omite a propósito, así que allí dot no tiene efecto visible.

<r-progress type="drag" percent="30%" dot="true"></r-progress>
<r-progress type="drag" percent="30%" dot="false"></r-progress>

Eventos

change

Se despacha en el tipo drag cada vez que el usuario hace clic en la pista o arrastra el tirador, actualizando percent. El objeto detail lleva:

Campo Tipo Descripción
value string Progreso actual
percent string Progreso actual
total string Progreso total
<r-progress type="drag" percent="30%"></r-progress>

<script>
  const progress = document.createElement('r-progress');
  progress.type = 'drag';
  progress.percent = '30%';
  progress.addEventListener('change', (e) => {
    console.log(e.detail.value, e.detail.percent, e.detail.total);
  });
  container.append(progress);
</script>

Partes CSS

Parte Descripción
track La pista del progreso (el fondo).
fill La porción llena de la pista.
dot El tirador de arrastre.
r-progress::part(fill) {
  background: var(--ran-color-primary);
}

Buenas prácticas

  • Barras estáticas: usa el type="primary" por defecto para mostrar un progreso de solo lectura.
  • Barras interactivas: usa type="drag" cuando el usuario deba poder fijar el valor, y escucha el evento change.
  • Porcentaje o número: mezcla percent y total con libertad; pasa números crudos cuando correspondan a un total conocido, o porcentajes para un control directo.
  • Ancho en la maqueta: envuelve la barra en un contenedor de bloque o dale un ancho explícito para que no colapse en maquetas flex.