Skip to content

ButtonGroup 按钮组

按钮组:将多个 oas-button 组合为一个选值组,相邻按钮圆角合并、hover 只亮当前项。

基本用法

基础按钮组

一月二月三月

类型与尺寸透传

type / size 会统一透传给组内所有子按钮。size 支持 xs / small / medium(默认)/ large / xl 五档。

类型与尺寸透传

超小超小超小超大超大超大

变体与圆角透传

variant / roundtype / size 一样统一透传给组内所有子按钮:组上设一次,子按钮统一应用。variant 支持 solid(默认)/ outlined / dashed / filled / text / link 六种形态,取值与 oas-button 一致;round 让子按钮呈胶囊圆角。

变体与圆角透传

描边描边描边虚线虚线虚线选项 A选项 B选项 C

单选

通过 value 声明当前选中项,点击派发 oas-change,detail 为 { value }

单选选值组

选项 A选项 B选项 C

多选

multiple 开启多选,value 用逗号分隔多个选中值,点击派发 oas-change,detail 为 { value: [] }

多选选值组

标签 A标签 B标签 C

可访问名称

aria-label 为按钮组容器设置可访问名称,屏幕阅读器将其朗读为一个可聚焦的按钮组;未设置时走内置 i18n「按钮组」。同页存在多个按钮组时,用名称区分它们。

aria-label 可访问名称

列表视图网格视图导出 CSV导出 PDF

纵向

纵向按钮组

置顶置中置底

Spread 均分铺满

spread 让组内按钮等宽均分铺满容器宽度(移动端操作栏 / 表单底部按钮组的常见形态)。与 type / size / variant / pill 等组合使用。

Spread 均分铺满

确定取消选项 A选项 B选项 C保存发布删除

禁用与混排

disabled 禁用整个组;组内无 value 属性的按钮为普通按钮,不参与选值。

禁用与混排

已禁用已禁用保存删除更多操作

Pill 胶囊形态

pill 让整个按钮组呈胶囊形态:首/尾按钮圆角使用 --oas-radius-full(999px),横向首左圆/尾右圆、纵向首上圆/尾下圆,中间按钮保持直角。

Pill 胶囊形态

选项 A选项 B选项 C上一页下一页置顶置中置底

分隔符

组内可放 <oas-button-group-separator> 渲染一条分隔线:横向组为 1px 竖线、纵向组为 1px 横线(方向随组朝向自动同步)。分隔符贴合相邻按钮、不参与圆角合并,建议放在按钮 / 嵌套组之间。

分隔符

复制剪切粘贴置顶置中置底

嵌套组

oas-button-group 内可再嵌 oas-button-group,嵌套组作为整体一项参与贴合与圆角合并:外层把首/尾圆角经 --oas-button-group-start-radius / --oas-button-group-end-radius 穿透给嵌套组首尾按钮。嵌套组作为整体独立管理内部按钮(外层 type / size 不透传),外层 disabled 会整体禁用嵌套组。

嵌套组

撤销重做保存上一页下一页

拆分按钮(Split Button)

button-group + oas-dropdown split 编排拆分按钮:主按钮触发 oas-action(执行主操作),箭头按钮展开下拉菜单(菜单选择走 oas-select)。

拆分按钮(Split Button)

保存发布

组合用法

按钮组与浮层、输入框等现有组件编排组合。

按钮 + 浮层

编辑复制粘贴?

按钮 + 输入

搜索重置

工具栏(多组组合)

BIU左对齐居中右对齐CSVPDF

API

属性

属性说明类型默认值
aria-label组容器可访问名称(默认走 i18n「按钮组」)
disabled禁用整个组boolean
multiple多选模式boolean
pill胶囊形态:组整体首尾大圆角(--oas-radius-full / 999px
round组级 round 圆角透传子按钮(组设一次,子按钮统一胶囊圆角)boolean
size透传给子按钮的尺寸string
spread组内按钮 flex:1 均分铺满容器宽度(移动端操作栏/表单底部按钮组)
type透传给子按钮的类型string
value选中值(单选为单值,多选用逗号分隔)string
variant组级 variant 形态透传子按钮(组设一次,子按钮统一应用)string
vertical纵向堆叠,圆角合并方向改为上下boolean

事件

事件说明
oas-change选中变化。单选 detail: { value };多选 detail: { value: [] }

插槽

名称说明
默认

说明:子按钮通过 value 属性声明其选值;不带 value 的子按钮是普通按钮,不参与选值、不派发 oas-change。选中态通过子按钮 aria-pressed 表达,可用 oas-button[aria-pressed='true'] 自定义选中样式。

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