Sign in

Kevin Powell

@kevinpowell.co
13K followers 279 following 2.3K posts

Helping people fall in love with CSS 📺 YouTube.com/@kevinpowell ✉️ kevinpowell.co/newsletter

PostsRepliesMedia
Kevin Powell @kevinpowell.co · 04/10/2026
how...
Windows settings, installed apps, sorted largest to smallest, with Adobe Acrobat being the first result at 17.2GB
9442
Kevin Powell @kevinpowell.co · 24/09/2026
Too many? 😆 My office is pretty Star Wars themed as well. The art on my back wall is prints from the concept art from episode 1, and my rug is a Star Wars one... got a few random little things here and there too.
My Star Wars themed rug in my office.6 prints from the concept art of Star Wars Episode 1 on the back wall of my office.
120
Kevin Powell @kevinpowell.co · 24/09/2026
A quick look at how the `lh` unit can make styling textareas a lot easier, and a quick look at field-sizing which makes something that was very hard, very easy 😊
2775
Kevin Powell @kevinpowell.co · 23/09/2026
The stories of kids maxing out their credit card on Roblox might soon look pretty tame 😆
TORONTO, Sept. 21, 2026 /CNW/ -- Mastercard, Flybits and Rogers Bank today announced Canada's first successful deployment of a landmark agentic commerce transaction involving an AI-powered commerce platform, card issuer and payments network, demonstrating how AI-powered shopping experiences can prioritize consumer control, transparency and security.
2160
Kevin Powell @kevinpowell.co · 22/09/2026
The GTA6 site transitions between sections. Still early in, but I think I'm getting pretty close with scroll-driven animations. Next I need add a delay for stacked elements. Having things fade out a little later than others makes it a lot nicer. The videos do make it a bit cooler, though 😅
1290
Kevin Powell @kevinpowell.co · 18/09/2026
I'd been super busy lately, and brewing had taken a bit of a backseat for awhile. Managed to get a saison brewing before I left for ZurichJS, and am now enjoying the fruits of my labour 😊
Freshly poured Saison beer, with a pretty healthy head.Selfie, smiling at the camera, with my typical YouTube background behind me, holding up a beer.
4710
Kevin Powell @kevinpowell.co · 17/09/2026
What unit do devs use the most often in production? @trost.codes took his best guesses! (Shoutout to @projectwallace.com for the stats)
11659
Kevin Powell @kevinpowell.co · 14/09/2026
:valid and :invalid sorta suck, right? Which is why we now have :user-valid and :user-invalid! And yes, they have decent support 🙂 caniuse.com/wf-user-pseu...
1683
Kevin Powell @kevinpowell.co · 11/09/2026
And to wrap up @zurichjs.com we have @danielroe.dev telling us about building on the open web
Daniel starting his talkA slide showing the contributors of npmxDaniel explaining atprotocol with a love post on Bluesky
2301
Kevin Powell @kevinpowell.co · 11/09/2026
@tolin.ski now up at @zurichjs.com talking about the true cost of AI coding.
Scott kicking off his talkSlide quoting a respondant from a survey Scott did, reading "at first it seems like AI had the potential to 'accomplish great things quickly', but the truth is more like Ai has the potential to 'start great things quickly'."A slide quoting a respondant from a survey Scott did on how AI coding is impacting people, reading "at first it seems like AI had the potential to 'accomplish great things quickly', but the truth is more like Ai has the potential to 'start great things quickly'."
1251
Kevin Powell @kevinpowell.co · 11/09/2026
Chatted with him briefly online in the past, but happy I finally got to meet @tolin.ski in person at @zurichjs.com
Selfie of me with Scott Tolinski
61133
Kevin Powell @kevinpowell.co · 11/09/2026
And now at @zurichjs.com, @leichteckig.bsky.social is drawing all the slides in real time, as she teaches us about security on the web
Ramona about to kick off her talkRamona finishing up a scratch of a guard tower sporting a View flagA very cute cat, decked out with a helmet, shield and spear ready to defend against malicious actorsExample code block looking at an example of some client-side security, with a cute cat sketch holding onto the edge of the code block
1143
Kevin Powell @kevinpowell.co · 11/09/2026
A great, high energy talk by @tej.as to get us going after the lunch break at @zurichjs.com
Tejas starting his talkTejas talking about how we develop taste through pattern matching, and how pattern matching can go wrong
091
Kevin Powell @kevinpowell.co · 11/09/2026
Now we've got @acemarke.dev on stage at @zurichjs.com with a performance talk, breaking down how he made the Immer library 2x faster.
Mark starting off his talkMark, with a slide looking at some Immer benchmarks behind him
0161
Kevin Powell @kevinpowell.co · 11/09/2026
Next up at @zurichjs.com is @tkdodo.eu telling us how he removed 28,000 lines of code from Sentry's codebase.
Dominik on stage about to start his talkDominik in front of a slide that reads "the cost of unused code"Dominik on stage
1211
Kevin Powell @kevinpowell.co · 11/09/2026
Getting set up fory @zurichjs.com talk. I'm first up, once things kick off.
Zurich JS screen counting down for the start of the conference Me on stage, with my opening slide on screen, with the title CSS is eating JavaScript. Yup, I get to open a JS conf telling people to write less JS.
6612
Kevin Powell @kevinpowell.co · 09/09/2026
Hello Zurich!
Looking out the window of a SwissAir plane, with the Swiss flag on the wing to, taxing past a Zurich airport terminal
4410
Kevin Powell @kevinpowell.co · 08/09/2026
I asked how much people use AI to write CSS on YouTube, and about 60% said they don't use it at all or use it only occasionally. I thought the balanced mix would be way higher. In the comments, most people complain that it's still bad at CSS, even if it's good at other stuff.
A poll asking These days when you're writing CSS, how much of it do you author yourself, vs what's coming from AI?

