Menaia Design System cover: brand guideline and component pages fanned out at an angle behind the menaia design system logotype, with an Open Sans type specimen on a purple panel

Building a design system from zero

TLDR: Menaia had no brand identity and no design system. I built the system from scratch then carried it through Figma, into Storybook, and then into Claude's design system feature.

Objective

Menaia had no brand and no shared parts. The objective was a system the whole team could build from.

That meant getting the brand agreed on first, then turning it into something both design and engineering could actually pull from. What I delivered:

A brand identity the team was aligned on Type, colour, and tone agreed on with stakeholders in workshops.
Reusable styles One token layer underneath everything, so a change lands everywhere at once.
Reusable, responsive, accessible components Built once, working across mobile, tablet, and desktop, with contrast and states handled in the component.
A Figma library for designers Components and variables in Figma, so designers pull in and customize what they need quickly.
A Storybook library for engineers The same components in code, so engineers pull from the library instead of rebuilding them.
V2, the system rebuilt in Claude Design The system rebuilt natively in Claude, so it produces on-brand screens without extra prompting.
Foundations

Every token has two layers: a primitive value, and a semantic name on top of it that says what the colour means, not what it is.

A screen references bg-app or text-secondary, never a raw hex. Rename the meaning and every screen follows. Change the primitive underneath and nothing breaks. The Style Guide page documents each one, so the team knows what to use in all the different scenarios.

The Style Guide page inside the Figma file: every semantic token, mapped to its primitive, in both themes. Documentation for what it's used for and why.
Figma Variables

There were no components to build from, every screen started at zero. The task: a system fast enough that it never held the team back.

I built the variable library first, so nothing downstream had to wait on it. Light and dark flip with one switch, and layout is a variable too, so components resize across every breakpoint. No duplicate frames to maintain.

The Colors collection: every token carries a light and a dark value side by side, so a frame's theme is one switch, not two different frames.
Storybook Components

Storybook is where the system met the codebase. I paired closely with engineering so every component, once built in Figma, became reusable in code too.

New patterns got documented with real controls: field names, validation, error states. These are the foundations we needed to set so all of our work stayed consistent, something worth putting in place and investing the time in, so the system could keep improving instead of drifting apart.

A screenshot of our live Storybook library, so code always stays in sync with design and the Figma library.
Claude Design Components

I wanted Claude Design and Claude Code to take an idea straight to production, but pulling the system in from Storybook or Figma kept falling apart.

So I rebuilt the tokens and components directly inside Claude instead of asking it to copy them over. That's what made it hold: the same styles now run across the web app, the mobile app, and the marketing site, from one source instead of three.

The component set rebuilt in Claude Design, light and dark off the same tokens: reusable and accessible styles to be shared across web and mobile.
Brand Guidelines

Beyond the app, I put together brand guidelines: logo usage, do's and don'ts, spacing, colour, for anyone outside the team working with the brand.

A source of truth third parties and vendors can rely on, instead of guessing and going back and forth.