C

Button 按钮

通用基础组件

触发操作或事件,如提交表单、打开对话框、取消操作等。

何时使用

点击触发操作,如提交表单、打开弹窗、确认/取消操作。

代码示例

基础用法

tsx
import { Button } from "@/components/ui/button"

export function Basic() {
return <Button>Default</Button>
}

变体

tsx
{/* 展示 variant 变体 */}
<div className="flex flex-wrap items-center gap-3">
<Button variant="default">Default</Button>
<Button variant="outline">Outline</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="destructive">Destructive</Button>
</div>

尺寸

tsx
{/* 尺寸对照 */}
<div className="flex flex-wrap items-center gap-3">
<Button size="xs">Xs</Button>
<Button size="sm">Sm</Button>
<Button size="default">Default</Button>
<Button size="lg">Lg</Button>
</div>

样式变体

变体

Variant说明默认
default默认样式
outline描边样式
secondary次要样式
ghost幽灵(无背景)样式
destructive危险/删除样式
link链接样式

尺寸

Size说明默认
default默认尺寸
xs超小
sm小号
lg大号
icon图标正方形
icon-xs超小图标
icon-sm小图标
icon-lg大图标

API / Props

Button

PropTypeDefault说明
classNamestring自定义样式类名
...restReact.HTMLAttributes透传原生 DOM 属性

注意事项

  • CVA 变体: 通过 class-variance-authority 管理样式变体,类型安全。变体对象可导出复用。
  • Base UI: 基于 @base-ui/react 无头(headless)原语构建,无障碍(a11y)开箱即用。

📘 完整交互式示例与控件属性请查看 Storybook 文档