CSS-Tricks
css-tricks.com/
Better CSS Shapes Using shape() — Part 4: Close and Move
The shape() function's close and move commands may not be ones you reach for often, but are incredibly useful for certain shapes.

The Gap Strikes Back: Now Stylable
Styling the space between layout items — the gap — has typically required some clever workarounds. But a new CSS feature changes all that with just a few simple CSS properties that make it easy, yet also flexible, to display styled separators between your layout items.

Using CSS Cascade Layers With Tailwind Utilities
Being the bad boy I am, I don't take Tailwind's default approach to cascade layers as the "best" one. Over a year experimenting with Tailwind and vanilla CSS, I've come across what I believe is a better solution.

CSS Blob Recipes
Blob, Blob, Blob. What's the most effective way to create blob shapes in CSS? Turns out, as always, there are many. Let's compare them together!

KelpUI
KelpUI is new library that Chris Ferdinandi is developing, designed to leverage newer CSS features and Web Components. I've enjoyed following Chris as he's published an ongoing series of articles detailing his thought process behind the library, getting deep into his approach. You really get a clear picture of his strategy and I love it.

Poking at the CSS if() Function a Little More: Conditional Color Theming
The CSS if() function enables us to use values conditionally, which we can already do with queries and other functions, so I’m sure you’re wondering: What exactly does if() do? Let's look at a possible real-world use case.

Lightly Poking at the CSS if() Function in Chrome 137
The CSS if() function was recently implemented in Chrome 137, making it the first instance where we have it supported by a mainstream browser. Let's poke at it a bit at a very high level.

A Better API for the Intersection and Mutation Observers
Zell discusses refactoring the Resize, Mutation, and Intersection Observer APIs for easier usage, demonstrating how to implement callback and event listener patterns, while highlighting available options and methods.

Color Everything in CSS
An introduction to "Color spaces", "Color models", "Color gamuts," and basically all of the "Color somethings" in CSS.
CSS Color Functions
CSS has a number of functions that can be used to set, translate, and manipulate colors. Learn what they are and how they are used with a bunch of examples to get you started.

How to Keep Up With New CSS Features
How do you stay informed of new CSS features when the language evolves quickly and information is spread all around the web? Sacha Greif has some tips from his work running an annual survey focused on new CSS features.

Breaking Boundaries: Building a Tangram Puzzle With (S)CSS
We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no JavaScript required.

Creating an Auto-Closing Notification With an HTML Popover
The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can use.

Better CSS Shapes Using shape() — Part 3: Curves
This is the third article in a series about the CSS shape() function. We've covered drawing lines and arcs in previous articles and, this time, we look specifically at the curve command and how to use it for drawing complex shapes.

Exploring the CSS contrast-color() Function… a Second Time
The contrast-color() function doesn’t check color contrast, but rather it outright resolves to either black or white (whichever one contrasts the most with your chosen color). Safari Technology Preview recently implemented it and we explore its possible uses in this article.

The State of CSS 2025 Survey is out!
The State of CSS 2025 Survey dropped a few days ago, and besides anticipating the results, it's exciting to see a lot of the new things shipped to CSS reflected in the questions.

Getting Creative With HTML Dialog
So, how can you take dialogue box design beyond the generic look of frameworks and templates? How can you style them to reflect a brand’s visual identity and help to tell its stories? Here’s how I do it in CSS using ::backdrop, backdrop-filter, and animations.

Better CSS Shapes Using shape() — Part 2: More on Arcs
This is the second part of a series that dives deep into the CSS shape() command, continuing with a more detailed look at the arc command.

What We Know (So Far) About CSS Reading Order
The reading-flow and reading-order proposed CSS properties are designed to specify the source order of HTML elements in the DOM tree, or in simpler terms, how accessibility tools deduce the order of elements. You’d use them to make the focus order of focusable elements match the visual order, as outlined in the Web Content Accessibility Guidelines (WCAG 2.2).

Better CSS Shapes Using shape() — Part 1: Lines and Arcs
This is the first part of a series that dives deep into the shape function, starting with shapes that use lines and arcs.

You can style alt text like any other text
Clever, clever that Andy Bell. He shares a technique for displaying image alt text when the image fails to load. Well, more precisely, it's a technique to apply styles to the alt when the image doesn't load, offering a nice UI fallback for what would otherwise be a busted-looking error.

SVG to CSS Shape Converter
Shape master Temani Afif has what might be the largest collection of CSS shapes on the planet with all the tools to generate them on the fly. There's a mix of

A Reader’s Question on Nested Lists
Answering a reader's question about how to create a complex numbering system with CSS list counters.

HTML Email Accessibility Report 2025
Some weekend reading on the heels of Global Accessibility Awareness Day (GAADM), which took place yesterday. The Email Markup Consortium (EMC) released its

Scroll-Driven Animations Inside a CSS Carousel
Hey, isn't there a fairly new CSS feature that works with scroll regions? Oh yes, that's Scroll-Driven Animations. Shouldn't that mean we can trigger an animation while scrolling through the items in a CSS carousel?

This Isn’t Supposed to Happen: Troubleshooting the Impossible
What it looks like to troubleshoot one of those impossible issues that turns out to be something totally else you never thought of.