CommandPalette
The assistant's spotlight mode: one input that both searches the product and asks the AI, over a glass surface with the ambient identity in its edge and background.
Not separately installable: it ships inside the ambient layer.
Live
Open
At rest
Recent chats, suggestions from this page, and a counted hint of everything registered — what it can do, said before you type.
Navigation intent
A short query reads as navigation: matching components, documents, demos and form factors rank first, capped per section.
Question intent
Four-plus words, a leading interrogative, or a trailing ? reads as a question — “Ask ambientui” takes the top row.
Asked through
Selecting the ask row runs the real pipeline: the palette hands off, and the answer arrives as components.
Or press ⌘K anywhere — the palette is global. Inside it: ↑↓ cross section boundaries, ↵ runs the row, and Esc clears the query before it ever closes the surface.
Behavior
- ·⌘K opens it from anywhere and toggles it closed; Esc clears the query first, then closes — so a mistyped search never costs the surface.
- ·One input, two intents: the query is read as a QUESTION (4+ words, a leading interrogative, or a trailing ?) or as navigation. Questions put "Ask ambientui" first; anything else ranks matching pages.
- ·Sections are a flat, keyboard-navigable model — Recent chats, Suggested for this page, Jump to — with ↑↓ moving across section boundaries and ↵ running the selected row.
- ·WHAT IT CAN DO IS REGISTERED BY THE APP (see CommandRegistry): components, documentation, demos and the assistant's own form factors, each with a `run` the palette calls without knowing what it means. That is the context-chip contract pointed the other way — a surface hands the layer a chip, the app hands it a command — and it is why the palette can reach a product the layer knows nothing about. The lists are DERIVED from the registry that documents them, so a command for something that does not exist is impossible to write.
- ·Matches are CAPPED PER SECTION, not overall: one cap across the whole list let the first family spend the entire budget, so forty components matching "panel" pushed Switch form off the end — the one command the word most obviously meant was the one you could not reach.
- ·AT REST IT SAYS WHAT IT CAN DO. Switch form shows in full because five rows are small enough and always relevant; the big families are advertised by a counted hint ("50 components, 10 documents, 5 demos") derived from what is actually registered. A capability nobody can see is one that does not exist as far as the user is concerned — and a hint written by hand would outlive the family it describes.
- ·WHAT IT OFFERS COMES FROM THE PAGE. setPageIntel supplies the suggestions, the recents, where "Jump to" goes, and the input's own invitation; pages that stay quiet get the app-wide defaults. The dev tool publishes its LIVE problem inventory there, so every suggestion is a question one of its errors deserves — and a problem that gets fixed leaves the palette, because the list is derived from workspace state rather than written twice.
- ·A page with its own workspace takes over "Jump to" entirely: inside the dev tool it lists open files, each subtitled with its actual problem, instead of the app's routes.
- ·The page's own context rides along as a chip in the header band; right-clicking anything on the page attaches it as another chip.
- ·A chip may carry its own `icon`: every page is kind "page", which is too coarse to tell an editor from a colour map, and the page is the only thing that knows which. Omitted, the kind's icon stands in. Sparkles is never one of them — in this system that mark means the assistant, and a chip is what the assistant can SEE, not the assistant itself.
- ·Asking transitions the surface in place into the AI Overview — the answer arrives where the question was asked, with a follow-up form replacing the search input.
- ·A glass-tinted scrim dims the product behind it — the scrim token with a whisper of backdrop blur — so the palette reads as the hero of the moment while the page stays legible through the veil.
- ·Ambient state is live: typing a question turns the layer to listening before send; the border and background field follow.
- ·Selection and keycaps use the neutral glass wash, not the accent — on glass, accent marks actions, not focus position.
- ·Dragging the floating panel to the top-center zone becomes this mode; dragging out of it returns to a panel.
When to use
- ·The product's primary entry point for both finding and asking — one keystroke from anywhere.
- ·When the answer and the destination are the same question: "where is X" and "what is X" resolve in one surface.
When not to
- ·A conversation the user wants to keep while working — that's the panel or dock; the palette is for a single exchange.
- ·Scoped search inside a page's own data — a local filter belongs in the page, not in the global palette.
- ·Confirming or undoing an action — use a toast or the save reminder.