Sign up

Bram.us

Not verified No WebSub updates No webmention support Valid

A rather geeky/technical weblog, est. 2001, by Bramus

Generator
https://wordpress.org/?v=6.9.4
Public lists
btconf 2026 speakers
Fetched

Bram.us Valid
• Bramus!

Introducing view-transitions-toolkit, a collection of utility functions to more easily work with View Transitions.

Over the past years, I’ve published a bunch of View Transitions contents: articles, talks, demos, etc. I’ve also done a bunch of more experimental things with them, such as optimizing the keyframes or driving a View Transition by scroll.

What I noticed while doing all those experiments is that I repeated a lot of the code … and they were scattered a bit all over the place as well. So I bundled that all up in a package: view-transitions-toolkit.

Bram.us Valid
• Bramus!

CSS position: sticky now sticks to the nearest scroller on a per axis basis!

If you’ve ever tried to build a data table with a sticky header and a sticky first column, you know the pain. You’d think a simple position: sticky with top: 0 and left: 0 would be enough, but 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, allowing you to have sticky elements that track different scroll containers on different axes. This change is available in Chrome 148.

Bram.us Valid
• Bramus!

More Easy Light-Dark Mode Switching: light-dark() is about to support images!

CSS light-dark() is being extended to support images.

Bram.us Valid
• Bramus!

Detect at-rule support in CSS with @supports at-rule(@keyword)

Back in January 2022, I wrote about an exciting new CSS Working Group decision: a function to detect at-rule support using @supports at-rule(@keyword). Fast forward to today, and the CSS Conditional Rules Module Level 5 specification has solidified how this feature works and Chromium (Chrome, Edge, etc.) is about to ship it in Chromium 148!

Bram.us Valid
• Bramus!

Introducing view-transitions-mock: A non-visual Polyfill for Same-Document View Transitions

View Transitions are a powerful Modern Web feature allow for smooth seamless animated transitions two between different states of a web page. They can make for a much more pleasant user experience, but as with any new web platform feature, browser support is not yet fully universal so you need to add some fallback logic to your code.

view-transitions-mock bridges that gap by polyfilling the full JavaScript API surface of Same-Document View Transitions, without the animation bits.

Bram.us Valid
• Bramus!

Experiment: Animating CSS position-area with View Transitions

CSS Anchor Positioning is a powerful tool, but one of the things that you cannot do natively (yet) is animating the position-area property. This blog post introduces a technique to animate position-area changes using View Transitions.

Bram.us Valid
• Bramus!

Anchors Aweigh! (2026.02.28 @ State of the Browser)

Talk on CSS Anchor Positioning

Bram.us Valid
• Bramus!

Chrome 145 adds Experimental Support for Vertical Tabs

Vertical Tabs are available behind a flag in Chrome 145 (current beta)

Bram.us Valid
• Bramus!

Using 100vw is now scrollbar-aware (in Chrome 145+, under the right conditions)

From Chrome 145 onwards, 100vw will automatically subtract the size of the scrollbar from it if you have forced the html element to always show a scrollbar (using overflow{-y}: scroll) or have it reserve space for a scrollbar (using scrollbar-gutter: stable).

Bram.us Valid
• Bramus!

How to Find the public WebKit Bug using the Internal Apple rdar:// Bug ID

If you gloss over the Safari release notes – like the Safari 26.2 release notes – you see a lot of trailing “(12345678)”-mentions in the list of fixed bugs. These numbers are the internal bug IDs, as used within Apple’s internal bug tracker fka “Radar” (now Feedback Assistant).

These numbers are not linked to anything because Radar is an Apple-internal tool, so to external people these numbers are practically useless … or are they?

Bram.us Valid
• Bramus!

CSS Scroll-Triggered Animations are coming to Chrome!

We have Scroll-Driven Animations. Now say hi to Scroll-Triggered Animations.

Bram.us Valid
• Bramus!

CSS Wrapped 2025

Once again, it has been an AMAZING year for CSS and UI. To celebrate this, we – the Chrome CSS/UI DevRel Team – created another edition of CSS Wrapped!

