Worlds Collide: Keyframe Collision Detection Using Style Queries

Interactive CSS animations with elements ricocheting off each other seem more plausible in 2025. While it’s unnecessary to implement Pong in CSS, the increasing flexibility and power of CSS reinforce Lee’s suspicion that one day it will be a lifestyle choice whether to achieve any given…

Automated Visual Regression Testing With Playwright

With visual regression testing, we can update a page, take screenshots before and after the fact, and compare the results for unintended changes. In this article, learn how to set up visual regression testing using Playwright.

Automated Visual Regression Testing With Playwright originally published on CSS-Tricks, which…

Support Logical Shorthands in CSS

There’s a bit of a blind spot when working with CSS logical properties concerning shorthands.

Support Logical Shorthands in CSS originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter….

Revisiting CSS border-image

I’ve used border-image regularly. Yet, it remains one of the most underused CSS tools, and I can’t, for the life of me, figure out why. Is it possible that people steer clear of border-image because its syntax is awkward and unintuitive? Perhaps it’s because most explanations…

Styling Counters in CSS

Going from the most basic ways to style lists directly in HTML to advanced customization techniques that are even capable of making things that aren’t lists look like lists.

Styling Counters in CSS originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get…

Web Components Demystified

Scott Jehl released a course called Web Components Demystified. This is my full set of notes from Scott’s course. You’ll still want to take the course on your own, and I encourage you to because Scott is an excellent teacher who makes all of this stuff…

Powering Search With Astro Actions and Fuse.js

With Astro, we can generate most of our site during our build, but have a small bit of server-side code that can handle search functionality using something like Fuse.js. In this demo, we’ll use Fuse to search through a set of personal “bookmarks” that are generated…

A CSS-Only Star Rating Component and More! (Part 2)

In this second article of a two-part series, Temani Afif demonstrates an alternative approach to creating the star rating component from the first article using experimental scroll-driven animations to animate the star rating’s colors in place rather than using the border-image property.

A CSS-Only Star Rating Component…