Changelog
Every release of vue-cmdk, newest first.
The current version is 1.2.2. This page is copied from packages/vue-cmdk/CHANGELOG.md at build time, the same file that ships in the npm package.
All notable changes to vue-cmdk are listed here. The format follows Keep a Changelog, and versions follow Semantic Versioning.
1.2.2 - 2026-10-24
Fixed
- The package README states the measured bundle size, about 11 kB minified and gzipped, instead of about 10 kB. The library code is unchanged.
1.2.1 - 2026-10-24
Changed
- The package keywords include
headless. The library code and the bundle are unchanged.
1.2.0 - 2026-10-23
Added
- Shift+Delete removes the selected row from the Recent group. Apple keyboards have no Delete key, so Shift+Backspace does the same there. The selection stays in place, the footer shows the key while a recent row is selected, and the live region announces the removal.
forgetRecent(id)andclearRecents()onuseCommandPaletteand on the template refs of<CommandPalette>and<CommandPaletteDialog>, plusforget(id)andclear()onuseRecents. They save through the configured storage, and the dialog’s methods also work while it’s closed, so a settings page can offer “Clear history”.- A
no-resultsevent (onNoResultsin the composable) with the query and the scope, fired once for a query that matched nothing and stayed unchanged for 500 ms, or right away if the palette closes first. - Labels
forgetandforgotten, andisRecent(row)on the composable.
Fixed
- Search parses the query once per keystroke instead of once per command, which halves the time to filter a long list.
1.1.0 - 2026-10-23
Added
- Search ignores accents:
resumefindsRésumé, andcaféfindsCafe. The highlight marks the label as written. Labels stored in decomposed form, such as macOS file names, match too. - A query with several words matches when every word appears in the label, keywords or hint, in any order, so
file newfindsNew file. The query typed as one run still ranks first, and every matched word is highlighted. - The build prints the size of an app that imports only
CommandPaletteDialog, next to the size of the whole entry.
Changed
- The size budget for the main entry is now 14 kB minified and gzipped, up from 12 kB, to leave room for the next features.
matchQuerymarks every query word it finds, andrankMatchranks multi-word queries. Single-word results are unchanged.
Fixed
- Highlights after a letter whose lower case is longer, such as
İ, no longer mark the wrong characters.
1.0.1 - 2026-10-22
Fixed
- The default theme now meets the WCAG AA contrast ratio of 4.5:1. The faint text (the result count, the
esckey, the detail verb) is darker in both modes, and the light accent is a darker teal,#0a7369, so white text on it and the active scope chip stay readable.
1.0.0 - 2026-10-21
The first version.
Added
<CommandPaletteDialog>: a modal palette with a global hotkey (mod+kby default), optional/to open, a focus trap, focus restore and a scroll lock. Shortcuts with ⌥/Alt match the physical key, so they also work on a Mac.<CommandPalette>: the same palette rendered inline.useCommandPalette(): the headless state machine, with attribute getters for the WAI-ARIA combobox and listbox pattern.- Three kinds of command:
action,link(with a new-tab alternate action) andpage(nested lists, loaded from an array or a sync or async function). - Substring search over labels, keywords and hints, ranked label prefix, label infix, keyword, then hint. Typographic quotes and dashes match their keyboard forms. A custom
filtercan replace the matcher. - Scope chips, with Tab and Shift+Tab to cycle and optional typed prefixes such as
>. - Recents ranked by frequency and recency, stored in
localStorage(versioned and namespaced) or through a custom adapter. - A detail panel, quick-select with ⌘/Ctrl+1-9, layered Escape, and a live region that announces the result count.
- Slots for rows, group headings, the empty and loading states, the detail panel, the footer, the breadcrumb and the field prefix.
- Replaceable labels for every built-in string.
- An optional theme at
vue-cmdk-palette/style.css, built on--cmdk-*variables, with light and dark modes and reduced-motion support.