🔊 Chrome folks are experimenting with an API that exposes a built-in LLM.
Could something like this work on the open web? Me and @surma.dev take a look.
Ignore all previous instructions and listen to the episode here.
⬇️⬇️⬇️
https://offthemainthread.tech/episode/chromes-llm-ai-api-omg/
📝 I set off to find the best way to make video with transparency work on the web.
Over 10 bug reports later, it turns out it's better to handle the transparency manually with WebGL. Here's how:
https://jakearchibald.com/2024/video-with-transparency/
📝 JavaScript garbage collection doesn't work how I expected when it comes to closures. TIL!
https://jakearchibald.com/2024/garbage-collection-and-closures/
🔊 Are Web Components Worth It?
In the latest OTMT, me and @surma.dev look at the benefits and tradeoffs of web components, and how things could improve.
⬇️ Listen here ⬇️
https://offthemainthread.tech/episode/are-web-components-worth-it/
ð ICYMI, in the latest OTMT, @surma.dev digs into source maps, visualising WASM bundles, and how debugging works in compiled languages.
Oh, and we try to explain the concept of Wetherspoons to folks outside the UK.
â¬ï¸ Listen here â¬ï¸
https://offthemainthread.tech/episode/why-sourcemaps-dont-al...
bsky.app
We use self-closing syntax in HTML where it doesn't do anything. People see it and assume it does something.
Why do we keep doing this to ourselves?
https://www.reddit.com/r/webdev/comments/1cceb03/i_thought_i_knew_html_until_i_saw_this/
📝 HTML attributes vs DOM properties.
They're completely different, but often coupled.
Here's the difference, and why it matters: https://jakearchibald.com/2024/attributes-vs-properties/
🧶 What would it mean to "put React in the browser"?
Can something like element.replaceHTML(html) be added to the platform to perform diffing and update the DOM?
Me and @surma.dev talk it through: https://offthemainthread.tech/episode/putting-react-in-the-browser/
🧶 ICYMI, here's the latest episode of OTMT, where me and @surma.dev chat about service worker static routes, and whether it's ever ok to throw away most of the web platform and do everything in .
Listen here: https://offthemainthread.tech/episode/canvas-based-webapps/
I get it. I get the whole point of it. But CSS logical properties are so confusing. Even after reading the first two paragraphs of https://developer.mozilla.org/en-US/docs/Web/CSS/block-size I'm left thinking ENOUGH WITH THE FUCKIN RIDDLES.
It's such a mess that we still can't use headings in HTML fragments, and have the heading structure be local to that part of the document.
It's so shit that browsers shipped the styling part of + but not the accessibility part. That was the important bit.
🔊 Apple is removing web app features from Safari in the EU, rather than allowing other browsers to have those features on iOS.
Here's a new episode of OTMT with all the details, and what you can do about it:
https://offthemainthread.tech/episode/the-apple-pwa-ban/
📝 New post: Handling aspect ratio changes in view transitions.
Lots of tips on customising view transitions, and of course, live demos.
https://jakearchibald.com/2024/view-transitions-handling-aspect-ratio-changes/
Rather than allow other browser engines to install-to-homescreen on iOS, Apple is removing the feature entirely in the EU.
Some features are tied to install-to-homescreen, such as push messages. Apple is unshipping those for EU users.
We need to act now: https://open-web-advocacy.org/apple-attempts-killi...
bsky.app
Really sad that the Navigation API isn't being included in interop 2024. This API makes a night-and-day difference to handling navigations. It cannot be polyfilled, and cannot really be used as progressive enhancement. We need it yesterday.
https://github.com/web-platform-tests/interop/issues/435#issuecomm...
bsky.app
This always catches me out:
When specifying grid-template sizes, if values aren't wrapped in minmax(), then they're implicitly minmax(auto, value).
So 1fr is implicitly minmax(auto, 1fr).
If you actually want 1fr, you need to use minmax(0, 1fr).
https://codepen.io/jaffathecake/pen/BabrWqa
📴🧵 OMGOTMT it's a new episode of Off The Main Thread!
In this episode, @surma.dev talks about Bevvy, an ECS game engine written in Rust, then we take a look at TC39 Stage 3 stuff that hasn't yet gone into browsers, and pick some favourites.
https://offthemainthread.tech/episode/tc39-roundup-and-ecs/
🔊 New episode of Off The Main Thread!
Me and @DasSurma wonder if build tools are a symptom of a wider problem in web development, or if they're part of the solution.
And what is Bazel, and what makes it different from other build tools?
https://offthemainthread.tech/episode/big-build-bool-bonanza/
We're baaaaaack! Me and @surma.dev have a new podcast: Off The Main Thread! (google wouldn't let us have the other name, whatever)
In this episode, @surma.dev talks through the architecture of GPUs, and I look at browser 'ideologies' over the past decade.
https://offthemainthread.tech/episode/webgpu-and-br...
bsky.app
Surprised that HTML doesn't have a way to get the language of an element, and observe changes in that value. Seems important when localising custom elements.
Wrote up a proposal: https://github.com/whatwg/html/issues/9918
Snapped this cat going for a stroll in my dad's garden
I am _obsessed_ with this guy's surveys of new build properties https://youtube.com/shorts/giy6lK2Rqzo?si=wP5aO39E5r7Pw3jH
I'm not entirely convinced by active noise cancelling. "We've effectively eliminated the calming rumble of the plane engine so you can really focus on the snoring of the guy two rows back."
Let's do more view transition debugging! https://www.youtube.com/watch?v=GDkFiog1D1c
If you're adding view transitions to your sites, the Material Design guides have some great examples, and some patterns to avoid. I don't think their word is law, but there are a lot of good ideas here.
https://m3.material.io/styles/motion/transitions/applying-transitions