Spinner 加载中
反馈组件
局部加载状态指示器,表示内容正在加载中。
何时使用
操作进行中时显示加载状态。
代码示例
基础用法
tsx
import { Spinner } from "@/components/ui/spinner"
export function Basic() {
return <Spinner>Default</Spinner>
}变体
tsx
{/* 展示 variant 变体 */}
<div className="flex flex-wrap items-center gap-3">
<Spinner variant="default">Default</Spinner>
<Spinner variant="muted">Muted</Spinner>
<Spinner variant="white">White</Spinner>
</div>尺寸
tsx
{/* 尺寸对照 */}
<div className="flex flex-wrap items-center gap-3">
<Spinner size="sm">Sm</Spinner>
<Spinner size="default">Default</Spinner>
<Spinner size="lg">Lg</Spinner>
</div>样式变体
变体
| Variant | 说明 | 默认 |
|---|---|---|
default | 默认样式 | ✓ |
muted | ||
white |
尺寸
| Size | 说明 | 默认 |
|---|---|---|
default | 默认尺寸 | ✓ |
sm | 小号 | |
lg | 大号 | |
xl | 超大 |
API / Props
Spinner
| Prop | Type | Default | 说明 |
|---|---|---|---|
className | string | — | 自定义样式类名 |
label | string | Loading... | Accessible label |
| ...rest | React.ComponentProps<"svg"> | — | 透传 <svg> 原生属性 |
注意事项
- CVA 变体: 通过
class-variance-authority管理样式变体,类型安全。变体对象可导出复用。 - 原生属性: 继承所有
<svg>原生 HTML 属性。
📘 完整交互式示例与控件属性请查看 Storybook 文档。