Progress
StablePrimitive de feedback que mostra o quanto uma tarefa já avançou. Composto sobre Base UI Progress, é um progressbar e não um medidor: o valor caminha para um fim. Nome e valor são o que a barra não consegue mostrar sozinha, então o rótulo é ligado automaticamente, o valor é falado na unidade da tarefa e o estado indeterminado (value={null}) preenche a trilha em intensidade menor, para não se passar por vazio nem por concluído.
Instalação
npx up-web-ds add progressPreview
Basic
Without Visible Label
Indeterminate
Custom Range
States
All states
Basic
Without Visible Label
Indeterminate
Custom Range
States
Usage
Props
Progress
Estende ProgressPrimitive.Root.Props. Aceita também os atributos padrão de um elemento React (274 não listados).
ProgressTrack
Estende ProgressPrimitive.Track.Props. Aceita também os atributos padrão de um elemento React (275 não listados).
ProgressIndicator
Estende ProgressPrimitive.Indicator.Props. Aceita também os atributos padrão de um elemento React (275 não listados).
ProgressLabel
Estende ProgressPrimitive.Label.Props. Aceita também os atributos padrão de um elemento React (275 não listados).
ProgressValue
Estende ProgressPrimitive.Value.Props. Aceita também os atributos padrão de um elemento React (274 não listados).
prop obrigatória.
Composition
Rótulo e leitura são filhos opcionais do Progress, desenhados acima da trilha; a trilha e o preenchimento são do próprio Progress e não precisam ser compostos.
Metadata
Notas de acessibilidade
Teclado verificado por teste: a barra não é interativa e fica fora da sequência de tabulação — um progresso que recebesse foco seria uma parada que não faz nada. Leitor de tela verificado por teste: o papel é progressbar, o nome vem do ProgressLabel ligado pelo Base UI sem id escrito no exemplo, ou de aria-label quando não há espaço para rótulo; aria-valuemin, aria-valuemax e aria-valuenow acompanham o valor, e aria-valuetext o fala na unidade da tarefa ("7 de 12 aulas" num intervalo próprio). No estado indeterminado não há aria-valuenow e o texto falado é "Em andamento" — o padrão do Base UI era o inglês "indeterminate progress". O ProgressValue é aria-hidden de propósito: o valor já viaja na barra, e lido duas vezes é ruído. Touch verificado em viewport de 375px com emulação de toque: não há alvo interativo a medir, e a barra ocupa a largura disponível sem empurrar a página para rolagem horizontal. Reduced motion verificado em navegador com prefers-reduced-motion: reduce, com duas políticas: a transição de largura acompanha um valor que já é verdade, então sai o tween e a barra salta para o comprimento certo (motion-reduce:transition-none) — o comprimento é o estado e nunca é retido; o pulso do indeterminado é ambiente e fica atrás de motion-safe:, então não roda, enquanto a barra tingida em largura total continua carregando o estado.
Classificação
- Layer
- Primitive
- Domínio
- Domain-free (compartilhado)
- Categoria
- feedback
- Status
- Stable
Origem e distribuição
- Fonte
- shadcn registry / progress
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- @base-ui/react
- Ícones
- Nenhum
- Construído sobre
- Nenhum
- Usado por
- Nenhum ainda