UI

Progress

Barras que mostram o andamento de uma tarefa (Progress) ou o quanto de um limite já foi usado (Meter).

Enviando fotos do cardápio13%

Instalação

npx shadcn@latest add @lenstech/progress

Uso

import { Meter, Progress } from "@/components/ui/progress"
<Progress label="Enviando fotos" value={45} />

<Meter label="Armazenamento" value={3.2} maxValue={10} valueLabel="3,2 GB de 10 GB" />

Progress ou Meter?

Progress mostra o andamento de uma tarefa que vai terminar (upload, importação, etapas de cadastro). Meter mostra uma quantidade dentro de um intervalo conhecido (armazenamento usado, meta de vendas, limite do plano). Os dois têm a mesma aparência, mas são anunciados de forma diferente por leitores de tela (progressbar x meter).

Sem label, informe aria-label. O valor exibido é formatado pelo React Aria (percentual por padrão); use formatOptions para mudar o formato ou valueLabel para um texto próprio.

Exemplos

Indeterminado

Sem value ou com isIndeterminate, a barra exibe uma animação contínua — use quando não dá para saber quanto falta.

Gerando relatório de vendas…

Variantes

Padrão40%
Cadastro concluído100%
Importação de clientes65%
Espaço de backup82%
Sincronização com falhas30%

Tamanhos e intervalo personalizado

size aceita sm, default e lg. Com minValue/maxValue a barra representa etapas, e valueLabel troca o texto do valor.

Etapa 2 de 4Dados da empresa

Meter

Use formatOptions (as mesmas opções do Intl.NumberFormat) para exibir moeda, unidades etc.

Armazenamento de fotos3,2 GB de 10 GB
Meta de vendas de setembroR$18,400

Meter com cor automática

Com variant="auto" a cor muda conforme o nível: até 70% verde, até 90% amarelo e acima disso vermelho.

E-mails enviados no mês45%
Usuários do plano80%
Cota de disparos de WhatsApp96%

Quando usar

  • Use Progress para tarefas com duração perceptível (mais de ~1 s) em que o usuário espera o resultado.
  • Use Meter para mostrar consumo de um limite: armazenamento, cota de envios, meta.
  • Não use para carregamentos curtos de dados na tela — use Skeleton ou Spinner.

API

Progress

Aceita todas as props do ProgressBar do React Aria, mais:

Prop

Type

Meter

Aceita todas as props do Meter do React Aria, mais label, showValue, size e:

Prop

Type

On this page