Blog
Notes & updates
Build logs, design decisions, and the occasional rant about border-radius.
Recent posts
Naming six colors so they don't collide
Categorical, not semantic — why the accent tokens are named yellow, pink, and blue, not primary and success.
What actually needs a client script
An audit of every <script> tag in the theme, and why most components don't have one.
Shipping a full component library in a weekend
Notes on building buttons, cards, and forms fast without reaching for a UI kit.
Why we went with hard shadows instead of blur
The case for zero-blur, offset shadows in a design system built for clarity.
Square corners, on purpose
Zeroing every border-radius, and why native form controls fight you on it.
Tokens over utility soup
How seven CSS variables replaced a hundred one-off Tailwind classes.