Kbd 键盘按键
在文字里标出一个按键或一组快捷键,如「按 ⌘ K 打开命令面板」。pt-kbd 是单个按键, pt-kbd-group 把几个按键排成一行表示组合键。
内容就是按键文字本身。光 DOM 元素,样式来自全局样式表 ptengine-ui.css。
<pt-kbd>⌘</pt-kbd>
<pt-kbd>K</pt-kbd>
<pt-kbd>Esc</pt-kbd>
<pt-kbd>Enter</pt-kbd>pt-kbd-group 把几个按键排成一行,间距 4px;中间也可以夹普通文字。
<pt-kbd-group>
<pt-kbd>⌘</pt-kbd>
<pt-kbd>⇧</pt-kbd>
<pt-kbd>P</pt-kbd>
</pt-kbd-group>
<pt-kbd-group>
<pt-kbd>Ctrl</pt-kbd>
+
<pt-kbd>C</pt-kbd>
</pt-kbd-group>内容
内容就是按键文字本身:<pt-kbd>⌘</pt-kbd>、<pt-kbd>Esc</pt-kbd>。也可以放一个 svg 图标, 渲染成 12px,颜色跟随文字(图标用 stroke="currentColor" / fill="currentColor")。
组合键里可以夹普通文字,如 <pt-kbd-group><pt-kbd>Ctrl</pt-kbd>+<pt-kbd>C</pt-kbd></pt-kbd-group>。
样式
两个都是光 DOM 元素(没有 Shadow DOM):元素本身就是那个按键框,样式在全局样式表 ptengine-ui.css 里, 所以一定要引这份样式表(安装时本来就要引)。业务直接在元素或里面的 svg 上写 className 就能覆盖, 不需要 ::part() 或 CSS 变量。
尺寸是固定的:高 20px、最小宽 20px,字号 12px —— 它嵌在文字行里,不跟控件高度档走。 与源设计一致,按键框不响应指针事件、文字不可选中:它只是提示,不是控件。
无障碍
不设 role:它对应的原生 <kbd> 本来就没有隐式 ARIA 角色,读屏按普通文字念出按键内容。 符号键(⌘ ⇧ ⌥)读屏的念法因平台而异,快捷键很关键时,在旁边写上文字说明或给外层加 aria-label。 只放图标的按键,给 svg 加 role="img" 与 aria-label。
API
插槽
| 名称 | 说明 |
|---|---|
(默认) | 按键文字,或一个 svg 图标 |
pt-kbd-group
插槽
| 名称 | 说明 |
|---|---|
(默认) | 若干 pt-kbd,中间可以夹 `+` 之类的文字 |