Menubar

Organizes and presents a collection of menu options or actions within a horizontal bar.

llms.txt
	<script lang="ts">
  import { Menubar } from "bits-ui";
  import CaretRight from "phosphor-svelte/lib/CaretRight";
  import Cat from "phosphor-svelte/lib/Cat";
  import Check from "phosphor-svelte/lib/Check";
 
  let selectedView = $state("table");
  let selectedProfile = $state("pavel");
 
  let grids = $state([
    {
      checked: true,
      label: "Pixel"
    },
    {
      checked: false,
      label: "Layout"
    }
  ]);
 
  let showConfigs = $state([
    {
      checked: true,
      label: "Show Bookmarks"
    },
    {
      checked: false,
      label: "Show Full URLs"
    }
  ]);
 
  const profiles = [
    {
      value: "hunter",
      label: "Hunter"
    },
    {
      value: "pavel",
      label: "Pavel"
    },
    {
      value: "adrian",
      label: "Adrian"
    }
  ];
 
  const views = [
    {
      value: "table",
      label: "Table"
    },
    {
      value: "board",
      label: "Board"
    },
    {
      value: "gallery",
      label: "Gallery"
    }
  ];
</script>
 
<Menubar.Root
  class="rounded-10px border-dark-10 bg-background-alt shadow-mini flex h-12 items-center gap-1 border px-[3px]"
