Writing

Blogs

A collection of my thoughts, tutorials, and insights on web development.

CSS Navigation Matching, Early Days

CSS Navigation Matching, Early Days

Apply a style when someone navigates from one specific page to another. The idea being it'd make the sources for cross-document view transitions declarative in CSS rather than managing that stuff in JavaScript.

Read More
What’s !important #17: Custom Highlight API, CSS Navigation Matching, Fixing text-stroke, and More

What’s !important #17: Custom Highlight API, CSS Navigation Matching, Fixing text-stroke, and More

Plus, how to style skeleton UIs, how to enable diagonal scrolling, how images can overflow themselves, and yet, still more. Basically, how to do a lot of really cool (CSS) stuff.

Read More
Blocked aria-hidden: The Warning is Right, and Every Fix You’ve Found is Wrong

Blocked aria-hidden: The Warning is Right, and Every Fix You’ve Found is Wrong

The warning is correct. And the recommended fixes you've probably seen are wrong. Here's what you can do instead to properly fix the issue.

Read More
Animating CSS border-image

Animating CSS border-image

Border images are an overlooked feature. One neat fact is that border image slices can run across entire borders on an element, and animating it creates beautiful effects.

Read More
Using and Styling the Dialog Element

Using and Styling the Dialog Element

There's a lot of nuance to the <dialog> element, a seemingly little piece of web architecture. I've got some notes from digging into it.

Read More
2026 State of CSS, Devs Surveys

2026 State of CSS, Devs Surveys

A few notes and takeaways from the 2026 State of CSS survey results, including a nice CSS-Tricks cameo!

Read More
Gap Decorations Are Now Available, Here’s What’s New

Gap Decorations Are Now Available, Here’s What’s New

Today, with CSS gap decorations fully supported in Chrome and Edge, starting with version 149, you can now very easily style gaps, and with a lot of control.

Read More
Get Ready For the Powerful CSS border-shape Property!

Get Ready For the Powerful CSS border-shape Property!

We recently got the shape() function and corner-shape property. What else could we possibly need as far as making shapes in CSS? Let me tell you: the border-shape property!

Read More
What’s !important #16: sibling-index() Animations, Use Cases for the infinity Keyword, Container Stuck Queries, and More

What’s !important #16: sibling-index() Animations, Use Cases for the infinity Keyword, Container Stuck Queries, and More

The soon-Baseline sibling-index() function for animations, CSS and the 2026 FIFA World Cup, use cases for the infinity keyword, container "stuck" queries, and more.

Read More
What’s !important #15: Boundary-aware CSS, Time-based CSS, Full-bleed CSS, and More

What’s !important #15: Boundary-aware CSS, Time-based CSS, Full-bleed CSS, and More

Read all about boundary-aware CSS, accessible grid lanes, time-based web designs, full-bleed, the customizable select, and new web platform features.

Read More