# 折叠面板 (/zh/components/accordions)

<!-- agent-signals: reading_time_min: 2 · est_tokens: 1204 · updated: 2026-07-30 -->
Related: [徽章](/zh/components/badge.md), [横幅](/zh/components/banner.md), [标注框](/zh/components/callouts.md), [卡片](/zh/components/cards.md), [代码分组](/zh/components/code-groups.md), [颜色](/zh/components/color.md)

折叠面板允许用户展开和收起内容区块。将折叠面板用于循序渐进地呈现信息，并帮助组织内容。

当你打开一个折叠面板时，URL 的哈希值会更新，这样你就可以分享指向特定折叠面板区域的直接链接。

<div id="single-accordion">
  ## 单个折叠面板 [#单个折叠面板]
</div>

<Accordion title="我是一个折叠面板。">
  你可以在这里放入任何内容，包括其他组件，例如代码：

  ```java title="HelloWorld.java"
   class HelloWorld {
       public static void main(String[] args) {
           System.out.println("Hello, World!");
       }
   }
  ```
</Accordion>

````mdx title="Accordion example"
<Accordion title="我是一个折叠面板。">
  您可以在这里放置任何内容，包括其他组件，比如代码：

   ```java HelloWorld.java
    class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, World!");
        }
    }
  ```
</Accordion>
````

<div id="accordion-groups">
  ## 折叠面板分组 [#折叠面板分组]
</div>

使用 `<AccordionGroup>` 将相关折叠面板组合在一起。这样可构成一个连贯的区块，每个面板都可单独展开或收起。

<AccordionGroup>
  <Accordion title="入门">
    你可以在折叠面板中嵌入其他组件。

    ```java title="HelloWorld.java"
    class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, World!");
        }
    }
    ```
  </Accordion>

  <Accordion title="高级功能" icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M13 7H11C8.19108 7 6.78661 7 5.77772 7.67412C5.34096 7.96596 4.96596 8.34096 4.67412 8.77772C4 9.78661 4 11.1911 4 14C4 16.8089 4 18.2134 4.67412 19.2223C4.96596 19.659 5.34096 20.034 5.77772 20.3259C6.78661 21 8.19108 21 11 21H13C15.8089 21 17.2134 21 18.2223 20.3259C18.659 20.034 19.034 19.659 19.3259 19.2223C20 18.2134 20 16.8089 20 14C20 11.1911 20 9.78661 19.3259 8.77772C19.034 8.34096 18.659 7.96596 18.2223 7.67412C17.2134 7 15.8089 7 13 7Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M4 14H2&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M10 17H14&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M22 14H20&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M15 11V13&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M9 11V13&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M12 7C12 5.11438 12 4.17157 11.4142 3.58579C10.8284 3 9.88562 3 8 3&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/></svg>">
    添加图标可让折叠面板更易区分并便于快速浏览。
  </Accordion>

  <Accordion title="故障排除">
    将相关内容归类到同一分组中。
  </Accordion>
</AccordionGroup>

````mdx title="Accordion Group Example"
<AccordionGroup>
  <Accordion title="入门指南">
    您可以在折叠面板内放置其他组件。

    ```java HelloWorld.java
    class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, World!");
        }
    }
    ```
  </Accordion>

  <Accordion title="高级功能" icon="alien-8bit">
    添加图标可以让折叠面板更具视觉区分度和易于浏览。
  </Accordion>

  <Accordion title="故障排除">
    将相关内容组织成组。
  </Accordion>
</AccordionGroup>
````

<div id="properties">
  ## 属性 [#属性]
</div>

<ResponseField name="title" type="string">
  折叠面板预览中的标题。
</ResponseField>

<ResponseField name="description" type="string">
  折叠面板预览中标题下方的说明。
</ResponseField>

<ResponseField name="defaultOpen" type="boolean" default="false">
  折叠面板默认是否展开。
</ResponseField>

<ResponseField name="id" type="string">
  用于锚点链接的折叠面板自定义 ID。若省略，则默认与 `title` 的值相同。
</ResponseField>

<ResponseField name="icon" type="string">
  要显示的图标。

  可选值：

  * [Font Awesome](https://fontawesome.com/icons) 图标名称 (如果你在 `docs.json` 中将 `icons.library` [属性](/zh/organize/settings#param-icons) 设置为 `fontawesome`)
  * [Lucide](https://lucide.dev/icons) 图标名称 (如果你在 `docs.json` 中将 `icons.library` [属性](/zh/organize/settings#param-icons) 设置为 `lucide`)
  * [Tabler](https://tabler.io/icons) 图标名称 (如果你在 `docs.json` 中将 `icons.library` [属性](/zh/organize/settings#param-icons) 设置为 `tabler`)
  * 指向外部托管图标的 URL
  * 项目中图标文件的路径
  * 用花括号包裹的 SVG 代码

  对于自定义 SVG 图标：

  1. 使用 [SVGR 转换器](https://react-svgr.com/playground/) 转换你的 SVG。
  2. 将 SVG 代码粘贴到 SVG 输入框。
  3. 从 JSX 输出框中复制完整的 `<svg>...</svg>` 元素。
  4. 用花括号包裹可用于 JSX 的 SVG 代码：`icon={<svg ...> ... </svg>}`。
  5. 根据需要调整 `height` 和 `width`。
</ResponseField>

<ResponseField name="iconType" type="string">
  [Font Awesome](https://fontawesome.com/icons) 的图标样式。仅在使用 Font Awesome 图标时生效。

  可选值：`regular`、`solid`、`light`、`thin`、`sharp-solid`、`duotone`、`brands`。
</ResponseField>
