Menubar
StorybookA horizontal menu bar (File/Edit/View pattern) with multi-menu coordination, hover-to-switch, cross-menu keyboard navigation, sub-menus, and full ARIA menubar semantics.
Basic
A simple menubar with File and Edit menus. Click a trigger or press Enter/ArrowDown to open. Arrow keys navigate between triggers and between menus. Hover switches menus when one is already open.
New Tab
⌘T
New Window
⌘N
New Incognito Window
Print...
⌘P
Undo
⌘Z
Redo
⇧⌘Z
Cut
⌘X
Copy
⌘C
Paste
⌘V
<.menubar id="basic-menubar">
<.menubar_menu>
<.menubar_trigger>File</.menubar_trigger>
<.menubar_content>
<.menubar_item>
New Tab <.menubar_shortcut>⌘T</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
New Window <.menubar_shortcut>⌘N</.menubar_shortcut>
</.menubar_item>
<.menubar_item disabled>
New Incognito Window
</.menubar_item>
<.menubar_separator />
<.menubar_item>
Print... <.menubar_shortcut>⌘P</.menubar_shortcut>
</.menubar_item>
</.menubar_content>
</.menubar_menu>
<.menubar_menu>
<.menubar_trigger>Edit</.menubar_trigger>
<.menubar_content>
<.menubar_item>
Undo <.menubar_shortcut>⌘Z</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
Redo <.menubar_shortcut>⇧⌘Z</.menubar_shortcut>
</.menubar_item>
<.menubar_separator />
<.menubar_item>
Cut <.menubar_shortcut>⌘X</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
Copy <.menubar_shortcut>⌘C</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
Paste <.menubar_shortcut>⌘V</.menubar_shortcut>
</.menubar_item>
</.menubar_content>
</.menubar_menu>
</.menubar>
Full Demo
Four menus: File (sub-menu "Share"), Edit (sub-menu "Find"), View (checkbox items), Profiles (radio group). Mirrors the shadcn official demo.
New Tab
⌘T
New Window
⌘N
New Incognito Window
Share
Email Link
Messages
Notes
Print...
⌘P
Undo
⌘Z
Redo
⇧⌘Z
Find
Search the web
Find...
Find Next
Find Previous
Cut
Copy
Paste
Always Show Bookmarks Bar
Always Show Full URLs
Reload
⌘R
Force Reload
⇧⌘R
Toggle Fullscreen
Hide Sidebar
Benoit
Pedro
Colm
Edit...
Add Profile...
Server state:
bookmarks_bar=true, full_urls=false, profile=benoit
<.menubar id="full-menubar">
<.menubar_menu>
<.menubar_trigger>File</.menubar_trigger>
<.menubar_content>
<.menubar_item>
New Tab <.menubar_shortcut>⌘T</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
New Window <.menubar_shortcut>⌘N</.menubar_shortcut>
</.menubar_item>
<.menubar_item disabled>New Incognito Window</.menubar_item>
<.menubar_separator />
<.menubar_sub>
<.menubar_sub_trigger>Share</.menubar_sub_trigger>
<.menubar_sub_content>
<.menubar_item>Email Link</.menubar_item>
<.menubar_item>Messages</.menubar_item>
<.menubar_item>Notes</.menubar_item>
</.menubar_sub_content>
</.menubar_sub>
<.menubar_separator />
<.menubar_item>
Print... <.menubar_shortcut>⌘P</.menubar_shortcut>
</.menubar_item>
</.menubar_content>
</.menubar_menu>
<.menubar_menu>
<.menubar_trigger>Edit</.menubar_trigger>
<.menubar_content>
<.menubar_item>
Undo <.menubar_shortcut>⌘Z</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
Redo <.menubar_shortcut>⇧⌘Z</.menubar_shortcut>
</.menubar_item>
<.menubar_separator />
<.menubar_sub>
<.menubar_sub_trigger>Find</.menubar_sub_trigger>
<.menubar_sub_content>
<.menubar_item>Search the web</.menubar_item>
<.menubar_separator />
<.menubar_item>Find...</.menubar_item>
<.menubar_item>Find Next</.menubar_item>
<.menubar_item>Find Previous</.menubar_item>
</.menubar_sub_content>
</.menubar_sub>
<.menubar_separator />
<.menubar_item>Cut</.menubar_item>
<.menubar_item>Copy</.menubar_item>
<.menubar_item>Paste</.menubar_item>
</.menubar_content>
</.menubar_menu>
<.menubar_menu>
<.menubar_trigger>View</.menubar_trigger>
<.menubar_content>
<.menubar_checkbox_item checked={@show_bookmarks_bar} phx-click="toggle-bookmarks-bar">
Always Show Bookmarks Bar
</.menubar_checkbox_item>
<.menubar_checkbox_item checked={@show_full_urls} phx-click="toggle-full-urls">
Always Show Full URLs
</.menubar_checkbox_item>
<.menubar_separator />
<.menubar_item inset>
Reload <.menubar_shortcut>⌘R</.menubar_shortcut>
</.menubar_item>
<.menubar_item inset disabled>
Force Reload <.menubar_shortcut>⇧⌘R</.menubar_shortcut>
</.menubar_item>
<.menubar_separator />
<.menubar_item inset>Toggle Fullscreen</.menubar_item>
<.menubar_item inset>Hide Sidebar</.menubar_item>
</.menubar_content>
</.menubar_menu>
<.menubar_menu>
<.menubar_trigger>Profiles</.menubar_trigger>
<.menubar_content>
<.menubar_radio_group>
<.menubar_radio_item
:for={name <- ~w(benoit pedro colm)}
checked={@profile == name}
phx-click="set-profile"
phx-value-val={name}
>
{String.capitalize(name)}
</.menubar_radio_item>
</.menubar_radio_group>
<.menubar_separator />
<.menubar_item inset>Edit...</.menubar_item>
<.menubar_separator />
<.menubar_item inset>Add Profile...</.menubar_item>
</.menubar_content>
</.menubar_menu>
</.menubar>
With Icons
Menu items with leading hero icons.
New File
Open...
Save
⌘S
Print...
⌘P
Undo
⌘Z
Redo
⇧⌘Z
Cut
⌘X
Copy
⌘C
Paste
⌘V
<.menubar id="icon-menubar">
<.menubar_menu>
<.menubar_trigger>File</.menubar_trigger>
<.menubar_content>
<.menubar_item>
<.icon name="hero-document-plus-micro" /> New File
</.menubar_item>
<.menubar_item>
<.icon name="hero-folder-open-micro" /> Open...
</.menubar_item>
<.menubar_item>
<.icon name="hero-arrow-down-tray-micro" /> Save
<.menubar_shortcut>⌘S</.menubar_shortcut>
</.menubar_item>
<.menubar_separator />
<.menubar_item>
<.icon name="hero-printer-micro" /> Print...
<.menubar_shortcut>⌘P</.menubar_shortcut>
</.menubar_item>
</.menubar_content>
</.menubar_menu>
<.menubar_menu>
<.menubar_trigger>Edit</.menubar_trigger>
<.menubar_content>
<.menubar_item>
<.icon name="hero-arrow-uturn-left-micro" /> Undo
<.menubar_shortcut>⌘Z</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
<.icon name="hero-arrow-uturn-right-micro" /> Redo
<.menubar_shortcut>⇧⌘Z</.menubar_shortcut>
</.menubar_item>
<.menubar_separator />
<.menubar_item>
<.icon name="hero-scissors-micro" /> Cut
<.menubar_shortcut>⌘X</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
<.icon name="hero-clipboard-document-micro" /> Copy
<.menubar_shortcut>⌘C</.menubar_shortcut>
</.menubar_item>
<.menubar_item>
<.icon name="hero-clipboard-micro" /> Paste
<.menubar_shortcut>⌘V</.menubar_shortcut>
</.menubar_item>
</.menubar_content>
</.menubar_menu>
</.menubar>
Disabled Items
Disabled items are visually dimmed and skipped by keyboard navigation.
New Tab
New Window
New Incognito Window
Share...
Print...
Undo
Redo
Cut
Copy
Paste
<.menubar id="disabled-menubar">
<.menubar_menu>
<.menubar_trigger>File</.menubar_trigger>
<.menubar_content>
<.menubar_item>New Tab</.menubar_item>
<.menubar_item>New Window</.menubar_item>
<.menubar_item disabled>New Incognito Window</.menubar_item>
<.menubar_separator />
<.menubar_item disabled>Share...</.menubar_item>
<.menubar_item>Print...</.menubar_item>
</.menubar_content>
</.menubar_menu>
<.menubar_menu>
<.menubar_trigger>Edit</.menubar_trigger>
<.menubar_content>
<.menubar_item>Undo</.menubar_item>
<.menubar_item disabled>Redo</.menubar_item>
<.menubar_separator />
<.menubar_item>Cut</.menubar_item>
<.menubar_item>Copy</.menubar_item>
<.menubar_item disabled>Paste</.menubar_item>
</.menubar_content>
</.menubar_menu>
</.menubar>