Noam Rosenthal

Noam Rosenthal

@nomster.bsky.social

Web platform engineer @ Chrome

1.2K followers874 following503 posts

Things I hope to push forward at TPAC: - Declarative fragment / client side include - declarative skeleton/shell - CSS navigation matching - parser/patch reflection in mutation observers - responsive image improvements - connection allowlists - focusreset - CSS module imports Gonna be interesting!

Responsive images were originally designed to let each browser implement their own source selection heuristics, accounting for data-saving, memory, etc. In practice, over 11 years, the few tweaks that chrome did to that effect got unshipped, and Firefox/Safari didn't get to that point.

Though well intended, heuristics in browsers quickly becomes something that websites rely on, a de-facto standard. Any change to those heuristics makes some websites improve and some regress. So when something is marked as "implementation defined", we are often stuck with a de-facto standard to-be.

Noam Rosenthal reposted

After a decade at Cloudinary, I am looking work. I'm a web developer who's done a lot of devrel, too. I'm good at the front of the front end, great at browsers and standards and deeply understanding and explaining technical topics, and the stem of my T-shaped skills is: "images, on the internet".

Noam Rosenthal reposted

Connection Allowlists announcement blog post has been published. developer.chrome.com/blog/connect...

developer.chrome.comConnection allowlists: Secure your web application's network access  |  Blog  |  Chrome for DevelopersChrome 152 introduces connection allowlists, a new security mechanism that lets you create a strict network sandbox for your documents and workers.

"Connection Allowlists," a browser-level security mechanism that blocks any outbound network communication not matching your permitted URL patterns, is now available starting in Chrome 152.

To hide an element while it's being streamed, using CSS only: <div> <style>@scope { & { opacity: 0; } } }</style> <!-- stream the content --> <style>@scope { & { opacity: 1; } } }</style> </div> (After I fix some blink bug I'll publish an alternative that doesn't leave footprint in the DOM)

... And see this leftover-free approach. bsky.app/profile/noms...

Noam Rosenthal@nomster.bsky.social

An leftover-free way to hide an element while streaming (chrome only atm, but not for long hopefully) <div> <?start name="buffy" ?> <style>@scope { display: none }</style> <?end ?> <!-- stream the content --> <!-- remove the temp style --> <template for=buffy></template> </div>

An leftover-free way to hide an element while streaming (chrome only atm, but not for long hopefully) <div> <?start name="buffy" ?> <style>@scope { display: none }</style> <?end ?> <!-- stream the content --> <!-- remove the temp style --> <template for=buffy></template> </div>

To hide an element while it's being streamed, using CSS only: <div> <style>@scope { & { opacity: 0; } } }</style> <!-- stream the content --> <style>@scope { & { opacity: 1; } } }</style> </div> (After I fix some blink bug I'll publish an alternative that doesn't leave footprint in the DOM)

Noam Rosenthal reposted

One of the things that we at Chrome have been thinking about is a way to do declarative route and navigation matching **in CSS**. Together with @nomster.bsky.social and @dbaron.org I’ve been working on it for the past few months, and next week we’ll be presenting our work at the CSSWG F2F meeting.

Some of the features I have worked on: - Deferred fetching (fetchLater) - Deferred navigation commit (precommitHandler) - Deferred page swap (two phase view transition) - Deferred HTML updates (<template for>) What is the next thing to defer?

Noam Rosenthal reposted

📝 New CSS Article! I wrote about border-shape. A super powerful feature! You might think I'm exaggerating but I am not. css-tricks.com/get-ready-fo... This is just a tiny overview of its potential. Stay tuned for more articles/demos that will blow your mind (I am still not exaggerating!)

css-tricks.comGet Ready For the Powerful CSS border-shape Property!We recently got the shape() function and corner-shape property. What else could we possibly need as far as making shapes in CSS? Let me tell you: the border-shape property!

Noam Rosenthal reposted

The first part of Declarative Partial Updates (`<template for>` out-of-order HTML) is now available, unflagged, in Chrome 150!! developer.chrome.com/release-note... The second part (the new JS setting APIs, include the streaming ones) we're still working on the spec side, but maybe for Chrome 152?

developer.chrome.comChrome 150  |  Release notes  |  Chrome for DevelopersCSS text-fit property, background-clip border-area, Focusgroup, and more.

Noam Rosenthal reposted

