Sign in

Una Kravets

@una.im
19K followers 281 following 768 posts

Making the web more stylish ✨🎨 DevRel Lead for CSS & Web UI @ Google Chrome. Cohost of the CSS Podcast & host of Designing in the Browser. 🌎 una.im

PostsRepliesMedia
Una Kravets @una.im · 13/08/2026
Big news! For the past 9 months I’ve been running a fully-autonomous local agent for a pretty complex body building project. And I’m almost ready to deploy (any day now 🙂)! Wish me luck for the launch 🙏
292920
Una Kravets @una.im · 12/06/2026
What CSS doesn’t know and @nerdy.dev’s new JavaScript library Prop for That: prop-for-that.netlify.app #cssday
2221
Una Kravets @una.im · 12/06/2026
Adam uses scroll-driven animations to dynamically add view transition names. Smart! #cssday @nerdy.dev
060
Una Kravets @una.im · 12/06/2026
“None is a state you can design for. 1 or 3, etc. and the component can own it” — @nerdy.dev #cssday
1130
Una Kravets @una.im · 12/06/2026
Guess who’s closing out #cssday?! This duo 😎😎 @nerdy.dev
Adam and Una on stage at chrome dev summit 2019
6903
Una Kravets @una.im · 12/06/2026
Sorting a product list by rating with reading-flow and semantic attr()! Cool! @kevinpowell.co @cssday.nl #cssday
Kevin on stage
0342
Una Kravets @una.im · 11/06/2026
You heard it here first — 2026 is the year you can finally style a select!! It will be in all browsers by the end of the year 🎉🎉🎉 @jakearchibald.com #cssday
512112
Una Kravets @una.im · 11/06/2026
Retargettable view transitions! I think a good follow up talk would be “Designing for Rage Click” @bram.us @cssday.nl #cssday
070
Una Kravets @una.im · 11/06/2026
Truly blessed that I can always ping @bram.us when I can’t figure out why a view transition isn’t working 😆 Such a great talk! Love the explode view slides (not pictured) #cssday
1150
Una Kravets @una.im · 11/06/2026
Anchor pos & interest invokers are awesome! The "taller" tooltips don't fit in the viewport below the link so the position flips. All w/a few lines of CSS, a couple of HTML attributes, and it's a progressive enhancement so the existing experience doesn't change. (still working on the animations)
1394
Una Kravets @una.im · 11/06/2026
Wowow @rebane2001.bsky.social is blowing everyone’s minds at #cssday 🤯 Obsessed with her and this talk! Next time someone tells me CSS isn’t a programming language I’m going to send them the video from this talk 😆 Check out lyra.horse for more goodies
0373
Una Kravets @una.im · 11/06/2026
We’re ready for #CSSDay! Come hang with the Chrome crew upstairs! We’ve got keychains, stickers, and some good sessions planned downstairs too 🎉
Chrome boothKeychains 
Build with chromeCoffee
2130
Una Kravets @una.im · 09/06/2026
Customizable select is coming to Safari 27! 🥳 Want to try it out? Check out my demo collection: codepen.io/collection/B...
411012
Una Kravets @una.im · 03/06/2026
✅ Nice lil btn scale-down 🙈 Layout change bc the scroll bar disappears 🙈 No light dismiss These UX problems can easily be solved with: - closedby="any" - overscroll-behavior: contain
2698
Una Kravets @una.im · 20/05/2026
Watch @bram.us and I do a round up of What’s New in Web UI! ✨ LIVE ✨ in 30 mins See us at the #googleio Chrome tent Stream it: io.google/2026/explore...
Selfie at the chrome booth
0110
Una Kravets @una.im · 19/05/2026
Show day!! #googleio
At the I/O sign Backstage
1370
Una Kravets @una.im · 06/05/2026
OoooOOooh! Guess what! As of Chrome 149, shape() works in shape-outside! So you can really *shape* your UI's 😉* rect() and xywh() are also supported for shape-outside in Chrome 149 codepen.io/una/full/ogz... *(just let me have my Mom joke)
55910
Una Kravets @una.im · 08/04/2026
7 years at Google today!? Wow time flies. So much has changed but I'm still grateful to be doing meaningful work on a product that impacts billions of users with an awesome team 💙 This much hasn't changed 😊
First day at GoogleFilming "What's New in Web" 2022On the I/O Developer Keynote stage in 2025
81191
Una Kravets @una.im · 03/04/2026
Real DOM content in a canvas: fully searchable, translatable, inspectable. You can have forms, add WebGL effects & much more. Imagine if this was a customizable select 🤯 A little WIP exploration (not finished) for a very exciting API. github.com/WICG/html-in...
414511
Una Kravets @una.im · 26/03/2026
Wowowow epic talk by @kubekhrm.bsky.social about building liquid glass with SVG and CSS #ReactParis Check out his post about it! kube.io/blog/liquid-... And a library coming soon 🎉
1335
Una Kravets @una.im · 13/03/2026
While contrast-color() only returns black or white, there are workarounds! Register a custom property & you can use style queries for full color palette customization (test the contrast yourself!) You can also use the contrast value inside color-mix() to make a color tint. una.im/advanced-con...
49611
Una Kravets @una.im · 13/03/2026
Tomorrow I'll show you some contrast-color() hacks for better control over your color palette selection
0586
Una Kravets @una.im · 05/02/2026
border-shape can handle both insets and outsets, so you can do effects like this chevron nav (corner-shape can't do both). This means you get a perfectly-wrapping focus ring without needing to manage z-index or having it partially covered due to overlap. Demo: codepen.io/una/pen/ByzY...
920731
Una Kravets @una.im · 04/02/2026
My favorite part of @nerdy.dev's customizable select is the sticky section headers 😍 nerdy.dev/nice-select
51004
Una Kravets @una.im · 30/01/2026
Finally solving the tooltip arrow usecase with a new CSS property called border-shape ⚠️ WIP early-stage API, timeline TBD, more info coming soon But it brings a lil tear to my eye to see this working, border & all 🥲 This demo uses anchored container queries + border-shape + a little animation
712213
Una Kravets @una.im · 16/01/2026
You know that annoying experience on mobile websites where you need to find the little close button and can't swipe a menu closed? The solution is simpler than you think. With basic CSS scroll APIs, you can get built-in interruptible swipe gestures 🥳
927038
Una Kravets @una.im · 12/12/2025
I've also been looking at the intersection of scroll animations with scroll-state(scrolled)—another feature I'm stoked about 🙂 (working on a blog post) With no JS, you can detect scroll direction! Combined w/scroll-driven/triggered animations = more natural control of element-viewport interactions
120
Una Kravets @una.im · 12/12/2025
I got nerd-sniped by @bram.us and wanted to try it out so I built this shape morphing demo to show how you can apply multiple animations to the same element over with different triggers. PRETTY COOL IMO! Link (needs Canary + experimental-web-platform-features flag): codepen.io/una/pen/ZYWP...
140
Una Kravets @una.im · 08/12/2025
Festive little office touches 🥰🎄
Santa hat on “this is fine” dogPunch needle coasters of a mit and hat. Festive glass cup with candy canes and treesRibbon on my microphone
1180
Una Kravets @una.im · 04/12/2025
Oooh that’s why my back hurts
Listening age: 68 for Spotify wrapped
6420
Una Kravets @una.im · 01/12/2025
🚨 PSA: CSS Anchor positioning Translation on anchor elements is now respected by positioned elements in Chrome 144+ I know this was quite frustrating if you ran into it! chromestatus.com/feature/5201...
1374
Una Kravets @una.im · 18/11/2025
More #CSSPodcast episodes are live! We've made it to episode 99 🤯 pod.link/thecsspodcas...
3222
Una Kravets @una.im · 17/11/2025
The joy of CSS is that it doesn't error your application out, it just ignores the unsupported line.
150
Una Kravets @una.im · 17/11/2025
*whispers* corner-shape 🤫👂 🟢 round 🪏 scoop 📐 bevel ⛏️ notch ⬛️ square 🐿️ squircle 🦹🏻‍♀️ superellipse *Pass it on* codepen.io/una/pen/PwNo...
29612
Una Kravets @una.im · 10/11/2025
Did you know: you might be able to change the style of the caret in CSS soon? See caret-shape and caret-animation in action (there's still some discussion & this is isn't shipped yet, but you can check it out w/the experimental-web-platform-features flag in Chrome 140+) codepen.io/una/pen/MYKL...
89815
Una Kravets @una.im · 21/10/2025
Nice little details in Quiet UI 🥰 quietui.org/docs 💜
inline typography stylestoast with countersofter, soft, mid, loud, louder colors
2733
Una Kravets @una.im · 14/10/2025
There are 2 new pseudo classes landing for scroll-markers: :target-before and :target-after :target-current { background: black; } :target-before { background: lavender; } :target-after { outline: 1px solid gray; } Lands in Chrome 142 (stable in 2 weeks)
4534
Una Kravets @una.im · 03/10/2025
@nordicjs.com took me back to the good old days of community tech confs infused with art, innovation, and joy. From arranged dinners (“with 5 new friends”), to the cutest swag, Code in the Dark, laser shows, crafts, games, sauna(!) and all the installations! You can see the love that was put in 💜
Conf venueCoffee cup InstallationCode in the dark
0372
Una Kravets @una.im · 03/10/2025
Such a fun talk about web fonts! #nordicjs @nordicjs.com
0242
Una Kravets @una.im · 02/10/2025
I knew I’d find the CSS people here 😆 #nordicjs #nordicjsbadges
Badge decorating
2351
Una Kravets @una.im · 30/09/2025
Really nice example of CSS functions from @joshwcomeau.com in his Whimsical Animations course (todays the last day to register early access!) Immediately optimized my radial popover menu with it 🙂 Demo: codepen.io/una/pen/YPwW... Course: t.co/14NmSUHFs3 My functions post: una.im/5-css-functi...
@ function --polar-coordinate(--angle, --dist) {
  result: translate(
    calc(cos(var(--angle)) * var(--dist)),
    calc(sin(var(--angle)) * var(--dist))
  );
}
1506
Una Kravets @una.im · 18/09/2025
This is what’s wrong with the mobile web. - massive “download our app” callout - header taking up a good amount of real estate - ANOTHER DOWNLOAD OUR APP BANNER - fixed ad on the bottom - huge ads in between copy 😠
2115818
Una Kravets @una.im · 17/09/2025
How useful is it for you to be able to style select elements? Is this something you've had to do before? Would you adopt the native browser API if it shipped cross-browser?
20777
Una Kravets @una.im · 15/09/2025
To do this with the (upcoming) interest invoker API, it's 1 line of code: .parent:has(:interest-source) button { interest-show-delay: 0s; } You have your default delay. Then, you update the interest delay when an element inside of the parent has interest (i.e. hover). codepen.io/una/pen/LEpw...
116418
Una Kravets @una.im · 03/09/2025
afk
Me in Machu Picchu
51032
Una Kravets @una.im · 25/08/2025
I’d love to be a low key flower farmer 🥹 just for friends and family. Here’s some of my flowers this year from my garden
Summer bouquetAstersSpring bouquetSnapdragon
110
Una Kravets @una.im · 25/08/2025
Now do LePen because 😅 this is what I spend my adult money on
172
Una Kravets @una.im · 05/08/2025
Create a larger, invisible hit area around the element, making it easier to click without layout shift! How? Use a pseudo element with `position: absolute` + `inset: -{value}px` Demo to play with: codepen.io/una/pen/gbaWdmy (Tip from dmytro on X, who I can't find on Bsky: x.com/pqoqubbw/sta...)
514124
Una Kravets @una.im · 15/07/2025
Got a little wig for my microphone 🥰
Pink wind barrier fuzzy on mic
6742
Una Kravets @una.im · 12/06/2025
Feeling lucky i got to see @kelseyhightower.com give a keynote. Phenomenal speaker and human! Writing is thinking—train your own model. #RenderATL
Kelsey on stage
0322