yukey

README.md

Yukey๐Ÿ”—

a ui framework for the keyboard lover

What is it?๐Ÿ”—

Yukey is a set of web components for making extremely keyboard-driven application UIs. Yes, you can still use the mouse or a touchscreen on them -- but the intent is to make use with the keyboard on par or better than mouse or touchscreen use.

Show me!๐Ÿ”—

Sure! This is a screenshot of some UI elements composed with Yukey:

screenshot of a yukey megacolumn

What you're looking at is called a "megacolumn" element, and this one contains a series of buttons and other interactables (sliders, text entry, even some lists with activatable elements).

Some details to notice here:

  • The "request docking" button is what's currently focused. The focus is visually loud and clear.
  • If you used the up and down arrow keys... guess where the focus goes :)
  • If you hovered the "reactor" element and used left and right... you can guess what that does too.
  • (You're catching the theme here? Yukey is all about making it obvious what the keyboard can do for you, at all times!)
  • If you press keys matching the yellow letters, focus jumps to that element.
  • Activation is distinct from focus. You can always shift the focus; whether to activate an element after that is a separate choice.

Other features are harder to show in a single screenshot. For example, pressing "i" at any point will show more info about any focused element. (It's like tooltips, but without needing a mouse!)

Tell me more!๐Ÿ”—

Check out the docs dir.

All the "precepts-*.md" files talk about the considerations used when making Yukey. (The "we-love-the-keyboard" file is particularly rich, and contains a lot of the uniquest parts of Yukey.)

More user guide? Yeah, sorry, coming soon. You can probably figure it out from the component list and the docs in the code, though :)

Does it play well with others?๐Ÿ”—

Sure!

Yukey is just web components. It should, at a technical level, freely compose with anything else you want to mix and match it with.

That said, Yukey does have a fairly distinctive visual language of its own, and part of how it empowers the keyboard user also means it has opinions about what the keyboard should do at any time that a Yukey element has focus. And we did generally design Yukey to make the most sense when an application uses it consistently.

Still: Yukey element groups can be moved between with regular tabindex (even though Yukey takes greater control over a concept of "focus" whenever a Yukey element has it), generally participate in the same focus systems as the DOM already has, and also does everything it can to meet ARIA standards and norms. It should play nice with whatever you want.

License๐Ÿ”—

SPDX-License-Identifier: Apache-2.0 OR MIT

README.md ยท 2.7 KiB ยท 450b80abee