← All work
Case 03UnitedLex2024—25Design Systems

A design system, one person deep

LexDoor needed a whole interface and a design system to hold it together, both at the same time. The design team available for the job was exactly one person. Hi.

Role
Product Design Specialist
Team
A global team, and a design team of one
Product
LexDoor, an enterprise legal platform
Focus
Design system · Tokens · UI
LexDoor typography scale and application colour tokens

01 Why a system

Building the plane and the factory

When I started designing LexDoor, there was no interface yet, and no design system either. The product covered a lot of ground: service intake, data reports, a knowledge base, a form builder and incident response tools. That's a lot of screens for one designer to keep consistent from memory.

So I started the system on day one, in parallel with the product itself. Not because it's fashionable, but because I knew that future me would be very grateful, and future engineers even more so.

LexDoor logo with the UnitedLex logo
Fig. 01LexDoor, a UnitedLex product. Work in English, with stakeholders across business, tech and product.

02 Foundations

A brand font that runs a little large

The brand guidelines went straight into the system: colour styles, icon weights, text styles. The interesting bit was the typeface. Poppins is rounded and generous, so at the usual sizes it looks noticeably bigger than a neutral font like Inter.

Instead of fighting it screen by screen, I changed the foundation: the base rem went from the usual 16px down to 14px. Everything that inherits from it suddenly felt right-sized.

Poppins and Inter set at the same size, with Poppins appearing larger
Fig. 02Same size, different presence: Poppins, the brand font, next to Inter.
Typography scale and application colours, each linked to a token
Fig. 03Brand colours and typography applied to the interface, and every one of them tokenized.

03 A 7px rhythm

Everything in multiples of seven

A happy side effect of the 14px rem: paddings, margins, gutters, thicknesses, heights and widths could all line up on multiples of 7px. It gave every component and every screen the same quiet rhythm, which is the kind of thing nobody notices until it's missing.

Anatomy of a modal with every spacing measured in multiples of 7px
Fig. 04The anatomy of a modal after the switch to a 14px rem.
Anatomy of a molecular component built on the 7px grid
Fig. 05The same rules, one level up: a molecular component.

04 Built to be reused

Components that behave

The most important part of a design system isn't how it looks. It's whether its components are well structured, consistently named and fully reusable in every Figma file that depends on them. Pretty but fragile helps nobody.

The text field component and its variants and properties
Fig. 06The humble text field, set up properly so it can be reused anywhere without surprises.

05 A place to look things up

Tokens that designers and developers both read

A design system becomes really useful when it's more than a pretty file. I organised the tokens semantically, so designers and developers could look things up in the same place and speak the same language. Every token maps to a component value, and those values match the components that were actually built.

Style libraries and variables were kept in sync, so the design file and the codebase stayed close friends instead of distant cousins.

A button component with its tokens annotated
Fig. 07A simple button and the tokens behind it.
The full list of variables in the design system
Fig. 08All the variables, set up so the system stays flexible.

06 What it changed

Faster stories, friendlier handoffs

Like every design system, this one stayed home: it lives on in UnitedLex's Figma, and I kept a copy to remember how it grew.

3wins

Three things got noticeably better. UX stories moved much faster, conversations with developers got easier, and the product stayed consistent as it grew. Not bad for a team of one.

Curious? The design system file is open to explore: LexDoor Design System on Figma ↗

Say hi. I'll try not to overthink my reply.