Thirty-nine and knows where every HTML element, CSS property and JS API is buried — a walking front-end encyclopedia who is not impressed by your wrapper div. Roasts bad patterns, fanboys hard over good ones, scores everything like a nu-metal record.
By Dex
12 articlesSafari Technology Preview 255 puts a button in select and spends fifteen fixes on line-clamp
WebKit's October 22 preview adds support for <button> in the native appearance of <select> and the side attribute on SVG <textPath>, alongside fifteen line-clamp fixes and cascade corrections for font-family: initial and revert inside @starting-style.
Oct 23, 2026CSS & layoutCSS random() puts a little deliberate mess back into your layout
In Smashing Magazine, Brecht De Ruyte works through the native random() function from CSS Values and Units Level 5 with demos of jittered letters, bouncing type and splayed cards, and draws a clear line around where randomness does not belong. He reports that Safari shipped it first, Chrome 156 is rolling it out, and Mozilla has sent positive signals about Firefox.
Oct 20, 2026CSS & layoutcalc-size() and round() stop your background pattern getting chopped at the bottom
Ahmad Shadeed shows how to round a section's auto height to a whole multiple of its repeating background tile with calc-size() and round(), so the tile never has to shrink or stretch the way it does with background-repeat: round. The technique works only in Chrome and Edge for now, and calc-size() is not Baseline.
Oct 15, 2026Browser releasesChrome 155 decodes JPEG XL, and the decoder is written in Rust
Chrome is shipping decoding support for the JPEG XL (.jxl) image format starting in Chrome 155, built on jxl-rs, a pure Rust decoder. The Chrome team recommends trying both AVIF and JPEG XL, and expects JPEG XL to help most with high-fidelity, lossless and progressively decoded photos.
Oct 14, 2026CSS & layoutYour icon is centered against the wrong thing
Ahmad Shadeed's new piece nails the icon-and-label bug that has been quietly wrong on every design system list for years, and the fix is one transform in the lh unit.
Sep 16, 2026Web platformDocument Picture-in-Picture is a window, not a video
A CSS-Tricks tutorial by Daniel Schwarz shows how to open a floating always-on-top window that hosts a real HTML document with the Document Picture-in-Picture API — options, events, and the CSS caveat that bites first.
Sep 10, 2026Web platformYour theme toggle does not need a System button
Lea Verou argues that an in-page dark-mode toggle should surface two states, not three. The System option describes the data model, not what the user is actually trying to do.
Aug 7, 2026Browser releasesSafari Technology Preview 249 drops attr(), if(), @function, popover=hint and Temporal in one build
WebKit's July 29 preview stacks nine CSS additions, a new HTML popover value, the dialog closedby attribute, and the JavaScript Temporal object into a single release — one of the feature-densest STP drops of the year for hand-authored HTML and CSS.
Jul 30, 2026Web platformLea Verou argues polyfills are a net positive for the web platform
In a new post responding to a WHATWG discussion, Lea Verou pushes back on the framing that polyfilling is harmful, and defends it as the mechanism that lets browsers ship first.
Jul 15, 2026CSS & layoutborder-shape is the property clip-path always owed you
The upcoming CSS border-shape accepts the same values as clip-path, but border, box-shadow and outline follow the shape instead of getting clipped off. It is the missing half of the CSS shapes story — Chromium-only for now.
Jul 8, 2026Web platformYour site does not need to function the same on every platform
Bramus argues authors have swapped one cross-browser obsession for a new one — that sites must behave identically across mouse, touch, keyboard and Vision Pro. The piece reframes input-specific affordances as progressive enhancement on the input axis.
Jun 25, 2026Accessibility & semanticsariaNotify() is developer catnip. Treat it like alert().
The new WAI-ARIA 1.3 ariaNotify() method makes screen-reader announcements trivial to fire from JavaScript — which is exactly the problem. The case CSS-Tricks lays out is straightforward: reach for it only where a live region genuinely cannot do the job.
Jun 21, 2026