Skip to content
Last updated
Products:RedocRedocRevelRevelReefReefRealmRealm
Plans:ProEnterpriseEnterprise+

The sidebar is generated automatically based on your project's file structure if no sidebars.yaml file exists. By default, items in the sidebar menu are sorted using natural ordering: letter characters follow the alphabetical order and multi-digit numbers are treated as a single character. index.md files by default appear as the first item in any sidebar.

For example, the following files: index.md, concept-1.md, concept-11.md, and concept-2.md, result in the following sidebar:

Example sidebar order
├──index.md
├──concept-1.md
├──concept-2.md
└──concept-11.md

API description files automatically add items to the sidebars. These items are generated according to the internal structure of the tags and endpoints described in the file and preserve the order of this structure.

You can customize the sidebar by adding a sidebars.yaml file to the root of your project. A sidebars.yaml file must include all files or directories you want to have in a sidebar: new files and directories aren't added automatically.

Link titles in the sidebar are by default the first heading title on the page. You can use the label option in a sidebars.yaml file to change the link title.

Projects that have multiple products or the catalog, generate separate sidebars for each of item.

In complex projects, you can add separate sidebars.yaml files for each section of your project. Either add the files in project folders, or in the root folder with prefixes (for example: installation.sidebars.yaml. config.sidebars.yaml), then reference these files in the sidebars.yaml at the root of your project.

To hide the sidebar for your entire project, use the sidebar option in redocly.yaml.

Specify the order and link text for side navigation items by creating a sidebars.yaml file.

