Skip to content

Button 按钮

基础按钮组件,原生 <button> 增强。

类型

按钮类型

默认按钮主要按钮成功按钮警告按钮危险按钮文字按钮

尺寸

五种尺寸

超小小按钮中按钮大按钮超大

size 支持 xs / small / medium(默认)/ large / xl 五档;非法值回落 medium 并提示告警。

五种尺寸 · 主要按钮

超小小按钮中按钮大按钮超大

五种尺寸 · 图标按钮

禁用与加载

disabled 禁用按钮;loading 进入加载态——原文字保留占位(宽度不变)、spinner 居中显示,配 loading-text 可显示加载文案。

禁用与加载态

禁用加载提交

异步自动加载

loading="auto" 时,oas-click 宿主处理返回 Promise 期间自动进入加载态,Promise resolve/reject 后自动退出。

异步提交自动 loading

点击异步提交异步保存

禁用但可聚焦

disabled-focusable 呈现禁用外观(降饱和 + aria-disabled),但不设原生 disabled——仍可聚焦、可 hover,适合挂在 tooltip 上解释禁用原因;点击被组件拦截,不派发 oas-click

禁用但可聚焦(配 tooltip 解释)

登录后可操作下载报表

事件

点击事件

点击我

点击派发 oas-click CustomEvent(bubbles + composed),detail.originalEvent 为原生 MouseEvent。

图标按钮

icon 在文字前渲染图标(复用 oas-icon 图标集,IconName),图标与文字间距走 --oas-space-2

图标 + 文字

搜索下载删除新建

无文字时按钮自动等宽正方形,需 aria-label 提供可访问名称;未显式设置时兜底取图标名(如 icon="close"aria-label="close"),建议显式提供中文名称。

纯图标按钮

块级

block 使按钮占满父容器宽度。

块级按钮

块级按钮下载

圆角

round 使用胶囊圆角(--oas-radius-full,无该 token 时回退 999px)。

圆角按钮

完成取消订阅

幽灵

ghost 为透明底 + 描边形态,描边与文字按 type 着色,hover 加深。

幽灵按钮

默认幽灵主要幽灵成功幽灵警告幽灵危险幽灵

圆形

circle 将按钮变为圆形,纯图标按钮等宽圆角合并为整圆。

圆形按钮

图标位置

icon-position 控制图标与文字的相对位置:start(默认,图标在左)或 end(图标在右)。

图标在右

下载下一步

双侧图标

icon 渲染文字前图标,icon-end 在文字后渲染第二个图标(均复用 oas-icon 图标集),两者可与 icon-position 并存。

双侧图标

下载并继续下一步确认并提交

链接按钮

设置 href 后渲染为原生链接(<a>),支持 target 指定打开方式(_blank / _self 等);同时透传 download(文件下载)与 rel(链接关系)属性。

链接按钮

默认链接新窗口打开

下载与 rel

下载季度报表外链(rel=noopener)

朴素

plain 为低对比浅色形态(透明底 + 弱化描边与文字),在浅色背景上更柔和。

朴素按钮

朴素按钮主要朴素危险朴素

形态(variant)

variant 控制按钮形态,与 type 语义色正交:solid(默认实底)/ outlined(描边)/ dashed(虚线描边)/ filled(浅底)/ text(纯文字)/ link(链接样式)。旧属性 ghost 等价 outlinedplain 等价 filled

描边 / 虚线 / 浅底

描边虚线描边浅底默认描边默认虚线

文字 / 链接

文字按钮主色文字链接按钮

自定义颜色

color 覆盖 type 语义色(任意色值),优先级高于 type

配色优先级:--oas-button-bg(宿主注入 CSS 变量,可放渐变)> color 属性 > type 语义色 > 默认灰底。outlined / filled / dashed / text 形态下 color 染边框/文字/浅底;实心形态的文字色按底色亮度自动取黑/白(暗色主题同样可读)。

自定义色值按原值渲染(不自动改写),请自行确保文字与底色对比度达标(WCAG AA 4.5:1)。

自定义颜色

紫色实底绿色描边粉色浅底

按下反馈

wave 开启按下反馈(轻微下沉 + 加深,默认开);wave="false" 关闭。

按下反馈

按下试试(默认开)关闭反馈

中文间空格

auto-insert-space 在两个连续汉字间自动插入空格(中文排版优化,默认关)。

中文间自动空格

保存设置确认提交订单

自动聚焦

autofocus 让按钮在页面加载后自动获得焦点(原生 autofocus 不穿透 Shadow DOM,组件挂载后转发聚焦到内部按钮)。

autofocus 自动聚焦

加载后自动聚焦普通按钮

长内容换行

按钮默认单行不换行(white-space: nowrap);显式加 wrap 后,受限宽(父容器或 width / max-width)的长文本换行显示、高度随内容增长(单行时与默认等高)。

wrap 长内容换行

这是一段会自动换行的长按钮文本窄容器里的主按钮长文本自动换行显示

API

属性

属性说明类型默认值
auto-insert-space中文间自动空格:两个连续汉字间插入空格(排版优化,默认关)string
autofocus自动聚焦:挂载后聚焦内部按钮(原生 autofocus 不穿透 Shadow DOM,组件转发)boolean
block占满父容器宽度(块级)boolean
circle圆形按钮(纯图标场景,正方形 + 正圆角)boolean
color自定义颜色:覆盖 type 语义色(任意色值),优先级高于 typestring
disabled禁用boolean
disabled-focusable视觉禁用但保持可聚焦/可悬停(aria-disabled + 拦截点击),用于挂 tooltip 解释禁用原因boolean
download链接模式(href)透传 download 属性(文件下载按钮)string
ghost幽灵/描边形态,透明底 + 按 type 着色描边,hover 加深boolean
href链接地址:设置后渲染为原生链接 <a>string
icon图标名(复用 oas-icon 图标集);无文字时等宽、以图标名兜底名称string
icon-end文字后的第二个图标(iconRegistry 图标名),与 icon/icon-position 并存——「左图标+右下拉箭头」等双侧内容形态string
icon-position图标位置:start(默认,图标在左)/ end(图标在右)stringstart
loading加载态
loading-text加载态显示的文本(如「提交中…」),设置后 loading 时替换标签内容string
plain朴素形态:低对比浅色(透明底 + 弱化描边文字),等价 variant="filled"boolean
rel链接模式(href)透传 rel 属性(target="_blank" 时配 noopener 安全)string
round胶囊圆角(--oas-radius-full / 999pxboolean
size尺寸:xs / small / medium(默认)/ large / xl;非法值回落 medium 并告警ButtonSizemedium
target链接打开方式(_blank / _self 等),配合 hrefstring
type类型ButtonTypedefault
variant形态(与 type 正交):solid(默认实底)/ outlined(描边)/ dashed(虚线描边)/ filled(浅底)/ text(纯文字)/ link(链接样式)ButtonVariant | ''
wave按下反馈:轻微下沉 + 加深(默认开);wave="false" 关闭stringtrue
wrap长文换行:默认单行不换行(nowrap);开启后受限宽内容换行、高度随内容增长boolean

事件

事件说明
oas-click点击,detail: { originalEvent }

插槽

名称说明
默认

基于 MIT OR Apache-2.0 双许可发布