Skip to content
Components
@app-studio/components

NavigationMenu

A flexible navigation menu component that supports nested items, icons, and different orientations.

View component source

Import

ts
import { NavigationMenu } 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.

NavigationMenu
PropTypeDefaultDescription
itemsNavigationItem[]—Items displayed by the component.Source
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
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
defaultActiveItemIdstring—See the type and source declaration for this property.Source
defaultExpandedItemIdsstring[]—See the type and source declaration for this property.Source
onItemActivate((itemId: string) => void)—See the type and source declaration for this property.Source
viewsNavigationMenuStyles—Style overrides for the named internal parts.Source

NavigationMenu.List

Scroll horizontally to see every column.

NavigationMenu.List
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
views{ container?: ViewProps; }—Style overrides for the named internal parts.Source

NavigationMenu.Item

Scroll horizontally to see every column.

NavigationMenu.Item
PropTypeDefaultDescription
itemNavigationItem—See the type and source declaration for this property.Source
valuestring—Current controlled value. Update it from the matching change callback.Source
isDisabledboolean—Disables user interaction.Source
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
views{ item?: ViewProps; trigger?: ViewProps; content?: ViewProps; icon?: ViewProps; indicator?: ViewProps; }—Style overrides for the named internal parts.Source

NavigationMenu.Trigger

Scroll horizontally to see every column.

NavigationMenu.Trigger
PropTypeDefaultDescription
children RequiredReact.ReactNode | React.ReactElement<unknown, string | React.JSXElementConstructor<any>>—Content rendered inside the component.Source
itemId Requiredstring—See the type and source declaration for this property.Source
disabledboolean—Disables user interaction.Source
views{ container?: ViewProps; icon?: ViewProps; trigger?: ViewProps; indicator?: ViewProps; }—Style overrides for the named internal parts.Source

NavigationMenu.Content

Scroll horizontally to see every column.

NavigationMenu.Content
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
itemId Requiredstring—See the type and source declaration for this property.Source
views{ container?: ViewProps; }—Style overrides for the named internal parts.Source

NavigationMenu.Link

Scroll horizontally to see every column.

NavigationMenu.Link
PropTypeDefaultDescription
hrefstring—See the type and source declaration for this property.Source
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
views{ container?: ViewProps; icon?: ViewProps; }—Style overrides for the named internal parts.Source
onClick((event: React.MouseEvent) => void)—Called when the user activates the component.Source
isExternalboolean—Opens an external link in a new browsing context.Source
underlineTextDecorationStyle—See the type and source declaration for this property.Source
iconSizeSize—See the type and source declaration for this property.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