Blogs

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

Soon We Can Finally Banish JavaScript to the ShadowRealm

Soon We Can Finally Banish JavaScript to the ShadowRealm

The proposed ShadowRealm API introduces a new kind of realm specifically designed for isolation, and only that.

Read More
Using CSS corner-shape For Folded Corners

Using CSS corner-shape For Folded Corners

I came across Kitty Giraudel’s folded corners technique. I’ve been on a bit of a corner-shape kick lately, so I figured that corner-shape could be used to create folded corners as well.

Read More
A Scrollytelling Gift for Mum on Mother’s Day 2026

A Scrollytelling Gift for Mum on Mother’s Day 2026

I will explain how my mum inspired this 2026 Mother’s Day scrollytelling experiment — but also, how she inspired my approach to dev and life.

Read More
Making Zigzag CSS Layouts With a Grid + Transform Trick

Making Zigzag CSS Layouts With a Grid + Transform Trick

Most grid layouts sit in neat rows, perfectly aligned, like soldiers in formation. But sometimes you want something with more rhythm like, say, a zigzag pattern. Here's how to do it with CSS Grid.

Read More
Fixed-Height Cards: More Fragile Than They Look

Fixed-Height Cards: More Fragile Than They Look

Getting a multi-column of cards to line up equally is is a headache we've all faced, and it gets even harder when working with fixed heights.

Read More
What’s !important #10: HTML-in-Canvas, Hex Maps, E-ink Optimization, and More

What’s !important #10: HTML-in-Canvas, Hex Maps, E-ink Optimization, and More

Developers have been experimenting with HTML-in-Canvas, a hexagonal world map-analytics feature, a web-based OS for e-ink devices, replacing image sources using the content property, and more. This is What’s !important #10.

Read More
The Importance of Native Randomness in CSS

The Importance of Native Randomness in CSS

We're getting new functions for generating random numbers in CSS! But the road to get here has been a long and winding one.

Read More
Let’s Use the Nonexistent ::nth-letter Selector Now

Let’s Use the Nonexistent ::nth-letter Selector Now

My shim might give the powers that be another reason to say native support isn't necessary, or if lots of people use my :nth-letter hack in the wild, the browser gods might recognize the need to implement it for real.

Read More
Recreating Apple’s Vision Pro Animation in CSS

Recreating Apple’s Vision Pro Animation in CSS

Putting CSS’s more recent scrolling animation capabilities to the test to recreate a complex animation of the Apple Vision Pro headset from Apple's website.

Read More