Menubar
A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands.
import {
Menubar,
MenubarCheckboxItem,
MenubarContent,
MenubarItem,
MenubarMenu,
MenubarRadioGroup,
MenubarRadioItem,
MenubarSeparator,
MenubarShortcut,
MenubarSub,
MenubarSubContent,
MenubarSubTrigger,
MenubarTrigger,
} from '@/components/ui/menubar';
export default function MenubarDemo() {
return (
<Menubar>
<MenubarMenu>
<MenubarTrigger>File</MenubarTrigger>
<MenubarContent>
<MenubarItem>
New tab
<MenubarShortcut>⌘T</MenubarShortcut>
</MenubarItem>
<MenubarItem>
New window
<MenubarShortcut>⌘N</MenubarShortcut>
</MenubarItem>
<MenubarSeparator />
<MenubarSub>
<MenubarSubTrigger>Share</MenubarSubTrigger>
<MenubarSubContent>
<MenubarItem>Email link</MenubarItem>
<MenubarItem>Messages</MenubarItem>
</MenubarSubContent>
</MenubarSub>
<MenubarSeparator />
<MenubarItem>
Print…
<MenubarShortcut>⌘P</MenubarShortcut>
</MenubarItem>
</MenubarContent>
</MenubarMenu>
<MenubarMenu>
<MenubarTrigger>Edit</MenubarTrigger>
<MenubarContent>
<MenubarItem>
Undo
<MenubarShortcut>⌘Z</MenubarShortcut>
</MenubarItem>
<MenubarItem>
Redo
<MenubarShortcut>⇧⌘Z</MenubarShortcut>
</MenubarItem>
</MenubarContent>
</MenubarMenu>
<MenubarMenu>
<MenubarTrigger>View</MenubarTrigger>
<MenubarContent>
<MenubarCheckboxItem defaultChecked>
Always show bookmarks bar
</MenubarCheckboxItem>
<MenubarCheckboxItem>Always show full URLs</MenubarCheckboxItem>
<MenubarSeparator />
<MenubarRadioGroup defaultValue="andy">
<MenubarRadioItem value="andy">Andy</MenubarRadioItem>
<MenubarRadioItem value="benoit">Benoit</MenubarRadioItem>
</MenubarRadioGroup>
</MenubarContent>
</MenubarMenu>
</Menubar>
);
}
Install
npx shadcn@latest add @madeui/menubar
Usage
import {
Menubar,
MenubarContent,
MenubarItem,
MenubarMenu,
MenubarTrigger,
} from '@/components/ui/menubar';
Composition
<Menubar>
<MenubarMenu>
<MenubarTrigger />
<MenubarContent>
<MenubarItem />
<MenubarCheckboxItem />
<MenubarRadioGroup>
<MenubarRadioItem />
</MenubarRadioGroup>
<MenubarSub>
<MenubarSubTrigger />
<MenubarSubContent />
</MenubarSub>
<MenubarSeparator />
</MenubarContent>
</MenubarMenu>
</Menubar>
Checkbox items
import {
Menubar,
MenubarCheckboxItem,
MenubarContent,
MenubarMenu,
MenubarSeparator,
MenubarTrigger,
} from '@/components/ui/menubar';
export default function MenubarCheckbox() {
return (
<Menubar>
<MenubarMenu>
<MenubarTrigger>View</MenubarTrigger>
<MenubarContent>
<MenubarCheckboxItem defaultChecked>
Always show bookmarks bar
</MenubarCheckboxItem>
<MenubarCheckboxItem>Always show full URLs</MenubarCheckboxItem>
<MenubarSeparator />
<MenubarCheckboxItem>Show tab preview</MenubarCheckboxItem>
</MenubarContent>
</MenubarMenu>
</Menubar>
);
}
Radio group
import {
Menubar,
MenubarContent,
MenubarMenu,
MenubarRadioGroup,
MenubarRadioItem,
MenubarTrigger,
} from '@/components/ui/menubar';
export default function MenubarRadio() {
return (
<Menubar>
<MenubarMenu>
<MenubarTrigger>Profiles</MenubarTrigger>
<MenubarContent>
<MenubarRadioGroup defaultValue="andy">
<MenubarRadioItem value="andy">Andy</MenubarRadioItem>
<MenubarRadioItem value="benoit">Benoit</MenubarRadioItem>
<MenubarRadioItem value="luis">Luis</MenubarRadioItem>
</MenubarRadioGroup>
</MenubarContent>
</MenubarMenu>
</Menubar>
);
}
Submenu
import {
Menubar,
MenubarContent,
MenubarItem,
MenubarMenu,
MenubarSeparator,
MenubarSub,
MenubarSubContent,
MenubarSubTrigger,
MenubarTrigger,
} from '@/components/ui/menubar';
export default function MenubarSubmenu() {
return (
<Menubar>
<MenubarMenu>
<MenubarTrigger>File</MenubarTrigger>
<MenubarContent>
<MenubarItem>New tab</MenubarItem>
<MenubarSub>
<MenubarSubTrigger>Share</MenubarSubTrigger>
<MenubarSubContent>
<MenubarItem>Email link</MenubarItem>
<MenubarItem>Messages</MenubarItem>
<MenubarSeparator />
<MenubarItem>Copy link</MenubarItem>
</MenubarSubContent>
</MenubarSub>
</MenubarContent>
</MenubarMenu>
</Menubar>
);
}
API reference
Built on Base UI Menubar, composing the Dropdown Menu parts (installed as a dependency) — MenubarItem, MenubarCheckboxItem, MenubarRadioItem, MenubarSub*, MenubarSeparator, MenubarShortcut, and MenubarLabel are the dropdown-menu parts re-exported, with the same props.
MenubarContent
Same as DropdownMenuContent, with menubar defaults: align="start", alignOffset={-4}, sideOffset={8}, and content-based width.