Bramus
@bram.us
8.9K followers 340 following 930 posts
Chrome DevRel at Google (CSS + Web UI + DevTools). CSSWG Member. PADI Divemaster. Blogs at bram.us. Lives in Belgium.
Posts Media Videos Starter Packs
Pinned
bram.us
Bramus @bram.us · Dec 17
🔥 Remember Internet Explorer’s Page Transitions? THEY’RE BACK BABY!

👾 Demo: ie-page-transitions.netlify.app
⌨ Repo: github.com/bramus/ie-pa...

To configure these, use the meta tags from the olden days + load up the library.

Works in IE 5.5–7.0, Chrome 126+, and Safari 18.2 (buggy).
bram.us
😇😇😇

(Rowdy had an interactive part in his talk where people could send jokes straight to a thermal printer. At the end, some intelligence of the articifial kind was instructed to pick the best joke from all submissions as the winner)
rowdy.codes
No, no, no @bram.us It doesn’t work that way. 😆 #CodemotionMilan
Reposted by Bramus
stefanjudis.com
Disclaimer: the following is Chromium-only and more than cutting edge, but it's kinda wild that we can implement custom functions like "light-dark()" ourselves eventually.

Here's @bram.us looking into the future. 👇

www.bram.us/2025/09/30/c...
@function --light-dark(--l, --d) {
  result: if(color-scheme(dark): var(--d); else: var(--l));
}
Reposted by Bramus
web-standards.ru
Кастомные функции и if() в CSS. Юна Кравец и Брамус возвращаются в новом составе CSS Podcast. В свежем эпизоде — про нетипичные для CSS новинки, которые появились в Chrome в этом году и сильно поменяют, как мы пишем стили в будущем. #css #podcast

thecsspodcast.libsyn.com/92-css-if-an...
CSS Podcast. CSS if() and custom functions
bram.us
Bramus @bram.us · 10h
With all the excitement of (Same-Document) View Transitions (and more VT features) becoming Baseline Newly available (yay! 🎉), one might overlook the inclusion of the moveBefore() method.

This method is a pretty big deal as it allows you to move elements around the DOM while preserving their state.
Reposted by Bramus
Reposted by Bramus
justinfagnani.com
inherit() is going to be absolutely huge for working with CSS custom properties. Two big things it'll enable:

Nested indentation:

--indent: calc(inherit(--indent, 0) + 1);

Overridable design token defaults:

--primary-color: inherit(--primary-color, blue);
Reposted by Bramus
infrequently.org
Look, you might think frontend is fine and going well, but today I found a 1.1MB PNG (that could have been a 40K AVIF) in the critical path of an important app.

Embedded in an SVG as a `data:` URL.

Shipped as a React component.
Reposted by Bramus
css-only.dev
It's also easy to debug using @developer.chrome.com

It shows you which fallback position is used by crossing out all the others. When all of them are crossed out, the position defined on the element is the one used.
bram.us
Streaming and animations don't play nice together. What can help is to use DevTools to slow things down and show it that way.
bram.us
Also: they named (*) the stages “gates”, so this Euro retro-classic has been stuck in my head all day:

www.youtube.com/watch?v=2JVN...

🤌 THE GATES ARE OPEN! 🤌

(* mistranslated?)
D-Devils - 6th Gate
YouTube video by xope87
www.youtube.com
bram.us
I am currently in Milan (Italy) for CodeMotion, where I’ll be giving a talk tomorrow afternoon.

As you might have guessed/expected, I’ll be spreading the word on View Transitions 😊
Promotional image for CodeMotion
bram.us
Check out this sweet Scroll-Driven Animations demo created by Jeff (after he watched my free video course – scroll-driven-animations.style#learn)

codepen.io/webcraftsman...

(Browser support: Chrome 115, Safari 26)
bram.us
@nomster.bsky.social pointed out that a `custom.css` has privacy implications as well.

I recall Arc exposing custom props for its color theme (such as `--arc-palette-title`, ), which could be used to 1) Detect Arc but also to 2) Uniquely identify and track Arc users across the web.
Reposted by Bramus
utilitybend.com
🚀As a case study, I tried to recreate the famous Guess Who game with built-in AI and the Prompt API. It was a really interesting experience, to say the least.
My heart is at CSS & UI, and always will be. However, I do love to experiment with a variety of (web)technologies 😄 Read all about it
Build a guessing game with the Prompt API  |  Blog  |  Chrome for Developers
My game of Guess Who demonstrates how AI can be used to build thoughtful game logic, and the importance of prompt engineering to get the outcomes you expect.
developer.chrome.com
Reposted by Bramus
sarasoueidan.com
This talk by @nerdy.dev is a wonderful presentation of why CSS is awesome and why we love it so much www.youtube.com/watch?v=QW6G...

Just look at what's possible with #CSS today

And the format is great for the impatient ones (myself included). Right speed, right transitions (pun intended 😉)
Adam Argyle - 25 new & rad feature of CSS
YouTube video by CascadiaJS
www.youtube.com
bram.us
Ooh, #TIL!
bram.us
FWIW: there are extensions that allow you to set custom CSS on all/specific sites.

The injected CSS is Author-origin, though, so you'll most likely need to bump up the specificity of your selectors or slap some !important's on some (all?) declarations.
bram.us
Many browsers _did_ support it back in the day, but moved away for <reasons>.

I don't know the details, but one thing that immediately comes to mind could be security. If a UA offers a custom sheet (at a fixed location), it'd be easy for malware to abuse this.
Reposted by Bramus
aleksandrhovhannisyan.com
> Writing an article

> Hey I should explain some background knowledge first

> Hmm, maybe that should be its own article

> Neither article gets written
bram.us
Out of curiosity, what would you put in your user-origin stylesheet?

(Side note: css-cascade-6 is the latest level of that spec — drafts.csswg.org/css-cascade-... — so there's more steps in the cascade nowadays)