
Bramus
@bramus
Followers
14K
Following
14K
Media
5K
Statuses
51K
Chrome DevRel at Google (CSS + Web UI). @CSSWG Member. Former University Lecturer. PADI Divemaster. Blogs at @bramusblog. You should follow me on Bsky 🦋.
Belgium
Joined September 2007
The #CSSPodcast is back! 💕🎙️ Join @bramus and I this season as we talk about a bunch of awesome new CSS features, starting with custom functions and if() https://t.co/y2oSjjNnkJ
3
5
42
A lot has happened since Chrome shipped Same-Document View Transitions in 2023. In 2024 we shipped Cross-Document VTs, added refinements such as `view-transition-class` and VT Types, and also welcomed Safari in adding VT support. As for 2025: https://t.co/oDZ6tv9Nib 🤩
developer.chrome.com
An overview of what changed for View Transitions in 2025
1
6
32
If you thought we were done with View Transitions, guess again! Chrome is working on “Scoped View Transitions” which allow you to scope a VT to a subtree of the DOM. This unlocks things like concurrent VTs and prevents layering issues. Thread on 🦋: https://t.co/io0D4LuBqB
13
17
255
If you've been sleeping on CSS scroll-driven animations… WAKE UP Bramus's course breaks down everything you need to know about CSS scroll-driven animations, whether you're using plain HTML, CSS, and JS or a JavaScript framework like React, Vue, Svelte, etc Thanks @bramus! 🔗👇
🚀 LAUNCH DAY 🚀 Introducing “Unleash the Power of Scroll-Driven Animations” – a 10-part video course that teaches you all there is to know about scroll-driven animations with CSS or JavaScript. https://t.co/fuKABcNpcI
1
2
12
We just merged @nomsternom's work on deferred commit into the @htmlstandard navigation API: https://t.co/A0oHvfctBW. See https://t.co/RayCuY6ug5 for more detail. This lets you run async JS code before a navigation commits, and redirect if necessary.
github.com
This adds navigateEvent.prototype.intercept({precommitHandler}). Instead of always "committing" the navigation immediately, the navigation only commits after all its precommitHand...
2
7
22
View Transitions are enabled by default in Firefox Nightly, so they're on their way to stable. Give it a test with your current transitions, and give me a shout if anything doesn't look right.
8
24
205
To add to @bramus's question: What "queries" would you use it with? E.g. - first input descendant - closest name=foo sibling - input within the same <tr> etc Don't think just <label for>/ARIA but all attributes that take ids, e.g. list, commandfor, popovertarget + component
🙋♂️❓ Using attributes like `for` require you to reference another element using that element’s `id`. E.g. `<label for="x"></label> … <input id="x">` Do you wish you had another way to refer to another element on the page, without needing an id? If so, what would you want?
3
3
11
An easy way to make your dropdowns feel better is to make them origin-aware. They should scale in from the trigger. In this case, `transform-origin: top left`. The default is `center` which feels wrong, as it appears out of nowhere.
19
84
2K
I've implemented enough of the Gamepad API with SDL3 in @ladybirdbrowser to be able to connect a controller and play a racing game with it! 🎮🐞
5
16
239
🥳 CSS functions have arrived!!! 🥳 And they are *AWESOME* Now, you can do things like this: @function --alpha(--color, --opacity) { result: rgb(from var(--color) r g b / var(--opacity)); } div { background: --alpha(red, 80%); } (*arrived = in the latest stable Chrome)
60
169
1K
🙋♂️❓ Using attributes like `for` require you to reference another element using that element’s `id`. E.g. `<label for="x"></label> … <input id="x">` Do you wish you had another way to refer to another element on the page, without needing an id? If so, what would you want?
20
3
47
🤯 I can’t believe I only learned this yesterday: `//# sourceURL=inline:foo.js`
18
49
416
Ooh, my Chrome DevTools extension for debugging Scroll-Driven Animations is approaching 3000 users … 🔗 https://t.co/2rTn3lrG6H
5
18
179
In CSS, this is as easy as declaring `animation-timeline: view(); animation-range: entry;` on each item in the list 🤩
4
18
292
A short spontaneous interview with @bramus at #GoogleIOConnect where he showcases a use case of Scroll-driven animations! ✨ https://t.co/qvKasqDS7O
0
1
4