componentes / feedback
Progress
Uma barra que mostra o quanto uma tarefa avançou, ou que ela ainda está em andamento.
465 B gzip client componentbase ui · progress
progress-default.tsx
"use client";
import { useEffect, useState } from "react";
import { Progress, ProgressLabel, ProgressValue } from "@/components/ui/progress";
export default function ProgressDefault() {
const [value, setValue] = useState(20);
useEffect(() => {
const id = setInterval(() => setValue((v) => (v >= 100 ? 0 : Math.min(100, v + 10))), 1200);
return () => clearInterval(id);
}, []);
return (
<div className="flex w-full max-w-xs flex-col gap-6">
<Progress value={value}>
<div className="flex items-center justify-between">
<ProgressLabel>Uploading</ProgressLabel>
<ProgressValue />
</div>
</Progress>
<Progress aria-label="Loading" value={null} />
</div>
);
}Instalação
$ npx shadcn@latest add https://cd-ui.vercel.app/r/progress.jsonprimeira vez? configure o components.json e o tema antes: veja instalação.
Uso
import { Progress, ProgressLabel, ProgressValue } from "@/components/ui/progress"
<Progress value={60}>
<ProgressLabel>Uploading</ProgressLabel>
<ProgressValue />
</Progress>API
Progress
Base UI · Progress.RootBarra de 0 a 100. O preenchimento anda em 240ms. Com valor null ela fica indeterminada.
| prop | tipo | padrão |
|---|---|---|
valueProgresso atual, ou | number | null | - |
min · maxLimites da escala. | number | 0 · 100 |
classNameClasses extras, mescladas com | string | - |
ProgressLabel · ProgressValue
Base UI · Progress.Label · Progress.ValueProgressLabel dá nome à barra e ProgressValue mostra a porcentagem.
| prop | tipo | padrão |
|---|---|---|
classNameClasses extras, mescladas com | string | - |
Acessibilidade
- Tem
role="progressbar"comaria-valuenow. Sempre dê um nome comProgressLabelouaria-label.