Chrome 144 becomes the first to support ::search-text, a pseudo-element for selecting find-in-page text.
HTTP Archive 2025 Web Almanac
I love me some good web research reports. I’m a sucker for them. HTTP Archive’s Web Almanac is one report […]
I love me some good web research reports. I’m a sucker for them. HTTP Archive’s Web Almanac is one report […]
Powered by
DigitalOcean
If you’re reading this, chances are you already have some sort of way that you’re following when we publish new […]
The developer community hasn’t wasted any time kicking off 2026 with some really great articles, demos, and insights. Firefox 147 and Chrome 144 also shipped, and while they’re not jam-packed with features, the releases are still pretty exciting for what’s normally a slow time of year, so without further ado, here’s what’s important from the last couple of weeks (or should I say the first couple of weeks, of 2026?)…
Super cool new CodePen feature alert! You’ve probably seen a bunch of “interactive” demos that let you changed values on the fly from a UI panel embedded directly in the demo.
Lee Meyer recently spoke at Web Directions Summit 2025. This is his experience, not only speaking at the event, but experiencing the event through the lens of anxiety and imposter syndrome.
Have you ever struggled to style an element while it’s being dragged? Sunkanmi explains some ways it could become easier in the future.
Chrome 144 becomes the first to support ::search-text, a pseudo-element for selecting find-in-page text.
#
Firefox 147 ships view transition types and anchor positioning, which are now supported in all browsers.
#
#
ReliCSS helps replace CSS hacks with @supports and modern CSS.
#
.element { filter: blur(5px); }
.element { corner-shape: superellipse(2); }
.element { corner-shape: scoop; }
.element { transform: translateY(calc(sin(20deg * var(--i)) * 100px)); }
.element { transform: translateY(calc(cos(20deg * var(--i)) * 100px)); }
.element { transform: translateY(calc(tan(15deg * var(--i)) * 5dvh)); }
.element { rotate: asin(-0.5); }
.element { rotate: acos(0.5) }
.element { rotate: atan(1); }
.element { rotate: atan2(200px, 200px); }
.element { background-image: cross-fade(url(a), url(b)); }
::picker-icon { content: "✓"; }
.element { animation-range: cover; }