With over 1600 answers, almost 60% are in the don't use AI at all, or only use it occasionally camps. About 12% says they use a pretty balanced mix, and 29% saying they mostly or entirely use AI.
9224
Kevin Powell @kevinpowell.co · 29/08/2026
I'm sorry what
Author John Grisham has criticised the US justice system for handing down "harsh" prison sentences to those viewing indecent images of children.

The American said some of those jailed had probably had too much to drink and should have faced lesser punishments.

But the 59-year-old writer told UK newspaper The Daily Telegraph that he had no sympathy for "real paedophiles".
6211
Kevin Powell @kevinpowell.co · 28/08/2026
Anchor positioning makes this type of effect feel almost too easy to make now. If you want the long-form where I break it down in more detail, you can find it here: youtu.be/8_NQ7ARXz8c
615412
Kevin Powell @kevinpowell.co · 27/08/2026
Generally, face/no-face, or different expressions, tend to perform very similarly for me. There have been exceptions, but these screenshots are the norm.
Two thumbnails with the same imagery. One of them has me smiling on it, the other has the text "pass values to CSS". Both have approximately 50% of the watch time.Three thumbnails. All three have the same codeblock on the right side. On the left, two of them have my face. In one of those I'm smiling at the camera, in the second I have a more enthusiastic look, and I'm looking at the code blocks. In the other one, rather than a picture of me, it has the text "The future of CSS". All three have between 32 and 34% of the total watch time
010
Kevin Powell @kevinpowell.co · 27/08/2026
I know titles like I used here turn some people off, but they work incredibly well compared to descriptive titles. As usual, I think it's a good video with a lot of value, so while it obviously benefits me if more people watch, I also do think it benefits the extra people watching too.
A/B test of video titles. The title "nobody told me CSS could do this" won with 59.7% of watch time compared to "Staggered, scroll-triggered animations with CSS-only" which got 40.3%
14473
Kevin Powell @kevinpowell.co · 25/08/2026
I'm not much of a React guy at all, so this might not be perfect, but I don't see why this wouldn't work? The invoker command isn't a huge deal here, since you could just use onClick with a showModal() as well... Comes with focus trapping and escape to close out of the box.
Example of using a dialog element to create a modal, in React.
200
Kevin Powell @kevinpowell.co · 24/08/2026
When we got modals with dialog, it already seemed like something that was a pain in the butt was just so easy now... add invoker commands into the mix, and it's almost too easy 😅
58912
Kevin Powell @kevinpowell.co · 21/08/2026
I asked 100 devs what their favorite framework was, and had @nerdy.dev try and guess the top four answers.
4724
Kevin Powell @kevinpowell.co · 21/08/2026
One of my favorite new-ish (and decently well supported) CSS features is the linear() function, and because of that, one of my favorite sites is easingwizard.com
0254
Kevin Powell @kevinpowell.co · 20/08/2026
Anytime I use nesting in a YouTube video, people comment that they didn't realize we can use it in vanilla CSS. Browser support is getting pretty good now, but there are a few gotchas, one of which might surprise you if you're coming from a preprocessor like Sass.
3567
Kevin Powell @kevinpowell.co · 19/08/2026
Because I always use unitless values for line-height, I had always, incorrectly, assumed that it worked the same way as using % would... turns out I was wrong!
5539
Kevin Powell @kevinpowell.co · 19/08/2026
Also, a commenter pointed out how we can do this with the sign() function now.
A conditional border radius using calc(sign(100vw - 100%) * 50px)
180
Kevin Powell @kevinpowell.co · 18/08/2026
Subgrid can be a little finicky to work with at times, but if you have something with a fixed layout with variable amounts of content in that layout, it really shines.
2597
Kevin Powell @kevinpowell.co · 06/08/2026
And if you're dropping the a, you might as well go space-separated, since the new color functions use that, and support is great. Oh, and relative colors use it too! I wrote about all of this over on @piccalil.li a little while back if you want to learn more: piccalil.li/blog/a-pragm...
three examples of the rgb function in CSS, first the rgba, then rgb with commas, and finally an rgb function using the space-separated syntax.

