Progress

进度条:line(horizontal / vertical)与 circle 两形态;percent 钳制到 0..100,showInfo/format 控制信息区,stroke 支持字符串或分段颜色数组(配合 strokeGradient 渐变),orbitStroke 自定义轨道色,数字滚动线性动画;role=progressbar,受控 percent 不回写。

设计文档

如何引入

import { Progress } from '@chenzy-design/svelte';

标准的进度条

通过 stroke 控制填充色、percent 控制进度、size 控制尺寸;size 不满足时可用 style 传入 height 自定义高度。

展示百分比文本

showInfo 控制是否展示百分比数字,format 可格式化展示文本。

10%
25%
50%
500‰

垂直的进度条

direction="vertical" 展示垂直进度条,可通过 style 传入 width 控制宽度。

环形进度条

type="circle" 展示环形进度条,默认尺寸 72×72,可通过 width 控制大小。

小号的环形进度条

size="small" 小号环形进度条默认尺寸 24×24,不显示中心文本。

动态改变进度

percent 变化时数字平滑滚动(线性插值动画)。

40%
40%

自定义中心文字内容

format 自定义中心文字,入参为当前百分比;showInfo={false} 或 format 返回空串则不显示。

75Days
Done

圆角/方角边缘

strokeLinecap 控制环形进度条边缘形状(round / square),仅 type=circle 生效。

自定义进度条颜色

stroke 传入 Array<{percent, color}>,按当前 percent 落入的区间取色,支持 Hex / Hsl / Rgb / Design Token。

10%
10%

自动补齐颜色区间

strokeGradient=true 时自动补齐颜色区间生成渐变。

65%
65%
65%

API 参考

Progress

Props

属性说明类型默认值
percent受控进度,钳制到 0..100number0
type形态'line'|'circle''line'
direction条状进度条方向'horizontal'|'vertical''horizontal'
sizesmall 仅 type=circle 生效,large 仅 type=line 生效'default'|'small'|'large''default'
width环形进度条直径 pxnumbersize='default' 时 72,'small' 时 24
strokeWidthtype=circle 时进度条宽度number4
strokeLinecapcircle 端点形状(仅 type=circle 生效)'round'|'square''round'
showInfo是否显示信息区/中心文本booleanfalse
stroke填充色;数组时按 percent 区间取色(color 支持 Hex/Hsl(a)/Rgb(a)/Design Token)string | Array<{percent:number; color:string}>'var(--cd-color-success)'
strokeGradient自动补齐颜色区间生成渐变(需 stroke 为区间数组)booleanfalse
orbitStroke进度条轨道填充色string'var(--cd-color-fill-0)'
format格式化信息区文本,入参为当前百分比(percent: number) => string | null(percent) => percent + '%'
motion数字滚动/过渡动画,被 reduced-motion 覆盖booleantrue
class根节点样式类名stringundefined
style根节点内联样式(如自定义 height/width)stringundefined
idid 标识stringundefined
aria-label无障碍标签stringundefined
aria-labelledby关联标签元素 idstringundefined
aria-valuetext无障碍值文本(优先于 valuenow)stringundefined
formatSnippet信息区自定义内容 snippet,优先于 format propSnippet<[{ percent: number }]>undefined

Slots

名称说明
formatSnippet自定义信息区内容(优先于 format prop)

Accessibility

  • role=progressbar + aria-valuemin/max=0/100 与 aria-valuenow;支持 aria-valuetext(优先于 valuenow)、aria-label、aria-labelledby;不可聚焦不设 tabindex;reduced-motion 禁用数字滚动与过渡。

设计变量

变量默认值用法
--cd-motion-progress-transition-duration 0.3s进度条动画时长
--cd-motion-progress-transition-timing-function cubic-bezier(0.62, 0.05, 0.36, 0.95)进度条动画曲线