Skyroc UI
通用

Button

触发即时操作的按钮组件

按钮(Button)用于触发即时操作,是用户界面中最常用的交互元素之一。

import { Button, ButtonIcon, ButtonGroup } from '@skyroc/web-ui';

何时使用

  • 当需要一个即时操作的触发器时,使用按钮。
  • 主按钮在同一操作区域建议最多出现一次,突出最重要的行动。
  • 多个按钮组合时,推荐 1 个主操作 + N 个次级操作,超过 3 个可使用 Dropdown 收纳。

颜色

按钮提供 8 种主题颜色,每种颜色都有其语义含义:

颜色语义适用场景
primary主操作页面中最重要的行为
destructive危险操作删除、移除等不可逆操作
success成功确认操作成功、确认完成
warning警告提示需要注意的操作
info信息提示信息性操作
carbon中性深色不带语义倾向的中性操作
secondary次级操作辅助性、低优先级操作
accent强调色需要特殊视觉关注的操作
Preview
Code
Loading...

变体

通过 variant 控制按钮的视觉强度,从高到低依次为:

变体视觉强度适用场景
solid最强主要操作,填充背景色(默认)
pure较强中性卡片风格,hover 时高亮
plain中等朴素边框风格,hover 时着色
outline中等次要操作,实线边框
dashed中低可选操作,虚线边框
soft轻量操作,淡色背景
ghost极低无背景,仅文字和 hover 效果
link最低行内链接风格,带下划线
Preview
Code
Loading...

尺寸

通过 size 调整按钮大小,从 xs2xl 共 6 个尺寸。

尺寸高度字号适用场景
xs24px10px紧凑布局、表格内操作
sm28px12px辅助操作、工具栏
md32px14px常规场景(默认)
lg36px16px强调操作、表单提交
xl40px18px重要入口、CTA
2xl48px20px首屏 Hero、大幅 CTA
Preview
Code
Loading...

形状

通过 shape 控制按钮的圆角形态。

形状圆角说明
autorounded-md标准圆角(默认)
roundedrounded-full药丸形,适用于标签和动作
squarerounded-md正方形,固定宽高,适用于图标
circlerounded-full圆形,固定宽高,适用于圆形图标
Preview
Code
Loading...

阴影

通过 shadow 控制按钮投影。默认值为 smghostlink 变体会自动忽略阴影。

Preview
Code
Loading...

禁用

设置 disabled 后,按钮变为不可交互状态,同时降低透明度。

Preview
Code
Loading...

加载

设置 loading={true} 时,按钮自动禁用并在 leading 位置显示旋转图标。如果你已经为 leading 传入了自定义内容,加载状态会保留你的内容而不替换为默认 Spinner。

Preview
Code
Loading...

插槽

通过 leadingtrailing 插槽在按钮文字前后放置图标或其他内容。

Preview
Code
Loading...

图标按钮

ButtonIcon 是专门为纯图标场景封装的组件。相比 Button,它默认使用 ghost 变体、square 形状和 accent 颜色,并通过 fitContent 让尺寸自适应内容。

Preview
Code
Loading...

设置 fitContent={false} 可以恢复为固定尺寸。

Preview
Code
Loading...

按钮组

ButtonGroup 将多个按钮组合成一个视觉整体,自动处理圆角合并和相邻边框去重。

通过 orientation 控制排列方向:

Preview
Code
Loading...
Preview
Code
Loading...

API

Button

通用属性参考:支持原生 button 元素的所有属性。

属性说明类型默认值
color主题颜色'primary' | 'destructive' | 'success' | 'warning' | 'info' | 'carbon' | 'secondary' | 'accent''primary'
variant视觉样式'solid' | 'outline' | 'dashed' | 'soft' | 'ghost' | 'link' | 'plain' | 'pure''solid'
size尺寸'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl''md'
shape形状'auto' | 'rounded' | 'square' | 'circle''auto'
shadow投影大小'none' | 'sm' | 'md' | 'lg''sm'
loading加载状态,自动禁用按钮并显示 Spinnerbooleanfalse
disabled禁用状态booleanfalse
leading前置插槽,放置图标或其他内容ReactNode-
trailing后置插槽,放置图标或其他内容ReactNode-
fitContent宽高自适应内容,不再使用固定高度booleanfalse
asChild将渲染委托给子元素,合并 props 和行为booleanfalse

ButtonIcon

继承 Button 的全部 Props,并新增以下属性:

属性说明类型默认值
icon图标名称(传入 Icon 组件)string-
iconProps传递给内部 Icon 组件的额外 propsOmit<IconProps, 'icon'>-

ButtonIcon 的默认值与 Button 不同:variant="ghost"shape="square"color="accent"fitContent={true}

ButtonGroup

属性说明类型默认值
orientation排列方向'horizontal' | 'vertical''horizontal'

类型

IconProps

Icon 组件的属性。

字段类型说明
iconstringIconify 图标名称。
widthnumber | string图标宽度。
heightnumber | string图标高度。
colorstring图标颜色。
inlineboolean是否以内联方式显示图标。

On this page