About this set
A dark command palette of the kind opened with Ctrl+K or Cmd+K in modern apps. A launcher button reading Search or jump to opens a frosted panel with a search field and commands in three groups, Navigation, Actions and Help, each with an emoji and an optional shortcut hint. Typing filters the list as you go, empty groups disappear and a No results line appears when nothing matches. Use it to give power users one place to reach every page and action without hunting through menus. The panel is a modal dialog, so the rest of the page is inert while it is open, Esc closes it and focus returns to the launcher. Inside, it follows the WAI-ARIA combobox pattern: the input has role=”combobox” and controls a grouped listbox, and the arrow keys move the highlighted option through aria-activedescendant while focus stays in the input. Enter or a click runs the command and closes the palette. The plain CSS and Tailwind versions use the native dialog element; the Bootstrap version uses .modal with the Modal plugin and a .list-group for the options.
What’s included
- Opens from a launcher button or Ctrl+K / Cmd+K
- Live filtering that hides empty groups
- Arrow-key highlighting with aria-activedescendant
- Enter or click runs a command and closes the palette
- Modal dialog that returns focus to the launcher
Accessibility
The palette is a modal dialog named Command palette. Its input is a labelled combobox that controls a listbox named Commands, with each group named by its heading, and a status region announces No results. Focus stays in the input while the arrow keys move the highlight, Esc closes the dialog and focus returns to the launcher, which shows a 2px indigo outline. The open animation is removed under prefers-reduced-motion.
Customise it
Change the panel, border and highlight colours in .cmd and .cmd-it (plain CSS), the --bs-modal-* and --bs-list-group-* variables (Bootstrap) or the --color-cmd-* theme colours (Tailwind). Add commands as options; data-href makes one navigate. The shortcut hints shown next to items are labels only; connect them to your own key handlers.



















