Files
leptos-shadcn-ui/docs/components/api/menubar.md
Ubuntu 18c4ddcd05 drover: task-1767764907653950146
Task: Improve API documentation
2026-01-10 05:38:15 +00:00

2.9 KiB

Menubar Component API

A persistent application menu bar at the top of the screen.


Installation

# Cargo.toml
[dependencies]
shadcn-ui-leptos-menubar = "0.7"
use shadcn_ui_leptos_menubar::Menubar;

Import

use shadcn_ui_leptos_menubar::{
    Menubar,
    MenubarMenu,
    MenubarTrigger,
    MenubarContent,
    MenubarItem,
    MenubarLabel,
    MenubarSeparator,
    MenubarShortcut
};

Component API

Menubar

Root menu bar container.

Prop Type Default Description
class MaybeProp<String> None Additional CSS classes

MenubarMenu

Individual menu in the bar.

Prop Type Default Description
value String Required Menu identifier

MenubarTrigger

Clickable menu trigger.

Prop Type Default Description
class MaybeProp<String> None Additional CSS classes

Usage Examples

Basic Menubar

use leptos::prelude::*;
use shadcn_ui_leptos_menubar::*;

#[component]
pub fn MyComponent() -> impl IntoView {
    view! {
        <Menubar>
            <MenubarMenu value="file">
                <MenubarTrigger>"File"</MenubarTrigger>
                <MenubarContent>
                    <MenubarItem>"New Tab"</MenubarItem>
                    <MenubarItem>"New Window"</MenubarItem>
                    <MenubarSeparator />
                    <MenubarItem>"Quit"</MenubarItem>
                </MenubarContent>
            </MenubarMenu>
            <MenubarMenu value="edit">
                <MenubarTrigger>"Edit"</MenubarTrigger>
                <MenubarContent>
                    <MenubarItem>"Undo"</MenubarItem>
                    <MenubarItem>"Redo"</MenubarItem>
                </MenubarContent>
            </MenubarMenu>
        </Menubar>
    }
}

CSS Classes

.menubar {
    flex h-10 items-center space-x-1 rounded-md
    border bg-background p-1
}

.menubar-trigger {
    inline-flex items-center justify-center rounded-md
    px-3 py-1.5 text-sm font-medium transition-colors
    hover:bg-accent hover:text-accent-foreground
    focus:bg-accent focus:text-accent-foreground
}

Accessibility

Keyboard Navigation

Key Action
Arrow Keys Navigate menus
Enter/Space Open menu
Escape Close menu

TypeScript API

interface MenubarProps {
  className?: string;
  children?: React.ReactNode;
}

export const Menubar: React.FC<MenubarProps>;
export const MenubarMenu: React.FC<{ value: string }>;
export const MenubarTrigger: React.FC<ComponentProps>;
export const MenubarContent: React.FC<ComponentProps>;

Source: packages/leptos/menubar/src/default.rs