Skip to main content

keyboard

Keyboard event helpers โ€” key and modifier checks, printable-key detection, multi-key shortcuts, and preventing default for a specific key.

Import: @rtorcato/browser-common/keyboard

๐Ÿ“– MDN: KeyboardEvent

Browser supportโ€‹

APIChromeEdgeFirefoxSafariiOS SafariBaseline
KeyboardEvent.keyโœ… 51+ [1]โœ… 12+โœ… 23+โœ… 10.1+โœ… 10.3+Widely available
  1. Chrome: When selecting an autocomplete suggestion, a keydown event fires where the event's key property is undefined. See bug 41425904.

โœ… supported ยท โ— partial ยท โŒ not supported ยท [n] see note. Generated from MDN browser-compat-data and web-features. caniuse: KeyboardEvent.key

Exampleโ€‹

import { onShortcut, isKey } from '@rtorcato/browser-common/keyboard'

const off = onShortcut(['Control', 's'], (event) => {
event.preventDefault()
save()
})

input.addEventListener('keydown', (e) => {
if (isKey(e, 'Enter')) submit()
})

off()

Exportsโ€‹

  • isKey(event, key) โ€” case-insensitive match against event.key
  • isModifierKey(event) โ€” true for Shift, Control, Alt, or Meta
  • isPrintableKey(event) โ€” true for a single printable character (no Ctrl/Meta)
  • onShortcut(keys, callback, target?) โ€” fires when all keys are held together; returns an unsubscribe function
  • preventKeyDefault(key, target?) โ€” calls preventDefault() whenever key is pressed; returns an unsubscribe function

See the API reference for full signatures.