Ollie Williams
@ollie-williams.bsky.social
📤 212
📥 283
📝 194
Mostly posting about web standards.
reposted by
Ollie Williams
Barry Pollard
1 day ago
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!
loading . . .
Declarative partial updates | Blog | Chrome for Developers
Learn about new out-of-order streaming capabilities and the renewed HTML insertion and streaming methods available for testing from Chrome 148
https://developer.chrome.com/blog/declarative-partial-updates?hl=en
8
82
33
reposted by
Ollie Williams
Patrick Brosset
3 days ago
❓ A question for web developers ❓ If you do layout in CSS, what's missing? I'm especially interested in hearing about use cases that aren't yet solved by existing CSS layout features.
#css
#webdev
29
23
19
flex-wrap: balance has the same issue as text-wrap: balance where you can't have the items/text be both left-aligned and centred when they're wrapping. Still a cool feature though.
chromestatus.com/feature/4547...
codepen.io/cssgrid/pen/...
loading . . .
balance centering issue
...
https://codepen.io/cssgrid/pen/MYbJpyp
4 days ago
0
3
1
reposted by
Ollie Williams
Kevin Babbitt
6 days ago
CSS Gap Decorations is shipping in Edge and Chrome 149! Really proud of all the work the team did to solve this longstanding web developer ask.
developer.chrome.com/blog/gap-dec...
loading . . .
Gap decorations: Now available in Chromium | Blog | Chrome for Developers
A new way to style gaps in CSS from Chrome and Edge 149.
https://developer.chrome.com/blog/gap-decorations-stable
2
27
7
reposted by
Ollie Williams
IntentToShip
7 days ago
Blink: Intent to Ship: Responsively-sized <iframe>
loading . . .
Blink: Intent to Ship: Responsively-sized <iframe>
Blink: Intent to Ship: Responsively-sized <iframe>
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHe_1dKm%3DLFTKhRKHV9m4fJsqYnw6M0YwGP63DNg%3DkUcv%2BAeQQ%40mail.gmail.com
1
33
10
www.jasnell.me/posts/quic-p...
loading . . .
HTTP/3 Over QUIC in Node.js
This is Part 4 in a series on the new `node:quic` module in Node.js
https://www.jasnell.me/posts/quic-part-4
13 days ago
0
2
0
reposted by
Ollie Williams
VoidZero
14 days ago
🚀Rolldown 1.0 is here!🚀 Rust-based high-performance JavaScript bundler. 🏎️ Runs at native speed that’s up 30x faster than Rollup 🤝 Compatible with existing Rollup & Vite plugins ⚡The underlying bunder for Vite After 2 years, Rolldown is officially stable and has 20+M weekly downloads.
5
348
74
reposted by
Ollie Williams
Bramus
14 days ago
We, Chrome, are currently working on a way to do route matching in purely CSS as well:
drafts.csswg.org/css-navigati...
(draft spec). This addition would remove the need for any script to achieve directional View Transitions 🥳
loading . . .
CSS Route Matching
https://drafts.csswg.org/css-navigation-1/
2
9
1
In Chrome beta, native form controls no longer reflect the users system preferences. Weird to describe this as a "feature launch" that "introduces more consistent user expectations for system colors" when it's actually a regression.
14 days ago
1
3
1
reposted by
Ollie Williams
Keith Cirkel
19 days ago
The Web Frameworks Community Group now has over 60 members representing Alpine, Astro, Ember, Lit, Lustre, Marko, Preact, Qwik, React, Ripple, Solid, Stimulus, Svelte, Vue, Web Components, htmx, and more! Did I miss your favourite? Come join us and represent!
discord.com/invite/fXCng...
2
33
5
reposted by
Ollie Williams
MDN Web Docs
20 days ago
🆕 The URL Pattern API is Newly Available! Use it to match and extract parts of URLs, no need to reinvent routing logic. Supports literals, wildcards, named groups, and even regex constraints. Learn how it works 👇
developer.mozilla.org/en-US/docs/...
0
87
12
reposted by
Ollie Williams
Remix
21 days ago
Remix 3 preview is ready Just run `npx remix@next new my-remix-app` to get started
remix.run/blog/remix-3...
loading . . .
Remix 3 Beta Preview
Remix 3 is ready for you to kick the tires and start prompting your next big idea into existence.
https://remix.run/blog/remix-3-beta-preview
0
34
7
If you’re an open source maintainer, you can get paid to participate in web standards. A great initiative. Funded by the German government, but anyone around the world can apply.
add a skeleton here at some point
22 days ago
0
4
0
reposted by
Ollie Williams
IntentToShip
26 days ago
Blink: Intent to Ship: Focusgroup
loading . . .
Blink: Intent to Ship: Focusgroup
Blink: Intent to Ship: Focusgroup
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DS0PR00MB2368D5081266F56956C672998B282%40DS0PR00MB2368.namprd00.prod.outlook.com
3
45
23
Added support for the closedby attribute on dialog elements. Added support for the more powerful version of the CSS attr() function.
add a skeleton here at some point
27 days ago
0
2
0
reposted by
Ollie Williams
Keith Cirkel
about 1 month ago
If you're a framework author or maintainer, please consider joining the WFCG!
discord.gg/fXCngmSwHz
We're trying to find ways the web platform can be improved for frameworks, what new primitives can be added, or what can be changed. We'll be talking about templating today, come join!
loading . . .
Join the WFCG Discord Server!
Web Frameworks Community Group | 27 members
https://discord.gg/fXCngmSwHz
1
24
17
reposted by
Ollie Williams
IntentToShip
about 2 months ago
Blink: Intent to Experiment: Parse processing instructions in HTML
loading . . .
Blink: Intent to Experiment: Parse processing instructions in HTML
Blink: Intent to Experiment: Parse processing instructions in HTML
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69cbb13f.2b0a0220.5f79f.0391.GAE%40google.com
0
1
3
reposted by
Ollie Williams
Sara Soueidan
2 months ago
My favorite
#CSS
additions are often the simple ones that make a big difference (in UX or DX), and the light-dark() function adding support for images is now one of them 🙌🏻
www.bram.us/2026/03/19/m...
@bram.us
loading . . .
More Easy Light-Dark Mode Switching: light-dark() is about to support images!
CSS light-dark() is being extended to support images.
https://www.bram.us/2026/03/19/more-easy-light-dark-mode-switching-light-dark-is-about-to-support-images/
2
49
6
reposted by
Ollie Williams
Kevin Babbitt
2 months ago
POLLS: The CSS Working Group is looking for author feedback on two topics related to CSS Gap Decorations. Questions below. For background information on Gap Decorations, see the explainer:
github.com/w3c/csswg-dr...
loading . . .
https://github.com/w3c/csswg-drafts/blob/main/css-gaps-1/explainer.md
1
19
18
reposted by
Ollie Williams
Jake Archibald
3 months ago
I think it's often overlooked that AVIF is also really good at flat colour & sharp edges. Don't go straight for a lossless format just because it's the kind of image that would look bad as a JPEG. Here's an 11kb image as an AVIF, vs JPEG XL.
9
147
24
reposted by
Ollie Williams
Luke
3 months ago
Customisable select! (Single select in dropdown mode only for now)
add a skeleton here at some point
2
23
2
reposted by
Ollie Williams
IntentToShip
3 months ago
Gecko: Intent to ship: ariaNotify
loading . . .
Gecko: Intent to ship: ariaNotify
Gecko: Intent to ship: ariaNotify
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CAPHL6CyjQyG39XZ_X5Pc-9BfYY8f2cGNgY5_%2BP9CYrRpDzGyEQ%40mail.gmail.com
0
14
9
Pretty shocking that this didn't exist already.
add a skeleton here at some point
3 months ago
0
3
0
I’m still hoping we get a standardized DOM templating API
github.com/justinfagnan...
add a skeleton here at some point
3 months ago
1
2
0
Just tried this out in Chrome Canary. Pause/play animated gif/png/webp/avif/JPEGXL. Very cool
github.com/w3c/csswg-dr...
loading . . .
[css-images] Disabling image animation · Issue #1615 · w3c/csswg-drafts
It would be nice to have a CSS property for disabling image animation. Use cases include: thumbnails Twitter-like "only animate images in focus" not wanting to animate user-uploaded content user st...
https://github.com/w3c/csswg-drafts/issues/1615
3 months ago
0
4
1
reposted by
Ollie Williams
Luke
3 months ago
Please help with this, they don't even need to be good examples, feel free to send us the bad ones too! This is gonna take *years* but the more examples we have now the sooner we can start getting to the really detailed discussions.
add a skeleton here at some point
2
12
13
reposted by
Ollie Williams
Keith Cirkel
3 months ago
Browser developers are working on custom form controls ( `appearance:base`), the next giant task is looming: customisable input type=date/datetime/color pickers. These are huge and have wildly varied UI. Send me your examples, I'd love to see them and build up a body of these pickers.
7
88
33
reposted by
Ollie Williams
Seb ⚛️ ThisWeekInReact.com
3 months ago
👀 Interop 2026 dashboard just dropped See what browsers will focus on this year, more likely be come widely available soon. Particularly interested in: - Navigation API - Scroll-driven animations - popover="hint" - Continue work on ViewTransition, anchor positioning - more
0
15
1
reposted by
Ollie Williams
Noam Rosenthal
4 months ago
Working on some interesting stuff...
add a skeleton here at some point
3
9
3
reposted by
Ollie Williams
Stefan Judis
4 months ago
This week's Web Weekly is about to hit all the inboxes in just a little bit! As always, it's jam-packed with baseline updates and new web dev features. 🎉
webweekly.email/archive/web-...
If you're into web dev news close to the platform, you should check it out!
1
13
4
I'm not a fan of Udio or Suno so I tried asking ChatGPT and Gemini to write me a song using the Web Audio API... it's not great.
4 months ago
1
1
0
reposted by
Ollie Williams
Patrick Brosset
4 months ago
One more custom <select> demo, with a bunch of CSS transforms and animations. I can't get enough of this. So cool.
loading . . .
1
148
21
reposted by
Ollie Williams
IntentToShip
4 months ago
Blink: Intent to Ship: JSON and style support for link rel=modulepreload
loading . . .
Blink: Intent to Ship: JSON and style support for link rel=modulepreload
Blink: Intent to Ship: JSON and style support for link rel=modulepreload
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69728ee9.050a0220.19f748.008b.GAE%40google.com
1
7
1
reposted by
Ollie Williams
Cloudflare
4 months ago
The Astro Technology Company team — the creators of the Astro web framework — is joining Cloudflare. We’re doubling down on making Astro the best framework for content-driven websites.
https://cfl.re/4qlJCd3
loading . . .
Astro is joining Cloudflare
By joining forces with the Astro team, we are doubling down on making Astro the best framework for content-driven websites for many years to come.
https://blog.cloudflare.com/astro-joins-cloudflare/?utm_campaign=cf_blog&utm_content=20260116&utm_medium=organic_social&utm_source=bluesky
6
132
45
Despite the ubiquity of WOFF2 for smaller font files and modern image formats (WebP, AVIF) page weight continues to grow 🤔
add a skeleton here at some point
4 months ago
1
3
0
reposted by
Ollie Williams
Thomas Steiner
4 months ago
A CSS `image-animation` property:
groups.google.com/a/chromium.o...
. The example below would pause all animated images (like GIFs), and only play them when hovering or focusing an image: ```css img { image-animation: paused; } img:hover, img:focus { image-animation: running; } ```
loading . . .
Intent to Prototype: CSS Image Animation
https://groups.google.com/a/chromium.org/g/blink-dev/c/0kUk5-6TAfM/m/7YVGLKzEBwAJ
3
37
10
reposted by
Ollie Williams
IntentToShip
4 months ago
Gecko: Intent to ship: colorspace and alpha attributes for `<input type=color>`
loading . . .
Gecko: Intent to ship: colorspace and alpha attributes for `<input type=color>`
Gecko: Intent to ship: colorspace and alpha attributes for `<input type=color>`
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/46d5e2f4-d7ac-4b27-a7f7-f480f0a21f01n%40mozilla.org
0
19
6
reposted by
Ollie Williams
Web Standards
4 months ago
Initiating navigations with the Navigation API.
@ollie-williams.bsky.social
shows navigate(), reload(), back(), forward(), and traverseTo(), plus state, info, and committed and finished promises for intercepted navigations.
#js
#router
#url
olliewilliams.xyz/blog/initiat...
0
8
3
reposted by
Ollie Williams
ᴀʟᴇx ʀᴜssᴇʟʟ
5 months ago
New year, new web performance mystery (and it's a huge one):
calendar.perfplanet.com/2025/the-cur...
3
28
13
reposted by
Ollie Williams
Luke
5 months ago
My Christmas wish is for someone to just add the necessary internal test API to check if it's worked. Then I can get it working 😅.
0
4
1
My Christmas wish is for Safari to fix showPicker
olliewilliams.xyz/blog/showpic...
loading . . .
The showPicker() method is still unusable
There's still no reliable way to show a picker for any input other than <input type="file">.
https://olliewilliams.xyz/blog/showpicker-is-still-unusable/
5 months ago
1
6
0
olliewilliams.xyz/blog/the-nav...
loading . . .
The navigate event
Using the Navigation API for same-document navigations
https://olliewilliams.xyz/blog/the-navigate-event/
5 months ago
0
6
0
reposted by
Ollie Williams
Stefan Judis
5 months ago
Man, I love that view transitions make things like this possible with only a few lines of code. 🥰
loading . . .
1
62
4
Streams are now iterable in Safari Technology Preview
developer.apple.com/documentatio...
web.dev/articles/str...
loading . . .
Streams—The definitive guide | Articles | web.dev
The Streams API allows JavaScript to programmatically access streams of data received over the network and process them as desired.
https://web.dev/articles/streams#asynchronous_iteration
5 months ago
0
5
1
@nomster.bsky.social
I noticed in the Navigation readme it says: "The desired semantics of navigation API state is that it be carried over on fragment navigations." As far as I can tell that doesn't happen in Canary. Is there a plan to add that functionality?
5 months ago
1
0
0
reposted by
Ollie Williams
Jen Simmons
5 months ago
Safari 26.2 is here with 65 features + 165 bug fixes — including field-sizing, Navigation API, Largest Contentful Paint, command & commandfor, CHIPS opt-in partitioned cookies, scrollend event, random(), WebGPU in WebXR, scrollbar-color, hidden=until-found and much more!
webkit.org/blog/17640/w...
loading . . .
WebKit Features for Safari 26.2
Safari 26.2 is a big release.
https://webkit.org/blog/17640/webkit-features-for-safari-26-2/
11
196
53
reposted by
Ollie Williams
Bramus
5 months ago
`overflow: clip` is my default. In
www.bram.us/2024/02/14/s...
I wrote: “I see no reason to use `overflow: hidden` your site, unless you have a good reason to. Using `overflow: clip` has exactly the same outcome, doesn’t interfere with Scroll-Driven Animations, and has great browser support.”
loading . . .
Scroll-Driven Animations: You want overflow: clip, not overflow: hidden
If you create a scroll-driven animation and find that scroll(nearest) is not working, check for overflow: hidden elements up the DOM tree and change them to overflow: clip.
https://www.bram.us/2024/02/14/scroll-driven-animations-you-want-overflow-clip-not-overflow-hidden/
2
15
3
reposted by
Ollie Williams
Rick Viscomi
5 months ago
Do you know about the developer-signals repo? If you want to see a feature supported across browsers, now you can go and upvote it, anytime
github.com/web-platform...
loading . . .
web-platform-dx/developer-signals
Tracking web developer signals for features. Contribute to web-platform-dx/developer-signals development by creating an account on GitHub.
https://github.com/web-platform-dx/developer-signals/issues?q=is%3Aissue%20state%3Aopen%20sort%3Areactions-%2B1-desc
1
9
7
Alpha-channel support in AV2?!
blog.mozilla.org/en/mozilla/a...
6 months ago
0
3
0
sibling-index() currently works in Chrome/Edge and Safari Technology Preview Hat tip to
@jamessw.com
add a skeleton here at some point
6 months ago
0
3
1
Load more
feeds!
log in