Skip to content

折叠面板

Props ​

名称类型默认值说明
triggerstring-触发器的纯文本标签。标签需要标题、图标或其他控件时改用 trigger 插槽,插槽会完全替换这个属性。
v-model:isOpenboolean-受控的展开状态。绑定后组件完全跟随这个值,点击只发出更新请求;不绑定时组件自己管理状态。
defaultIsOpenbooleantrue未绑定 isOpen 时,初始是否展开。
isDisabledbooleanfalse禁用后触发器变暗、带 aria-disabled 并退出 Tab 顺序,点击不再切换状态,也不会收起已经展开的内容。
chevronPositionCollapsibleChevronPosition'end'指示箭头的逻辑位置。end(默认)跟在标签后面,收起时朝下、展开时朝上;start 放在标签前面,收起时指向内容一侧(RTL 下镜像),展开时朝下。

插槽 ​

名称说明
default收起时隐藏、展开时显示的内容。
trigger触发器的标签内容,可以放标题、图标或额外的控件,用来替换 trigger 属性。

事件与模板引用 ​

名称签名说明
openChange(isOpen: boolean) => void触发器请求切换状态时触发。非受控用法下是状态变化的通知,受控用法下是对父组件的更新请求。
update:isOpen(isOpen: boolean) => void由 v-model:isOpen 自动监听,一般不需要手动处理。
elementHTMLDivElement | 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,以便触发器继续被辅助技术感知。