Skip to content

Key

const Key: object

Defined in: src/modules/input/key-codes.ts:26

Frozen record of common KeyboardEvent.code values, organised by category. Use Key.ArrowLeft instead of 'ArrowLeft' in createInput(...) maps to get compile-time typo protection and IDE autocomplete:

import { createInput, Key } from '@pierre/ecs/modules/input';
createInput({
jump: [Key.Space, Key.ArrowUp, Key.KeyW],
left: [Key.ArrowLeft, Key.KeyA],
right: [Key.ArrowRight, Key.KeyD],
}, [new KeyboardProvider()]);

.code values are physical-position-based (US-QWERTY labelled), so Key.KeyW fires for the key at the physical top-left letter position on AZERTY, QWERTZ, Dvorak, Colemak, etc. This gives “WASD” ergonomics on every layout.

Passing raw strings still works — this const is purely an ergonomics layer for the keyboard provider. Custom providers (gamepad, touch, test harnesses) are free to emit any string codes.

readonly AltLeft: "AltLeft" = 'AltLeft'

readonly AltRight: "AltRight" = 'AltRight'

readonly ArrowDown: "ArrowDown" = 'ArrowDown'

readonly ArrowLeft: "ArrowLeft" = 'ArrowLeft'

readonly ArrowRight: "ArrowRight" = 'ArrowRight'

readonly ArrowUp: "ArrowUp" = 'ArrowUp'

readonly Backquote: "Backquote" = 'Backquote'

readonly Backslash: "Backslash" = 'Backslash'

readonly Backspace: "Backspace" = 'Backspace'

readonly BracketLeft: "BracketLeft" = 'BracketLeft'

readonly BracketRight: "BracketRight" = 'BracketRight'

readonly Comma: "Comma" = 'Comma'

readonly ControlLeft: "ControlLeft" = 'ControlLeft'

readonly ControlRight: "ControlRight" = 'ControlRight'

readonly Delete: "Delete" = 'Delete'

readonly Digit0: "Digit0" = 'Digit0'

readonly Digit1: "Digit1" = 'Digit1'

readonly Digit2: "Digit2" = 'Digit2'

readonly Digit3: "Digit3" = 'Digit3'

readonly Digit4: "Digit4" = 'Digit4'

readonly Digit5: "Digit5" = 'Digit5'

readonly Digit6: "Digit6" = 'Digit6'

readonly Digit7: "Digit7" = 'Digit7'

readonly Digit8: "Digit8" = 'Digit8'

readonly Digit9: "Digit9" = 'Digit9'

readonly Enter: "Enter" = 'Enter'

readonly Equal: "Equal" = 'Equal'

readonly Escape: "Escape" = 'Escape'

readonly F1: "F1" = 'F1'

readonly F10: "F10" = 'F10'

readonly F11: "F11" = 'F11'

readonly F12: "F12" = 'F12'

readonly F2: "F2" = 'F2'

readonly F3: "F3" = 'F3'

readonly F4: "F4" = 'F4'

readonly F5: "F5" = 'F5'

readonly F6: "F6" = 'F6'

readonly F7: "F7" = 'F7'

readonly F8: "F8" = 'F8'

readonly F9: "F9" = 'F9'

readonly KeyA: "KeyA" = 'KeyA'

readonly KeyB: "KeyB" = 'KeyB'

readonly KeyC: "KeyC" = 'KeyC'

readonly KeyD: "KeyD" = 'KeyD'

readonly KeyE: "KeyE" = 'KeyE'

readonly KeyF: "KeyF" = 'KeyF'

readonly KeyG: "KeyG" = 'KeyG'

readonly KeyH: "KeyH" = 'KeyH'

readonly KeyI: "KeyI" = 'KeyI'

readonly KeyJ: "KeyJ" = 'KeyJ'

readonly KeyK: "KeyK" = 'KeyK'

readonly KeyL: "KeyL" = 'KeyL'

readonly KeyM: "KeyM" = 'KeyM'

readonly KeyN: "KeyN" = 'KeyN'

readonly KeyO: "KeyO" = 'KeyO'

readonly KeyP: "KeyP" = 'KeyP'

readonly KeyQ: "KeyQ" = 'KeyQ'

readonly KeyR: "KeyR" = 'KeyR'

readonly KeyS: "KeyS" = 'KeyS'

readonly KeyT: "KeyT" = 'KeyT'

readonly KeyU: "KeyU" = 'KeyU'

readonly KeyV: "KeyV" = 'KeyV'

readonly KeyW: "KeyW" = 'KeyW'

readonly KeyX: "KeyX" = 'KeyX'

readonly KeyY: "KeyY" = 'KeyY'

readonly KeyZ: "KeyZ" = 'KeyZ'

readonly MetaLeft: "MetaLeft" = 'MetaLeft'

readonly MetaRight: "MetaRight" = 'MetaRight'

readonly Minus: "Minus" = 'Minus'

readonly Numpad0: "Numpad0" = 'Numpad0'

readonly Numpad1: "Numpad1" = 'Numpad1'

readonly Numpad2: "Numpad2" = 'Numpad2'

readonly Numpad3: "Numpad3" = 'Numpad3'

readonly Numpad4: "Numpad4" = 'Numpad4'

readonly Numpad5: "Numpad5" = 'Numpad5'

readonly Numpad6: "Numpad6" = 'Numpad6'

readonly Numpad7: "Numpad7" = 'Numpad7'

readonly Numpad8: "Numpad8" = 'Numpad8'

readonly Numpad9: "Numpad9" = 'Numpad9'

readonly NumpadAdd: "NumpadAdd" = 'NumpadAdd'

readonly NumpadDecimal: "NumpadDecimal" = 'NumpadDecimal'

readonly NumpadDivide: "NumpadDivide" = 'NumpadDivide'

readonly NumpadEnter: "NumpadEnter" = 'NumpadEnter'

readonly NumpadMultiply: "NumpadMultiply" = 'NumpadMultiply'

readonly NumpadSubtract: "NumpadSubtract" = 'NumpadSubtract'

readonly Period: "Period" = 'Period'

readonly Quote: "Quote" = 'Quote'

readonly Semicolon: "Semicolon" = 'Semicolon'

readonly ShiftLeft: "ShiftLeft" = 'ShiftLeft'

readonly ShiftRight: "ShiftRight" = 'ShiftRight'

readonly Slash: "Slash" = 'Slash'

readonly Space: "Space" = 'Space'

readonly Tab: "Tab" = 'Tab'