// writing
Posts on development — Page 3
A mix of technical deep-dives, career reflections, and dispatches from the road.

developmentJul 20, 2026· 3 min
CSS :has() in Practice: The Parent Selector You Can Finally Ship
The :has() selector is Baseline and fast in 2026. Here's how to use it for parent styling, sibling reactions, and quantity queries without reaching for JavaScript.
read more →

developmentJul 19, 2026· 4 min
CSS @function: Reusable Logic Comes Native to the Browser
CSS finally has real, reusable functions. The new @function at-rule lets you define typed helpers that run in the browser with live values — here is how it works and where it is supported today.
read more →

developmentJul 16, 2026· 4 min
The Soft Navigations API: Core Web Vitals Finally Work in SPAs
Chrome ships the Soft Navigations API unflagged in 151, giving single-page apps a standardized way to measure LCP, INP, and CLS per route change instead of only on the first load.
read more →

developmentJul 13, 2026· 4 min
Declarative Shadow DOM: Web Components That Render Before Your JavaScript Does
Shadow DOM used to mean a blank page until your bundle loaded. The shadowrootmode attribute changed that, and it has been in every major browser since early 2024.
read more →

developmentJul 12, 2026· 5 min
OPFS: A Real File System in the Browser
The Origin Private File System gives you byte-level, synchronous file I/O in the browser. Here's how it works, when to reach for it, and why it's the reason SQLite runs well on the web now.
read more →

developmentJul 9, 2026· 4 min
CSS light-dark(): Stop Duplicating Your Dark Mode Colors
The CSS light-dark() function collapses your two dark-mode palettes into a single declaration. Here is how it works, the color-scheme gotcha that trips everyone up, and how to wire up a manual theme toggle.
read more →

developmentJul 6, 2026· 4 min
URLPattern: The Browser Finally Has a Built-In Router
URLPattern went Baseline in late 2025, giving the platform a native, framework-free way to match and parse URLs. Here is how it works and where it earns its place.
read more →

developmentJul 5, 2026· 4 min
CSS Grid Lanes: Native Masonry Has Finally Landed
Masonry layout is coming to CSS as grid-lanes, and Safari shipped it first. Here's how the new display value works, why it beats the JavaScript libraries, and what it fixes for keyboard users.
read more →

developmentJul 2, 2026· 4 min
Invoker Commands: Wiring Buttons to Dialogs and Popovers Without JavaScript
The Invoker Commands API lets a button declare what it controls with command and commandfor, replacing modal and popover glue code with plain HTML.
read more →
// the newsletter