Skip to content
Components
@app-studio/components

Menubar

A versatile component for structured navigation, displaying a list of interactive items and their sub-menus.

View component source

Import

ts
import { Menubar } from '@app-studio/components';

New to the library? Complete installation and provider setup first.

Interactive examples

Try the component, then open Code to copy the complete example.

INTERACTIVE EXAMPLE

Loading preview…

Props

Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.

Scroll horizontally to see every column.

Menubar
PropTypeDefaultDescription
items RequiredMenubarItem[]—Items displayed by the component.Source
orientationOrientation
"horizontal""vertical"
—See the type and source declaration for this property.Source
sizeSize
"sm""md""lg"
—Size preset for the component.Source
variantVariant
"outline""default""filled"
—Visual treatment of the component.Source
defaultActiveMenuIdstring | null—See the type and source declaration for this property.Source
defaultOpenMenuIdstring | null—See the type and source declaration for this property.Source
viewsMenubarStyles—Style overrides for the named internal parts.Source

Menubar.Root

Scroll horizontally to see every column.

Menubar.Root
PropTypeDefaultDescription
children Required
View typestring | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null
—Content rendered inside the component.Source
orientationOrientation—See the type and source declaration for this property.Source
sizeSize—Size preset for the component.Source
variantVariant—Visual treatment of the component.Source
views{ container?: ViewProps; }—Style overrides for the named internal parts.Source

Menubar.Menu

Scroll horizontally to see every column.

Menubar.Menu
PropTypeDefaultDescription
children Required
View typestring | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null
—Content rendered inside the component.Source
id Requiredstring—See the type and source declaration for this property.Source
disabledboolean—Disables user interaction.Source
views{ menu?: ViewProps; }—Style overrides for the named internal parts.Source

Menubar.Trigger

Scroll horizontally to see every column.

Menubar.Trigger
PropTypeDefaultDescription
children Required
View typestring | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null
—Content rendered inside the component.Source
menuId Requiredstring—See the type and source declaration for this property.Source
disabledboolean—Disables user interaction.Source
views{ trigger?: ViewProps; icon?: ViewProps; }—Style overrides for the named internal parts.Source

Menubar.Content

Scroll horizontally to see every column.

Menubar.Content
PropTypeDefaultDescription
children
View typestring | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null
—Content rendered inside the component.Source
menuId Requiredstring—See the type and source declaration for this property.Source
views{ content?: ViewProps; item?: ViewProps; icon?: ViewProps; separator?: ViewProps; }—Style overrides for the named internal parts.Source

Menubar.Item

Scroll horizontally to see every column.

Menubar.Item
PropTypeDefaultDescription
children Required
View typestring | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null
—Content rendered inside the component.Source
id Requiredstring—See the type and source declaration for this property.Source
icon
View typestring | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null
—Icon rendered alongside the content.Source
disabledboolean—Disables user interaction.Source
onClick(() => void)—Called when the user activates the component.Source
views{ item?: ViewProps; icon?: ViewProps; }—Style overrides for the named internal parts.Source

Menubar.Separator

Scroll horizontally to see every column.

Menubar.Separator
PropTypeDefaultDescription
views{ separator?: ViewProps; }—Style overrides for the named internal parts.Source

For shared layout, color, and responsive properties, read Styling & composition and Responsive layouts. Additional native element attributes depend on the target platform.

Usage guidance

  • Give controls a visible label or an accessible name, and verify keyboard interaction. See Accessibility.
  • For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
  • These previews run in the browser. Check React Native setup for platform requirements and differences.
Browse documentation source