Search
Bringing Back Parallax With Scroll-Driven CSS Animations
6.8.2025
Parallax is a pattern in which different elements of a webpage move at varying speeds as the user scrolls, creating a three-dimensional, layered appearance. It once required JavaScript. Now we have scroll-driven animations in CSS, which is free from the main-thread blocking that can plague...
Thinking Deeply About Theming and Color Naming
4.8.2025
Today, I want to discuss a couple of patterns for naming color palettes that the community is using, and how I propose we can improve, so we achieve both flexibility and beauty.
Thinking Deeply About Theming and Color Naming originally published on CSS-Tricks, which is part of the DigitalOcean...
Keeping Article Demos Alive When Third-Party APIs Die
30.7.2025
Is there a way to build demos that do not break when the services they rely on fail? How can we ensure educational demos stay available for as long as possible?
Keeping Article Demos Alive When Third-Party APIs Die originally published on CSS-Tricks, which is part of the DigitalOcean family....
Making a Masonry Layout That Works Today
28.7.2025
I went on to figure out how make masonry work today with other browsers. I'm happy to report I've found a way — and, bonus! — that support can be provided with only 66 lines of JavaScript.
Making a Masonry Layout That Works Today originally published on CSS-Tricks, which is part of...
How to Discover a CSS Trick
25.7.2025
Do we invent or discover CSS tricks? Lee Meyer discusses how creative limitations, recursive thinking, and unexpected combinations lead to his most interesting ideas.
How to Discover a CSS Trick originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get...
Atomic Design Certification Course
24.7.2025
Brad Frost introduced the “Atomic Design” concept wayyyy back in 2013. He even wrote a book on it. And we all took notice, because that term has been part of our lexicon ever since.
It’s a nice way …
Atomic Design Certification Course originally published on CSS-Tricks...
A First Look at the Interest Invoker API (for Hover-Triggered Popovers)
23.7.2025
Chrome 139 is experimenting with Open UI’s proposed Interest Invoker API, which would be used to create tooltips, hover menus, hover cards, quick actions, and other types of UIs for showing more information with hover interactions.
A First Look at the Interest Invoker API (for Hover-Triggered...
A Primer on Focus Trapping
21.7.2025
Focus trapping is about managing focus within an element, such that focus always stays within it. The whole process sounds simple in theory, but it can quite difficult to build in practice, mostly because of the numerous parts to you got to manage.
A Primer on Focus Trapping originally published...
Getting Creative With Versal Letters
18.7.2025
A versal letters is a typographic flourish found in illuminated manuscripts and traditional book design, where it adds visual interest and helps guide a reader’s eye to where they should begin.
Getting Creative With Versal Letters originally published on CSS-Tricks, which is part of...
Getting Clarity on Apple’s Liquid Glass
17.7.2025
Gathered notes on Liquid Glass, Apple’s new design language that was introduced at WWDC 2025. These links are a choice selection of posts and resources that I've found helpful for understanding the context of Liquid Glass, as well as techniques for recreating it in code.
Getting Clarity...
What I Took From the State of Dev 2025 Survey
16.7.2025
State of Devs 2025 survey results are out! Sunkanmi Fafowora highlights a few key results about diversity, health, and salaries.
What I Took From the State of Dev 2025 Survey originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter
Setting Line Length in CSS (and Fitting Text to a Container)
14.7.2025
The many ways to juggle line length when working with text... including two proposed properties that could make it easier in the future.
Setting Line Length in CSS (and Fitting Text to a Container) originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get...
The Layout Maestro Course
11.7.2025
Layout. It’s one of those easy-to-learn, difficult-to-master things, like they say about playing bass. Not because it’s innately difficult to, say, place two elements next to each other, but because there are many, many ways to tackle it. And …
The Layout Maestro Course...
Scroll-Driven Sticky Heading
11.7.2025
I was playing around with scroll-driven animations, just searching for all sorts of random things you could do. That’s when I came up with the idea to animate main headings and, using scroll-driven animations, change the headings based on the user’s scroll position.
Scroll-Driven Sticky Heading...
Better CSS Shapes Using shape() — Part 4: Close and Move
7.7.2025
The shape() function's close and move commands may not be ones you reach for often, but are incredibly useful for certain shapes.
Better CSS Shapes Using shape() — Part 4: Close and Move originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter
The Gap Strikes Back: Now Stylable
1.7.2025
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.
The Gap Strikes Back:...
Using CSS Cascade Layers With Tailwind Utilities
30.6.2025
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.
Using CSS Cascade Layers With Tailwind Utilities originally published on CSS-Tricks...
CSS Blob Recipes
27.6.2025
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!
CSS Blob Recipes originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter
KelpUI
26.6.2025
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...
Poking at the CSS if() Function a Little More: Conditional Color Theming
25.6.2025
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.
Poking at the CSS if() Function a Little More: Conditional Color Theming...