Progress
使用 Base UI Progress 的 progressbar 语义。会规范化有效的 max 和 value;当 value 缺失或无效时,以 indeterminate 状态呈现。
@neumorphism-ui/progress预览
Registry 构建82%
主题 token12 / 16
等待数据—
安装
安装: progress
npx shadcn@latest add @neumorphism-ui/progressCLI 会依次处理 npm 依赖、base token、utils 和组件源码。
首次使用此 Registry?请先完成 namespace 配置 。
用法
Import
Progress import 代码
import { Progress } from "@/components/ui/progress"Example
Progress 用法代码
<div className="grid gap-2">
<div id="upload-label" className="flex justify-between">
<span>文件上传</span>
<span>72%</span>
</div>
<Progress value={72} max={100} aria-labelledby="upload-label" />
</div>API 参考
| 组件 | 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
Progress | value | number | null | null | 当前进度值,会被限制在 0 与 max 之间。 |
Progress | max | number | 100 | 大于 0 的总范围;无效时使用 100。 |
Progress | aria-label / aria-labelledby | string | — | 为进行中的任务提供无障碍名称。 |
Progress | getValueLabel | (value, max) => string | — | 在数值之外需要额外说明时生成 aria-valuetext。 |
无障碍
- 01
Progress 需要 aria-label 或 aria-labelledby,例如“文件上传”,以说明正在进行的任务。
- 02
即使页面显示了百分比,也不会自动与 progressbar 关联,必须显式连接标签。
- 03
将 value 设为 null 表示 indeterminate 状态,此时不要同时显示完成百分比。