Ballmac UI home

Spotlight Search

A macOS Spotlight-style command palette on cmdk: a large translucent search field, grouped results with app-icon tiles, fuzzy filtering and arrow-key navigation, inline or as a ⌘K dialog.

Type to search apps, documents and actions↵ Open⌘↵ Show in Folder

Installation

$ pnpm dlx shadcn@latest add @ballmac/spotlight-search

Usage

import { SpotlightSearch, SpotlightSearchDialog, SpotlightSearchEmpty, SpotlightSearchFooter, SpotlightSearchGroup, SpotlightSearchInput, SpotlightSearchItem, SpotlightSearchList, SpotlightSearchSeparator, useSpotlightHotkey } from "@/components/ballmac/spotlight-search"

The full example is in the Code tab above.

Examples

⌘K dialog

API reference

<SpotlightSearchInput>

PropTypeDefault
trailing

Content at the trailing end of the field, e.g. a Kbd hint or the top hit's kind.

React.ReactNode—

<SpotlightSearchItem>

PropTypeDefault
icon

Icon, drawn in a small rounded tile.

React.ReactNode—
iconClassName

Classes for the icon tile (a gradient or color, like an app icon).

string—
detail

Secondary text at the trailing end: a kind ("Application"), a path, or a shortcut.

React.ReactNode—

<SpotlightSearchDialog>

PropTypeDefault
open

Controlled open state.

boolean—
defaultOpen

Initial open state when uncontrolled.

booleanfalse
onOpenChange

Called when the dialog opens or closes.

(open: boolean) => void—
hotkey

Key that toggles the dialog together with ⌘ (or Ctrl). false turns the shortcut off.

string | false"k"
title

Accessible dialog title (visually hidden).

string—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
⌘K / Ctrl+KOpens and closes SpotlightSearchDialog (hotkey prop; false disables)
ArrowUp / ArrowDownMoves the highlighted result, wrapping at the ends
EnterRuns the highlighted item's onSelect
EscapeCloses the dialog and returns focus to where it was

Use with AI

Inline: <SpotlightSearch><SpotlightSearchInput /><SpotlightSearchList><SpotlightSearchEmpty/><SpotlightSearchGroup heading><SpotlightSearchItem icon iconClassName detail onSelect>Title</SpotlightSearchItem></SpotlightSearchGroup></SpotlightSearchList></SpotlightSearch>. Overlay: swap the root for <SpotlightSearchDialog open onOpenChange hotkey="k">. Root props are cmdk Command props (filter, shouldFilter, value). With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Spotlight Search (@ballmac/spotlight-search) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • A ⌘K command palette for navigation and actions in an app or docs site
  • A Mac-style launcher in a product hero or desktop mockup
  • Searching a mixed list of apps, documents and commands with keyboard-first navigation

Not for

  • A plain search field for a results page (use input)
  • Choosing one value in a form (use select or a combobox)

Registry JSON: https://ui.ballmac.com/r/spotlight-search.json

Credits

Free to use in personal and commercial projects.