Then a second set of color functions, with hwb(), oklch(), and color(), all which can only use the space-separated syntax.root selector has a custom property that has a color value, and then there is a selector delcaring a color, using a relative color to lower the opacity of the custom properties color.
0251
Kevin Powell @kevinpowell.co · 06/08/2026
When I collected answers on people's favourite colour format for @asked100devs.bsky.social, with the people who said rgb, there were more people who put rgba() instead of rgb()... So, quick PSA: we haven't needed the 'a' for a very, very long time.
a selector with a class of "these are the same", and then two color declarations. The first one uses an rgba function, the second an rgb function, both with all the color values at 0, and the alpha value at .5
2200
Kevin Powell @kevinpowell.co · 01/08/2026
Got into chess earlier this year. After being *terrible* at first, I decided my goal for 2026 was to hit 1000 elo. I'm on the cusp on the two types I play 😅 (not for the first time. I've been above 995 rapid a bunch of times in the past week, and never hit 1k yet 🫠)
Chess.com Elo of 999 for rapid and 998 for daily
5451
Kevin Powell @kevinpowell.co · 29/07/2026
Another thing you need to figure out early on is what is going to be the source of truth for your design system. Will it be the code or design files? Or as @michaelwarren.dev advocates for, neither of those two. If you'd like updates on the course as we make progress: thecascade.dev/courses/desi...
2181
Kevin Powell @kevinpowell.co · 28/07/2026
Time flies! Less than 2 months now before @zurichjs.com where I'll be trying to convince a bunch of JS devs that CSS is pretty awesome 😅 Lots of other amazing speakers as well, and there are still tickets available and only 3 days left until the price goes up! conf.zurichjs.com#tickets
The 19 speakers who will be speaking at ZurichJS: Daniel Roe, Dominik Dorfmeister, Ramona Schwering, Scott Tolinski, Tejas Kumar, Alexander Lichter, Arnau Gómez Farell, Atila Fassina, Carmen Huidobro, Daniel Afonso, Daniel Noel-Davies, Debbie O'Brien, Kevin Powell, Mark Erikson, Matheus Albuquerque, Philippe Serhal, Salih Güler, Tony Edwards, Tracy LeeI'll be speaking at ZurichJS Conf on September 11th 2026
4388
Kevin Powell @kevinpowell.co · 25/07/2026
For part of our upcoming Thoughtful Design Systems course, @michaelwarren.dev talked to me about the pitfalls of tribal knowledge. A lot of the early stages of the course dive into the decisions & thinking that need to be made for a design system to be successful. thecascade.dev/courses/desi...
1246
Kevin Powell @kevinpowell.co · 25/06/2026
Editing a video on my time at CSS Day and @brucel.bsky.social continues to deliver a few bonus laughs 😆
Bruce Lawson poking his head over Jelle Raaijmakers' shoulder as I interview him during the speaker's dinner at CSS Day
2280
Kevin Powell @kevinpowell.co · 20/06/2026
Trying to make a new account for them. Got a "Your account cannot be created at this time" as the error... tried a few times, and in another browser. Came back later still not working. Looks like a maximum retries error... and this all feels like something made it into prod that shouldn't have? 😅
590
Kevin Powell @kevinpowell.co · 19/06/2026
Looking to set up an account for one of my kids on an ipad. You can only set it up on an iphone or mac... I'm logged in, in the browser, but no way to do it. Only through an apple device. I have apple devices so whatever, but what if a parent doesn't? This is so stupid.
Logged into my apple account, go to family sharing, and I'm met with a "how to set up family sharing" that says I either need to go to the settings on an iphone, ipad, or ipod touch, or on my mac.
4280
Kevin Powell @kevinpowell.co · 18/06/2026
Inspired by @meyerweb.com's talk at @cssday.nl I played with offset-path before, but somehow missed that we can use it with border-box and padding-box, making this so incredibly easy. I need to fix up the code a bit as it's kinda messy, but you can see it here: codepen.io/editor/kevin...
612813
Kevin Powell @kevinpowell.co · 06/06/2026
I know a lot of people associate me with CSS because I started a YouTube channel about it, and somehow that became a thing... ...and logically speaking, I think I know what I'm doing... ...but imposter syndrome is a thing, and it's not making me feel great at the moment. 🫠
List of speakers for CSS Day. For some reason, I'm on that list.
281573
Kevin Powell @kevinpowell.co · 04/06/2026
If you're going to be at CSS Day, first, make sure to stop me and "hi" at one point, and if you do, also ask me for some stickers. I want to give them all away by the end of the conference, and I've got quite a few 😊
A pile of stickers, with three different ones. A long black and white one that says "Front-end Friend", a blue and yellow Flex Module Systems one, and a white, blue and teal GRID one in the style of TRON.
3331
Kevin Powell @kevinpowell.co · 28/05/2026
I mean, this one felt like a softball but I guess not 😅
Search for "how many letter ps in Kevin Powell", with the AI Overview answering: There are 2 letter p's in "Kevin Powell" (one in Kevin, one in Powell). It then has a bullet list, with the word Kevin, and the letter V being bold, and Powell, with the P bold.
9271
Kevin Powell @kevinpowell.co · 27/05/2026
Framing the layoff of 8% of your employees as "many teammates are leaving the company today" and then following that up with "I own this decision" is wild. If you are laying them off and owning it, then just say it.
Today, we made the difficult decision to restructure Webflow’s team and operating model. As a result, many of our Webflow teammates are leaving the company today.

