Skip to content

Button 按钮

触发动作的交互元素


功能描述

用户点击后触发特定动作的交互元素。


属性规范

属性类型必需默认值说明
labelstringY-按钮文本
variantenumN'primary'视觉变体
sizeenumN'md'尺寸
disabledbooleanNfalse禁用状态
loadingbooleanNfalse加载状态
iconIconN-前置图标
iconPositionenumN'left'图标位置:left, right
fullWidthbooleanNfalse是否占满宽度

variant 变体

说明使用场景
primary主要操作,强调色背景确认、提交
secondary次要操作,边框样式取消、返回
destructive危险操作,红色系删除、退出
ghost无边框,仅文字链接、辅助操作
gradient渐变背景品牌强调

size 尺寸

高度使用场景
sm32px列表项、紧凑布局
md44px默认,大多数场景
lg52px页面主操作

状态机

                    ┌─────────────┐
                    │             │
         ┌──────────▼──────────┐  │
         │        Idle         │──┘
         └──────────┬──────────┘

       ┌────────────┼────────────┐
       │            │            │
       ▼            ▼            ▼
  ┌─────────┐  ┌─────────┐  ┌─────────┐
  │ Pressed │  │ Loading │  │Disabled │
  └────┬────┘  └─────────┘  └─────────┘


  ┌─────────┐
  │  Idle   │
  └─────────┘

状态说明

状态触发条件视觉表现
Idle默认状态正常显示
Pressed用户按下背景变深/缩放
Loadingloading=true显示加载指示器,禁用交互
Disableddisabled=true降低透明度,禁用交互

行为规范

必须 (MUST)

  1. 按下时显示视觉反馈(颜色变化或缩放 0.98)
  2. disabled 状态时阻止所有交互事件
  3. loading 状态时显示加载指示器并禁用交互
  4. 有明确的 accessible name

建议 (SHOULD)

  1. 支持键盘 Enter/Space 触发
  2. loading 时保持按钮宽度不变
  3. 有图标时,图标与文字间距一致

可选 (MAY)

  1. 支持长按操作
  2. 支持触觉反馈(振动)

可访问性

要求说明
rolebutton
aria-label无文本时必须提供
aria-disableddisabled 时设为 true
aria-busyloading 时设为 true
焦点指示器聚焦时显示明显边框

使用示例

主要操作

[确认转账] ← primary, lg, fullWidth

次要操作

[取消]  [确认] ← secondary + primary

图标按钮

[← 返回] ← ghost + icon

加载状态

[○ 发送中...] ← loading=true

设计标注

尺寸规格

尺寸高度水平内边距字号圆角
sm32px12px14px6px
md44px16px16px8px
lg52px24px18px10px

颜色规格

变体背景色文字色按压态
primary--color-primarywhite加深 10%
secondarytransparent--color-foreground--color-muted
destructive--color-destructivewhite加深 10%
ghosttransparent--color-foreground--color-muted

Released under the MIT License.