Ollie Williams
@ollie-williams.bsky.social
📤 204
📥 280
📝 188
Mostly posting about web standards.
reposted by
Ollie Williams
Jake Archibald
4 days 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
142
23
reposted by
Ollie Williams
Luke
7 days 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
14 days 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
15 days 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
15 days 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
16 days ago
0
4
1
reposted by
Ollie Williams
Luke
21 days 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
11
13
reposted by
Ollie Williams
Keith Cirkel
21 days 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
22 days 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
about 1 month ago
Working on some interesting stuff...
add a skeleton here at some point
3
9
3
reposted by
Ollie Williams
Stefan Judis
about 1 month 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.
about 1 month ago
1
1
0
reposted by
Ollie Williams
Patrick Brosset
about 1 month 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
150
22
reposted by
Ollie Williams
IntentToShip
about 1 month 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
about 2 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
135
47
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
about 2 months ago
1
3
0
reposted by
Ollie Williams
Thomas Steiner
about 2 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
about 2 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
about 2 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
Alex Russell
2 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
2 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/
2 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/
2 months ago
0
6
0
reposted by
Ollie Williams
Stefan Judis
2 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
3 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?
3 months ago
1
0
0
reposted by
Ollie Williams
Jen Simmons
3 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
197
53
reposted by
Ollie Williams
Bramus
3 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
3 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...
3 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
3 months ago
0
3
1
How do people feel about hash-based routing? Described by MDN in the past tense and as a "legacy technique". Bad for pages... but storing the state of a page in the hash still seems legit?
developer.mozilla.org/en-US/docs/G...
loading . . .
Hash routing - Glossary | MDN
Hash routing is a client-side technique used in single-page applications (SPAs) to manage navigation and state changes without reloading the entire page.
https://developer.mozilla.org/en-US/docs/Glossary/Hash_routing
3 months ago
2
0
0
Temporal 😍
add a skeleton here at some point
3 months ago
0
7
0
reposted by
Ollie Williams
Jake Archibald
3 months ago
I'm playing around with JPEG XL's "JPEG repackaging" feature. It repackaged a 147kb JPEG down to 126kb, but on my Pixel 10, the new file takes 78ms to decode, vs 10ms for the JPEG. At 3g+ speeds… that feels like a performance loss.
random-stuff.jakearchibald.com/apps/img-dec...
loading . . .
Image decoder benchmark
https://random-stuff.jakearchibald.com/apps/img-decode-bench/
8
40
4
reposted by
Ollie Williams
Bramus
3 months ago
Chrome 144 features a small change to
#CSS
overscroll-behavior: it now also works on non-scrollable scroll containers. While this change might seem trivial, it fixes an issue people have been dealing with for ages: prevent a page from scrolling while a <dialog> is open.
www.bram.us/2025/11/25/u...
loading . . .
Use overscroll-behavior: contain to prevent a page from scrolling while a <dialog> is open
Chrome 144 features a small change to overscroll-behavior: it now also works on non-scrollable scrollers. While this change might seem trivial, it fixes an issue developers have dealing with for ages:...
https://www.bram.us/2025/11/25/use-overscroll-behavior-contain-to-prevent-a-page-from-scrolling-while-a-dialog-is-open/
4
126
17
reposted by
Ollie Williams
Bramus
3 months ago
JPEG XL in Chromium update: “[...] we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance.”
groups.google.com/a/chromium.o...
2
78
14
reposted by
Ollie Williams
Barry Pollard
4 months ago
We've been working on a few proposals we'd like to bring to the web platform to make it easier to have more seamless navigations between pages.
@nomster.bsky.social
@foolip.org
and
@dbaron.org
presented these at W3C TPAC annual meeting last week More details here:
github.com/WICG/declara...
1/6 🧵
loading . . .
GitHub - WICG/declarative-partial-updates
Contribute to WICG/declarative-partial-updates development by creating an account on GitHub.
https://github.com/WICG/declarative-partial-updates
1
16
8
I wish this was a thing. Customising the UX behaviour of a datalist is so limited.
github.com/whatwg/html/...
loading . . .
datalist 'nofilter' attribute · Issue #4882 · whatwg/html
Reviving this issue from the W3C repo: w3c/html#888 Another (personal) example of why it is useful: Using a search engine for autocomplete, and populating the datalist options with the results (htt...
https://github.com/whatwg/html/issues/4882
4 months ago
0
0
0
I wonder if, as part of all the spec work on styling forms, there’s any standardisation happening around what gets displayed in a HTML datalist, because this Firefox bug is 12 years old…
bugzilla.mozilla.org/show_bug.cgi...
loading . . .
869690 - Always show the @value for datalist options even when they have a label (show both the label and the value)
ASSIGNED (austinjckson) in Toolkit - Autocomplete. Last updated 2024-12-18.
https://bugzilla.mozilla.org/show_bug.cgi?id=869690
4 months ago
0
0
0
reposted by
Ollie Williams
IntentToShip
4 months ago
Blink: Intent to Prototype: Media element pseudo-classes
loading . . .
Blink: Intent to Prototype: Media element pseudo-classes
Blink: Intent to Prototype: Media element pseudo-classes
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/691af1b8.050a0220.b6611.0871.GAE%40google.com
1
7
3
reposted by
Ollie Williams
Firefox for Web Developers
4 months ago
The W3C Security Web Application Guidelines Community Group wants to understand how developers are using specific web platform security features, and what the barriers are to the adoption. Take their survey here:
https://bit.ly/3JR6JML
loading . . .
Web security survey
Thanks for taking our survey about the usage of web platform security features. We're the W3C Security Web Application Guidelines Community Group (SWAG CG), and our mission is to develop guidelines f...
https://docs.google.com/forms/d/1-8DvgiB3AqrFU7tqe0GCoQsh6lfdOHHnUldOzMrtmeQ/viewform?pli=1&pli=1&pli=1&pli=1&edit_requested=true
1
9
11
reposted by
Ollie Williams
IntentToShip
4 months ago
Gecko: Intent to ship: CSS Module Scripts
loading . . .
Gecko: Intent to ship: CSS Module Scripts
Gecko: Intent to ship: CSS Module Scripts
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CAC_Rxa6QoSWx1itbo0EnUri6r6GOhMD8hN6Mm00CTno%2BRvDQGA%40mail.gmail.com
1
22
9
reposted by
Ollie Williams
Marvin Hagemeister
4 months ago
I want to explore making frameworks less "framework-y". I'm curious how far you could go in that direction. I want simpler things and less to worry about.
8
13
1
reposted by
Ollie Williams
Justin Fagnani
4 months ago
Yesterday at TPAC I publicized my draft proposal for adding a declarative templating API to the DOM.
github.com/justinfagnan...
The repo has: 📖 Explainers for the templating API and DOM scheduler API 🏗️ Full prototype implementations ⚗️ a JSX transform ⚛️ a mini React-like framework
loading . . .
https://github.com/justinfagnani/dom-templating-api-proposal/blob/main/EXPLAINER.md
6
86
29
Reading this article from 2020 and realised all of the accessibility issues have been resolved long ago. Are there any good reasons today to still dislike <input type="number">?
technology.blog.gov.uk/2020/02/24/w...
Also read
stackoverflow.blog/2022/12/26/w...
but most of the points are invalid
loading . . .
Why the GOV.UK Design System team changed the input type for numbers
We take a look at why the GOV.UK Design System changed the element it uses for inputting numbers, making it more accessible and easier to use
https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/
4 months ago
1
1
0
reposted by
Ollie Williams
IntentToShip
4 months ago
Gecko: Intent to prototype and ship: Navigation API
loading . . .
Gecko: Intent to prototype and ship: Navigation API
Gecko: Intent to prototype and ship: Navigation API
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CACvK8HJw-Li6K2BgkfHJB6NFTW2%2Bnu18TC-%2BwtPVKJRij0LBbQ%40mail.gmail.com
0
29
9
reposted by
Ollie Williams
Keith Cirkel
4 months ago
Calling all web developers! Browsers are all meeting up next week (
www.w3.org/events/tpac/...
). I want your voice to be heard! Tell me your biggest problems, and tell me what you want to see from the platform. What problems are tough to solve, but could be easier?
loading . . .
TPAC 2025 - Hybrid meeting
Our major event of the year gathers our community for thought-provoking discussions and coordinated work.
https://www.w3.org/events/tpac/2025/tpac-2025/
28
61
30
reposted by
Ollie Williams
NullVoxPopuli
4 months ago
Ember Data is now WarpDrive. This data framework can be used in any JS framework.
1
7
2
My main takeaways from the HTMX 4.0 announcement post: - Surprise that, until 4.0, it had used XMLHttpRequest instead of fetch. - Surprise that some features rely on eval().
htmx.org/essays/the-f...
4 months ago
0
7
0
Updated my CSS vendor prefixes article. Safari 26.2 supports text-decoration as a shorthand, without a prefix.
olliewilliams.xyz/blog/prefix/
4 months ago
2
4
2
Load more
feeds!
log in