Cmd-K dialogs, search results, filter rails and facets.
A command palette is the power-user surface that pays for itself on the second use: one shortcut, a fuzzy list, and navigation without the mouse. What separates a good one is result grouping, recent items when the query is empty, and arrow-key handling that does not fight the browser. The search surfaces here cover the results page and the facet rail as well.
The ⌘K switcher done properly: focus stays in the input while aria-activedescendant moves, arrows wrap, and the highlight resets on every query change.
The "?" overlay, with chords written once in one notation and rendered per platform — mod becomes Command on Apple and Ctrl everywhere else, decided after mount so the markup never mismatches.
The strip above a result set that answers "why am I only seeing four things" — every active constraint as a removable chip, with the excluded count beside it.
The field in the header, not the palette over it: Enter searches for what you typed unless you arrowed to a suggestion, late responses are dropped by sequence number, and recent searches are removable one at a time.
Results grouped by section with visible breadcrumb paths and <mark>-highlighted matches — users recognise where a result lives faster than they read its snippet.
Faceted search with result counts on every option, zero-count options kept visible and disabled so the list stays stable, and a note explaining why the counts do not sum.
One query counted across every scope it could have matched, as a real tablist with arrow-key movement — so an answer that is nowhere is visible without opening four tabs.
An empty search box is the most common state of a search box, and it is usually blank. Recent queries are the cheapest useful thing to put there, and the result count is what makes them worth re-running.
The whole faceted search assembled - rail, chips, live count and sort - with the intersection actually applied and relevance offered only when there is a query.
The facet that is a number: a distribution over a dual-thumb slider built from two real range inputs, with typed bounds clamped on blur rather than per keystroke.
Cmd/Ctrl-K to open, Escape to close, arrows to move, Enter to run, and focus returned where it started. Also do not swallow Cmd-K when a text field has focus and the user meant something else.
How should results be announced?
The input owns `aria-activedescendant` pointing at the highlighted option, with the list as a `listbox`. Moving real focus into the list breaks typing, which is the mistake most hand-rolled palettes make.
Are these command palette and search free to use?
All 10 are free to copy and use in your own projects, including commercial ones. A Pro licence exists for redistribution — shipping them inside a product other people buy — and the full terms are on the licence page.
How do I add one to my project?
Install it with the CLI: `npx hoverlab add command-palette` writes the component and its dependencies into your project. Every artifact here also has a copy button for the raw source, and an "Open in sandbox" link if you would rather try it first.