ToggleButton 切换按钮
aria-pressed 二态切换按钮,按下态使用主色底。支持尺寸档、图标(含纯图标形态)、选中色与校验态。
基础用法
基础
事件
变化事件
禁用
禁用
尺寸档(size)
size 三档 small / medium(默认)/ large,控高与字号对齐全局 token;未显式设置时就近读取 config-provider 的 size 注入(全局密度联动):
尺寸档
图标(icon / 纯图标)
icon 传入 @oas-ui/icons 注册表图标名,在文字前渲染图标(间距走 --oas-space-2)。无文字时自动进入纯图标形态(等宽正方形),可访问名兜底取图标名,建议用 aria-label 提供中文名称:
图标与纯图标
双态图标(icon-toggled)
icon-toggled 指定按下态图标:按下时切换渲染该图标,抬起回落 icon(只设 icon-toggled 时未按下无图标)。与 color / variant / 纯图标形态正交;纯图标的可访问名兜底随生效图标切换(建议始终用 aria-label 提供稳定名称):
双态图标(按下切换图标)
选中色(color)
color 按 ui-spec 统一协议解析:任意 CSS 色值(实底文字色按亮度自动取黑/白)优先;11 预设名(magenta / red / volcano / orange / gold / lime / green / cyan / blue / geekblue / purple)解析为 --oas-preset-* token(明暗主题自适应);缺省主色。主题级批量定制走 CSS 变量 --oas-toggle-color / --oas-toggle-on-color:
选中色
校验态(status)
status 三态 success / warning / error:边框着语义色、focus ring 同步染色;error 联动宿主 aria-invalid(宿主自设 aria-invalid="true" 等效 error 视觉):
校验态
形态(variant)
variant 形态维度(对齐 oas-button 的 variant 体系,取切换语义有意义的子集):solid(默认,描边容器、按下实底主色)/ outlined(透明底描边,按下主色描边 + 淡底着色)/ filled(浅底无描边,按下实底)/ text(无框无底,按下淡底 + 主色文字)。非法值静默回落 solid;与 size / color / status 正交(status 语义色优先)。工具栏纯图标切换建议 text 或 outlined,筛选面板建议 filled。
四种形态(未按下 / 按下对照)
形态 + 真实切换(点击看反馈)
API
oas-toggle-button
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
aria-label | 可访问名(宿主覆盖通道,写入内部 button) | — | — |
color | 选中色:预设名(--oas-preset-* token)或任意 CSS 色值(自动算文字色) | string | — |
disabled | 禁用 | boolean | — |
icon | 图标(oas-icon 图标名);无文本时纯图标等宽正方形 | string | — |
icon-toggled | 按下态图标(oas-icon 图标名):按下时切换渲染该图标,抬起回落 icon(仅设 icon-toggled 时未按下无图标);纯图标可访问名兜底随生效图标切换 | string | — |
pressed | 是否按下(受控) | boolean | — |
size | 尺寸档位 small / medium(默认)/ large | string | medium |
status | 校验态:error / warning / success;error 联动 aria-invalid | string | — |
value | 值(随事件回传) | string | — |
variant | 形态(对齐 button variant 体系):solid(默认,描边容器、按下实底)/ outlined(透明底描边,按下主色描边 + 淡底)/ filled(浅底无描边,按下实底)/ text(无框无底,按下淡底 + 主色文字);非法值静默回落 solid | string | — |
Property(JS property;是否写回 attribute 见各行说明)
| Property | 说明 | 类型 | 默认值 |
|---|---|---|---|
value | 当前值:值标识字符串(按下态为独立 pressed 属性) | string | — |
事件
| 事件 | 说明 |
|---|---|
oas-change | 切换,detail: { value, pressed } |
插槽
| 名称 | 说明 |
|---|---|
| 默认 | 按钮内容(文案 / 图标) |
CSS 变量
| CSS 变量 | 默认值 |
|---|---|
--oas-toggle-color | var(--oas-color-primary) |
--oas-toggle-on-color | var(--oas-color-text-on-primary) |
--oas-toggle-tint-text | var(--oas-color-primary-text) |