Navigation Menu

Top-level nav with hover-open content panels on bits-ui NavigationMenu. The viewport fades and scales in with a cubic-bezier ease; the chevron flips 180° when a trigger opens.

Usage

Without viewport

Set viewport={false} to anchor content panels directly under each trigger instead of rendering in a shared viewport.

With icons

Drop a Remix icon (the <Icon> primitive) inside each NavigationMenu.Link — the link's flex layout handles spacing. Sized to size-4 to read alongside the link title.

Inherits bits-ui NavigationMenu.Root props. Subcomponents passthrough unless noted.

PropTypeDescription
string (bindable)Currently open menu item. Empty string for no open item.
booleanWhen true, content renders in a shared floating viewport under the list. Set false to render each panel anchored to its trigger.
numberMilliseconds before hover opens a menu.
numberGrace period where moving between triggers skips the hover delay.
'horizontal' | 'vertical'Layout axis for the list.
PropTypeDescription
booleanMarks this link as the current route. Applies the muted highlight.
stringAnchor href. Standard HTMLAnchorAttributes pass through.
stringMerged onto the link via tailwind-merge.