How I design and build, all in one place.
Brand, foundations, components, patterns and products; documented once, so design and engineering never drift apart. I’d rather write it down properly than explain it again in every handoff.
Start here
Logo usage, colour, typography and voice & tone.
The tokens and rules everything else is built on.
The full UI library: variants, states and usage.
Proven, multi-component solutions to the problems that keep coming back.
Every product this actually ships into.
How to propose, build and ship a change.
Design principles
Every colour, space and radius is a token. A hardcoded value isn’t a shortcut; it’s a bug waiting to be found.
Empty, loading and error states get designed with the happy path, not after it. I’ve shipped enough half-finished flows to know that gap always shows.
Code owns what only code can render. Sanity owns the words and images that change often; nobody should need a deploy to fix a typo.
WCAG AA contrast and full keyboard support aren’t a follow-up pass. I check them before I call anything done.