数据展示
Progress
用于展示任务完成度或加载状态的进度条组件
Progress 用于展示任务、上传、下载、表单流程等操作的完成进度。组件基于 Radix Progress 封装,支持受控 value、最大值 max、主题色、尺寸和自定义 slot 样式。
import { Progress } from '@skyroc/web-ui';何时使用
- 展示确定进度的任务,例如上传、下载、安装或流程完成度。
- 需要用颜色表达状态,例如成功、警告、错误或信息提示。
- 需要和项目主题尺寸、圆角和动效保持一致。
- 只需要表达忙碌状态且没有明确百分比时,可使用动画进度或 Skeleton。
基础用法
通过 value 设置当前进度,默认最大值为 100。如果传入 max,实际显示宽度会按 value / max 计算。
Preview
Code
Loading...
<Progress value={60} />颜色
通过 color 切换进度条语义颜色。根轨道会使用对应颜色的浅色背景,指示条使用对应主题色。
Preview
Code
Loading...
| 颜色 | 语义 | 适用场景 |
|---|---|---|
primary | 主要进度 | 默认进度、主流程 |
destructive | 危险状态 | 失败、错误或不可逆流程 |
success | 成功状态 | 上传完成、任务完成 |
warning | 警告状态 | 接近限制、需要关注 |
info | 信息状态 | 中性信息或异步处理 |
carbon | 中性深色 | 无明显语义倾向的进度 |
secondary | 次级状态 | 辅助进度、低优先级任务 |
accent | 强调状态 | 需要视觉强调的进度或步骤 |
尺寸
通过 size 调整进度条高度,从 xs 到 2xl 共 6 个尺寸。
Preview
Code
Loading...
| 尺寸 | 高度 | 适用场景 |
|---|---|---|
xs | 7px | 紧凑列表、表格内嵌 |
sm | 8px | 小型卡片、辅助进度 |
md | 10px | 常规场景(默认) |
lg | 12px | 重点流程 |
xl | 14px | 强调进度 |
2xl | 16px | 大号展示区 |
动态进度
Progress 是受控组件,外部状态变化时会通过 CSS transition 平滑更新指示条位置。
Preview
Code
Loading...
const [value, setValue] = useState(0);
<Progress value={value} />API
Progress
通用属性参考:继承 Radix Progress Root props,并增加主题色、尺寸和 slot class 配置。
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value | 当前进度值 | number | null | - |
| max | 最大进度值,用于计算显示百分比 | number | 100 |
| color | 主题颜色 | 'primary' | 'destructive' | 'success' | 'warning' | 'info' | 'carbon' | 'secondary' | 'accent' | 'primary' |
| size | 尺寸,影响进度条高度 | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'md' |
| className | 根轨道 class | ClassValue | - |
| classNames | 各 slot 的自定义 class(root / indicator) | ProgressClassNames | - |
| id | 根元素 id | string | - |
| aria-label | 无可见标签时提供给辅助技术的说明 | string | - |
类型
ProgressProps
Progress 组件属性。继承 Radix Progress Root props,并增加项目主题色、尺寸和 slot class 配置。
| 字段 | 类型 | 说明 |
|---|---|---|
| value | number | null | 当前进度值。 |
| max | number | 最大进度值。默认 100。 |
| color | 'primary' | 'destructive' | 'success' | 'warning' | 'info' | 'carbon' | 'secondary' | 'accent' | 主题颜色。 |
| size | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 组件尺寸。 |
| className | ClassValue | 根轨道 class。 |
| classNames | ProgressClassNames | slot class 配置。 |
| id | string | 根元素 id。 |
| aria-label | string | 无可见标签时的无障碍说明。 |
ProgressClassNames
Progress 各 slot 的自定义 class。
| 字段 | 类型 | 说明 |
|---|---|---|
| root | ClassValue | 根轨道 class。 |
| indicator | ClassValue | 进度指示条 class。 |