AppBar
v1.0.9Updated 27 Aug 2026Odoo/Xero-style module-menu top bar — app launcher, brand, a current-module pill with switcher, a Radix Menubar section-dropdown bar, and a right cluster (+New, ⌘K search, notifications, company switcher, avatar). Dark surface.
Preview
Live · 5 stories▸Why this is recommendedheaderappbartopbarmenubar+6
AppBar — module menu.
- ✓Top of a module-based ERP/accounting workspace
- ✓Odoo/Xero-style products with section menus
- ✓Apps needing a module switcher + dropdown menu bar
- App launcher + brand + current-module pill with switcher
- Horizontal section dropdown bar on Radix Menubar (arrow-key nav) with active underline
- Right cluster: +New (split), ⌘K search, TH/EN toggle, notifications, company switcher, avatar menu
- Dark bg-sidebar surface, both themes; responsive collapse with hidden-scrollbar overflow
- Data-driven, SSR-safe, keyboard-accessible, className + data-slot passthrough
- i18n: labels prop overrides every built-in UI string (app-launcher aria, Switch module heading, language-group aria, account-menu aria, search text); merged over DEFAULT_APP_BAR_LABELS
- ✕Primary vertical navigation (use Sidebar)
- ✕In-page section headers (use PageHead)
- ✕Minimal marketing headers (use AppBarCommand)
Install
Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.
Usage
Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.
Props
brandLogo chip + wordmark
—moduleCurrent-module pill (+ modules switcher)
—modulesFlat module-switcher list shown in the pill dropdown
—moduleGroupsGrouped module switcher — bands of modules under labelled headings, for when a flat `modules` list has grown past readable. AppBarModuleGroup = { id, label: ReactNode, modules: AppBarModule[] }. Takes precedence over `modules`; rows keep their icon, truncation, aria-current and active check, and the generic "Switch module" caption drops away since each band names itself. MCP feedback fb_f295b2f1.
—menusHorizontal section dropdown bar
—newAction+New button (plain or split menu)
—companyCurrent company (+ companies switcher)
—userAvatar dropdown menu
—stickyPosition sticky top-0 z-40 (default true)
—labelsOverride any built-in UI string (i18n). Merged over DEFAULT_APP_BAR_LABELS; the searchPlaceholder prop wins over labels.searchPlaceholder
—