Ballmac UI home

User Menu

An account menu on the dropdown: avatar or avatar-with-name trigger, a header card with plan, link groups with shortcuts and badges, a theme submenu and sign out.

Installation

$ pnpm dlx shadcn@latest add @ballmac/user-menu

Usage

import { UserMenu } from "@/components/ballmac/user-menu"

The full example is in the Code tab above.

Examples

Avatar only

Avatar-only trigger for headers. Initials appear when there is no photo.

API reference

PropTypeDefault
user*UserMenuUser—
groups

Groups of items, shown in order with dividers between them.

UserMenuItem[][][]
theme

Current theme. Adds a Theme submenu when `onThemeChange` is also set.

UserMenuTheme—
onThemeChange

Called with the chosen theme.

(theme: UserMenuTheme) => void—
onSignOut

Adds a destructive "Sign out" item at the end.

() => void—
variant

Trigger style: just the avatar, or avatar with name and email (for sidebars).

"avatar" | "full""avatar"
align

Menu alignment relative to the trigger.

"start" | "center" | "end""end"
side

Side of the trigger the menu opens on.

"top" | "right" | "bottom" | "left""bottom"
open

Open state, for controlled use.

boolean—
defaultOpen

Initial open state.

boolean—
onOpenChange

Called when the menu opens or closes.

(open: boolean) => void—
modal

Trap interaction inside the menu while open. Turn off to keep the page usable, for example in a docs preview.

booleantrue

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Enter / Space / ArrowDownOpens the menu
Arrow keys and typeaheadMove between items
EscapeCloses and returns focus
Screen readersThe avatar button names the person; links are real links

Use with AI

user {name,email,image,plan,status}, groups: UserMenuItem[][], theme/onThemeChange, onSignOut, variant avatar | full. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI User Menu (@ballmac/user-menu) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Headers and sidebar footers
  • Account access with theme and sign out

Not for

  • Switching workspaces; use team-switcher
  • Generic action menus; use dropdown-menu

Registry JSON: https://ui.ballmac.com/r/user-menu.json

Credits

Free to use in personal and commercial projects.