跳到主要内容

Accordion 折叠面板

把次要的内容收起来,只留标题,按需展开:常见问题、高级设置、长表单的分段。内容都很重要、需要一眼看全时不要折叠。

基本用法

默认各项互不影响(multiple),可以同时展开多项。高度用无过冲的 soft 弹簧展开,箭头转 90°,内容稍后淡入。

购买后 14 天内可以无理由全额退款,款项会在 3 到 5 个工作日内原路退回。

在“账单”里随时加购席位,按当月剩余天数折算费用,立即生效。

可以。项目、任务和评论都能导出成 CSV 或 JSON,附件会打包成一个压缩文件。

仅企业版提供。

一次只展开一项

type="single" 时展开一项会收起另一项。默认还可以把唯一展开的那项收起来。

购买后 14 天内可以无理由全额退款,款项会在 3 到 5 个工作日内原路退回。

在“账单”里随时加购席位,按当月剩余天数折算费用,立即生效。

可以。项目、任务和评论都能导出成 CSV 或 JSON,附件会打包成一个压缩文件。

仅企业版提供。

受控,且总有一项展开

value / onChange 受控,值是展开项的数组。single 配合 collapsible={false} 时,已展开的那项不能再收起(它的标题会标成 aria-disabled)。

购买后 14 天内可以无理由全额退款,款项会在 3 到 5 个工作日内原路退回。

在“账单”里随时加购席位,按当月剩余天数折算费用,立即生效。

可以。项目、任务和评论都能导出成 CSV 或 JSON,附件会打包成一个压缩文件。

仅企业版提供。
展开的项:refund

无底变体

variant="plain" 去掉卡片底,用来嵌进已有的卡片或面板。

购买后 14 天内可以无理由全额退款,款项会在 3 到 5 个工作日内原路退回。

在“账单”里随时加购席位,按当月剩余天数折算费用,立即生效。

可以。项目、任务和评论都能导出成 CSV 或 JSON,附件会打包成一个压缩文件。

规格

高度
grid 0fr ⇄ 1fr · spring-soft 曲线 391ms
箭头
rotate 90° · bouncy · 展开后变正文色
内容
延迟 40ms 淡入 160ms + 下移 8px 240ms

接口

Accordion

属性类型默认值说明
items*AccordionItem[]—各项的标题和内容。
type'single' | 'multiple''multiple'single:同时只展开一项。
value / defaultValuestring[][]展开的项,受控 / 非受控;single 时最多一个。
onChange(value: string[]) => void—展开状态变化时。
collapsiblebooleantruesingle 时是否允许把唯一展开的一项收起。
headingLevel2 | 3 | 4 | 5 | 63标题的层级,按所在页面的标题结构选。
variant'group' | 'plain''group'group:带卡片底的分组;plain:没有底。

AccordionItem

属性类型默认值说明
value*string—唯一标识。
title*ReactNode—标题。
content*ReactNode—展开后的内容。
disabledboolean—禁用,不能展开。

无障碍

  • 每一项的标题是标题元素(默认 h3)里的一个按钮,带 aria-expanded 和 aria-controls;内容区是 role="region",用标题命名。
  • Tab 在标题之间移动,Enter 或 Space 展开 / 收起。
  • ↑ ↓ 在标题间循环移动,Home End 到第一个 / 最后一个;禁用的项会被跳过。
  • 收起的内容不可见,里面的控件不在 Tab 顺序里,读屏也读不到。
  • 箭头是装饰;展开与否由 aria-expanded 告诉读屏。