Spinner 使用手册
v1.2.3 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
以持续旋转的视觉提示表示加载中,提供圆环、辐条和胶囊三种形式,适合按钮与内容区域。
使用选择
用于等待状态的持续指示。能提供完成度时使用 Progress;已有按钮或表格加载态优先使用宿主内置 Spinner。
variant 选择等待图形;size 优先于父级尺寸,无上下文时为 16。
不渲染 children;加载说明文字在外部组合。需要完成比例时改用 Progress。
加载状态默认名称随LocaleProvider更新,显式aria-label优先;不会替调用方翻译外部加载说明。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
布局模型
主布局模型:内禀原子布局。
Spinner 的根节点是由
size与variant决定的内禀盒,作为其他布局子项时表现为 Hug。circle / spokes / pills 的 SVG、mask、spoke、pill 动画层都是 Spinner 私有结构,不对外暴露 Leading / Content / Trailing 槽位。
Spinner 不提供 label 排列能力;需要“图标 + 文案”时由外部 Button、Frame 或 Text 组合负责。
loopMotion只覆盖内部循环动效时序,不改变根布局模型。
关键字 (Keywords)
Note on Color & Label
Color:
Spinner不提供color属性。它默认继承当前文本颜色 (currentColor)。如需修改颜色,请使用工具类:<Spinner class="snowui-text-blue-500" />。Label:
Spinner不提供label属性。如需组合文字,请使用外部布局。
变体 (Variants)
1. 基础用法
默认显示 16px 的 circle 变体。
2. 变体 (Variants)
Spinner 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
Spinner 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:FrameProps。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
SpinnerVariant
来源:components/src/components/Spinner.svelte
ResourceSize
来源:components/src/context.ts
LoopMotionConfig
来源:components/src/logic/frame-types.ts
LoopMotionPreset
来源:components/src/logic/frame-types.ts
MotionConfig
来源:components/src/logic/motion-config.ts
SnowUIColor
来源:components/src/lib/color.ts
EasingFunction
来源:components/src/logic/motion-config.ts