Try it
Pick a layout and type — ⇧ reveals the shift layer (وو on و, plain-Arabic letters), Latin layouts add ⇪ Caps Lock. Arrow keys navigate the panel; it works with screen readers.
Assistive-tech labels: — the ⇧ key currently announces as “”.
Mobile: be the keyboard
On a phone, suppressNative: true keeps the system keyboard hidden
(inputmode="none") while a docked or floating panel does the typing.
Clean legacy text
Decades of fragmented encodings left Kurdish text with Arabic ك/ي and heh-for-ە.
normalizeLegacy() converts to the unified codepoints — changed characters
are highlighted.
Theming
Styling comes from one optional stylesheet; themes are just
--kkb-* custom properties on a wrapper — no CSS-in-JS.