Kodza

Command Palette

A ⌘K palette in a real dialog: results filter as you type, matched letters are underlined and a highlight slides between them.

Navigation No dependencies commandsearchkeyboarddialog Added Jan 2026
/anim/command-palette/ Fullscreen

With your AI

Just ask.

Say it to your AI. It gets the exact code below, not its best guess, and knows where it goes.

Add a Kodza Command Palette on ⌘K to my React app.

Not plugged in yet?
claude mcp add -t http kodza https://kodza.dev/api/mcp
Also in Codex, Cursor and VS Code.
kodza-command-palette.html
<div class="kodza-command">
  <button class="kodza-command__trigger" type="button" aria-haspopup="dialog">
    <svg class="kodza-command__icon" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="m10.5 10.5 3 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
    <span class="kodza-command__placeholder">Search components</span>
    <kbd class="kodza-command__kbd kodza-command__shortcut">⌘K</kbd>
  </button>
  <dialog class="kodza-command__dialog" aria-label="Command palette">
    <div class="kodza-command__search">
      <svg class="kodza-command__icon" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="m10.5 10.5 3 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
      <input class="kodza-command__input" type="text" placeholder="Type a command or search…" aria-label="Search commands" autocomplete="off" spellcheck="false">
      <kbd class="kodza-command__kbd">esc</kbd>
    </div>
    <div class="kodza-command__body">
      <div class="kodza-command__list" role="listbox" aria-label="Results">
        <div class="kodza-command__group" role="group" aria-label="Components">
          <p class="kodza-command__heading" aria-hidden="true">Components</p>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Fill Button</span></div>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Scramble Link</span></div>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Pricing Plans</span></div>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Sticky Cards</span></div>
        </div>
        <div class="kodza-command__group" role="group" aria-label="Actions">
          <p class="kodza-command__heading" aria-hidden="true">Actions</p>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Copy the code</span><kbd class="kodza-command__kbd">⌘C</kbd></div>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Toggle dark mode</span></div>
          <div class="kodza-command__option" role="option"><span class="kodza-command__text">Deploy on a Friday</span><kbd class="kodza-command__kbd">brave</kbd></div>
        </div>
      </div>
      <p class="kodza-command__empty" hidden>Nothing found. Not even a bug.</p>
    </div>
    <div class="kodza-command__footer" aria-hidden="true">
      <span><kbd class="kodza-command__kbd">↑</kbd><kbd class="kodza-command__kbd">↓</kbd> to move</span>
      <span><kbd class="kodza-command__kbd">↵</kbd> to pick</span>
    </div>
  </dialog>
</div>

Checked

Checked before you paste.

Robots poked at it before you did. Every component goes through the same checks, and again each time it changes.

What ranLast run
Accessibilityaxe-core 4.10.2: the WCAG 2.1 A and AA rules, plus best practices. 0 issues
KeyboardThe Tab key gets there, and the focus ring shows when it does. Passed
Reduced motionTurn on reduced motion and what moved just appears. Nothing loops. Passed
Light and darkThe same checks on both themes, contrast included. Passed
WordPressPasted into Twenty Twenty-Five, Twenty Twenty-One, Astra, Blocksy, GeneratePress, Hello Elementor, Kadence and OceanWP. Nothing to flag. 8 / 8 themes
Robots checked this. A human with VoiceOver hasn't yet.
KeyboardPress them in the preview
Anywhere
  • Opens it, or closes it when it's open⌘K
In the search field
  • Next or previous result, round and round↓/↑
  • Picks the highlighted result and closesEnter
Anywhere, while it's open
  • Closes it, focus back on the buttonEsc

More like this

More in Navigation