Pular para o conteúdo
// visualizar em
salvo em todas as páginas

Progress

Barra de progresso que mostra quanto de uma tarefa já foi feito, como um envio, uma exportação ou uma configuração. Para uma medida que só fica dentro de uma faixa, como o armazenamento usado, use o Meter.

Feito com Base UIPadrão WAI-ARIA progressbarComponente clienteCódigo ↗
minimal · light · #3fa34d
Exportando relatório
x
showValue

Instalação

Configure o Camaleo uma vez (Instalação) e importe o que precisar. O estilo carregado cuida do visual.

import { Progress } from "@camaleo/react";

Anatomia

Uma raiz com um cabeçalho (rótulo e valor) e um trilho com o preenchimento. Cada parte tem um data-slot que você pode usar no CSS.

trilhopreenchimentoEnviando nota-marco.pdf 65%
[data-slot="progress"][data-slot="progress-track"] · [data-slot="progress-indicator"]rótulo · valor

Exemplos

Cada exemplo é um arquivo real que você pode copiar. Todos usam o estilo, o modo e a cor escolhidos na barra acima.

minimal · light · #3fa34d
Enviando nota-marco.pdf
x
Preparando seu backup
x

Duração desconhecida

Quando ainda não dá para medir o trabalho, passe value={null}. O número some, um trecho desliza pela trilha (com movimento reduzido, ele pulsa no lugar) e o leitor de tela entende que a barra está ocupada, não parada em 0%.

Exportando projeto25% · Compactando arquivos
x

Etapa por etapa

Clique para avançar. Dizer a etapa atual no valueLabel mostra o que está acontecendo, e não só quanto falta.

Copiando fotos16 de 20 fotos
x

Quantidade em vez de porcentagem

Use o total real em max e mostre "16 de 20 fotos". Itens são mais fáceis de entender do que uma porcentagem.

Configuração da contaEtapa 3 de 5
x

Etapas de uma configuração

Num assistente curto, value={3} com max={5} vira "Etapa 3 de 5", e a pessoa sabe quanto falta.

Enviando ferias.mp41,2 de 3 GB
x

O que o leitor de tela ouve

O valueLabel muda só o texto visível. Passe também o getAriaValueText, para "1,2 de 3 GB" ser lido por extenso, e não como "40 por cento".

  • contrato-assinado.pdfConcluído
    x
  • fotos-da-obra.zip18 de 40 MB
    x
  • orcamento-2026.xlsxNa fila
    x

Lista de envios

Uma barra por arquivo, cada uma com o nome dele, para a pessoa ver qual terminou, qual está enviando e qual está na fila.

Enviando catalogo-2026.pdf
x

Com opção de cancelar

Clique. Tarefa longa precisa de uma saída. Depois de cancelar, diga o que aconteceu numa mensagem de status e ofereça tentar de novo.

Em contexto

A barra de progresso fica junto da tarefa que ela acompanha. São pedaços inteiros de interface para copiar, no estilo que você escolheu.

Fila de envio

apresentacao-vendas-3t.pdf14,2 de 20 MB
Enviando apresentacao-vendas-3t.pdf
x
Fila de envioCard · Progress · Button

Complete seu perfil

Adicione seu telefone e confirme os dados da empresa para emitir notas.

Perfil3 de 5 etapas
x
Configuração do perfilCard · Progress · Button

Importar contatos

contatos-crm.csv · 3.000 linhas

Importando contatos1.240 de 3.000
x
Importação de contatosCard · Progress · Button

Boas práticas

Baixando a atualização 4.2
x
FaçaDiga o que está rodando.

"Baixando a atualização 4.2" mostra pelo que a pessoa está esperando e ainda dá nome à barra para o leitor de tela.

Baixando
x
EviteSó um verbo e nenhum número.

Baixando o quê? Sem nome e sem valor, ninguém sabe se vale a pena esperar.

Gerando seu site
x
FaçaSem estimativa? Mostre que está ocupado.

Se não dá para medir o trabalho, use value={null} em vez de chutar um número.

Processando
x
EviteNão invente uma porcentagem.

Uma barra que corre até 99% e para ali quebra a confiança. A pessoa desiste de uma barra em que não acredita.

Props

PropriedadeTipoPadrãoDescrição
labelReactNode—Rótulo visível. Também é o nome da barra para o leitor de tela.
showValuebooleantrueMostra o valor ao lado do rótulo.
valueLabelReactNode—Troca o texto do valor, por exemplo por "16 de 20 fotos". Muda só o que aparece na tela.
formatIntl.NumberFormatOptions—Opções de Intl.NumberFormat para o valor formatado.
getAriaValueText(formattedValue, value) => string—O texto que o leitor de tela ouve para o valor. Por padrão, a porcentagem.
localeIntl.LocalesArgument—Idioma usado para formatar o valor.
maxnumber100Valor da tarefa concluída. Use o total real, como o número de arquivos.
minnumber0Valor do começo da tarefa.
value*number | null—Quanto da tarefa já foi feito, entre min e max. null quer dizer que a duração é desconhecida.

As outras props da raiz de progresso do Base UI e os atributos nativos de <div> passam direto.

Styling hooks

Atributos

data-progressingpresente enquanto a tarefa roda
data-completepresente quando value chega ao max
data-indeterminatepresente quando value é null
data-slot"progress" · "progress-track" · "progress-indicator"

Tokens que ele lê

Cor

--cml-accent--cml-fg--cml-fg-muted--cml-field-shadow--cml-surface

Forma e tamanho

--cml-font-size-label--cml-gap--cml-radius-pill

Tipografia e movimento

--cml-duration-base--cml-ease-standard--cml-font-weight-label

Só deste componente

--cml-slider-fill-image

Acessibilidade

—Não recebe foco. Ela só informa o andamento; os controles ao redor é que recebem o foco.

Relacionados

Esta página foi útil? · Editar esta página no GitHub