A command palette replaces hierarchical lookup with search
Aliases: command-K · search-driven commands
What it is
A command palette is a pop-up search field for typing the name of a command or destination and running it from a flat result list. It swaps “walk the menu tree level by level” for “if I can recall what it is called, I can summon it”. Hierarchical navigation can still exist; the palette is another retrieval channel, not a demolition of the tree.
Why it happens
Hierarchical lookup costs scale with depth and branching: one must remember which class a command hangs under, and still walk corridors and open delays. Search turns commands into retrievable records; the cost becomes “form a query + recognise the target in the hits”. For someone who can already produce the name, that is far shorter than walking the tree. Palettes also rank by recency and current context, shortening query-to-hit further.
The channel requires commands to have typeable names. Icons, place, and grouping recede; the name is the primary index. So a palette is not a smaller menu. It is a different index: a vocabulary instead of a spatial tree. Without a stable shortcut to open it, it is just another hidden container, and the retrieval advantage never starts.
Studying it
Use a command retrieval task: give an action to complete (“make this a heading”, “switch to source view”) and compare walking the menu tree with opening the palette and typing. Independent variables: depth of the command in the tree, whether the name matches the user’s wording, whether the palette ranks by recency. Dependent variables: time to complete, whether the first query hits, and how often people switch channels.
Split experts and newcomers. Experts’ advantage is recalling names; newcomers may not know the palette exists, and what you will have measured is discoverability, not retrieval.
Where it stops holding
With few commands and a shallow tree, the palette is an extra step. On touch with no keyboard, typing may cost more than two taps in a menu. A palette cannot show what a tree is good at — “what other commands like this exist” — because results match a query, not a map. Indexing only some commands produces “if I cannot search it, it does not exist”. Embedded surfaces that steal the system search shortcut will collide with the OS.
Applying it
- Give the palette a stable, discoverable invocation (show the key combination in the UI) and put focus in the field on open.
- Index the actions and destinations people would say, not internal route names. Results may still show a group, to help recognition.
- The tree and the palette should point at the same commands; do not let one live only in the tree or only in the palette.
- How to check: for people who can produce the name, opening the palette and running should beat walking the tree. Searching in the palette for names that exist in the tree should hit. People who cannot find how to open it mean the retrieval channel is not wired to the UI.