Skip to content

gugutz/shortway

Repository files navigation

Shortway

npm (scoped) build status coverage status dependencies status XO code style

A very small and dependency-free library to handle keyboard shortcuts in the browser. Feel free to use it with any kind of keyboard events and attach them to any element that you want.

Try shortway live on codepen!

Install

This project uses node and npm. Go check them out if you don't have them locally installed.

$ npm install --dev shortway

Then with a module bundler like rollup or webpack, use as you would anything else:

// using ES6 modules
import shortway from 'shortway'

// using CommonJS modules
var shortway = require('shortway')

The UMD build is also available on unpkg:

<script src="https://unpkg.com/shortway/lib/shortway.umd.js"></script>

You can find the library on window.shortway.

Usage

import shortway from 'shortway'

const callback = (e) => {console.log(e)}

const spaceShortcut = shortway('ctrl+space', callback)
document.addEventListener('keyup', spaceShortcut)

const customShortcut = shortway('ctrl+shift+left', callback)
document.querySelector('input').addEventListener('keypress', customShortcut)

Supported Keys

Shortway current supports ctrl, alt and shift along with the following shortcuts:

  • backspace
  • tab
  • enter
  • esc
  • space
  • pageup
  • pagedown
  • end
  • home
  • 0-9
  • a-z
  • f1-f12
  • Arrows: left, top, right, down
  • insert
  • delete
  • slash: /

API

shortway(command, callback)

command

A sequence of keys to be watched.

Examples:
shortway('r', callback)
shortway('ctrl+9', callback)
shortway('alt+a', callback)
shortway('shift+space', callback)

callback

A callback to be executed when a sequence of keys is predded.

Examples:
const callback = e => {
  console.log(e)
}

shortway('r', callback)

Contributing

See the contributing file.

License

MIT License © Gustavo P Borges