yy-menu
Version:
A traditional menu system for web apps inspired by Electron
44 lines (28 loc) • 1.49 kB
Markdown
# yy-menu
A traditional menu system for web apps inspired by Electron. Also includes an implementation of Accelerators to allow keyboard access to the menu (and global keyboard access across the app).
## rationalization
This came together because I wanted to cross-build and release electron apps as web-apps. I needed a replacement for Electron.Menu, Electron.MenuItem, and Electron.Accelerators. I rarely use Electron anymore, but I still find this library useful for some webapps.
## installation
npm i yy-menu
## simple example
```js
import { Menu, MenuItem, localAccelerator } from 'yy-menu';
const menu = new Menu();
menu.append(new MenuItem({ label: '&Test', accelerator: 'ctrl+b', click: clickCallback }));
var submenu = new Menu();
submenu.append(new MenuItem({ label: 'Check&box', type: 'checkbox', checked: true }));
menu.append(new MenuItem({ label: 'Sub&menu', submenu: submenu }));
// set menu as the application (i.e., top level) menu
Menu.setApplicationMenu(menu);
// register a keyboard shortcut unrelated to menu
localAccelerator.register('ctrl-a', pressA);
function clickCallback() { console.log('You clicked me!'); }
function pressA() { console.log('you pressed A'); }
```
## live demo
[https://davidfig.github.io/yy-menu](https://davidfig.github.io/yy-menu/)
## API
[https://davidfig.github.io/yy-menu/jsdoc](https://davidfig.github.io/yy-menu/jsdoc)
## License
MIT License
(c) 2020 [YOPEY YOPEY LLC](https://yopeyopey.com/) by David Figatner