折叠面板
Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
trigger | string | - | 触发器的纯文本标签。标签需要标题、图标或其他控件时改用 trigger 插槽,插槽会完全替换这个属性。 |
v-model:isOpen | boolean | - | 受控的展开状态。绑定后组件完全跟随这个值,点击只发出更新请求;不绑定时组件自己管理状态。 |
defaultIsOpen | boolean | true | 未绑定 isOpen 时,初始是否展开。 |
isDisabled | boolean | false | 禁用后触发器变暗、带 aria-disabled 并退出 Tab 顺序,点击不再切换状态,也不会收起已经展开的内容。 |
chevronPosition | CollapsibleChevronPosition | 'end' | 指示箭头的逻辑位置。end(默认)跟在标签后面,收起时朝下、展开时朝上;start 放在标签前面,收起时指向内容一侧(RTL 下镜像),展开时朝下。 |
插槽
| 名称 | 说明 |
|---|---|
default | 收起时隐藏、展开时显示的内容。 |
trigger | 触发器的标签内容,可以放标题、图标或额外的控件,用来替换 trigger 属性。 |
事件与模板引用
| 名称 | 签名 | 说明 |
|---|---|---|
openChange | (isOpen: boolean) => void | 触发器请求切换状态时触发。非受控用法下是状态变化的通知,受控用法下是对父组件的更新请求。 |
update:isOpen | (isOpen: boolean) => void | 由 v-model:isOpen 自动监听,一般不需要手动处理。 |
element | HTMLDivElement | null | 根元素,通过模板引用暴露。 |
主题
css
.my-collapsible {
--astryx-collapsible-trigger-foreground: #171717;
--astryx-collapsible-content-foreground: #525252;
}--astryx-collapsible-trigger-foreground:触发器文字颜色。--astryx-collapsible-content-foreground:内容文字颜色。--astryx-collapsible-pressed-overlay:按住触发器时叠加的背景,仅在按下期间出现。--astryx-collapsible-focus:键盘聚焦时的轮廓颜色。--astryx-spacing-1、--astryx-text-large-size、--astryx-text-body-size:内边距与两处文字尺寸沿用全局 token。
Neutral 主题自动适配明暗模式。
原生属性
根元素为 <div>。
以下内容传入根元素:
- HTML 属性。
aria-*属性。data-*属性。class。style。
触发器是根元素内部的 <button type="button">,它的 aria-expanded、aria-controls、aria-disabled 与 tabindex 由组件维护。禁用时不会使用原生 disabled,以便触发器继续被辅助技术感知。