组件 · 内容 · 原生 HTML 与 React
折叠 Collapsible
原生 <details>:常见问题、可选的高级设置;同一个 name 时只开一个。
演示
为什么默认直角?
会员站的硬规则:对话框、卡片、按钮、输入框都不许圆角。
主色怎么挑?
18 个预设,墨色是第一个也是默认。
能用 React 吗?
@xxd/react,同一套令牌。
<details class="xxd-collapse" name="faq" open><summary>为什么默认直角?</summary><p>会员站的硬规则:对话框、卡片、按钮、输入框都不许圆角。</p></details>
<details class="xxd-collapse" name="faq"><summary>主色怎么挑?</summary><p>18 个预设,墨色是第一个也是默认。</p></details>
<details class="xxd-collapse" name="faq"><summary>能用 React 吗?</summary><p>@xxd/react,同一套令牌。</p></details>export function CollapsibleDemo() {
const [open, setOpen] = useState(false);
return (
<Collapsible.Root open={open} onOpenChange={setOpen}>
<Collapsible.DefaultTrigger>为什么默认直角?</Collapsible.DefaultTrigger>
<Collapsible.DefaultPanel>
<Text>会员站的硬规则:对话框、卡片、按钮、输入框都不许圆角。</Text>
</Collapsible.DefaultPanel>
</Collapsible.Root>
);
}属性与类名
| 属性 / 类名 | 说明 |
|---|---|
| name(details) | 同名的一组只开一个(手风琴,浏览器原生) |
| 类名 | xxd-collapse |
键盘与读屏
- <summary> 本身就是按钮:Enter / 空格展开,读屏读出展开状态
- 不要把必须看到的信息藏在折叠里
规则
- 展开只淡入 + 小位移,不做高度动画