>
  <div class="px-2.5">
    <Cat class="size-6" />
  </div>
  <Menubar.Menu>
    <Menubar.Trigger
      class="rounded-9px data-highlighted:bg-muted data-[state=open]:bg-muted inline-flex h-10 cursor-default items-center justify-center px-3 text-sm font-medium focus-visible:outline-none"
    >
      File
    </Menubar.Trigger>
    <Menubar.Portal>
      <Menubar.Content
        class="focus-override border-muted bg-background  shadow-popover focus-visible:outline-hidden z-50 w-fit rounded-xl border px-1 py-1.5"
        align="start"
        sideOffset={3}
      >
        {#each grids as grid (grid.label)}
          <Menubar.CheckboxItem
            class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center gap-3 py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            bind:checked={grid.checked}
          >
            {#snippet children({ checked })}
              {grid.label} grid
              <div class="ml-auto flex items-center">
                {#if checked}
                  {@render SwitchOn()}
                {:else}
                  {@render SwitchOff()}
                {/if}
              </div>
            {/snippet}
          </Menubar.CheckboxItem>
        {/each}
        <Menubar.Separator class="bg-muted my-1 -ml-1 -mr-1 block h-px" />
        <Menubar.RadioGroup bind:value={selectedView}>
          {#each views as view, i (view.label + i)}
            <Menubar.RadioItem
              value={view.value}
              class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center gap-2 py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            >
              {#snippet children({ checked })}
                {view.label}
                <div class="ml-auto size-5">
                  {#if checked}
                    <Check class="size-5" />
                  {/if}
                </div>
              {/snippet}
            </Menubar.RadioItem>
          {/each}
        </Menubar.RadioGroup>
      </Menubar.Content>
    </Menubar.Portal>
  </Menubar.Menu>
 
  <Menubar.Menu>
    <Menubar.Trigger
      class="data-highlighted:bg-muted data-[state=open]:bg-muted inline-flex h-10 cursor-default items-center justify-center rounded-[9px] px-3 text-sm font-medium focus-visible:outline-none"
    >
      Edit
    </Menubar.Trigger>
    <Menubar.Portal>
      <Menubar.Content
        class="focus-override border-muted bg-background shadow-popover focus-visible:outline-hidden z-50 w-full rounded-xl border px-1 py-1.5"
        align="start"
        sideOffset={3}
      >
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Undo
        </Menubar.Item>
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 min-w-[130px] select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Redo
        </Menubar.Item>
        <Menubar.Separator />
        <Menubar.Sub>
          <Menubar.SubTrigger
            class="rounded-button data-highlighted:bg-muted data-[state=open]:bg-muted flex h-10 select-none items-center gap-3 py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
          >
            Find
            <div class="ml-auto flex items-center">
              <CaretRight class="text-foreground-alt h-4 w-4" />
            </div>
          </Menubar.SubTrigger>
          <Menubar.SubContent
            class="focus-override border-muted bg-background shadow-popover focus-visible:outline-hidden w-full max-w-[209px] rounded-xl border px-1 py-1.5"
          >
            <Menubar.Item
              class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            >
              Search the web
            </Menubar.Item>
            <Menubar.Separator />
            <Menubar.Item
              class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            >
              Find...
            </Menubar.Item>
            <Menubar.Item
              class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            >
              Find Next
            </Menubar.Item>
            <Menubar.Item
              class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            >
              Find Previous
            </Menubar.Item>
          </Menubar.SubContent>
        </Menubar.Sub>
        <Menubar.Separator />
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Cut
        </Menubar.Item>
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Copy
        </Menubar.Item>
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Paste
        </Menubar.Item>
      </Menubar.Content>
    </Menubar.Portal>
  </Menubar.Menu>
  <Menubar.Menu>
    <Menubar.Trigger
      class="rounded-9px data-highlighted:bg-muted data-[state=open]:bg-muted inline-flex h-10 cursor-default items-center justify-center px-3 text-sm font-medium focus-visible:outline-none"
    >
      View
    </Menubar.Trigger>
    <Menubar.Portal>
      <Menubar.Content
        class="focus-override border-muted bg-background shadow-popover focus-visible:outline-hidden z-50 w-full max-w-[220px] rounded-xl border px-1 py-1.5"
        align="start"
        sideOffset={3}
      >
        {#each showConfigs as config, i (config.label + i)}
          <Menubar.CheckboxItem
            class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center gap-3 py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
            bind:checked={config.checked}
          >
            {#snippet children({ checked })}
              {config.label}
              <div class="ml-auto flex items-center">
                {#if checked}
                  {@render SwitchOn()}
                {:else}
                  {@render SwitchOff()}
                {/if}
              </div>
            {/snippet}
          </Menubar.CheckboxItem>
        {/each}
        <Menubar.Separator />
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Reload
        </Menubar.Item>
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Force Reload
        </Menubar.Item>
        <Menubar.Separator />
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Toggle Fullscreen
        </Menubar.Item>
        <Menubar.Separator />
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
        >
          Hide Sidebar
        </Menubar.Item>
      </Menubar.Content>
    </Menubar.Portal>
  </Menubar.Menu>
  <Menubar.Menu>
    <Menubar.Trigger
      class="data-highlighted:bg-muted data-[state=open]:bg-muted mr-[20px] inline-flex h-10 cursor-default items-center justify-center rounded-[9px] px-3 text-sm font-medium focus-visible:outline-none"
    >
      Profiles
    </Menubar.Trigger>
    <Menubar.Portal>
      <Menubar.Content
        class="focus-override border-muted bg-background shadow-popover focus-visible:outline-hidden z-50 w-full max-w-[220px] rounded-xl border px-1 py-1.5"
        align="start"
        sideOffset={3}
      >
        <Menubar.RadioGroup bind:value={selectedProfile}>
          {#each profiles as profile, i (profile.label + i)}
            <Menubar.RadioItem
              class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
              value={profile.value}
            >
              {#snippet children({ checked })}
                {profile.label}
                <div class="ml-auto flex items-center">
                  {#if checked}
                    <Check class="size-5" />
                  {/if}
                </div>
              {/snippet}
            </Menubar.RadioItem>
          {/each}
        </Menubar.RadioGroup>
        <Menubar.Separator />
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
          >Edit...</Menubar.Item
        >
        <Menubar.Separator />
        <Menubar.Item
          class="rounded-button data-highlighted:bg-muted flex h-10 select-none items-center py-3 pl-3 pr-1.5 text-sm font-medium focus-visible:outline-none"
          >Add Profile...</Menubar.Item
        >
      </Menubar.Content>
    </Menubar.Portal>
  </Menubar.Menu>
</Menubar.Root>
 
{#snippet SwitchOn()}
  <div
    class="bg-dark-10 peer inline-flex h-[15.6px] min-h-[15.6px] w-[26px] shrink-0 items-center rounded-full px-[1.5px]"
  >
    <span
      class="bg-background dark:border-border-input dark:shadow-mini pointer-events-none block size-[13px] shrink-0 translate-x-[10px] rounded-full"
    ></span>
  </div>
{/snippet}
 
{#snippet SwitchOff()}
  <div
    class="bg-dark-10 shadow-mini-inset peer inline-flex h-[15.6px] w-[26px] shrink-0 items-center rounded-full px-[3px] transition-colors"
  >
    <span
      class="bg-background shadow-mini dark:border-border-input dark:shadow-mini pointer-events-none block size-[13px] shrink-0 translate-x-0 rounded-full transition-transform dark:border"
    ></span>
  </div>
{/snippet}

Structure

	<script lang="ts">
  import { Menubar } from "bits-ui";
</script>
 
<Menubar.Root>
  <Menubar.Menu>
    <Menubar.Trigger />
    <Menubar.Portal>
      <Menubar.Content>
        <Menubar.Group>
          <Menubar.GroupHeading />
          <Menubar.Item />
        </Menubar.Group>
 
        <Menubar.Item />
 
        <Menubar.CheckboxItem>
          {#snippet children({ checked })}
            {checked ? "✅" : ""}
          {/snippet}
        </Menubar.CheckboxItem>
 
        <Menubar.RadioGroup>
          <Menubar.GroupHeading />
          <Menubar.RadioItem>
            {#snippet children({ checked })}
              {checked ? "✅" : ""}
            {/snippet}
          </Menubar.RadioItem>
        </Menubar.RadioGroup>
 
        <Menubar.Sub>
          <Menubar.SubTrigger />
          <Menubar.SubContent />
        </Menubar.Sub>
 
        <Menubar.Separator />
        <Menubar.Arrow />
      </Menubar.Content>
    </Menubar.Portal>
  </Menubar.Menu>
</Menubar.Root>

Reusable Components

If you're planning to use Menubar in multiple places, you can create reusable components that wrap the different parts of the Menubar.

In the following example, we're creating a reusable MyMenubarMenu component that contains the trigger, content, and items of a menu.

MyMenubarMenu.svelte
	<script lang="ts">
  import { Menubar, type WithoutChildrenOrChild } from "bits-ui";
 
  type Props = WithoutChildrenOrChild<Menubar.MenuProps> & {
    triggerText: string;
    items: { label: string; value: string; onSelect?: () => void }[];
    contentProps?: WithoutChildrenOrChild<Menubar.ContentProps>;
    // other component props if needed
  };
 
  let { triggerText, items, contentProps, ...restProps }: Props = $props();
</script>
 
<Menubar.Menu {...restProps}>
  <Menubar.Trigger>
    {triggerText}
  </Menubar.Trigger>
  <Menubar.Content {...contentProps}>
    <Menubar.Group aria-label={triggerText}>
      {#each items as item}
        <Menubar.Item textValue={item.label} onSelect={item.onSelect}>
          {item.label}
        </Menubar.Item>
      {/each}
    </Menubar.Group>
  </Menubar.Content>
</Menubar.Menu>

Now, we can use the MyMenubarMenu component within a Menubar.Root component to render out the various menus.

	<script lang="ts">
  import { Menubar } from "bits-ui";
  import MyMenubarMenu from "./MyMenubarMenu.svelte";
 
  const sales = [
    { label: "Michael Scott", value: "michael" },
    { label: "Dwight Schrute", value: "dwight" },
    { label: "Jim Halpert", value: "jim" },
    { label: "Stanley Hudson", value: "stanley" },
    { label: "Phyllis Vance", value: "phyllis" },
    { label: "Pam Beesly", value: "pam" },
    { label: "Andy Bernard", value: "andy" },
  ];
 
  const hr = [
    { label: "Toby Flenderson", value: "toby" },
    { label: "Holly Flax", value: "holly" },
    { label: "Jan Levinson", value: "jan" },
  ];
 
  const accounting = [
    { label: "Angela Martin", value: "angela" },
    { label: "Kevin Malone", value: "kevin" },
    { label: "Oscar Martinez", value: "oscar" },
  ];
 
  const menubarMenus = [
    { title: "Sales", items: sales },
    { title: "HR", items: hr },
    { title: "Accounting", items: accounting },
  ];
</script>
 
<Menubar.Root>
  {#each menubarMenus as { title, items }}
    <CustomMenubar triggerText={title} {items} />
  {/each}
</Menubar.Root>

Managing Value State

This section covers how to manage the value state of the menubar.

Two-Way Binding

Use bind:value for simple, automatic state synchronization:

	<script lang="ts">
  import { Menubar } from "bits-ui";
  let activeValue = $state("");
</script>
 
<button onclick={() => (activeValue = "menu-1")}>Open Menubar Menu</button>
<Menubar.Root bind:value={activeValue}>
  <Menubar.Menu value="menu-1">
    <!-- ... -->
  </Menubar.Menu>
  <Menubar.Menu value="menu-2">
    <!-- ... -->
  </Menubar.Menu>
</Menubar.Root>

Fully Controlled

Use a Function Binding for complete control over the state's reads and writes.

	<script lang="ts">
  import { Menubar } from "bits-ui";
  let activeValue = $state("");
 
  function getValue() {
    return activeValue;
  }
 
  function setValue(newValue: string) {
    activeValue = newValue;
  }
</script>
 
<Menubar.Root bind:value={getValue, setValue}>
  <Menubar.Menu value="menu-1">
    <!-- ... -->
  </Menubar.Menu>
  <Menubar.Menu value="menu-2">
    <!-- ... -->
  </Menubar.Menu>
</Menubar.Root>

Radio Groups

You can combine the Menubar.RadioGroup and Menubar.RadioItem components to create a radio group within a menu.

	<script lang="ts">
  import { Menubar } from "bits-ui";
 
  const values = ["one", "two", "three"];
  let value = $state("one");
</script>
 
<Menubar.RadioGroup bind:value>
  {#each values as value}
    <Menubar.RadioItem {value}>
      {#snippet children({ checked })}
        {#if checked}

        {/if}
        {value}
      {/snippet}
    </Menubar.RadioItem>
  {/each}
</Menubar.RadioGroup>

Checkbox Items

You can use the Menubar.CheckboxItem component to create a menuitemcheckbox element to add checkbox functionality to menu items.

	<script lang="ts">
  import { Menubar } from "bits-ui";
 
  let notifications = $state(true);
</script>
 
<Menubar.CheckboxItem bind:checked={notifications}>
  {#snippet children({ checked, indeterminate })}
    {#if indeterminate}
      -
    {:else if checked}

    {/if}
    Notifications
  {/snippet}
</Menubar.CheckboxItem>

Checkbox Groups

You can use the Menubar.CheckboxGroup component around a set of Menubar.CheckboxItem components to create a checkbox group within a menu, where the value prop is an array of the selected values.

	<script lang="ts">
  import { Menubar } from "bits-ui";
 
  let colors = $state<string[]>([]);
</script>
 
<Menubar.CheckboxGroup bind:value={colors}>
  <Menubar.GroupHeading>Favorite color</Menubar.GroupHeading>
  <Menubar.CheckboxItem value="red">
    {#snippet children({ checked })}
      {#if checked}

      {/if}
      Red
    {/snippet}
  </Menubar.CheckboxItem>
  <Menubar.CheckboxItem value="blue">
    {#snippet children({ checked })}
      {#if checked}

      {/if}
      Blue
    {/snippet}
  </Menubar.CheckboxItem>
  <Menubar.CheckboxItem value="green">
    {#snippet children({ checked })}
      {#if checked}

      {/if}
      Green
    {/snippet}
  </Menubar.CheckboxItem>
</Menubar.CheckboxGroup>

The value state does not persist between menu open/close cycles. To persist the state, you must store it in a $state variable and pass it to the value prop.

Nested Menus

You can create nested menus using the Menubar.Sub component to create complex menu structures.

	<script lang="ts">
  import { Menubar } from "bits-ui";
</script>
 
<Menubar.Content>
  <Menubar.Item>Item 1</Menubar.Item>
  <Menubar.Item>Item 2</Menubar.Item>
  <Menubar.Sub>
    <Menubar.SubTrigger>Open Sub Menu</Menubar.SubTrigger>
    <Menubar.SubContent>
      <Menubar.Item>Sub Item 1</Menubar.Item>
      <Menubar.Item>Sub Item 2</Menubar.Item>
    </Menubar.SubContent>
  </Menubar.Sub>
</Menubar.Content>

Svelte Transitions

You can use the forceMount prop along with the child snippet to forcefully mount the Menubar.Content component to use Svelte Transitions or another animation library that requires more control.

	<script lang="ts">
  import { Menubar } from "bits-ui";
  import { fly } from "svelte/transition";
</script>
 
<Menubar.Content forceMount>
  {#snippet child({ wrapperProps, props, open })}
    {#if open}
      <div {...wrapperProps}>
        <div {...props} transition:fly>
          <Menubar.Item>Item 1</Menubar.Item>
          <Menubar.Item>Item 2</Menubar.Item>
        </div>
      </div>
    {/if}
  {/snippet}
</Menubar.Content>

Of course, this isn't the prettiest syntax, so it's recommended to create your own reusable content component that handles this logic if you intend to use this approach. For more information on using transitions with Bits UI components, see the Transitions documentation.

API Reference

Menubar.Root

The root menubar component which manages & scopes the state of the menubar.

Property Details
value
onValueChange
dir
loop
ref
children
child
Data Attribute Details

A menu within the menubar.

Property Details
value
onOpenChange
children
Data Attribute Details

Menubar.Trigger

The button element which toggles the dropdown menu.

Property Details
disabled
ref
children
child
Data Attribute Details
data-state
data-menu-trigger

Menubar.Portal

A component that portals the content of the dropdown menu to the body or a custom target (if provided).

Property Details
to
disabled
children
Data Attribute Details

Menubar.Content

The content displayed when the dropdown menu is open.

Property Details
side
sideOffset
align
alignOffset
arrowPadding
avoidCollisions
collisionBoundary
collisionPadding
sticky
hideWhenDetached
updatePositionStrategy
strategy
preventScroll
customAnchor
onEscapeKeydown
escapeKeydownBehavior
onInteractOutside
onFocusOutside
interactOutsideBehavior
onOpenAutoFocus
onCloseAutoFocus
trapFocus
forceMount
preventOverflowTextSelection
dir
loop
ref
children
child
Data Attribute Details
data-state
data-menu-content
CSS Variable Details
--bits-menubar-menu-content-transform-origin
--bits-menubar-menu-content-available-width
--bits-menubar-menu-content-available-height
--bits-menubar-menu-anchor-width
--bits-menubar-menu-anchor-height

Menubar.Item

A menu item within the dropdown menu.

Property Details
disabled
textValue
onSelect
closeOnSelect
ref
children
child
Data Attribute Details
data-orientation
data-highlighted
data-disabled
data-menu-item

Menubar.CheckboxGroup

A group of checkbox menu items, where multiple can be checked at a time.

Property Details
value
onValueChange
ref
children
child
Data Attribute Details
data-menu-checkbox-group

Menubar.CheckboxItem

A menu item that can be controlled and toggled like a checkbox.

Property Details
disabled
checked
onCheckedChange
indeterminate
onIndeterminateChange
value
textValue
onSelect
closeOnSelect
ref
children
child
Data Attribute Details
data-orientation
data-highlighted
data-disabled
data-state

Menubar.RadioGroup

A group of radio menu items, where only one can be checked at a time.

Property Details
value
onValueChange
ref
children
child
Data Attribute Details
data-menu-radio-group

Menubar.RadioItem

A menu item that can be controlled and toggled like a radio button. It must be a child of a RadioGroup.

Property Details
value
disabled
textValue
onSelect
closeOnSelect
ref
children
child
Data Attribute Details
data-orientation
data-highlighted
data-disabled
data-state
data-value
data-menu-radio-item

Menubar.Separator

A horizontal line to visually separate menu items.

Property Details
ref
children
child
Data Attribute Details
data-orientation
data-menu-separator

Menubar.Arrow

An optional arrow which points to the dropdown menu's anchor/trigger point.

Property Details
width
height
ref
children
child
Data Attribute Details
data-state
data-menu-arrow

Menubar.Group

A group of menu items. It should be passed an aria-label or have a child Menu.GroupHeading component to provide a label for a group of menu items.

Property Details
ref
children
child
Data Attribute Details
data-menu-group

Menubar.GroupHeading

A heading for a group which will be skipped when navigating with the keyboard. It is used to provide a heading for a group of menu items and must be a child of either a Menubar.Group or Menubar.RadioGroup component.

Property Details
ref
children
child
Data Attribute Details
data-menu-group-heading

Menubar.Sub

A submenu belonging to the parent dropdown menu. Responsible for managing the state of the submenu.

Property Details
open
onOpenChange
onOpenChangeComplete
children
Data Attribute Details

Menubar.SubTrigger

A menu item which when pressed or hovered, opens the submenu it is a child of.

Property Details
disabled
textValue
onSelect
ref
children
child
Data Attribute Details
data-orientation
data-highlighted
data-disabled
data-state
data-menu-sub-trigger

Menubar.SubContent

The submenu content displayed when the parent submenu is open.

Property Details
side
sideOffset
align
alignOffset
arrowPadding
avoidCollisions
collisionBoundary
collisionPadding
sticky
hideWhenDetached
updatePositionStrategy
strategy
preventScroll
customAnchor
onEscapeKeydown
escapeKeydownBehavior
onInteractOutside
onFocusOutside
interactOutsideBehavior
onOpenAutoFocus
onCloseAutoFocus
trapFocus
forceMount
preventOverflowTextSelection
dir
loop
ref
children
child
Data Attribute Details
data-state
data-menu-sub-content

Menubar.SubContentStatic

The submenu content displayed when the parent submenu menu is open. (Static/No Floating UI)

Property Details
onEscapeKeydown
escapeKeydownBehavior
onInteractOutside
onFocusOutside
interactOutsideBehavior
onOpenAutoFocus
onCloseAutoFocus
trapFocus
forceMount
preventOverflowTextSelection
dir
loop
ref
children
child
Data Attribute Details
data-state
data-menu-sub-content