Bramus

Chrome Developer Relations at Google (CSS + Web UI). CSSWG Member. PADI Divemaster. Blogs at bram.us. I’m primarily active on 🦋 nowadays.

📍 Location
Belgium
2026-02-05

@pawelgrzybek I’m using Feedly in the browser (pinned tab) in combination with their mobile apps for when I’m on the go.

2026-02-05

@chriscoyier So, the piercing is expected, as those pseudos are technically still inline.

The odd thing is, though, that they _behave_ like block elements due to their UA styling (the `position: absolute`).

We have opened a CSS WG issue to explicitly make them `display: block` by default (through the UA stylesheet) to prevent surprises like this.

github.com/w3c/csswg-drafts/is

Bramus boosted:
2026-02-03

Wild how far you can push "customizable select" with just #CSS

nerdy.dev/nice-select

2026-02-03

@chriscoyier The fix to apply is this:

```
::view-transition-new(*),
::view-transition-old(*) {
display: block;
}
```

I’m still checking with engingeering as it surprised me that the `text-align` (which only has effect on inline things) pierces through all those intermediary abspos pseudos.

2026-02-03

@chriscoyier Digging in, I see that it also happens in a VanillaJS version [^1] and that it’s happening in all browsers.

I’m pinging engineering **now** to ask what’s up.

(And I’ll happily try out the beta 😉)

[^1] codepen.io/bramus/pen/XJKYmRj/

2026-01-30

@chriscoyier Got a link?

2026-01-28

@rickdoesburg Ah, ik had een selector verkeerd, waardoor de animation-timeline niet op de h2 toegepast werd. Bij deze opgelost :)

Bramus boosted:
2026-01-28

The @csswg needs your input!

We just resolved to support multiple borders and outlines per element, comma separated! 🎉

But we can’t decide on the order: inside out or outside in?
What feels more natural to you, A or B?

Poll in front-end.social/@leaverou/115

Visual demonstration of both possibilities
2026-01-28

@rickdoesburg Hmmz, daar loopt precies iets mis idd … ik check.

2026-01-28

@vasilis @johannes @kizu UPDATE: The CSSWG resolved just now to have steps() accept an optional easing function.

So Vasilis’s vasilis.nl/clocks/station-cloc clock would become as easy as `animation: ticking 60s steps(60, ease)`.

github.com/w3c/csswg-drafts/is

2026-01-16

@tomayac I needed this for github.com/bramus/view-transit (for the “React to a Promise” part of the spec), and the code seemed worthy enough to split off into its own package 😊

2026-01-16

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

1. Go to `chrome://flags/#vertical-tabs`
2. Set it to enabled
3. Relaunch Chrome
4. Right click the tabbar and choose “Move Tabs To The Side”

Attached are before and after screenshots.

Chrome 145 with the flag enabled and showing the context menu to move the tabs to the sideChrome 145 with the tabs shown to the side (vertical tabs)
2026-01-15

@anthonyvdg This is a userland implementation. Nothing official about this.

Typically one won't ever need this, but when implementing things that need to "react to a promise" (webidl.spec.whatwg.org/#dfn-pe), this comes in handy.

2026-01-15

I wrote a thing: `WatchablePromise`, a Promise whose status (pending, fulfilled, reject) and settled state (true or false) you can read.

github.com/bramus/watchable-pr

Create a new WatchablePromise instance, or make an existing Promise watchable using `WatchablePromise.from(promise)`.

2026-01-15

RE: mastodon.social/@firefoxwebdev

I’ve said it before and I’ll say it again: this API is so good! 🤤

2026-01-15

📣 PSA: In Chrome 145 or newer, using `100vw` no longer causes horizontal overflow when the vertical scrollbar is guaranteed to be visible or if space for it is reserved.

See bram.us/2026/01/15/100vw-horiz for details.

2026-01-14

RE: mastodon.world/@heypresents/11

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.

heypresents.com/conferences/20

Bramus boosted:
London Web Standardswebstandards@mastodon.world
2026-01-14
Bramus boosted:
Thomas Steiner :chrome:tomayac@toot.cafe
2026-01-13

📢 New blog post: A polyfill for the HTML switch element:
blog.tomayac.com/2026/01/12/a-.

Safari 17.4 shipped a new HTML switch element that upgrades a checkbox to a switch by adding a `switch` attribute: `<input type="checkbox" switch>`.

This blog post introduces a polyfill for the element, covering accessibility, internationalization and styling, and looking at the element's status in the HTML spec.

2026-01-02

@Lukew @sil @bkardell @dletorey @owa If only they respected viewport-fit=cover in portrait mode (they do in landscape) …

(I've passed on this info before, even multiple times, but to no avail 😕)

Safari in portrait mode with viewport-fit=cover. They don't respect the setting at all.Safari in landscape mode with viewport-fit=cover. They do respect the setting.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst