# Accordions

> Use the accordion component to show and hide content sections, organize related information, and enable progressive disclosure in your docs.

Use accordions to organize information and progressively disclose content. Users can expand and collapse each section.

When you open an accordion, the URL hash updates, which lets you share direct links to specific accordion sections.

## Single accordion

:::accordion{title="I am an Accordion."}
You can put any content in here, including other components, like code:

```java HelloWorld.java theme={null}
 class HelloWorld {
     public static void main(String[] args) {
         System.out.println("Hello, World!");
     }
 }
```
:::

````mdx Accordion example theme={null}
<Accordion title="I am an Accordion.">
  You can put any content in here, including other components, like code:

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

## Accordion groups

Group related accordions together using `<AccordionGroup>`. This creates a cohesive section of accordions that can be individually expanded or collapsed.

::::accordion-group
:::accordion{title="Getting started"}
You can put other components inside Accordions.

```java HelloWorld.java theme={null}
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
```
:::

:::accordion{title="Advanced features"}
Add icons to make accordions more visually distinct and scannable.
:::

:::accordion{title="Troubleshooting"}
Keep related content organized into groups.
:::
::::

````mdx Accordion group example theme={null}
<AccordionGroup>
  <Accordion title="Getting started">
    You can put other components inside Accordions.

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

  <Accordion title="Advanced features" icon="alien-8bit">
    Add icons to make accordions more visually distinct and scannable.
  </Accordion>

  <Accordion title="Troubleshooting">
    Keep related content organized into groups.
  </Accordion>
</AccordionGroup>
````

## Properties

- `title` (string, required) — Title in the Accordion preview. Supports inline Markdown formatting, such as `**bold**`, `_italic_`, and `` `code` ``.

- `description` (string) — Detail below the title in the Accordion preview.

- `defaultOpen` (boolean) — Whether the Accordion is open by default.

- `id` (string) — A custom ID for the accordion used for anchor linking. If omitted, defaults to the same value as `title`.

- `icon` (string) — The icon to display.

Options:

- [Font Awesome](https://fontawesome.com/icons) icon name, if you have the `icons.library` [property](/guides/manage-your-site-organize-settings-appearance#param-icons) set to `fontawesome` in your `docs.json`
- [Lucide](https://lucide.dev/icons) icon name, if you have the `icons.library` [property](/guides/manage-your-site-organize-settings-appearance#param-icons) set to `lucide` in your `docs.json`
- [Tabler](https://tabler.io/icons) icon name, if you have the `icons.library` [property](/guides/manage-your-site-organize-settings-appearance#param-icons) set to `tabler` in your `docs.json`
- A single emoji (for example, `💡` or `🚀`)
- URL to an externally hosted icon
- Path to an icon file in your project
- SVG code wrapped in curly braces

For custom SVG icons:

1. Convert your SVG using the [SVGR converter](https://react-svgr.com/playground/).
2. Paste your SVG code into the SVG input field.
3. Copy the complete `<svg>...</svg>` element from the JSX output field.
4. Wrap the JSX-compatible SVG code in curly braces: `icon={<svg ...> ... </svg>}`.
5. Adjust `height` and `width` as needed.

- `iconType` (string) — The [Font Awesome](https://fontawesome.com/icons) icon style. Only used with Font Awesome icons.

Options: `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands`.

- `className` (string) — Additional CSS classes to apply to the accordion. Also accepted on `AccordionGroup`.

## Related topics

- [How to link documentation pages effectively](/guides/best-practices-guides-linking)
- [Navigation](/docs/organize/navigation.md)
- [Components overview](/docs/components/index.md)

## Related pages

- [Badge](./create-content-components-badge.md)
- [Banner](./create-content-components-banner.md)
- [Callouts](./create-content-components-callouts.md)
- [Cards](./create-content-components-cards.md)
- [Code groups](./create-content-components-code-groups.md)
- [Color](./create-content-components-color.md)
- [Columns](./create-content-components-columns.md)
- [Examples](./create-content-components-examples.md)
- [Expandables](./create-content-components-expandables.md)
- [Fields](./create-content-components-fields.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
