
Fluid Typography With clamp(): Building Type Scales That Respond Without Breakpoints
How to build a fluid type scale with CSS clamp(): the formula, working values, and the zoom rules that keep fluid text compliant with WCAG 1.4.4.
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.

How to build a fluid type scale with CSS clamp(): the formula, working values, and the zoom rules that keep fluid text compliant with WCAG 1.4.4.
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 →
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 →
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 to build a fluid type scale with CSS clamp(): the formula, working values, and the zoom rules that keep fluid text compliant with WCAG 1.4.4.
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 →