
Popover API and dialog: Building Native Modals Without a Modal Library
The popover attribute and the dialog element now cover menus, toasts, and modals natively. Here is what each does, where they differ, and what still needs code.
Read more →Frontend Craft · Web Standards
Editorial coverage of UI design, HTML semantics, CSS, accessibility, and frontend craft — for practitioners who want end users who rave about how easy it feels.

The popover attribute and the dialog element now cover menus, toasts, and modals natively. Here is what each does, where they differ, and what still needs code.
Read more →
Same-document view transitions are cross-browser and :active-view-transition is Baseline. Cross-document navigation still isn't. Here's the split and the …
Read more →
shape() reached Baseline in February 2026. Here's the full command set, how by and to differ, and why it replaces path() for any clip-path that has to respond …
Read more →
contrast-color() reached Baseline Newly Available in April 2026. Here's what the function actually guarantees, where mid-tone backgrounds break it, and how to …
Read more →
The first half of 2026 moved :has(), CSS nesting, subgrid and mask to Baseline Widely Available. That tier, not the new arrivals, is where fallbacks can finally …
Read more →
CSS @scope reached Baseline Newly Available in December 2025. Here's how scoped styling contexts work and when they replace BEM-style naming hacks.
Read more →
The popover attribute and the dialog element now cover menus, toasts, and modals natively. Here is what each does, where they differ, and what still needs code.
Read more →
How heading levels and HTML5 sectioning elements create document structure, what the proposed outline algorithm was and why it failed, and how to build heading …
Read more →
How to build forms that work for everyone — label association, error messaging patterns, fieldset and legend for grouped controls, and the focus management that …
Read more →
The first half of 2026 moved :has(), CSS nesting, subgrid and mask to Baseline Widely Available. That tier, not the new arrivals, is where fallbacks can finally …
Read more →
contrast-color() reached Baseline Newly Available in April 2026. Here's what the function actually guarantees, where mid-tone backgrounds break it, and how to …
Read more →
shape() reached Baseline in February 2026. Here's the full command set, how by and to differ, and why it replaces path() for any clip-path that has to respond …
Read more →
A developer-focused reference for WCAG 2.1 — what the 17 new success criteria added in 2.1 require, how they relate to 2.0, and what Level AA conformance means …
Read more →
The nine new and modified success criteria in WCAG 2.2 — what each requires, why it was added, and how to implement it in real interfaces.
Read more →
The first rule of ARIA — use native HTML — and when ARIA roles are actually necessary: the patterns where native HTML falls short and assistive technology needs …
Read more →
How Steve Jobs auditing a calligraphy class at Reed College in 1972 led directly to the typography on every personal computer ever made — and why that lineage …
Read more →
A practical guide to web font loading strategies, font-display descriptors, variable fonts, and the rendering decisions that determine whether users rave or …
Read more →
The DevTools capabilities that change how you debug CSS, diagnose performance, inspect accessibility, and understand what the browser is actually doing with …
Read more →
How testing with the Lynx text browser exposes structural weaknesses in HTML that visual browsers hide — and why the fixes make every user's experience better.
Read more →
A systematic approach to cross-browser testing — what to check, which tools cover which gaps, and how to prioritize fixes without testing every browser equally.
Read more →