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

Should We Even Have :closed?
Is there really a difference between using :not(:open) and :closed? As always, it depends. Sunkanmi Fafowora explains why :closed is currently not a thing.
Read More
The “Most Hated” CSS Feature: asin(), acos(), atan() and atan2()
If we have a ratio that represents the sine, cosine or tangent of an angle, how can we get the original angle? This is where inverse trigonometric functions come in!
Read More
The Range Syntax Has Come to Container Style Queries and if()
Being able to use the range syntax with container style queries — which we can do starting with Chrome 142 — means that we can compare literal numeric values as well as numeric values tokenized by custom properties or the attr() function.
Read More
Headings: Semantics, Fluidity, and Styling — Oh My!
A few links about headings that I've had stored under my top hat.
Read More
Explaining the Accessible Benefits of Using Semantic HTML Elements
Why should you use a semantic <button> instead of a generic <div>? Accessibility, right? By how exactly does it help accessibility?
Read More
The “Most Hated” CSS Feature: tan()
Last time, we discussed that, sadly, according to the State of CSS 2025 survey, trigonometric functions are deemed the “Most Hated” CSS feature.…
Read More
Getting Creative With Small Screens
On mobile, people can lose their sense of context and can’t easily tell where a section begins or ends. Good small-screen design can help orient them using a variety of techniques.
Read More
Pure CSS Tabs With Details, Grid, and Subgrid
Can we use the <details> element as the foundation for a tabbed interface? Why yes, we can!
Read More
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