{
  "_description": "Generated from data/ — edit the sources, not this file. The agent access guide explains the evidence boundary of every field.",
  "schemaVersion": "1.0.0",
  "kind": "entry",
  "locale": "en",
  "id": "command-palette",
  "name": {
    "zh": "命令面板",
    "en": "Command Palette"
  },
  "page": "https://designvocabulary.com/en/entries/command-palette/",
  "self": "https://designvocabulary.com/en/entries/command-palette.json",
  "alternates": {
    "zh-CN": "https://designvocabulary.com/zh/entries/command-palette.json",
    "en": "https://designvocabulary.com/en/entries/command-palette.json"
  },
  "site": {
    "catalogSchemaVersion": "0.1.0",
    "entries": 158,
    "index": "https://designvocabulary.com/en/entries/index.json",
    "query": "https://designvocabulary.com/api/query?lang=en",
    "guide": "https://designvocabulary.com/en/agents/",
    "llms": "https://designvocabulary.com/llms.txt"
  },
  "provenance": {
    "sourceBacked": [
      "entry.definition"
    ],
    "editorial": [
      "entry.boundary",
      "entry.signature",
      "entry.when",
      "entry.when_not",
      "entry.tradeoff",
      "entry.comparison",
      "entry.rules",
      "entry.relations",
      "entry.implementationNote",
      "entry.behavior"
    ],
    "scope": "Definitions reference these sources. Digital specimens, selection advice, relationships, and recipes are editorial work and have not been validated through user research.",
    "editorialStatus": "drafted",
    "specimenData": "fictional",
    "specimenNote": "Original fictional specimens. Definitions cite sources; usage advice and recipes are editorial.",
    "sources": [
      {
        "id": "apg-combobox",
        "url": "https://www.w3.org/WAI/ARIA/apg/patterns/combobox/",
        "title": "WAI-ARIA APG · Combobox Pattern",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260916054653/https://www.w3.org/WAI/ARIA/apg/patterns/combobox/",
          "capturedAt": "2026-09-16T05:46:53Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/ARIA/apg/patterns/combobox/"
        }
      },
      {
        "id": "nng-accelerators",
        "url": "https://www.nngroup.com/articles/ui-accelerators/",
        "title": "NN/g · Accelerators Maximize Efficiency in User Interfaces",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260916054734/https://www.nngroup.com/articles/ui-accelerators/",
          "capturedAt": "2026-09-16T05:47:34Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/ui-accelerators/"
        }
      },
      {
        "id": "vscode-command-palette",
        "url": "https://code.visualstudio.com/docs/getstarted/userinterface",
        "title": "Visual Studio Code Docs · User Interface — Command Palette",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260525172117/https://code.visualstudio.com/docs/getstarted/userinterface",
          "capturedAt": "2026-05-25T17:21:17Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://code.visualstudio.com/docs/getstarted/userinterface"
        }
      }
    ],
    "lists": [
      {
        "id": "I-C",
        "edition": "classic",
        "seat": 8,
        "origin": "issue-1-ledger",
        "page": "https://designvocabulary.com/en/lists/I-C/",
        "json": "https://designvocabulary.com/en/lists/I-C.json"
      },
      {
        "id": "I-Y",
        "edition": "2026-focus",
        "seat": 9,
        "origin": "issue-1-ledger",
        "page": "https://designvocabulary.com/en/lists/I-Y/",
        "json": "https://designvocabulary.com/en/lists/I-Y.json"
      }
    ],
    "ordered": false,
    "listDisclaimer": "Seat numbers are editorial positions, not scores, rankings, or popularity measurements. A list that is not filled is left as it is."
  },
  "entry": {
    "id": "command-palette",
    "type": "interaction",
    "name": {
      "zh": "命令面板",
      "en": "Command Palette"
    },
    "aliases": [
      "快捷命令面板",
      "Command Bar",
      "Cmd+K 面板"
    ],
    "granularity": "component",
    "intents": [
      "find-option",
      "run-command"
    ],
    "tags": [
      "commands",
      "keyboard",
      "search",
      "shortcuts",
      "overlay"
    ],
    "definition": "A search-box overlay invoked by a keyboard shortcut: typing a word fuzzy-matches commands, jumpable objects, and settings and runs them directly, layered on top of the visible menus as a keyboard accelerator.",
    "boundary": "A command palette is an accelerator layered on top of the visible interface, not the only route to a function: every command reachable in the palette must also be reachable through a menu, button, or other visible path, or usability ends up resting on recall rather than recognition — which is exactly its tension with Recognition Rather Than Recall. It differs from search and filter, which narrows a set of content for browsing and comparison, whereas a command palette finds and runs a single action. It borrows a modal dialog's overlay and focus capture in form, but its purpose is invoking commands, not collecting information needed to continue or preventing an irreversible error.",
    "signature": [
      "A keyboard shortcut summons a centered input overlay from anywhere in the interface",
      "Typing fuzzy-matches commands, objects, and settings by name, and each result row shows its keyboard shortcut",
      "Selecting a result runs or navigates immediately, and closing returns focus to the element that had it before"
    ],
    "when": [
      "There are too many commands, pages, or objects for menus and navigation to list individually",
      "Actions or destinations have clear, describable names that a person can roughly recall",
      "People repeat the same set of actions and are willing to build keyboard muscle memory"
    ],
    "when_not": [
      "The palette becomes the only entry point to a function, leaving people who don't know its name unable to complete the task",
      "The application has few commands and the menus are already self-evident",
      "People are mainly browsing and comparing a set of content rather than finding and running a single action"
    ],
    "tradeoff": "Gives people who remember command names a fast keyboard accelerator, at the cost of maintaining a searchable command index and keeping the same commands reachable in the visible menus.",
    "comparison": {
      "focus": "Whether a command can be invoked directly from a name held in memory",
      "mechanism": "A keyboard-summoned fuzzy-search input with a list of candidate results",
      "cost": "Depends on people recalling command names, and requires maintaining both the palette index and the visible menus"
    },
    "sources": [
      {
        "id": "apg-combobox",
        "title": "WAI-ARIA APG · Combobox Pattern",
        "url": "https://www.w3.org/WAI/ARIA/apg/patterns/combobox/",
        "claim": "The combobox pattern is an input with an associated popup: typed text filters the candidates in the popup, arrow keys move focus into and through the popup, Enter accepts the selection, and Escape dismisses the popup.",
        "checkedAt": "2026-09-15",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/ARIA/apg/patterns/combobox/",
          "status": "available",
          "checkedAt": "2026-09-16T05:45:51.213Z",
          "jobId": "spn2-d4d6992153373f55a317fe7ec6043b6e8772a02b",
          "url": "https://web.archive.org/web/20260916054653/https://www.w3.org/WAI/ARIA/apg/patterns/combobox/",
          "timestamp": "20260916054653"
        }
      },
      {
        "id": "nng-accelerators",
        "title": "NN/g · Accelerators Maximize Efficiency in User Interfaces",
        "url": "https://www.nngroup.com/articles/ui-accelerators/",
        "claim": "Accelerators (keyboard shortcuts) let expert users bypass the normal menu path to complete tasks faster; shortcuts should be displayed inline next to their commands so people can recognize and learn them.",
        "checkedAt": "2026-09-15",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/ui-accelerators/",
          "status": "available",
          "checkedAt": "2026-09-22T14:38:32.808Z",
          "jobId": "spn2-5469a86990cb2b93f9fc31b61ed24c07d549e802",
          "url": "https://web.archive.org/web/20260916054734/https://www.nngroup.com/articles/ui-accelerators/",
          "timestamp": "20260916054734"
        }
      },
      {
        "id": "vscode-command-palette",
        "title": "Visual Studio Code Docs · User Interface — Command Palette",
        "url": "https://code.visualstudio.com/docs/getstarted/userinterface",
        "claim": "The Command Palette, opened with Ctrl/Cmd+Shift+P, is a unified entry point to all of the editor's functionality — running commands, opening files, and searching symbols — and lists the keyboard shortcuts for common operations.",
        "checkedAt": "2026-09-15",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20260915*/https://code.visualstudio.com/docs/getstarted/userinterface",
          "status": "available",
          "checkedAt": "2026-09-22T14:38:34.374Z",
          "jobId": "spn2-43a6ba7af44b9c8af7642be408ee72f1ec8d07ee",
          "url": "https://web.archive.org/web/20260525172117/https://code.visualstudio.com/docs/getstarted/userinterface",
          "timestamp": "20260525172117"
        }
      }
    ],
    "relations": [
      {
        "target": "recognition",
        "kind": "conflicts_when",
        "condition": "The palette becomes the only route to a function",
        "reason": "A command palette depends on people recalling command names, which runs counter to Recognition Rather Than Recall; a visible, recognizable path must remain outside the palette.",
        "basis": "editorial"
      },
      {
        "target": "search-and-filter",
        "kind": "related",
        "condition": "The palette also offers a search box for jumping to objects",
        "reason": "Search and filter narrows a set of content for browsing and comparison, while a command palette finds a single action to run immediately — the purposes differ.",
        "basis": "editorial"
      },
      {
        "target": "modal-dialog",
        "kind": "composes_with",
        "condition": "The palette appears as a modal overlay covering the main content",
        "reason": "A command palette borrows a modal dialog's overlay and focus-capture mechanics, but its purpose is invoking commands rather than collecting information needed to continue or preventing an irreversible error.",
        "basis": "editorial"
      }
    ],
    "rules": [
      {
        "when": "A command is listed in the palette",
        "instruction": "The command must also be reachable through a menu, button, or other visible path — it must not exist only inside the palette.",
        "strength": "must",
        "basis": "editorial"
      },
      {
        "when": "The palette shows a result row for a command",
        "instruction": "Show that command's keyboard shortcut on the row so people can gradually learn it.",
        "strength": "recommend",
        "basis": "editorial"
      },
      {
        "when": "The palette opens or closes",
        "instruction": "Move focus into the palette's input on open, and return focus to the element that had it before on close.",
        "strength": "must",
        "basis": "editorial"
      }
    ],
    "behavior": {
      "states": [
        "closed",
        "open",
        "filtering",
        "executing"
      ],
      "a11y": [
        "The container uses combobox associated with a listbox; arrow keys move focus among candidates",
        "Focus moves into the input on open; Escape closes the palette and returns focus to the trigger",
        "Each candidate row exposes both a readable command name and its shortcut text"
      ],
      "motion": "The overlay's appearance and dismissal can skip animation; under reduced motion it shows or hides directly"
    },
    "demo": null,
    "version": "0.1.0",
    "editorialStatus": "drafted",
    "requirements": [],
    "demoCapabilities": [],
    "implementationNote": "This entry has no operable specimen yet; the illustration is an editorial mockup. Still to verify in a real product: that every palette command matches a visible menu entry, that shortcut hints are actually legible, and focus management and keyboard reachability on open and close.",
    "image": {
      "src": "/images/command-palette.webp",
      "alt": "A fictional FIELDNOTES interface dimmed behind a centered command palette card: a single input line at the top, several command rows below each ending in a shortcut chip, with one row highlighted."
    },
    "searchTerms": [
      "命令",
      "键盘",
      "搜索",
      "快捷键",
      "覆层"
    ]
  }
}
