完成度 / 数量占比:信赖、理智、剿灭奖励、上传进度。直角细条(默认 8px,--ak-bg-surface-3 轨道 + 主色填充),可以带上方的标签行(左名称、右数值,Bender 小字);另有环形。
线形 · 标签行 · 颜色
写法同 Naive UI 的 n-progress:percentage 0–100。写了 label 就在条上方出标签行,右边默认是「N%」,默认插槽可以改写成「200 / 200」。颜色 variant:accent(默认)· yellow(信赖 / 次强调)· success · danger。
粗细 · 斜纹 · 不定 · 分段
size:sm 4 · md 8 · lg 14。stripes 叠斜纹;indeterminate 不知道进度时一段色块来回滑(不报数值);steps 把条切成 N 格按百分比点亮(2 / 3 格 = steps 3 + percentage 67)。
环形
circle:直径 56 的圆环(conic-gradient),中间是数值——这是系统里少有的圆,只给「一个百分比」这种自成一体的读数。
可访问性
- 输出
role="progressbar"+aria-valuemin/max/now(不定进度不报数值;分段额外给aria-valuetext「2 / 3」)。 - 名字:线形有
label时标签行的名称作aria-labelledby;没有标签行时自己写aria-label(透传到根元素);环形的label直接作aria-label。 - 颜色只是辅助:数值要写出来(标签行 / 环心)。
Vue API
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
percentage | number | 0 | 百分比 0–100 |
variant | "success""accent""yellow""danger" | "accent" | 颜色:accent 主色(默认)· yellow 黄(信赖 / 次强调)· success 绿 · danger 红 |
size | "md""sm""lg" | "md" | 线形粗细:sm 4 · md 8(默认)· lg 14(px);环形不适用 |
label | string | — | 名称:线形显示在条上方标签行的左边(并作可访问名);环形只作可访问名(aria-label) |
showIndicator | boolean | true | 显示数值:默认「N%」,默认插槽可改写(「200 / 200」);线形的数值在标签行右边,只在有 label 或插槽时出标签行 |
stripes | boolean | false | 斜纹(线形) |
indeterminate | boolean | false | 不定进度:一段色块来回滑,不报数值(线形) |
steps | number | — | 分段:条切成 N 格,按百分比点亮(3 / 5 格 = steps 5 + percentage 60)(线形) |
circle | boolean | false | 环形(= .ak-ring:直径 56,中间是数值)——信赖、完成度 |
| 插槽 | 说明 |
|---|---|
default | 数值文字(代替「N%」) |
CSS 实现
线形 div.ak-progress 用 --_v(百分比,如 62%)定填充宽度;标签行 div.ak-progress-label > span + span 放在条前面。分段 .ak-progress--segmented > i(.is-on)。环形 div.ak-ring > span,--_v 是不带单位的数(75),颜色 .ak-ring--yellow 等(或直接给 --_c),直径 --_size。
| 块 | 元素 __ | 修饰 -- |
|---|