Bram.us Valid
• Bramus!

The Google Antigravity website, rebuilt with Modern CSS

I recreated the Google Antigravity website with Modern CSS.

Bram.us Valid
• Bramus!

Anchor Positioning and the Inset-Modified Containing Block (IMCB)

If you kinda understand Anchor Positioning, but it still surprises you from time to time, then most likely this is the missing piece of information: the Inset-Modified Containing Block (or IMCB for short).

Bram.us Valid
• Bramus!

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 scroll containers. While this change might seem trivial, it fixes an issue developers have been dealing with for ages: prevent a page from scrolling while a (modal) <dialog> is open.

Bram.us Valid
• Bramus!

Señors @ Scale: Modern CSS at Scale with Bramus

A while ago I joined Dan Neciu – whom I met at Frontmania in 2023 – on his “Señors @ Scale” podcast. We talked about all things CSS.

Bram.us Valid
• Bramus!

Anchor Positioning is transform-aware in Chrome 144+

Starting with Chrome 144, Anchor Positioning is going to be transform-aware. From then on, anchoring will resolve against the bounding box of the transformed ancho

Bram.us Valid
• Bramus!

Faking Two-Phase View Transitions with the Navigation API’s precommitHandler

By using two sequential View Transitions when intercepting links with the Navigation API – one in the precommitHandler and one in the regular handler – you can fake a Two-Phase View Transition today!

Bram.us Valid
• Bramus!

Animating CSS width or height no longer force a Main Thread animation (in Chrome, under the right conditions)

Chrome no longer forces width/height animations to run on the Main Thread, in case those values don’t actually change throughout an animation.

Bram.us Valid
• Bramus!

Combining Scroll-Driven Animations with @starting-style

How the cascade, the animation-fill-mode, and implicit keyframes make things a bit more complicated then you’d initially think …

Bram.us Valid
• Bramus!

Solved by CSS Scroll State Queries: hide a header when scrolling down, show it again when scrolling up.

There’s a new type of CSS scroll-state query coming: scrolled

Bram.us Valid
• Bramus!

CSS @starting-style debugging is available in Chrome DevTools!

I built something that I needed into DevTools: debugging support for CSS @starting-style rules.

Bram.us Valid
• Bramus!

View Transitions Feature Explorer

Which version of what browser supports which feature of View Transitions?

Bram.us Valid
• Bramus!

The CSS Podcast is back! And I’m a co-host now.

The CSS Podcast is back! Together with Una I’m co-hosting season 5 of the show, and we have some good episodes coming your way …

Bram.us Valid
• Bramus!

What’s New in View Transitions (2025 Update)

Check out the post I wrote for developer.chrome.com to learn what changed for View Transitions in 2025.

Bram.us Valid
• Bramus!

A custom --light-dark() function in CSS that works with any type of value (not just colors!) in just 3 LOC

CSS Custom Functions (@function) + CSS if() + CSS color-scheme() = one sweet combo!

Bram.us Valid
• Bramus!

Ready for Developer Testing: Scoped View Transitions

If you thought we were done with View Transitions, guess again! A feature Chrome is working on, is “Scoped View Transitions”, which allow you to scope a VT to a subtree of the DOM. We are actively looking for feedback on this one.

Bram.us Valid
• Bramus!

Prevent clipping issues (and more) in View Transitions by using Nested View Transition Groups

A new View Transitions-related feature we shipped in Chrome 140 is the ability to nest ::view-transition-group() pseudos. This is useful for retaining visual effects such as clipping, move elements as part of a group, etc.

Bram.us Valid
• Bramus!

Cranking View Transtions up to 11 (Safely, Maybe) (2025.06.12 – Middlesbrough Front End)

At Middlesbrough Front End 2025 I gave a talk about some of the more exotic applications of View Transitions

Bram.us Valid
• Bramus!

Scroll-Driven Animations with CSS (2025.05.30 @ JSHeroes)

At JSHeroes 2025 I gave a talk in Scroll-Driven Animations.