Collapsible 设计文档

折叠容器原语:对任意内容做高度折叠/展开过渡,无触发器 UI(aria-expanded 由使用方提供)。是 Collapse 手风琴的底层能力,作为独立原语暴露以支持 keepDOM / lazyRender / collapseHeight 等精细控制。机制镜像 Semi:ResizeObserver 测内容高度 + wrapper 显式 height 过渡,仅过渡进行中挂载 transition class。

← API 文档

使用建议

折叠容器原语:对任意内容做高度折叠/展开过渡,无触发器 UI(aria-expanded 由使用方提供)。是 Collapse 手风琴的底层能力,作为独立原语暴露以支持 keepDOM / lazyRender / collapseHeight 等精细控制。机制镜像 Semi:ResizeObserver 测内容高度 + wrapper 显式 height 过渡,仅过渡进行中挂载 transition class。

Accessibility

ARIA role:presentation

  • 折叠时 wrapper overflow:hidden 裁剪内容;完全折叠(不 keepDOM 且 collapseHeight===0)后内容 DOM 卸载移出可达性树
  • 原语不含触发器:aria-expanded / aria-controls 由使用方(或 Collapse)提供;id 透传至内容元素供 aria-controls 关联
  • reduced-motion:motion=true 但用户 prefers-reduced-motion 时移除过渡(即时)

设计变量

变量默认值用法
--cd-transition-delay-collapsible-height var(--cd-motion-delay-none)折叠-高度-延迟时间(组件消费,对齐 Semi $transition_delay-collapsible-height)
--cd-transition-delay-collapsible-opacity var(--cd-motion-delay-none)折叠-透明度-延迟时间(组件消费,对齐 Semi $transition_delay-collapsible-opacity)
--cd-transition-duration-collapsible-height 250ms折叠-高度-动画持续时间默认值(可被 duration prop 覆盖,组件消费,对齐 Semi $transition_duration-collapsible-height)
--cd-transition-duration-collapsible-opacity 250ms折叠-透明度-动画持续时间(组件消费,对齐 Semi $transition_duration-collapsible-opacity)
--cd-transition-function-collapsible-height cubic-bezier(0.25, 0.1, 0.25, 1)折叠-高度-过渡曲线(组件消费,对齐 Semi $transition_function-collapsible-height)
--cd-transition-function-collapsible-opacity var(--cd-motion-ease-in)折叠-透明度-过渡曲线(组件消费,对齐 Semi $transition_function-collapsible-opacity)