OptionTypeDescription
pagestringCONDITIONALLY REQUIRED.* Path to the file (extension included) that links to a page. If no label is provided, the link text matches the page's level 1 heading. Use an absolute or relative path. For external links, use href instead. Examples: ./index.md, /docs/tutorial.md, ../../glossary.md, /info#admonition, ./test.md#rename.
hrefstringCONDITIONALLY REQUIRED.* URL to link to. Works with absolute and relative URLs. If no label is provided, the link text matches the href value. The link checker does not follow href links. Use a URL, not a page path (✅ https://redocly.com; ❌ ./index.md).
labelstringLink text displayed for the item.
labelTranslationKeystringSets the translation key for an item's link text. Used for localization.
externalbooleanOpens item in a new tab and adds an external link symbol. Defaults to false. Does not apply to paths to version subfolders.
disconnectbooleanIncludes links in the sidebar without assigning the sidebar to that page. Defaults to false.
iconstring or srcSetEither:
  • A Font Awesome icon name. Realm has the following icon packs built in: Classic Regular, Classic Solid, Duotone Solid, and Classic Brands. The icons automatically adjust their colors when users change the color mode.

    To add an icon from the Classic Regular pack, you can provide the icon name only or prefix the name with regular. To add an icon from other built-in packs, prefix the icon name with: solid (for Classic Solid), duotone (for Duotone Solid), or brands (for Classic Brands).

    Examples: book, duotone book, brands github

    Using other prefixes, including the fa- prefix, causes the icon to not render.

  • Relative path to an icon image file.

    Example: ./images/config-icon.svg

  • A srcSet object. When configured, the icon changes when the user switches between color modes.

    Example:

    icon:
      srcSet: "./images/config-icon.svg light, ./images/config-icon-dark.svg dark"
rbacobjectPage-level access controls for sidebar links. See Configure RBAC in sidebar for more information.
additionalPropsobjectAdditional properties for the sidebar item. Pass arbitrary data that can be accessed in custom theme components. To learn how to customize theme components, see: Eject components.
badges[Badge object]List of badges to display next to the sidebar item label. Each badge has a name (required) and optional color.

* Sidebar links must use either the page or href option ("mutually exclusive").

Group options

OptionTypeDescription
groupstringREQUIRED. Name of the group.
pagestringPath to the file that loads when the group is clicked.
directorystringPath to a folder. Files in the folder automatically appear in the sidebar and are sorted in the natural order.
groupTranslationKeystringSets the translation key for a group. Used for localization.
menuStylestringValues: drilldown -- Shows only the selected group's items and hides other sidebar elements.
expandedstringValues: true -- Items are expanded when page loads. Users can collapse the group. false -- Default. Items are collapsed when page loads. Users can expand. always -- Items are expanded when page loads and cannot be collapsed.
selectFirstItemOnExpandbooleanOpens the first item in a group when the group is expanded. Defaults to false.
iconstring or srcSetEither:
  • A Font Awesome icon name. Realm has the following icon packs built in: Classic Regular, Classic Solid, Duotone Solid, and Classic Brands. The icons automatically adjust their colors when users change the color mode.

    To add an icon from the Classic Regular pack, you can provide the icon name only or prefix the name with regular. To add an icon from other built-in packs, prefix the icon name with: solid (for Classic Solid), duotone (for Duotone Solid), or brands (for Classic Brands).

    Examples: book, duotone book, brands github

    Using other prefixes, including the fa- prefix, causes the icon to not render.

  • Relative path to an icon image file.

    Example: ./images/config-icon.svg

  • A srcSet object. When configured, the icon changes when the user switches between color modes.

    Example:

    icon:
      srcSet: "./images/config-icon.svg light, ./images/config-icon-dark.svg dark"
itemsobject (Link)REQUIRED. A list of items, configured using link options.

Separator options

OptionTypeDescription
separatorstringStatic text that separates items on the sidebar.
iconstring or srcSetEither:
  • A Font Awesome icon name. Realm has the following icon packs built in: Classic Regular, Classic Solid, Duotone Solid, and Classic Brands. The icons automatically adjust their colors when users change the color mode.

    To add an icon from the Classic Regular pack, you can provide the icon name only or prefix the name with regular. To add an icon from other built-in packs, prefix the icon name with: solid (for Classic Solid), duotone (for Duotone Solid), or brands (for Classic Brands).

    Examples: book, duotone book, brands github

    Using other prefixes, including the fa- prefix, causes the icon to not render.

  • Relative path to an icon image file.

    Example: ./images/config-icon.svg

  • A srcSet object. When configured, the icon changes when the user switches between color modes.

    Example:

    icon:
      srcSet: "./images/config-icon.svg light, ./images/config-icon-dark.svg dark"
separatorLinebooleanHorizontal bar that breaks the sidebar into sections. Works in sidebar root or inside a group.
$refstringPath to another sidebar file. Entries from the referenced sidebar expand into this sidebar.

Badge object

OptionTypeDescription
namestringREQUIRED. The text that displays in the badge.

color

string

The color of the badge. Supports predefined color names for consistent styling or direct color values for custom backgrounds.

Supported color names: red, green, blue, grey, turquoise, magenta, purple, carrot, raspberry, orange, grass, persian-green, sky, blueberry.

Supported status colors: success, processing, error, warning, default, approved, declined, pending, active, draft, deprecated, product.

Defaults to grey.

positionstringThe position of the badge relative to the label text. Possible values: before, after. Defaults to after.
iconstringIcon to display inside the badge. Accepts a Font Awesome icon name or a relative path to an icon image file.

Icon object

OptionTypeDescription
srcSetstringComma-separated list of icon file paths and corresponding color modes. When configured, the icon changes when the user switches between color modes.

Examples

Basic sidebar structure

The following example shows a simple sidebars.yaml file with pages and basic groups:

sidebars.yaml
- page: overview.md
- page: installation.md
  label: Installation
- group: Getting started
  items:
    - page: quickstart.md
    - page: tutorials/first-steps.md
      label: First steps
- group: API reference
  items:
    - page: users-api.yaml
      label: Users API
    - page: orders-api.yaml
      label: Orders API

Groups with landing pages

Groups can navigate to a landing page when clicked by adding a page property:

sidebars.yaml
- page: overview.md
- group: User guides
  page: guides/index.md
  selectFirstItemOnExpand: true
  items:
    - page: guides/getting-started.md
      label: Getting started
    - page: guides/advanced.md
      label: Advanced usage
- group: API reference
  page: api/index.md
  items:
    - page: api/users.yaml
      label: Users API
    - page: api/orders.yaml
      label: Orders API

Nested groups and expand behavior

Groups can contain other groups and have customizable expand behavior:

sidebars.yaml
- page: overview.md
- group: Documentation
  expanded: true
  items:
    - page: docs/getting-started.md
    - group: Guides
      expanded: false
      items:
        - page: guides/authentication.md
        - page: guides/rate-limiting.md
    - group: Advanced topics
      expanded: always
      items:
        - page: advanced/webhooks.md
        - page: advanced/custom-domains.md

Separators and organization

Use separators to organize sidebar content into distinct sections:

sidebars.yaml
- group: User documentation
  items:
    - separator: Getting started
      icon: book
    - page: quickstart.md
    - page: installation.md
    - separator: Advanced features
    - page: advanced/webhooks.md
    - page: advanced/integrations.md
    - separatorLine: true
    - separator: API reference
    - page: api/users.yaml
    - page: api/orders.yaml

Complete sidebar configuration

The following example shows a comprehensive sidebars.yaml file with various options:

sidebars.yaml
- page: overview.md
- page: installation.md
  label: Installation
- group: Configuration
  icon: duotone cog
  selectFirstItemOnExpand: true
  expanded: true
  items:
    - page: config/index.md
    - page: config/developer-onboarding.md
      label: Developer onboarding
    - group: Reference
      page: config/reference/index.md
      separatorLine: true
      items:
        - page: config/reference/config-files.md
          label: Config files
- group: Content
  menuStyle: drilldown
  icon: ./images/content-icon.png
  items:
    - directory: content
- $ref: ./templates/sidebars.yaml
- group: Plugins
  items:
    - directory: plugins
- page: /setup-links#config
- group: Resources
  separatorLine: true
  items:
    - href: https://redocly.com/docs
      label: Documentation
      external: true
    - href: /docs/cli/v1.3
      label: Legacy CLI docs

Additional properties

Use additionalProps to add custom data to sidebar items:

sidebars.yaml
- page: overview.md
  label: Overview
  additionalProps:
    difficulty: beginner
- group: Getting started
  items:
    - page: quickstart.md
      label: Quick Start
      additionalProps:
        estimatedTime: 5 minutes
    - page: installation.md
      label: Installation
      additionalProps:
        difficulty: beginner

Custom theme components can access these properties to display additional information or implement custom behavior.

Badges

Use badges to add visual indicators to sidebar items:

sidebars.yaml
- page: overview.md
  label: Overview
- page: new-feature.md
  label: New Feature
  badges:
    - name: New
      color: green
      icon: solid star
- page: experimental-api.md
  label: Experimental API
  badges:
    - name: Beta
      color: '#ff9800'
      position: before
    - name: Unstable
      color: var(--color-danger-base)
- group: Deprecated APIs
  items:
    - page: legacy-api.md
      label: Legacy API
      badges:
        - name: Deprecated
          color: var(--color-warning-base)

Resources