
If you’ve ever worked on sites with lots of long-form text — especially CMS sites where people can enter screeds of text in a WYSIWYG editor — you’ve likely had to write CSS to manage the vertical spacing between different …
Solved With :has(): Vertical Spacing in Long-Form Text originally publ

Someone recently asked me how I approach debugging inline SVGs. Because it is part of the DOM, we can inspect any inline SVG in any browser DevTools. And because of that, we have the ability to scope things out and …
6 Common SVG Fails (and How to Fix Them) originally published on CSS-Tricks, which is part of the

A little thing happened on the way to publishing the CSS :has()
selector to the ol’ Almanac. I had originally described :has()
as a “forgiving” selector, the idea being that anything in its argument is evaluated, even if one or …
:has is an unforgiving selector originally publish

The good ol’

A little while back, Ganesh Dahal penned a post here on CSS-Tricks responding to a tweet that asked about adding CSS box shadows on WordPress blocks and elements. There’s a lot of great stuff in there that leverages new features …
Styling Buttons in WordPress Block Themes originally p

You know, this is the time of year where Chris normally publishes a big ol’ reflection of the past year. The first one was published in 2007, the same year CSS-Tricks began, and it continued all the way through 2021…
Thank You (2022 Edition) originally published on

We’ve started making a tradition of rounding up the latest front-end research at the end of each year. We did it in 2020 and again in 2021. Reports are released throughout the year by a bunch of different companies …

CSS Nesting is making the rounds yet again. Remember earlier this year when Adam and Mia put three syntax options up for a vote? Those results were tallied and it wasn’t even even close.
Now there’s another chance …

Being able to quickly spin up a WordPress instance has been the strength of WordPress ever since its famous “five-minute install”. Upload a few files, configure a few settings, and you’re off.
The friction of uploading files has gotten …

In this series, we’ve been making image sliders with nothing but HTML and CSS. The idea is that we can use the same markup but different CSS to get wildly different results, no matter how many images we toss …
CSS Infinite 3D Sliders originally published on CSS-Tr