LLabanaat

Navbar

A top-level site or app header. Composition-based (Navbar.Brand/Content/Item/MenuToggle/Menu), with a shared open/closed context so the mobile hamburger and its dropdown panel stay in sync without prop drilling.

<Navbar position="static">
<NavbarBrand>
  <span className="ui-flex ui-h-7 ui-w-7 ui-items-center ui-justify-center ui-rounded-[var(--ui-radius-md)] ui-bg-[var(--ui-primary)] ui-font-mono ui-text-[13px] ui-font-semibold ui-text-white">L</span>
  <span className="ui-font-semibold ui-text-[var(--ui-fg)]">Labanaat</span>
</NavbarBrand>
<NavbarContent>
  <NavbarItem href="#" active>Docs</NavbarItem>
  <NavbarItem href="#">Components</NavbarItem>
  <NavbarItem href="#">GitHub</NavbarItem>
</NavbarContent>
<NavbarMenuToggle />
<NavbarMenu>
  <NavbarItem href="#" active>Docs</NavbarItem>
  <NavbarItem href="#">Components</NavbarItem>
  <NavbarItem href="#">GitHub</NavbarItem>
</NavbarMenu>
</Navbar>

Editable — change the code above and the preview updates live.

Narrow your browser to see the hamburger toggle appear — NavbarContent hides below the sm breakpoint in favor of NavbarMenu.

Installation

import { Navbar, NavbarBrand, NavbarContent, NavbarItem, NavbarMenuToggle, NavbarMenu } from "@labanaat/ui/navbar";

Props

PropTypeDefaultDescription
position"static" | "sticky" | "fixed""sticky"Positioning of the header bar (on Navbar)
menuOpen / defaultMenuOpenbooleanControlled / uncontrolled mobile menu state (on Navbar)
onMenuOpenChange(open) => voidChange handler (on Navbar)
activebooleanMarks a NavbarItem as the current page

useNavbar() exposes { menuOpen, setMenuOpen } for building custom toggle controls.