CSS Tricks feed
“Pretty” is in the eye of the beholder
Yay, let's jump for text-wrap: pretty landing in Safari Technology Preview! But beware that it's different from how it works in Chromium browsers. “Pretty” is in the eye of the beholder originally published on CSS-Tricks, which is part of...
So, You Want to Give Up CSS Pre- and Post-Processo...
There was once upon a time when native CSS lacked many essential features, leaving developers to come up with all sorts of ways to make CSS easier to write over the years. So, You Want to Give Up CSS...
Using CSS backdrop-filter for UI Effects
Tips and tricks on utilizing the CSS backdrop-filter property to style user interfaces. You’ll learn how to layer backdrop filters among multiple elements, and integrate them with other CSS graphical effects to create elaborate designs. Using CSS backdrop-filter for...
Next Level CSS Styling for Cursors
Custom cursors with CSS are great, but we can take things to the next level with JavaScript. Using JavaScript, we can transition between cursor states, place dynamic text within the cursor, apply complex animations, and apply filters. Next Level...
CSS-Tricks Chronicles XLIII
This CSS-Tricks update highlights significant progress in the Almanac, recent podcast appearances, a new CSS counters guide, and the addition of several new authors contributing valuable content. CSS-Tricks Chronicles XLIII originally published on CSS-Tricks, which is part of the...
Tailwind’s @apply Feature is Better Than it Sounds...
Most of the time, people showcase Tailwind's @apply feature with one of Tailwind's single-property utilities (which changes a single CSS declaration). When showcased this way, @apply doesn't sound promising at all. So obviously, nobody wants to use it. Personally,...
CSS Carousels
Chrome has prototyped these features and released them in Chrome 135. Adam Argyle has a wonderful explainer over at the Chrome Developer blog. Kevin Powell has an equally wonderful video where he follows the explainer. This post is me...
Feeling Like I Have No Release: A Journey Towards ...
Deploying like an idiot comes down to a mismatch between the tools you use to deploy and the reward in complexity reduced versus complexity added. Feeling Like I Have No Release: A Journey Towards Sane Deployments originally published on...
A New “Web” Readiness Report
HTML 5 Readiness was a site that showed through a rainbow of colors the browser support for several web features. What about a new version? A New “Web” Readiness Report originally published on CSS-Tricks, which is part of the...
SMIL on?
Well, it turns out that SVG's built-in animation features were never deprecated as planned. Sure, CSS and JavaScript are more than capable of carrying the load, but it's good to know that SMIL is not dead in the water...
Crafting Strong DX With Astro Components and TypeS...
One thing we can do to help teams code consistently is provide type-checking so that all of the configurable options for a specific component are available while coding. Bryan demonstrates how he does this with TypeScript when working with...
Worlds Collide: Keyframe Collision Detection Using...
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...
Automated Visual Regression Testing With Playwrigh...
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...