Skip to content

XKeyboard — 键盘示意图

纯 SVG 键盘示意图组件,零三方依赖。内置 5 种布局预设,支持按键连线标注、分区标签、悬停与点击联动高亮,适用于产品说明、快捷键文档、操作指引等场景。

实时演示

功能键主键盘编辑键方向键数字键盘EscF1F2F3F4F5F6F7F8F9F10F11F12`1234567890-=BkspTabQWERTYUIOP[]\CapsASDFGHJKL;'EnterShiftZXCVBNM,./ShiftCtrlWinAltSpaceAltWinMenuCtrlInsHomePgUpDelEndPgDnNumLk÷×789+456123Enter0.开始菜单退出/返回开始菜单空格键
vue
<XKeyboard
  type="full"
  :keys="{ Esc: '退出/返回', Win: '开始菜单', Space: '空格键' }"
  :show-group-label="true"
/>

Props

属性类型默认值说明
typestring'full'布局预设(见下表)
keysRecord<string, string>{}按键标注 { 键名: 文案 },键名须与布局一致
widthnumber920最大宽度(px),容器更窄时等比缩小
heightnumber0高度(px);0 表示按 viewBox 比例自适应
keyColorstring''键帽填充色,留空取 --surface
keyTextColorstring''键面文字色,留空取 --text-1
accentColorstring''强调色,留空取 --brand-1
lineColorstring''标注连线颜色,留空取 --brand-1
labelColorstring''标注文字色,留空取 --text-2
showKeyLabelbooleantrue是否绘制键面文字
showGroupLabelbooleanfalse是否显示分区标签
annotationsbooleantrue是否绘制标注连线与标签
highlightKeysstring[][]需要高亮的键名数组

Events

事件回调参数说明
select(name: string)点击任意键时触发,返回该键键名

布局预设

type构成画布比例
alpha字母三行(QWERTY / ASDF / ZXCV)宽扁
numeric数字小键盘(NumLk/四则运算/双高 + Enter近正方
full功能键行 + 主键盘 + 编辑键 + 方向键 + 数字键盘宽扁
laptop功能键行 + 主键盘(MenuFn)+ 方向键宽扁
laptopTouchlaptop,键盘下方绘制触摸板略高

注意事项

  • 颜色类 props 留空时回退到主题 CSS 变量,深色模式无需额外配置。
  • 标注键按其相对键盘中心的方位归到边,同边标签沿边铺开避让。
  • 键名须与布局完全一致才生效(如 Bksp 而非 Backspace 而非 Up)。
  • 完全纯 SVG,缩放不失真,无需 ResizeObserver

基于 VitePress + Vue 3 构建