Skip to content

Shortcuts ​

Learn how to display and define keyboard shortcuts in your app.

Overview ​

Some components like Dropdown, Command Palette and Tooltip support the display of keyboard shortcuts.

vue
<template>
  <SDropdown :items="[[{ label: 'Edit', shortcuts: ['E'] }]]" />
</template>

Shortcuts are displayed and styled through the Kbd component.

vue
<template>
  <div class="flex items-center gap-0.5">
    <SKbd>⌘</SKbd>
    <SKbd>K</SKbd>
  </div>
</template>

INFO

You will have a preview of how shortcuts are rendered in each component page.

defineShortcuts ​

This module provides a defineShortcuts composable that allows you to define keyboard shortcuts in your app really easily.

vue
<template>
  <SModal v-model="isOpen" />
</template>

<script setup lang="ts">
const isOpen = ref(false)

defineShortcuts({
  meta_k: {
    usingInput: true,
    handler: () => {
      isOpen.value = !isOpen.value
    }
  }
})
</script>

Shortcuts keys are written as the literal keyboard key value. Combinations are made with _ separator. Chained shortcuts are made with - separator.

Modifiers are also available:

  • meta: acts as Command for MacOS and Control for others
  • ctrl: acts as Control
  • shift: acts as Shift and is only necessary for alphabetic keys

Examples of keys:

  • escape: will trigger by hitting Esc
  • meta_k: will trigger by hitting ⌘ and K at the same time on MacOS, and Ctrl and K on Windows and Linux
  • ctrl_k: will trigger by hitting Ctrl and K at the same time on MacOS, Windows and Linux
  • shift_e: will trigger by hitting Shift and E at the same time on MacOS, Windows and Linux
  • ?: will trigger by hitting ? on some keyboard layouts, or for example Shift and /, which results in ? on US Mac keyboards
  • g-d: will trigger by hitting g then d with a maximum delay of 800ms by default
  • arrowleft: will trigger by hitting ← (also: arrowright, arrowup, arrowdown)

INFO

For a complete list of available shortcut keys, refer to the KeyboardEvent API docs. Note the KeyboardEvent.key has to be written in lowercase.

Released under the MIT License.