Sign in

Roma Komarov

@kizu.front-end.social.ap.brid.gy
93 followers 9 following 556 posts

Inventing weird CSS things. CSSWG Member (previously: an invited expert). Frontend engineer working on Datadog’s design system. Ask me about: #CSS, #Frontend […] 🌉 bridged from ⁂ front-end.social/@kizu, follow @ap.brid.gy to interact

PostsRepliesMedia
Reposted by Roma Komarov
IntentToShip @intenttoship.dev · 30/09/2026
Blink: Intent to Ship: HTML-in-canvas
groups.google.com
Blink: Intent to Ship: HTML-in-canvas
Blink: Intent to Ship: HTML-in-canvas
0203
Roma Komarov @kizu.front-end.social.ap.brid.gy · 30/09/2026
Container queries? :blobcatthink: Descendant queries! :blob_cat_aww:
001
Reposted by Roma Komarov
IntentToShip @intenttoship.dev · 25/09/2026
Gecko: Intent to Ship: Scroll-driven Animations
groups.google.com
Gecko: Intent to Ship: Scroll-driven Animations
Gecko: Intent to Ship: Scroll-driven Animations
1459
Roma Komarov @kizu.front-end.social.ap.brid.gy · 23/09/2026
Like `light-dark()` but for increased contrast mode: ```css @function --default-or-contrast(--default, --contrast) { result: if( media(prefers-contrast: more): var(--contrast); else: var(--default); ); } ``` `border-color: --default-or-contrast(color-mix(currentColor, transparent) […]
front-end.social
Original post on front-end.social
001
Roma Komarov @kizu.front-end.social.ap.brid.gy · 23/09/2026
Will attend Fronteers Dark Mode (www.fronteersconf.org) next week. The last time I was at the proper Fronteers conf was in 2013. This is not exactly it, but hey. See some of you there!
fronteersconf.org
Fronteers Dark Mode, Friday, October 2nd, Dordrecht
Join us at Cinema de Witt in Dordrecht for our after work conference.
000
Reposted by Roma Komarov
IntentToShip @intenttoship.dev · 22/09/2026
Gecko: Intent to Ship: CSS Typed Arithmetic
groups.google.com
Gecko: Intent to Ship: CSS Typed Arithmetic
Gecko: Intent to Ship: CSS Typed Arithmetic
0104
Roma Komarov @kizu.front-end.social.ap.brid.gy · 17/09/2026
I am a big fan of pre-moderated comments/replies almost anywhere, with an allowlist. Places that are too open are too loud, too vulnerable.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 16/09/2026
`let mh=0;while(1){mh--};`
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 04/09/2026
Got to play a bit with smart playlists in Navidrome, and while they’re awkward, it is nice to have one that gives you random songs with the lowest play counts. Even with the regular shuffle, I discovered so many things in a much more limited library that algorithms in streaming services were […]
front-end.social
Original post on front-end.social
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 25/08/2026
Dork mode.
101
Roma Komarov @kizu.front-end.social.ap.brid.gy · 24/08/2026
Bark mode.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 24/08/2026
Dark modem.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 16/08/2026
Who needs to write articles when you can write 7k+ words of feedback for a card game you are participating in playtesting.
020
Roma Komarov @kizu.front-end.social.ap.brid.gy · 14/08/2026
Some time ago, I started using vertical tabs in Firefox Nightly. It led to me not closing them as often as before. With the recent Firefox UI update, it seemed that something broke, and my UI started to feel very sluggish. Like, when writing something in […] [Original post on front-end.social]
A crop of a screenshot showing a dialog “Close 851 tabs?” with “Cancel” and “Close tabs” buttons.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 13/08/2026
Had the idea of how to “fix” the CSS-only `random()` link by @chriscoyier. codepen.io/editor/kizu/pen/019ffc68… Chrome Canary only: requires both `random()`, `if()`, and `sibling-index()/-count()` (+ a `@function` for making it reusable): ```CSS @function […]
front-end.social
Original post on front-end.social
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 10/08/2026
Thinking about `@layer` and directed acyclic graphs. CSS needs proper dependency management, and current layers do not give it to us. But it could, with a few tweaks, I think.
040
Roma Komarov @kizu.front-end.social.ap.brid.gy · 09/08/2026
Me: wants to write a simple quick blog post. Also me: gathers 15+ links and references to include. I guess that’s some work done; maybe will finish it at some point later lol.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 07/08/2026
I think I came up with an inheritable version of cyclic toggles, but need to test a few things first.
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 06/08/2026
`appearance: based`
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 02/08/2026
In a lapse of memory, forgot that `hypot()` exists in CSS, and implemented it via all the registered custom properties, `tan(atan2())`, `sqrt()` etc. It was nice to then remember about it and delete some now useless code.
030
Roma Komarov @kizu.front-end.social.ap.brid.gy · 28/07/2026
Someone should invent a teleporter. Or — same compelxity — a way to fix Deutsche Bahn. (my direct train to/from Berlin for the next week is basically cancelled, cool cool, trying now to come up with a not too bad connection version, including a potential fallback that won't take 4 hours to wait […]
front-end.social
Original post on front-end.social
001
Reposted by Roma Komarov
IntentToShip @intenttoship.dev · 09/07/2026
Gecko: Intent to prototype: margin-trim
groups.google.com
Gecko: Intent to prototype: margin-trim
Gecko: Intent to prototype: margin-trim
1204
Roma Komarov @kizu.front-end.social.ap.brid.gy · 10/07/2026
What a “standard site” should be: an HTML page. That’s it. With some CSS sprinkled on it if you’re feeling like it.
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 08/07/2026
cute microtask
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 05/07/2026
Needed to get a random number, created an empty HTML page with just this CSS body::before { counter-set: --r random(1, 8, 1); content: counter(--r); } Opened in Safari/Chrome Canary, profit.
031
Roma Komarov @kizu.front-end.social.ap.brid.gy · 05/07/2026
This website is the best when viewed.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 02/07/2026
dril candles tweet, but with tokens instead
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 02/07/2026
calc-mix() in Safari Technology Preview 247! :blob_cat_aww:
010
Reposted by Roma Komarov
Roma Komarov @kizu.pixey.org.ap.brid.gy · 30/06/2026
Today’s sunset 📷 OM-3 & 17 mm ƒ1.8 II
A photo of the evening sky above a city. Most of the frame is taken by the cloudy sky filled with a gradient that starts as orange on the bottom, then highlights the clouds with bright pink over a blue sky, and then goes into dark blue. Many layers of the clouds can be visible, some are highlighted by the sunset, and some are visible as shadows, making the sky resemble marble a bit. A few roofs of various buildings can be seen at the bottom of the frame, dark and almost without any details apart from the silhouettes of the antennas, chimneys, and other things that are usually on top of the roofs.
012
Roma Komarov @kizu.front-end.social.ap.brid.gy · 28/06/2026
I wonder how many people who say that the code produced by LLMs is just another level of abstraction similar to any compiled language keep the full text of their prompts (and the whole agentic thread), or only stay with the “build artifacts”. (not to mention the randomness and the versioning of […]
front-end.social
Original post on front-end.social
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 28/06/2026
Goose was IACVT
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 27/06/2026
Random reminder that CSS is already typed, and any attempts to do so in JS are a sign of the industry not caring about CSS and not making proper tools to work with it in IDEs, and not contributing to the language in places where they find it does not fit their needs.
000
Reposted by Roma Komarov
IntentToShip @intenttoship.dev · 24/06/2026
Gecko: Intent to Prototype: text-box-trim / text-box-edge
groups.google.com
Gecko: Intent to Prototype: text-box-trim / text-box-edge
Gecko: Intent to Prototype: text-box-trim / text-box-edge
04910
Reposted by Roma Komarov
IntentToShip @intenttoship.dev · 23/06/2026
Gecko: Intent to Ship: sibling-index() and sibling-count()
groups.google.com
Gecko: Intent to Ship: sibling-index() and sibling-count()
Gecko: Intent to Ship: sibling-index() and sibling-count()
05711
Roma Komarov @kizu.front-end.social.ap.brid.gy · 19/06/2026
I am looking at the weather forecast for the next week, and I do not like it.
200
Roma Komarov @kizu.front-end.social.ap.brid.gy · 17/06/2026
RE: front-end.social/@kizu/116766687647… Opened an issue about potentially making the `<syntax>` in CSS wider — github.com/w3c/csswg-drafts/issues/… Right now it is pretty limited, not allowing more complex types or individual instances of `<length>` etc like `4px | […]
front-end.social
Original post on front-end.social
300
Roma Komarov @kizu.front-end.social.ap.brid.gy · 13/06/2026
Just checked: sadly, an element with `offset-path: border-box` does not follow the `border-shape`.
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 13/06/2026
#CSSDay(s) are over. As usual, it was so nice to be there and meet so many of you! And even with the satellite events the day before and after, it was not enough for me. Give me more CSS, even more! Can we have a CSS month? Year? Decade? And less of whatever else is happening. Anyways. Best […]
front-end.social
Original post on front-end.social
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 10/06/2026
RE: front-end.social/@kizu/114218387531… @estelle Here is the article with a link to your technique I mentioned on the boat :)
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 09/06/2026
RE: front-end.social/@kizu/114218387531… Hello?! Early #CSS Week breaking news! Linked parameters are moving!!1 :blob_cat_aww: github.com/w3c/csswg-drafts/issues/… Quick test in Firefox Nightly: codepen.io/editor/kizu/pen/019eae1c… […]
front-end.social
Original post on front-end.social
042
Roma Komarov @kizu.front-end.social.ap.brid.gy · 09/06/2026
If a view progress timeline ranges could wear pants, how would they wear them? :blobcatthink:
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 06/06/2026
The best part about writing an article about some new CSS stuff is that you can use other new stuff for its examples. Combining `:has()` and style queries for conditionally enabling a big bunch of styles feels very good. Why conditionally enable a big bunch of styles? Always having them on […]
front-end.social
Original post on front-end.social
131
Roma Komarov @kizu.front-end.social.ap.brid.gy · 03/06/2026
I am not saying that `border-shape`, `border-image`, and `border-collapse` should be able to work at the same time, but
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 02/06/2026
Ok, now that the demos in my latest article’s draft work in Firefox Nightly, I really need to find time to finish it lol.
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 25/05/2026
Imagine if text-decoration was interop.
020
Roma Komarov @kizu.front-end.social.ap.brid.gy · 24/05/2026
Explain this margin in your resume. Why is it not a gap?
100
Roma Komarov @kizu.front-end.social.ap.brid.gy · 24/05/2026
Introduce yourself with 10 CSS prop…
110
Roma Komarov @kizu.front-end.social.ap.brid.gy · 23/05/2026
My web guidance to you: use CSS. That’s it.
1233
Roma Komarov @kizu.front-end.social.ap.brid.gy · 22/05/2026
500000 DOM nodes and a `:has()` selector walk into a bar,
000
Roma Komarov @kizu.front-end.social.ap.brid.gy · 20/05/2026
Will a groundhog see its shadow in a spatially-highlighted environment? It is indeterminate.
000