Skip to content
WM KeyboardWM Keyboard
Accessibility

Docs component gallery

Live demos of every custom component available to documentation authors.

Every custom component the docs can use, rendered live. Import from @components/*; conventions live in CONTENT_GUIDE.md.

Keys: press Shift then ?123, or hold Space. Editions: Full edition only Lite edition only All editions. Versions: Since v1.4.

Settings location chip:

WM KeyboardTypingGesturesSpacebar swipes

Empty renders the screenshot-pending placeholder; with an image (or a <video>) it renders a device frame:

Screenshot pending
An empty PhoneFrame: the placeholder stubs use.

Renders any .wmlayout.json straight from app/src/main/assets/layouts/: import the file, pass it in. Hover/tap dotted keys for long-press characters; layouts with a shift layer get a toggle:

Qafar af (Afar)

Hover or tap a key with a corner hint to see all its long-press characters.

Bishnupriya Manipuri (shift layer demo)

Hover or tap a key with a corner hint to see all its long-press characters.

Renders real theme specs (the same format as .wmtheme.json exports) on a mock keyboard. The showcase set exercises gradients (linear, radial, sweep), translucent keys, pill/cut key shapes, borders, key sheens and the HUE_CYCLE animation:

ThemeSpec-shaped approximations of several built-in themes.

Pass specs to render an actual export file:

The Midnight theme from the addon repository, rendered from its real .wmtheme.json.

Client-filterable, sortable table for big datasets. Live on the language overview (352 rows) and dictionaries (333 rows) pages; data is generated from the app’s registries by docs/scripts/extract_data.py:

40 rows
IdNameScript
enEnglishLatin
bnবাংলা · BanglaBengali
frFrançais · FrenchLatin
deDeutsch · GermanLatin
esEspañol · SpanishLatin
ko한국어 · KoreanHangul
ruРусский · RussianCyrillic
arالعربية · ArabicArabic
elΕλληνικά · GreekGreek
heעברית · HebrewHebrew
hiहिन्दी · HindiDevanagari
ptPortuguês · PortugueseLatin
ukУкраїнська · UkrainianCyrillic
itItaliano · ItalianLatin
nlNederlands · DutchLatin
plPolski · PolishLatin
svSvenska · SwedishLatin
srСрпски · SerbianCyrillic
bgБългарски · BulgarianCyrillic
kaქართული · GeorgianGeorgian
csČeština · CzechLatin
skSlovenčina · SlovakLatin
roRomână · RomanianLatin
huMagyar · HungarianLatin
fiSuomi · FinnishLatin
daDansk · DanishLatin
nbNorsk · NorwegianLatin
hrHrvatski · CroatianLatin
faفارسی · PersianArabic
beБеларуская · BelarusianCyrillic
etEesti · EstonianLatin
ltLietuvių · LithuanianLatin
lvLatviešu · LatvianLatin
slSlovenščina · SlovenianLatin
urاردو · UrduArabic
psپښتو · PashtoArabic
sdسنڌي · SindhiArabic
ugئۇيغۇرچە · UyghurArabic
ckbکوردی · Kurdish (Sorani)Arabic
hyՀայերեն · ArmenianArmenian

Stylised, looping gesture explainers (use screen recordings for real behaviour; these are for concepts). Four types:

space-swipe — short spacebar swipe switches language
space-hold — hold, then drag through the language picker
long-press — accent popup on a held key
glide — trace a word without lifting

All four freeze to a static end-state under prefers-reduced-motion.