I've been deepfaked!


View this email in your browser (or share it with a friend!)

Hello Reader,

A few years ago there was a common scam on YouTube where people would create fake accounts with the same profile picture as creators, but use a WhatsApp number as the name on the account, and then they'd use a bot to mass-reply to people saying to give them a call.

It was a big problem, and I would actually get replies to those comments, as well as DMs and emails from people who tried to contact the number.

As with most scams, most people don't fall for it, but it's a numbers game, and even if one person falls for it, it was worth it to them.

YouTube took an embarrassing amount of time to address that issue (to the point where another creator made a 3rd party tool to help us deal with it that I was using for at least 6 months), but they finally did.

Bot spamming replies is one thing, but now, I've been deepfaked.

Sometime last year YouTube put a Likeness Detection feature in place. I was hesitant to turn it on, because you have to scan your face and it keeps that in the system, but I decided to do it anyway. Then, this week, they flagged a video, and lo and behold, there was a fake me telling people, of all things, not to fall for crypto schemes.

The video wasn't half bad, though if you watched it closely you would notice a few things. My wife laughed at the voice because it was clearly based on my voice, but both of us didn't think it sounded like me.

Some people have told me they thought it sounded like me though, so it probably depends if you listen to me for 10 minutes every now and then, or all the time 😅.

Once again, the purpose of the scam is to get people to contact them, but obviously this is another level over a bot account using my profile picture.

It's more invasive in a big way, but that hasn't bothered me as much as I thought it would.

My main concern is just over the amount of content that can be thrown out there now, and while YouTube has a likeness detection, it hasn't helped me get the videos off from TikTok (where there are three of them), and keeping track of this type of thing across multiple platforms seems like an impossible task.

(I've already reported the content and channel, as have a number of other people, but if you want to add to that, I won't say no. You can find the channel here).

I'm not all that concerned about it for myself, but as these types of things improve and are used with more well-known people and in more subtle, long-term scams and misinformation campaigns, I can't help but think that the impacts could be pretty big.

There's also the concern that as these get better and need less data to do a good job, more personalized scams could quickly become an issue.

And I wish I had a more positive way to end this off, other than as obvious as a lot of these things seem at the moment, just be careful with what you see out there... and if I'm talking about something other than CSS, it's probably not me 😆.

🙋‍♂️ What I’ve been up to this week

📺 Nobody told me CSS could do this

video preview

Animating things in as they scroll into view used to mean an IntersectionObserver. Now that we have scroll-driven animations, we can flip the value of a custom property to create a scroll-triggered animation!

The part I had the most fun with is the staggering. Staggering is easy when you know how many columns you have. It gets a lot more interesting when you’re using auto-fit and the column count changes.

A few people in the comments of this one asked about using sibling-index(), but we need to target elements not by their count, but by what column they are in. If you’re keeping track of the column count in a different way, you could then use that.

To do that, I used container queries, but Temani Afif has a cool solution that doesn’t require them.

And the title isn't as misleading as you might think, because somehow I completely missed it, but Chromium browsers now support animation-trigger, but the solution I look at here will be cross browser shortly as Firefox is shipping support for animation-timeline.


⚡ I wish this had always been so easy

video preview

A quick look at anchor positioning, and how much simpler it makes something that used to take a lot more work than it should have.

You can find the full video here.

📝 Quiz time!

An element has transform: translateX(2rem). You add an animation with @keyframes spin { to { rotate: 360deg; } }. What happens to the translate while it spins?

  1. It stays translated and spins
  2. It's overwritten, so the element snaps back while spinning
  3. The rotation is ignored because of the translation
  4. It's invalid, so nothing happens

As per usual, you'll have to head on over to YouTube to take a stab at the quiz, and once you answer, you'll see if you were right or not.

🏁

Have a fantastic week!
Kevin


Are you looking to step up your CSS? I've got both free and premium courses to help with that! They cover a range of skill levels too 👇

Beginner friendly (and free)

HTML & CSS for Absolute Beginners

A free course that starts with the absolute basics, and gets to creating some layouts with Flexbox and Grid.

Enroll →

Intermediate

CSS Demystified

For those who've been writing CSS for a little bit now, but want to step up their game and start writing CSS with confidence!

Enroll →

Intermediate (Frontend Masters)

Build a Modern Site from Scratch

Build a fully responsive site using modern CSS features, along with some polished animations.

Enroll → (25% off first month of Frontend Masters if you use this affiliate link)

If you no longer want to get any emails from me, you can unsubscribe or you can edit your preferences if you'd like pick which emails you get from me.
600 1st Ave, Ste 330 PMB 92768, Seattle, WA 98104-2246

Hi! I'm Kevin

Weekly newsletter, where I talk about tangentially-related front-end development topics and share what I've been up to in the last week, plus any cool/fun/interesting/useful links I come across as well.

Read more from Hi! I'm Kevin

View this email in your browser (or share it with a friend!) Hello Reader, Sometimes it can be hard to build momentum, and there are more and more things in our way now than ever. Social media has been one of the big ones for a long time now. For me, it can be an issue because it's part of my job. I probably should use some sort of scheduling app, but I tend to just go to Bluesky to post something, and then get distracted reading my feed. One issue I know more people are having is context...

View this email in your browser (or share it with a friend!) Hello Reader, I’ve started collecting answers for a Family Feud style game called Asked 100 Devs (more on this at the very end of the email), and one of the questions I asked was “What is your favorite color format in CSS?” I don’t want to spoil the results yet (I’ll be having some contestants on soon to try and guess the top answers to the questions), but something that caught me by surprise was that, of the answers for rgb, 80% of...

View this email in your browser (or share it with a friend!) Hello Reader, Trying something a little different this week with some quick hits before we dive into the main content. The 2026 edition of the State of Dev’s survey is now open. As with all of the State of surveys (or well, any survery for that matter), the more people who take it, the more representative it is. As I let you know earlier this week, I’ll be speaking at ZurichJS in September. If you are in the area and can’t make it,...