Who said range sliders need to be straight and boring?! Hey CSS, distort the line! 〰️ css-tip.com/wiggly-range... Another funny demo powered by border-shape, scroll-driven animations, and more The HTML code? Only an input element (no extra code is needed)

Noam Rosenthal reposted

Out-of-order streaming HTML is coming to a browser near you! This means you can stream HTML to the browser in any order, which enables web apps to send the most important HTML first, regardless of where it is in the document. This is huuuuuge! 🧵1/3

An AI dystopia is going to look less like terminator/matrix (an evil sentient thing) and more like Brazil (a buggy bloated dysfunctional mess) But maybe neither I donno just sharing random thoughts

I love the web and feel mixed about AI. But the web platform cannot be judgmental, resistant, or passive to such a real shift in how people consume content. It has to be part of that shift. It doesn't mean that every decision in that direction is good but that should be the tone of the conversation.

I feel like a lot of the discourse about it (especially on Bluesky maybe) is romantically delusional that the web platform can somehow undo or slow down the AI revolution by pretending it doesn't exist.

Noam Rosenthal reposted

So here's an interesting little thing or 2 @nomster.bsky.social , @foolip.org , and myself have been cooking up—along with lots of help from others!: developer.chrome.com/blog/declara... This could lead to some VERY interesting changes in how we write web pages. Would love to hear your thoughts!

developer.chrome.comDeclarative partial updates  |  Blog  |  Chrome for DevelopersLearn about new out-of-order streaming capabilities and the renewed HTML insertion and streaming methods available for testing from Chrome 148

I feel like "are people going to vibe code their own site/app" is the wrong question. It's "are people going to use sites/apps at all or just get what they want using AI super app thingies?" Aren't both websites and apps tedious mediums like having to store CDs or rewind a VCR?

I really hope the open web would remain a way in which people can communicate without opaque corporate mediation... But the key is the end users and how they experience and content rather than more efficient ways to build the previous thing.

Noam Rosenthal reposted

here is the new CSS Border shape API this is going to unlock so many sick new designs

Noam Rosenthal reposted

OoooOOooh! Guess what! As of Chrome 149, shape() works in shape-outside! So you can really *shape* your UI's 😉* rect() and xywh() are also supported for shape-outside in Chrome 149 codepen.io/una/full/ogz... *(just let me have my Mom joke)

I've created a little AI skill called "web archeologist". It helps trace back existing standards to their original discussions & rationale, rummaging through github, browser bug trackers, old W3C mailing lists, IRC logs etc. github.com/noamr/web-ar... Happy for feedback/bugs/improvements!

github.comGitHub - noamr/web-archeologist: An agent skill to find history/root cause/discussion for existing web standard clausesAn agent skill to find history/root cause/discussion for existing web standard clauses - noamr/web-archeologist

Let's wobble the web

CSS by T. Afif@css-only.dev

💡 CSS Tip! Add an infinite wobbling animation to your image with a simple code. css-tip.com/wobbling-ani... Powered by "complex" shape()s that you can easily get from my online generator!

Out of context reminder: The "CORS errors" we get when we develop a page that accesses localhost are what prevents random untrusted webpages from making calls to open HTTP ports on our computer.

Noam Rosenthal reposted

Firefox is joining the shape() game 🤩 It's a good time for some blobs: css-generators.com/blob/ Or maybe a nice wavy divider: css-generators.com/wavy-divider/ And stay tuned for another generator and more shapes next week! 🤫

Firefox for Web Developers@webdevs.firefox.com

Firefox 148 is out now, and adds some great web platform features: 🎉 The HTML Sanitizer API 🎉 CSS shape() 🎉 Trusted Types 🎉 Nav API's addHandler 🎉 Iterator zip & zipKeyed 🎉 ancestorOrigins And more! developer.mozilla.org/en-US/docs/M...

border-shape is coming. Enough with the rectangular web!

I've been experimenting with an upcoming CSS feature called border-shape lately. It's really cool what you can do with it: lots of practical applications + it opens a lot of doors for non-rectangular UIs! Try it in Canary w/experimental web platform features on, & read more: una.im/border-shape

Noam Rosenthal reposted

Element-Scoped View Transitions are gonna be **SO GOOD** There’s still some details to settle, but the main thing is there: run VTs on a subtree of the DOM, allowing parallel VTs. And with `view-transition-scope` you can limit the scope of `view-transition-name` values, allowing VTs to be nested.