For AI agents: the complete documentation index is available at https://a3s-lab.github.io/UI/v0.4.0/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/UI/v0.4.0/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/UI/v0.4.0/components/command.md.

命令面板

命令面板让用户通过搜索快速定位并执行操作,适合键盘优先的导航、切换和高频工作流。它应提供可预测的命令名称、清晰的分组与快捷键,而不是承担复杂表单或长篇内容。

实时预览

用法

引入样式

导入 Tailwind 和完整样式包:

@import "tailwindcss";
@import "@a3s-lab/ui/a3s.css";

拆分导入时,同时包含基础层、命令面板结构与主题样式:

@import "tailwindcss";
@import "@a3s-lab/ui/base.css";
@import "@a3s-lab/ui/components/command.css";
@import "@a3s-lab/ui/styles/a3s.css";

引入脚本

使用完整运行时:

<script src="/assets/js/all.min.js" defer></script>

拆分加载时,同时引入共享运行时和命令面板控制器:

<script src="/assets/js/runtime.min.js" defer></script>
<script src="/assets/js/command.min.js" defer></script>

添加语义化结构

<div class="command border" aria-label="命令菜单">
  <header>
    <svg aria-hidden="true"><!-- 搜索图标 --></svg>
    <input
      type="text"
      role="combobox"
      aria-label="命令搜索"
      aria-expanded="true"
      aria-controls="project-command-menu"
      placeholder="输入命令或搜索…"
    />
  </header>
  <div id="project-command-menu" role="menu" data-empty="没有匹配结果。">
    <div role="group" aria-labelledby="project-command-heading">
      <span id="project-command-heading" role="heading">项目</span>
      <div role="menuitem" data-filter="打开项目 Open project">打开项目</div>
      <div role="menuitem" data-filter="新建任务 New task">新建任务</div>
    </div>
  </div>
</div>

需要模态命令面板时,将 .command 放进原生 <dialog class="command-dialog">,并为对话框提供可访问名称。

HTML 结构

<dialog class="command-dialog"> 可选
模态命令面板容器。直接子元素应为 .command,并通过 aria-label 或 aria-labelledby 提供名称。
<div class="command">

命令面板根元素。设置 data-filter="manual" 可由应用接管远程搜索或索引过滤。

<header>
搜索图标和输入框的容器。
<input role="combobox">
命令搜索框。使用 aria-controls 指向命令列表,并保持 aria-expanded 与列表状态一致。
<div role="menu">
命令列表;通过 data-empty 提供本地化的无结果文案。
<div role="group"> 可选
组织相关命令;组内全部命令被过滤后会自动隐藏。
<span role="heading"> 可选
命令组标题,应由父级的 aria-labelledby 引用。
<div role="menuitem">
可执行操作。导航命令使用 <a role="menuitem">;不可用操作使用 aria-disabled="true"。
<span data-shortcut> 可选
位于行尾的快捷键提示。
<hr role="separator"> 可选
命令组之间的分隔线;搜索期间会自动隐藏。

JavaScript API

API类型描述
command.refresh()方法动态添加、移除或重命名命令后,重新扫描当前列表。

示例

模态命令面板

把高频操作放在前面,并显示可记忆的快捷键。点击遮罩或按 Esc 关闭。

实时预览

长列表

长列表保持搜索框可见,命令区域独立滚动。分组应反映用户心智模型,避免按技术模块堆砌。

实时预览

RTL

将 dir="rtl" 添加到命令根元素或祖先;标题、输入与快捷键会随文档方向重新排列。

实时预览