I own this decision, and I want to explain why we’re making it, how we’re supporting people leaving, and how this positions Webflow for what comes next.
8715
Kevin Powell @kevinpowell.co · 26/05/2026
I have qualms with YouTube but one good thing about it is its discoverability. If a video shows a strong signal early on YT will push it to a larger audience. As long as it keeps performing well, they'll keep pushing it. My second channel never had much traction, and the most recent one exploded.
My top recent videos on my second channel, comparing views over the first 4 days of each of my last 10 videos. The current top one has 101,600 views. The next one has 5,800, and it drops all the way down to 193 for the 10th.
0140
Kevin Powell @kevinpowell.co · 24/05/2026
#gohasgo
Me wearing a Canadiens jersey, smiling
1360
Kevin Powell @kevinpowell.co · 14/05/2026
When you join a Discord server and look to update your user name and image for that one to be a bit more anonymous, but within about 2 seconds of joining this shows up in the welcome channel 😆
An excited Sassy Peach emoji, followed by a CSS King meme
6580
Kevin Powell @kevinpowell.co · 02/05/2026
I just tried it and got 83%... Maybe their using the results to fix their own site in real time 😅
AI audit of accessibilityfirewall.com using their own tool, showing an original score of 83%, and a remediated score of 100%
350
Kevin Powell @kevinpowell.co · 01/05/2026
As long as no one asks me what a closure is, I'm sure I'll fit right in 😅
ZurichJS speakers page, where I'm one of the speakers
5462
Kevin Powell @kevinpowell.co · 24/04/2026
I got some feedback on my new version of CSS Demystified over in the Discord that made me smile 😊 You can check it out here if you are interested: thecascade.dev/courses/css-...
I'm learning HTML & CSS purely as  a hobby and have to say how much I'm enjoying this course. I've done one other and found it good but this is far better than good. This course is outstanding. It's well planned, well constructed, the pedagogy behind it is excellent and Kevin's presentation is truly personable. 👌
3593