Button 按钮

触发操作并明确表达动作优先级。

Beta

示例

直接操作示例,查看组件在具体任务中的状态与反馈。

用有限的语义色调区分普通操作、主操作和需要明确结果的动作。
根据工具栏、表单和关键操作区域的密度选择合适尺寸。
对照默认、已按下、加载中和禁用状态的语义与反馈。
图标辅助识别动作;仅图标按钮仍需提供明确的可访问名称。
点击主操作后更新确定性的本地状态,并向用户回报结果。
尚未保存任何更改。

使用建议

用于明确、即时的操作

适合提交表单、确认选择或启动一个清晰的流程。按钮文案应直接说明动作结果。

控制操作层级

同一区域优先保留一个主操作;次要操作使用默认层级,避免多个入口争夺注意力。

把异步状态留在原位置

提交过程中使用 loading,暂时不可执行时使用 disabled,并由宿主业务负责结果与错误文案。

引入方式

从已验证的公开子路径导入组件;全局样式接入方式见安装指南。

import { BaseButton } from '@inf-monkeys-tech/monkeys-design/components/base';

当前限制

  • 仅图标按钮需要提供可辨识的 ariaLabel;业务流程、权限和提交错误仍由宿主应用负责。
  • Deterministic visual evidence and final packed React 18/19 checks are pending T17/T23.
export interface BaseButtonProps
  extends Omit<
    ButtonHTMLAttributes<HTMLButtonElement>,
    'children' | 'className' | 'disabled' | 'onClick' | 'style' | 'title' | 'type'
  > {
  children?: ReactNode;
  label?: ReactNode;
  icon?: ReactNode;
  endIcon?: ReactNode;
  type?: 'button' | 'submit' | 'reset';
  title?: string;
  ariaLabel?: string;
  tone?: BaseControlTone;
  size?: BaseControlSize;
  active?: boolean;
  iconOnly?: boolean;
  disabled?: boolean;
  loading?: boolean;
  stopPropagation?: boolean;
  appearance?: BaseAppearance;
  className?: string;
  classNames?: BaseButtonClassNames;
  style?: CSSProperties;
  onClick?: MouseEventHandler<HTMLButtonElement>;
}
属性说明类型默认值
children在 BaseButton 内渲染的子内容;支持渲染函数时以对应的 Props 类型为准。ReactNode
label按钮显示的主要文字或自定义标签内容。ReactNode
icon显示在主要内容旁的图标。ReactNode
endIcon显示在按钮文本末尾的图标。ReactNode
type按钮提交行为对应的原生 type 属性。'button' | 'submit' | 'reset''button'
title写入按钮原生 title 属性、在悬停时提供补充提示的文本。string
ariaLabel在没有可见文本时提供给按钮的可访问名称。string
tone组件使用的语义色调。BaseControlTone
size组件使用的预设尺寸。BaseControlSize
active是否以当前激活状态呈现。booleanfalse
iconOnly是否以仅图标按钮的紧凑布局呈现。booleanfalse
disabled是否禁用该组件及其可交互行为。booleanfalse
loading是否显示加载状态并阻止重复操作。booleanfalse
stopPropagation点击按钮时是否阻止事件继续冒泡。booleanfalse
appearance覆盖组件使用的外观令牌或局部样式配置。BaseAppearance
className追加到组件根元素的 CSS 类名。string
classNames按组件公开的结构插槽分别追加 CSS 类名。BaseButtonClassNames
style追加到组件根元素的内联样式。CSSProperties
onClick按钮被点击时调用的鼠标事件回调。MouseEventHandler<HTMLButtonElement>