Fluixi UI
GitHub ↗

Examples

Loading preview…

navigation-menu

Horizontal site navigation with hover-intent panels and an optional shared viewport.


Implements the WAI-ARIA disclosure navigation pattern: a row of triggers that open rich panel content with hover-intent timing and keyboard support.

Installation

pnpm add @fluixi/navigation-menu

Usage

import {
  NavigationMenu, NavigationMenuList, NavigationMenuItem,
  NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink,
  NavigationMenuViewport, NavigationMenuIndicator,
} from '@fluixi/navigation-menu';

<NavigationMenu>
  <NavigationMenuList>
    <NavigationMenuItem value="products">
      <NavigationMenuTrigger>Products</NavigationMenuTrigger>
      <NavigationMenuContent>
        <NavigationMenuLink href="/analytics">Analytics</NavigationMenuLink>
      </NavigationMenuContent>
    </NavigationMenuItem>
    <NavigationMenuItem value="docs">
      <NavigationMenuTrigger>Docs</NavigationMenuTrigger>
      <NavigationMenuContent></NavigationMenuContent>
    </NavigationMenuItem>
    <NavigationMenuIndicator />
  </NavigationMenuList>
  <NavigationMenuViewport />
</NavigationMenu>

Parts

Part Description
NavigationMenu Root <nav>. delayDuration (hover-open ms, default 200), closeDelay (ms, default 300), orientation.
NavigationMenuList <ul> of menu items.
NavigationMenuItem A single item with a required value.
NavigationMenuTrigger Button that opens the content panel on hover or click. Roving tabindex.
NavigationMenuContent The panel. Floats under its trigger without a viewport; teleports into the viewport when one is present.
NavigationMenuLink An <a> that closes the menu on click. active marks it as current.
NavigationMenuViewport Optional shared surface: all panels teleport into it, which enables morphing size transitions.
NavigationMenuIndicator An arrow that tracks the active trigger position.

Part of the Fluixi UI component library. Made with ☕ by the Fluixi team.