Noam Rosenthal's Avatar

Noam Rosenthal

@nomster.bsky.social

Web platform engineer @ Chrome

967 Followers  |  678 Following  |  212 Posts  |  Joined: 22.08.2023  |  1.6858

Latest posts by nomster.bsky.social on Bluesky

Yea it's a problematic feature for the open web. Extensions that are constrained to a list of URLs can probably provide something like this though without exposing your identity to *all* the websites out there.

13.10.2025 13:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yea also the other browsers kind of went in that direction. The thinking right now is to have everything available at a lower level like ElementInternals and let these "behaves like (button/input/img/...)" mixins emerge from user land libs.

10.10.2025 18:02 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

It's probably a matter of playing with cw/ccw and large/small to choose between the 4 possible arcs from A to B.

10.10.2025 13:04 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

But it has a PWA as well... I have both installed for comparison.

06.10.2025 20:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Awesome, seems like you're all sorted!

24.09.2025 08:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

It's a question of whether tick should mean "ASAP, but definitely after all the microtasks, but definitely before the next paint" vs. "as late as possible, but before next paint, but ASAP if painting is suppressed for some reason"

I am not well versed in Svelte enough to say what's "better" :)

24.09.2025 08:02 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Of course, but the comment says "in almost all cases requestAnimationFrame will fire first" which is incorrect.

This would mean that you would now often have multiple ticks in the same frame in the normal (no view transition) case.

24.09.2025 08:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

rAF wouldn't always beat setTimeout(f, 0). you can get multiple timeout calls in the same frame.

24.09.2025 07:02 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

If you were using rAF up until now then the difference won't be concrete/noticeable I guess.

23.09.2025 21:02 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

... also, we take feedback from web developers and framework authors very seriously, so please keep at it!

23.09.2025 20:23 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Ah yes, makes sense.

I would suggest calling scheduler.yield() there in case you are waiting on a VT callback, falling back to setTimeout if that's not supported in the browser.

23.09.2025 20:22 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Well we detect that the transition timed out, not necessarily due to a deadlock... I think the animation panel gives some indication when that happens? I'll check with the team.

23.09.2025 20:21 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Interesting... not trivial though!
Knowing that this is a deadlock requires static analysis that predicts that the promise resolution has some kind of dependency on the rAF. There could be legit use cases for calling rAF in the callback as long as the promise resolution doesn't depend on it.

23.09.2025 20:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Racing - Is this in order to have some sort of time limit for the callback? Can you expand on the use case and perhaps this has some other avenue?

I totally emphasize with the annoyance, a few things in view transitions are not trivial, some for a good reason. This one specifically is unavoidable.

23.09.2025 19:47 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

... But ordinary non-rendering tasks continue as normal, so setTimeout callbacks are still called.

23.09.2025 19:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It's by design and in the spec.
When we await the callback promise, rendering is paused until the new state of the DOM is settled, and so are rAFs. Having no frames (and thus no rAF) between view transition "start" and "active" ensures that the animation starts at the old state.

23.09.2025 19:41 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Yea there was a common theme of feedback during the last year or so about the "frozen middle bit" of a cross-document view transition

18.09.2025 16:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

(For now just trying it out in chromium to see if the resulting UX is nice)

18.09.2025 12:56 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yes, you got it right!

18.09.2025 12:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Add a property to the `CSSPseudoElement` IDL interface to determine if a pseudo element "exists" ยท Issue #12158 ยท w3c/csswg-drafts Full context: https://github.com/danielsakhapov/CSSPseudoElementDoc?tab=readme-ov-file#21-existence-confusion Description: CSSPseudoElement object is returned from pseudo(type) if type is parsed co...

I think the root of the problem is that there is no good way in the platform to access/define these UI elements when their lifecycle originates from style/layout (e.g. columns and scroll-markers).

I've made some attempt for an alternative model in github.com/w3c/csswg-dr... but it's not simple.

15.09.2025 13:15 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
What Can We Actually Do With corner-shape? | CSS-Tricks When I first started messing around with code, rounded corners required five background images or an image sprite likely created in Photoshop, so when

Yay another corner-shape article! Keep them coming!

What Can We Actually Do With corner-shape? | CSS-Tricks share.google/sTQD2Jh8vvzE...

13.09.2025 11:17 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
corner-shape examples should show notification when the feature is not supported ยท Issue #41113 ยท mdn/content MDN URL https://developer.mozilla.org/en-US/docs/Web/CSS/corner-shape What specific section or headline is this issue about? corner-shape What information was incorrect, unhelpful, or incomplete? T...

Yea, there might already be a standard like this.
Anyway, I've opened github.com/mdn/content/... to address this.

12.09.2025 15:43 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

... But it's worth trying out all this stuff to make sure the various cases are covered.

12.09.2025 07:52 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If you use shadow DOM for encapsulation and the view transition is inside the shadow you might not need tag containment, as the shadow boundary already does that.

12.09.2025 07:51 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks, good point! I will report it so that it's corrected.

11.09.2025 20:51 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

What happened is that we've made view-transition names shadow-scoped at some point, so after that you couldn't make document-scoped view-transition that pierce shadow roots, and have to use ::part for that.

But if the whole view-transition is scoped inside the shadow you should be fine methinks.

11.09.2025 19:23 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

By design they should "just work" with the view-transition-name matching working only within the scope.

I haven't tested this myself though.

11.09.2025 18:39 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
corner-shape - CSS | MDN The corner-shape shorthand CSS property specifies the shape of a box's corners, within the area specified by its border-radius property value.

corner-shape documentation is now available on mdn!
developer.mozilla.org/en-US/docs/W...

11.09.2025 13:35 โ€” ๐Ÿ‘ 15    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Video thumbnail

If you thought we were done with View Transitions, guess again!

A feature Chrome is working on, is โ€œScoped View Transitionsโ€, which allow you to scope a VT to a subtree of the DOM.

This unlocks things like concurrent transitions and prevents layering issues.

developer.chrome.com/blog/scoped-...

10.09.2025 14:09 โ€” ๐Ÿ‘ 198    ๐Ÿ” 28    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 2

Specifically some of these are presented in order to show why routing makes more sense as an HTML primitive than a CSS primitive, even though the first deliverable is more CSS oriented.

05.09.2025 15:12 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@nomster is following 19 prominent accounts