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

CSS Animations That Leverage the Parent-Child Relationship
When we change an element’s intrinsic sizing, its children are affected, too. This is something we can use to our advantage.
Read More
An Introduction to JavaScript Expressions
A thorough but approachable lesson on JavaScript expressions excerpted JavaScript For Everyone, a complete online course offered by our friends at Piccalilli.
Read More
Building a Honeypot Field That Works
Honeypots are fields that developers use to prevent spam submissions. They still work in 2025. But you got to set a couple of tricks in place so spambots can’t detect your honeypot field.
Read MoreSequential linear() Animation With N Elements
Let’s suppose you have N elements with the same animation that should animate sequentially. Modern CSS makes this easy and it works for any number of items!
Read More
Masonry: Watching a CSS Feature Evolve
What can CSS Masonry discussions teach us about the development of new CSS features? What is the CSSWG’s role? What influence do browsers have? What can learn from the way past features evolved?
Read More
We Completely Missed width/height: stretch
The TL;DR is that stretch does the same thing as declaring 100%, but ignores padding when looking at the available space.
Read More
Getting Creative With shape-outside
There are so many creative opportunities for using shape-outside that I’m surprised I see it used so rarely. So, how can you use it to add personality to a design? Here’s how I do it.
Read MoreSame Idea, Different Paint Brush
Naturally, everything looks like code when I'm staring at a blank canvas. That's whether the canvas is paper, a screen, some Figma artboard, or what have you.
Read MoreTouring New CSS Features in Safari 26
Safari 26 adds:75 new features, 3 deprecations, and 171 other improvements. Here's all the CSS goodness you'll want to know about.
Read More