Skip to content

Progress 进度条

用于展示当前操作的进度状态。融合了各家 UI 之长,并首创了双态进度、多环嵌套以及高性能环形动效。

基础用法

线形进度条,支持多种内置语义化颜色及自动状态图标。

50%
基础用法指标

进度条内显示百分比标识

百分比不占用额外空间,适用于文件上传等场景。可以通过 stroke-width 更改进度条的高度,并通过 text-inside 属性来改变进度条内部的文字。

70%
内显百分比

自定义内容

通过默认插槽添加自定义内容。针对环形进度条,还支持作用域插槽(Scoped Slot)来获取实时进度。

Content
Content
80%
Progressing
自定义内容演示

环形与仪表盘

通过 type="circle"dashboard 开启。支持旋转动画与自定义 SVG 渐变

80%
50%
视觉增强

多环嵌套 (Premium)

通过向 percentage 传递数组,可以实现类似 Apple Watch 的多环嵌套效果。

多维数据
多圈赛跑
多圈赛跑

条纹与流动

开启 striped 增加设计感,开启 striped-flow 让进度条“动”起来。

60%
80%
动态条纹

高级特性

1. 双态感应进度 (Secondary Percentage)

支持 secondary-percentage 属性。非常适合视频播放缓冲。

20%
双态演示

2. 精准分段 (Steps)

通过 steps 属性可以将进度条通过物理刻度进行切分。

60%
分段刻度

3. 未确定状态 (Indeterminate)

当无法预知确切数值(如正在扫描、正在连接)时。

加载中状态

在 Nuxt 中使用

组件已完美适配 Nuxt 3,支持自动导入与 SSR 渐变 ID 唯一化。

50%
Nuxt 适配

API

Props

属性名说明类型默认值
type进度类型'line' | 'circle' | 'dashboard''line'
percentage百分比number | number[]0
secondary-percentage二级百分比(带缓冲感)number0
status内置状态,自动匹配颜色与图标'success' | 'exception' | 'warning' | 'info'
stroke-width进度条宽度number6
text-inside文字内显(仅限 line 类型)booleanfalse
width环形画布宽度number126
show-text是否显示进度文字/图标booleantrue
color进度条颜色,支持函数/数组渐变/对象渐变string | function | string[] | Record<string, string>
define-background-color背景轨道颜色string
icon自定义状态图标string
animated开启环形旋转动效booleanfalse
steps分段数量number0
stroke-linecap进度条末端形状'butt' | 'round' | 'square''round'
format文字定制化函数function(percentage)
striped开启条纹样式booleanfalse
striped-flow开启条纹流动动画booleanfalse
indeterminate开启未确定滑动模式booleanfalse
duration动画周期时长 (s)number3

Slots

插槽名说明参数
default自定义进度条中心或右侧的内容{ percentage: number }

主题变量

变量名说明默认值
--yh-progress-bar-bg轨道背景var(--yh-fill-color-darker)
--yh-progress-duration默认动画周期3s

Released under the MIT License.