Accessible Dialog
Hello
Native fallback using the Popover API. The React island will hydrate here when available.
This isn’t a SPA. It’s a calm site with progressive enhancement. React runs as islands where it adds real value.
Native fallback using the Popover API. The React island will hydrate here when available.
Fallback combobox using datalist.
Ready.
:has(), inert-ready) — native menus/dialogs, simple focus. Fallback: CSS/JS modal.Toggle tab order map, landmarks outline, and live contrast badges.
Proof mode ready.
Principles. Local-first, progressive enhancement, sobriety. Home = semantic HTML + Vanilla JS. /lab = React islands.
Stack. HTML, CSS, Vanilla JS, React islands; View Transitions, Popover, Container Queries, Scroll Animations, Web Audio, Web Speech.
Perf budgets. HTML < 30 KB, CSS < 20 KB, JS (home) < 50 KB. No third-party tracking. Fonts system.
A11Y. Keyboard first, visible focus, RMW respected, polite ARIA. Contrast AA/AAA by default in dark-first.
Fallbacks. Every API degrades gracefully to a native or simple pattern.