Ballmac UI home

Command Bar

A command palette with pages: a search-field style trigger, grouped commands, drill-in pages with a breadcrumb, Backspace to go back and a footer of key hints.

Last command: Nothing yet

Installation

$ pnpm dlx shadcn@latest add @ballmac/command-bar

Usage

import { CommandBar } from "@/components/ballmac/command-bar"

The full example is in the Code tab above.

Examples

Own trigger

API reference

PropTypeDefault
groups*

Top-level groups.

CommandBarGroup[]—
open

Controlled open state.

boolean—
defaultOpen

Initial open state when uncontrolled.

booleanfalse
onOpenChange

Called when the bar opens or closes.

(open: boolean) => void—
placeholder

Placeholder of the search field on the first page.

string—
emptyText

Text shown when nothing matches.

string—
hotkey

Key that toggles the bar together with ⌘ (Ctrl on Windows and Linux). `false` turns the shortcut off.

string | false"k"
trigger

Text on the trigger button. `false` hides the trigger so you can open the bar yourself.

string | false"Search or jump to…"
triggerClassName

Classes for the trigger button.

string—
title

Accessible name of the dialog.

string—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Cmd/Ctrl+KToggles the bar
TypeFilters commands
ArrowUp / ArrowDown / EnterMoves and runs
Backspace on an empty fieldGoes back one page
EscapeCloses

Use with AI

groups: {heading, items:[{id,label,icon,shortcut,keywords,onSelect,pages}]}. An item with pages opens a second page. hotkey toggles with Cmd/Ctrl; trigger={false} hides the button. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Command Bar (@ballmac/command-bar) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Global quick actions and navigation
  • Apps with many commands and sub-choices

Not for

  • A macOS-style launcher; use spotlight-search
  • Choosing one value in a form; use combobox

Registry JSON: https://ui.ballmac.com/r/command-bar.json

Credits

Free to use in personal and commercial projects.