Posts by Philip Jägenstedt
CSS code snippet for a container that sets column-height to 250 pixels and column-wrap to wrap.
A couple new column-wrapping features shipped in Chrome 145, like `column-wrap` and `column-height`.
Truly big upgrades for multi-column layouts — here's how you *might* use them... as well as when you might *not* use them.
css-tricks.com/css-multi-co...
Servo is now passing 1.9M subtests at wpt.fyi: 1,903,187 / 2,131,264 (89,3%) 🎉
See wpt.fyi/results/?pro...
CSS is DOOMed!
I've build DOOM in CSS and every wall, floor, barrel, and imp is a div, positioned in 3D space using CSS transforms.
cssdoom.wtf
Try it out! But... not every browser can handle it. This is taking the browser to its limit. Chrome has some issues. Safari too. Bugs will be filed.
@mixin --foo(--arg <length>) { @result { &, & > h2, & + p { width: var(--arg); } } } div { @apply --foo(10em); font-size: 10px; } div > h2 { font-size: 20px; } div + p { font-size: 30px; }
🚨 Want mixins in CSS?
Help the CSS WG by telling us what feels natural to you!
Look at the code in the screenshot. What resulting widths would *you* find least surprising for each of div, div > h2, div + p?
Polls:
┣ Github: github.com/LeaVerou/blo...
┗ Mastodon: front-end.social/@leaverou/11...
A screenshot of the video section of the HTML standard, now containing the loading attribute, a new addition
Spec proposal merged.
HTML video and audio lazy loading is now a web standard.
github.com/whatwg/html/...
html.spec.whatwg.org#the-video-el...
html.spec.whatwg.org#the-audio-el...
I don't know, www.theatlantic.com/culture/2026... resonates more with me, it's basically a pejorative.
Do you ever say "bro" to other people? The one time someone said it to me in person (years ago) I found it jarring and unexpected. Maybe I'm too stuck up 😅
In Firefox 148 alone, we were the _first_ to ship:
- Sanitizer API
- Navigation API addHandler
- Iterator zip & zipKeyed
We also shipped pointerrawupdate, ancestorOrigins, trusted types, overflow clip margin…
None of these are in Interop.
I just spoke at #WebDayOut with my pragmatic guide to browser support. You can check out my slides at noti.st/rachelandrew...
For those who want to test their perception of colour, I made a little game called "What's My JND"
www.keithcirkel.co.uk/whats-my-jnd...
Chrome is announcing that they are moving into a two-week release cycle! Exciting bc the web needs to move quickly- resolving bug fixes, feature improvements, etc. It goes along with devops principles of shipping smaller, more frequent releases for stability
developer.chrome.com/blog/chrome-...
After implementing web streams in multiple runtimes, supporting them for years, talking with other implementers, dealing with issues... I think it's well past time we talked about something better blog.cloudflare.com/a-better-web...
"Olo is an imaginary color that can be seen by shooting lasers into the retina to isolate the response of M cone cells."
Sign me up, I'd love to shoot my M cone cells with lasers!
en.wikipedia.org/wiki/Olo_(co...
Where are your "CSS is not a programming language" gods now?!?!? muwahaha. muwahaha.
lyra.horse/x86css/
🦥 A fun update over on the blog: 🦥
Standard HTML Video & Audio Lazy-loading is Coming!
scottjehl.com/posts/lazy-m...
If you'd told me that one day I'd be excited about a property called `border-shape`, I wouldn't have believed you.
And yet, here we are. @una.im shared the new CSS property coming to Chrome, which allows you to actually "shape" elements. 👏
una.im/border-shape/
Goodbye innerHTML, hello setHTML:
document.body.setHTML(`<h1>Hello my name is <img src="x" onclick="alert('XSS')">`);
translates to ->
<h1>Hello my name is</h1>
HTML might be getting a new type of tag, which… hasn't happened this millennium. Here's the new syntax, and how it works:
Chúc mừng năm mới! 🇻🇳
Looking to have an SI unit named after yourself, huh? If that fails, maybe <jake> as a plan B?
If you work on the web, you should read @mnot.net's latest:
mnot.net/blog/2026/02/13/…
It much more elegantly gets to the core of the pro/anti-progress asymmetry I tried to explore last year:
infrequently.org/2025/08/how-do-c…
How will agentic coding tools impact app platform choices? Lovable says: "web apps cost 40-60% less than native development and reach the market 50-70% faster." lovable.dev/guides/nativ...
#Interop2026 is here!
Lots of new CSS coming your way:
- style queries
- anchor positioning improvements (already crossbrowser)
- advanced attr()
- popover & dialog improvements like lightdismiss
- scroll-driven animations
- better scroll-snap capabilities
wpt.fyi/interop-2026
Once again, Interop '26 is simultaneously hopeful and not nearly enough (thanks for nothing, secret vetoes).
Stay tuned for Edge to once again update our dashboard for more comprehensively tracking top requests:
microsoftedge.github.io/TopDeveloperNeed…
Invoker Commands feel like something the platform should have had decades ago. Comparing its functionality to how we traditionally have to toggle a dialog makes current practice seem straight-up absurd. dbushell.com/2026/02/12/d...
The Device Bound Session Credentials flow.
New in Chrome 145: 📊 Column wrapping for multicol 🌐 The Origin API 🛡️ Device Bound Session Credentials
This stable release brings more flexible vertical layouts, streamlined origin handling, and enhanced security for user sessions→ goo.gle/3OyvI9n
WebMCP seems to be a very much needed tool for the web to stop agents scraping and guessing content and allowing maintainers to point them to where they need to go instead. developer.chrome.com/blog/webmcp-...
Tomorrow I am hosting two of the team on Coffee With Developers to learn more.
“Someday years from now we will look back on the era when we were the last generation to code by hand. We’ll laugh and explain to our grandkids how silly it was that we typed out JavaScript syntax with our fingers. But secretly we’ll miss it.” — @nolanlawson.com
nolanlawson.com/2026/02/07/w...