Ballmac UI home

Launchpad

The macOS Launchpad: a frosted full-area overlay with search, pages of app icons sized to fit, page dots, wheel and key paging, arrow-key focus across pages and Escape to close.

Pick an app to launch it.

Installation

$ pnpm dlx shadcn@latest add @ballmac/launchpad

Usage

import { Launchpad } from "@/components/ballmac/launchpad"

The full example is in the Code tab above.

Examples

Many apps and paging

API reference

PropTypeDefault
apps*

The apps to show, in order.

LaunchpadApp[]—
open*

Whether the launcher is showing.

boolean—
onClose

Called when the launcher asks to close (Escape, or a click on the empty background).

() => void—
onLaunch

Called when an app is chosen.

(app: LaunchpadApp) => void—
cellWidth

Width of one app cell in pixels.

number120
cellHeight

Height of one app cell in pixels.

number112
label

Accessible name of the launcher.

string—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Arrow keysMove between apps across pages
PageUp / PageDownTurn pages
Enter in searchLaunches the first match
EscapeCloses
Reduced motionNo zoom or blur on open

Use with AI

<Launchpad apps={[{ id, name, icon }]} open onClose onLaunch />. It fills its positioned parent. Pages, rows and columns are computed from the available size. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Launchpad (@ballmac/launchpad) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Mac desktop demos
  • App launchers in dashboards

Not for

  • Command palettes (command)
  • Navigation menus

Registry JSON: https://ui.ballmac.com/r/launchpad.json

Credits

Free to use in personal and commercial projects.