How is this possible with CSS only?!
Channel: Kevin Powell
Date: 2022-09-01

I’ve done reaction videos in the past where I looked at crazy codepens, and today, we’re starting a new series where I find one such codepen and see if I can understand how it was created, with a dive into the :has() pseudo-class, which is now supported in Chrome and Safari.

🔗 Links 
✅ Jhey's code: https://codepen.io/jh3y/pen/yLKMOBm
✅ My starting code: https://codepen.io/kevinpowell/pen/MWVQQae
✅ :has() browser support: https://caniuse.com/?search=has


⌚ Timestamps
00:00 - Introduction
00:51 - what I'm trying to copy
04:20 - Setting up my custom properties
05:01 - Using :has()
06:18 - setting up the different states
10:54 - Adding the shaking animation
12:51 - removing the animation when the input is empty
16:54 - changing the style of the button when everything is valid
19:55 - should I do more videos like this one?

#css

--

Come hang out with other dev's in my Discord Community
💬 https://discord.gg/nTYCvrK

Keep up to date with everything I'm up to
✉ https://www.kevinpowell.co/newsletter

Come hang out with me live every Monday on Twitch!
📺 https://www.twitch.tv/kevinpowellcss

---

Help support my channel
👨‍🎓 Get a course: https://www.kevinpowell.co/courses
👕 Buy a shirt: https://teespring.com/stores/making-the-internet-awesome
💖 Support me on Patreon: https://www.patreon.com/kevinpowell

---

My editor: VS Code - https://code.visualstudio.com/

---

I'm on some other places on the internet too!

If you'd like a behind the scenes and previews of what's coming up on my YouTube channel, make sure to follow me on Instagram and Twitter.

Twitter: https://twitter.com/KevinJPowell
Codepen: https://codepen.io/kevinpowell/
Github: https://github.com/kevin-powell

---

And whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!