# Tabs

> Use the tab component to organize content into switchable panels for showing different options, platform versions, or language examples.

Use tabs to organize content into multiple panels that users can switch between. You can add any number of tabs and include other components inside each tab.

::::tabs
:::tab{title="First tab"}
☝️ Welcome to the content that you can only see inside the first tab.

You can add any number of components inside of tabs. For example, a code block:

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

:::tab{title="Second tab"}
✌️ Here's content that's only inside the second tab.

This one has a :icon[leaf]{icon="leaf"} icon.
:::

:::tab{title="Third tab"}
💪 Here's content that's only inside the third tab.
:::
::::

````mdx Tabs example theme={null}
<Tabs>
  <Tab title="First tab">
    ☝️ Welcome to the content that you can only see inside the first tab.

    You can add any number of components inside of tabs. For example, a code block:
    ```java HelloWorld.java
      class HelloWorld {
          public static void main(String[] args) {
              System.out.println("Hello, World!");
          }
      }
    ```
  </Tab>
  <Tab title="Second tab" icon="leaf">
    ✌️ Here's content that's only inside the second tab.

    This one has a <Icon icon="leaf" /> icon.
  </Tab>
  <Tab title="Third tab">
    💪 Here's content that's only inside the third tab.
  </Tab>
</Tabs>
````

Tabs with matching titles stay in sync across the page. For example, if you have multiple tab groups that include a `JavaScript` tab title, selecting `JavaScript` in one tab group automatically selects `JavaScript` in the others. This helps users who choose a language or framework once see that choice reflected everywhere. Tabs also sync with [code groups](/guides/create-content-components-code-groups) that have matching titles.

To disable tab synchronization, add `sync={false}` to a `<Tabs>` component.

```mdx Disable tab sync example theme={null}
<Tabs sync={false}>
  <Tab title="First tab">
    This tab group operates independently.
  </Tab>
  <Tab title="Second tab">
    Selecting tabs here won't affect other tab groups.
  </Tab>
</Tabs>
```

## Tabs properties

Set these properties on the `<Tabs>` wrapper component.

- `defaultTabIndex` (number) — The index of the tab to display by default (zero-based). For example, set to `1` to show the second tab on page load.

- `sync` (boolean) — When `true`, tabs synchronize with other tabs and code groups on the page that have matching titles. Set to `false` to make tabs independent.

- `borderBottom` (boolean) — Adds a bottom border and padding to the tabs container. Useful to visually separate tabbed content from the rest of the page, especially when tabs contain content of varying lengths.

- `className` (string) — Additional CSS classes to apply to the tabs container.

## Tab properties

Set these properties on each individual `<Tab>` component.

- `title` (string, required) — The title of the tab. Short titles are easier to navigate. Tabs with matching titles synchronize their selections. Supports inline Markdown formatting, such as `**bold**`, `_italic_`, and `` `code` ``.

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

- `icon` (string) — A [Font Awesome](https://fontawesome.com/icons), [Lucide](https://lucide.dev/icons), or [Tabler](https://tabler.io/icons) icon, a single emoji, a URL to an icon, or a relative path to an icon.

- `iconType` (string) — For Font Awesome icons only: One of `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands`.

- `className` (string) — Additional CSS classes to apply to the tab's content panel. Classes apply to the panel that holds the tab's content, not to the tab's label in the tab bar.

## Related topics

- [Fix "Failed to fetch OpenAPI file for anchor or tab" error](/guides/help-center-openapi-url-fetch-fails-during-build)
- [Lists and tables](/guides/create-content-create-list-table)
- [Navigation](/docs/organize/navigation.md)

## Related pages

- [Accordions](./create-content-components-accordions.md)
- [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)

# 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.
