Skip to content
通用组件

进度Progress

完成度 / 数量占比:直角细条(可带标签行、分段、斜纹、不定进度)与环形。

Vue
实验import { AkProgress } from "@mooncellwiki/prts-design-vue"Storybook ↗源码 ↗

完成度 / 数量占比:信赖、理智、剿灭奖励、上传进度。直角细条(默认 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 ​

属性类型默认说明
percentagenumber0百分比 0–100
variant"success""accent""yellow""danger""accent"颜色:accent 主色(默认)· yellow 黄(信赖 / 次强调)· success 绿 · danger 红
size"md""sm""lg""md"线形粗细:sm 4 · md 8(默认)· lg 14(px);环形不适用
labelstring—名称:线形显示在条上方标签行的左边(并作可访问名);环形只作可访问名(aria-label)
showIndicatorbooleantrue显示数值:默认「N%」,默认插槽可改写(「200 / 200」);线形的数值在标签行右边,只在有 label 或插槽时出标签行
stripesbooleanfalse斜纹(线形)
indeterminatebooleanfalse不定进度:一段色块来回滑,不报数值(线形)
stepsnumber—分段:条切成 N 格,按百分比点亮(3 / 5 格 = steps 5 + percentage 60)(线形)
circlebooleanfalse环形(= .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。

块元素 __修饰 --

文本 CC BY-NC-SA 4.0 · 游戏素材版权归鹰角网络所有