Progress 使用手册
v1.1.2 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
以条形或圆形反馈任务进度,支持明确进度与不确定状态,适合上传、处理和加载过程。
使用选择
用于已知或未知完成度的进度反馈;未知进度使用 isIndeterminate。纯等待指示也可用 Spinner,业务数值仪表可选 GaugeChart。
value 是 0–100 的百分比;未知进度使用 isIndeterminate,不能用虚构百分比代替。
variant 选择 line / circle;circle 的 showLabel 生成标签,显式 children 替换默认标签。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
布局模型
主布局模型:复合管理布局。
variant="line":label 保持显式组合模式,与长条轨道纵向排列,默认 gap 为 4px;label 区域横向占满 Progress 可用宽度。variant="circle":showLabel=true时内置生成 Text,与 SVG 圆环重叠并默认居中;默认不显示。空的直系
as="label"自动显示实时value;显式 label 内容保持不变。label 默认排版为 12px / 16px,不限制外部自定义文字、字号和颜色。
line 不提供内置 label:其常见结构是标题、状态与百分比的横向信息区,单一内置文本无法确定内容和对齐语义。
示例
Progress 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
Progress 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:Omit<FrameProps, "children" | "size">。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
ProgressVariant
来源:components/src/components/Progress.svelte
SnowUIColor
来源:components/src/lib/color.ts
LoopMotionConfig
来源:components/src/logic/frame-types.ts
LoopMotionPreset
来源:components/src/logic/frame-types.ts
MotionConfig
来源:components/src/logic/motion-config.ts
EasingFunction
来源:components/src/logic/motion-config.ts
ComponentPartsOf
来源:components/src/logic/component-parts.svelte.ts
ConfigurableComponentPartProps
来源:components/src/logic/component-parts.svelte.ts
ComponentPartControlledKey
来源:components/src/logic/component-parts.svelte.ts