Blown away by @andremichelle@mastodon.social's openDAW, which runs ENTIRELY in the browser! 🤯
So much thought and attention to detail went into this. And it's all Open Source too!
https://github.com/andremichelle/openDAW
The web is AMAZING 🤩
Chrome Developer Relations at Google (CSS + Web UI). CSSWG Member. PADI Divemaster. Blogs at bram.us. I’m primarily active on 🦋 nowadays.
Blown away by @andremichelle@mastodon.social's openDAW, which runs ENTIRELY in the browser! 🤯
So much thought and attention to detail went into this. And it's all Open Source too!
https://github.com/andremichelle/openDAW
The web is AMAZING 🤩
CSS `light-dark()` is about to support images!
Shipping in Firefox 150. Starting tomorrow, available behind a flag in Chromium 148.
If you’ve ever tried to build a data table with a sticky header and a sticky first column, you know the pain: the reality was that only one of both would stick.
A recent change to CSS fixes this: `position: sticky` now plays nice with _single-axis scrollers_.
Over the past years, I’ve written a bunch of posts and done quite a few experiments with View Transitions, such as optimizing the keyframes (so that they animate on the compositor) or driving a VT by scroll.
I noticed I repeated a lot of code while creating all those … so I bundled that all up in a package for you to use as well.
Optimizing the keyframes or a VT for example now is just a one-liner: optimize(transition);
RE: @webstandards@mastodon.world
You can find the slides of my #SotB2026 talk on my blog: https://www.bram.us/2026/02/28/anchors-aweigh-sotb2026/
At #Fronteers #DarkMode, @utilitybend@front-end.social proposed the HTML Element which he has been working on at Open UI.
It unlocks the multi-handle range slider, a pattern you might have already used when picking a price-range on a travel website.
- Explainer: https://open-ui.org/components/enhanced-range-input.explainer/
- Demos: https://brechtdr.github.io/enhanced-range-slider-poc/
- Feedback Form: https://docs.google.com/forms/d/e/1FAIpQLSdKgYidAF097VQQ1OCr3TqHOV-reS4mRDgCNFUgB_nKZt0o1Q/viewform?pli=1
RE: @leaverou@front-end.social
Before you blindly say 100px–200px–300px, hear me out: https://github.com/LeaVerou/blog/discussions/137#discussioncomment-16340589
(And if you really want it to be 100px–200px–300px then it’s simple: don’t type the --arg)
Can you Syntax Highlight a code snippet on the web without overloading the DOM with a ton of `` elements wrapped around the tokens?
Thanks to the Custom Highlight API, you can!
More details on the “parsing would be hard” part in https://www.bram.us/2026/03/19/more-easy-light-dark-mode-switching-light-dark-is-about-to-support-images/ ;)
RE: @heypresents@mastodon.world
Come see me speak at All Day Hey! 2026 on May 7 later this year, where I will be bending the View Transition API in all sorts of unconventional ways.
Some more prototyping fun: this time an extension to visualize the Containing Block of an element.
It shows the element and its containing block (an element, the Viewport, or the ICB) along with some base info.
Get it here: https://chromewebstore.google.com/detail/devtools-containing-block/cfhjohibdfclahlfljknkjmcdkfkcflj
What other info would you like to see in a feature like this?
(The heavy lifting to identify the containing block is done by the https://github.com/bramus/get-containing-block package which I also created for this)
Good CTA by @kizu@front-end.social: (If you have time), get your hands dirty with experimental web platform features and try to bend them in all sorts of ways … and then share your feedback and findings (blog post, CSSWG issues, browser bugs, …).
Together we can make the web better.