Articles
2026
- Dynamic Styling in Tailwind
Common patterns for dynamic styling in Tailwind.
Published on , in #technical
2025
- Attribute-Derived Styling
The DOM as the single source of truth.
Published on , in #technical
- Optional vs. Required Properties in TypeScript
The distinction between `prop?: T` and `prop: T | undefined`.
Published on , in #technical
- RTFM
You just have to RTFM!
Published on , in #technical
2024
- Single-Responsibility Classes for CSS
Exploring the limits of statically generated libraries.
Published on , in #technical
- Web 1.0, Personal Websites, and Reflecting on My Own Online Presence
Bringing back the chaotic, creative spirit of Web 1.0.
Published on , in #meta
2021
- Semantics in HTML and CSS
What do we even mean by “semantic”?
Published on , in #technical
2020
- Two Ways to Artificially Boost CSS Specificity
Sometimes a selector just needs to win.
Published on , in #technical
2018
- Wait, Is `tabindex` Not an Index?
What the actual… focus!?
Published on , in #technical
2016
- The `border` Confusion
Clarifying the difference between `border: 0` and `border: none`.
Published on , in #technical
- Legibility in Long Class Lists
Using a forward slash to separate CSS classes.
Published on , in #technical