React 组件

UGButton 按钮

用于触发操作的基础控件。外观、语义色、尺寸和状态彼此独立,可覆盖工具栏、表单、危险确认与移动端全宽操作。

导入方式

按需从包入口导入组件,并在应用入口引入一次样式文件。

tsx
import { UGButton, UGButtonGroup } from '@ug666/ui-react'

按钮类型

外观只表达操作层级;链接外观仍是操作按钮,页面导航请使用 UGLink。

语义按钮

用于成功、警告、危险和信息操作。

图标与位置

图标属于按钮内容,可放在文字前后;纯图标按钮必须提供 aria-label。

形状

标准圆角用于常规界面,胶囊和正圆仅在空间与场景需要时使用。

尺寸

三档文字按钮和两档正方形图标按钮共享统一高度体系。

加载状态

加载会阻止重复点击;可以保留原文、替换文字、改变位置或提供自定义指示器。

禁用状态

不同外观在禁用后仍保留原有层级,但不响应点击或键盘激活。

全宽按钮

适合移动端主操作、登录提交和窄容器底部操作。

配置继承与覆盖

在应用根节点配置一次,后代按钮默认继承;组件属性优先,嵌套 Provider 只覆盖局部。颜色、圆角和字体由根 Token 统一控制。

按钮组与连续按钮

相关操作可以统一排列;按钮组只负责布局与公共配置,不承担选中值管理。

统一配置、纵向排列

组级外观、尺寸和禁用状态会下发给子按钮;纵向模式适合窄侧栏操作区。

原生行为与无障碍

默认 type 为 button;组件透传原生属性,并保留 Tab、Enter、Space 键盘行为。

按钮属性

属性类型默认值说明
variant'solid' | 'soft' | 'default' | 'secondary' | 'outline' | 'dashed' | 'ghost' | 'text' | 'link' | 兼容语义预设'default'控制按钮外观。primary、success 等旧语义预设继续兼容。
tone'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info'按 variant 推导设置语义颜色,可与 solid、soft、outline、dashed、ghost、text、link 组合。
size'default' | 'sm' | 'lg' | 'icon-sm' | 'icon'ConfigProvider / default控制文字按钮高度或正方形图标按钮尺寸;未设置时继承全局尺寸。
shape'default' | 'circle' | 'round''default'设置标准圆角、正圆或胶囊形态。
blockbooleanfalse让按钮宽度占满父容器。
loadingbooleanfalse显示加载指示器、设置 aria-busy 并阻止重复点击。
loadingTextReactNode加载时替换按钮正文;不传则保留原文,减少宽度跳动。
loadingIconReactNodeLoader2替换默认加载指示器。
loadingPlacement'start' | 'end''start'控制加载指示器位于文字起始或末尾。
disabledbooleanConfigProvider / false禁用原生按钮;全局或按钮组禁用时同样生效。
type'button' | 'submit' | 'reset''button'原生按钮类型;默认不会意外提交表单。
childrenReactNode按钮正文,可组合前置或后置图标。

按钮组属性

属性类型默认值说明
variantButtonVariant统一设置组内按钮外观,子按钮可以覆盖。
toneButtonTone统一设置组内按钮语义色,子按钮可以覆盖。
sizeButtonSizeConfigProvider统一设置组内按钮尺寸;未设置时继承全局尺寸。
shapeButtonShape统一设置组内按钮形状。
disabledbooleanConfigProvider / false禁用组内全部按钮;全局禁用时同样生效。
orientation'horizontal' | 'vertical''horizontal'设置横向或纵向排列。
attachedbooleanfalse合并相邻按钮边界,形成连续操作组。
childrenReactNode按钮组内容,通常放置 UGButton。
className / stylestring / CSSProperties扩展组容器布局和局部样式。
原生属性 / refHTMLAttributes<HTMLDivElement> / Ref<HTMLDivElement>透传 aria-*、data-* 和原生事件,并暴露实际 group 容器。

原生属性与 Ref

属性类型默认值说明
onClickMouseEventHandler<HTMLButtonElement>原生点击事件;disabled 或 loading 时不会触发。
refRef<HTMLButtonElement>获取实际的 HTMLButtonElement。
原生属性ButtonHTMLAttributes<HTMLButtonElement>透传 aria-*、data-*、name、value、form 等原生按钮属性。