# Button 按钮
> 标记一个操作命令,响应用户点击行为,触发相应业务逻辑。
## 导入
```tsx
import { Button, IconButton, Segmented } from "@fangxinyan/lumina";
```
## 示例
### 基础按钮
四种风格:主要、默认、幽灵、危险。
```tsx
```
### 图标按钮
icon 在前,trailingIcon 在后。
```tsx
```
### 加载与禁用
loading 期间禁用并显示 spinner。
```tsx
```
### 尺寸
提供 sm / md / lg 三种高度。
```tsx
```
### 块级按钮
block 让按钮撑满容器宽度,常用于底部主操作或表单提交。
```tsx
```
### 纯图标按钮
IconButton 是只含图标的方形按钮,常配合 tip 使用。
```tsx
```
### 分段控制器
互斥多选项切换。
```tsx
```
## API
**Button**
| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| variant | `"default" | "primary" | "ghost" | "danger"` | `"default"` | 按钮风格 |
| size | `"sm" | "md" | "lg"` | `"md"` | 按钮尺寸 |
| icon | `IconName` | — | 前置图标 |
| trailingIcon | `IconName` | — | 后置图标 |
| loading | `boolean` | `false` | 加载态 |
| block | `boolean` | `false` | 撑满父容器宽度 |
| disabled | `boolean` | `false` | 禁用 |
| onClick | `(e: MouseEvent) => void` | — | 点击回调 |
**IconButton**
| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| icon \* | `IconName` | — | 图标名 |
| tip | `string` | — | 悬浮提示 |
| size / variant | `—` | — | 继承自 Button |
**Segmented**
| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| options \* | `{ value, label, disabled? }[]` | — | 选项数组 |
| value / defaultValue | `T` | — | 受控/初始选中值 |
| onChange | `(value: T) => void` | — | 切换回调 |
---
[← 回到索引](../llms.md)