Service · Design Systems

Design System

Built from scratch at DePuy Synthes, to fix a real problem: designers moving between DePuy Synthes and Ethicon products would land on a different blue, a different icon style — because nothing forced consistency across brands. Now a service I offer directly.

Senior UX Designer · DePuy Synthes, J&J MedTech
Three-tier design system architecture diagram: Foundation Library, Toolkit and Brand Libraries, and Project Files.

The three-tier system architecture: Foundation → Toolkit / Brand → Project.

Why

Most "design systems" are really just component libraries

Many design systems I encountered in the early years of my UX career were, in fact, component libraries — static groups of buttons, dropdowns, and so on, that a designer would copy and paste into their work, then double-click three or four times to edit labels, icons, colours, sizes. With no governance and no guidance, these libraries can be detrimental to the future consistency, clarity, and usability of a designer's work.

Building this design system, I wanted any designer on the team to be able to access, use, and edit a full suite of components that adhered to our principles of visual design and usability — using the right components for the right hardware and the right brand, and only able to edit the top-level changeable elements (labels, status, hierarchy), not the colour, not the font, not an icon found on the internet.

That inconsistency was a real, recurring problem: designers moving between DePuy Synthes and Ethicon products would land on a different blue, a different icon style — because nothing forced consistency across brands. I built this system to fix that.

Architecture

Three tiers: Foundation, Toolkit, Project

A Foundation Library holds universal building blocks likely to be used across every product — global type styles, usage guidelines, global colour styles, design principles, grid and layout variables, and links and resources. Elements here are named generically (T-shirt sizing, not brand-specific labels) so the file stays comprehensive and reusable.

Toolkit Libraries adapt the Foundation to a specific context — a wearable device, for example — with layout, components, and patterns specific to that use case, pulling instances from the Foundation and nesting them into new, context-specific components.

A parallel Brand Library stream (Brand Elements, Brand Colours, Brand Guidelines) runs alongside the Toolkit stream. Both feed into Project Files — which should have both the Foundation library and their respective Toolkit library created before work begins.

Foundations

Colour — using semantic labelling

The brief for colour: establish a range of shades and tints based on lead brand colours, define clear additional messaging colours for alerts, warnings, and success states, and accommodate alternatives for other brands.

Primitive tokens

The raw, core colour values that serve as building blocks for colour usage in the system — Neutrals (Black through to White), Accents, and Transparencies.

Neutrals — Black 100 → Grey 200–850 → White 900 Accents — Accent 100 → 900 Transparencies — White @5–40%, Grey 400 @20%
Primitive colour tokens: Neutrals, Accents, and Transparencies swatch rows.

Primitive tokens — the raw values behind every colour decision.

Primitive tokens are never used directly in final designs or components, but they populate the styles used in Figma and provide the code for final dev handover documents. For the DePuy Synthes range, only Blue and Neutral needed defining — though the brand colour doubling as the interaction colour created real risk of misuse and overuse of the accent.

Semantic tokens

Semantic tokens apply meaning to selected colour values: Text (Primary, Secondary, Disabled, Inverse), Interaction (Active, Disabled), and Alert (Error, Warning, Success).

Semantic colour tokens grouped by Text, Interaction, and Alert.

Semantic tokens — telling the designer which colour to use, and why.

These tokens inform the designer which blue to use for a point of interaction, which neutral for a body of text, which yellow for an error modal — cutting out designer error from sampling a colour, or matching by eye, which still happens, and completely baffles me.

Foundations

Shape — extending design language into the screen

Align with the industrial design: wherever possible, the radii in a design should align with the physical device it's displayed on — even if that means deviating from or extending the system's corner radius variables. Doing this creates consistency across a product's overall shape language and function.

Full — 100% Large — 20pt Medium — 12pt Small — 4pt None — 0
Shape radius scale from Full through Large, Medium, Small, to None.

The radius scale — deliberately aligned to physical device geometry.

Concentric forms: shapes within a design should complement each other. When nesting elements, the radii being incorporated need to stay concentric — which sometimes means adjusting new radii to fit existing ones, calculated with a simple formula:

Inner Radius = Outer Radius − (Padding ÷ 2)

Do and don't comparison of concentric radius nesting.

Do / don't — concentric radii in practice.

Thinking this far ahead — populating the design system with shape decisions before later designs need them — protects usability by defining padding and radius for given components and groups at the foundation level, so everything built afterward stays visually consistent with the brand guides and meets human factors and usability requirements.

Components

Buttons — the right fit, every time

As a designer using a design system, I want an asset to drop in with a certain amount of decisions already made — I don't want to choose the brand or hardware set every time I drop in a new button. So I kept buttons in separate silos, where branding or hardware constraints determine sub-categories like padding, radius, and colour. It's all too easy to miss one and end up with a slightly different blue — exactly the inconsistency that pushed me to build this system in the first place. You choose your button from the right library, then tailor it to its purpose on screen.

Full button component grid: Primary, Secondary, Tertiary, and Destructive buttons across Small, Medium, and Large sizes, and Enabled, Pressed, Selected, and Disabled states.

Every button variant — priority, size, and state, atomically controlled.

No more dreaded double-click drilling

Relying on double-click drilling to reach the detail you want to edit invites errors and inconsistencies. By using Figma's component menu sets, and building components the atomic way — based on principles and design tokens — I kept tighter control over their application. Choose the priority and state, and the atomic components respond accordingly and consistently.

Figma button component panel showing Priority, Icon, State, and Size properties controlled atomically.

One component, every variant controlled from a single properties panel.

Components

Modals — information & action

Clarity & urgency: using modals to convey a message and call the user to action is a frequent feature across virtually all DePuy Synthes surgical products. Users must be alerted and informed quickly and clearly when something needs adjusting, correcting, or immediate intervention — different levels of risk requiring different levels of urgency, but always in the correct tone of voice, concisely.

Four types — Informational, Success, Warning, Error — cover the range of required contrast and urgency, prompting the user to respond appropriately. Modals without a clear call to action, or that didn't require the user to break from their operation, were removed entirely in favour of notifications instead.

Modal component grid: Informational, Success, Warning, and Error modals, each with Highlight and No highlight states.

Four modal types, each carrying its own level of urgency.

Placing the text body against the dark background (rather than the previous coloured background) maintains legibility and consistency across all modals — colour denoting urgency clearly and forthrightly, without being overbearing or creating a clash.

Principles

What the system had to be

A design system must be underpinned by design principles, have a clear purpose, and imbue those principles into components, templates, patterns, and styles — from the smallest element through every level, to the most complex and nuanced organism.

System Architecture Principles

Universal

Accessible, functional, and adaptable across various form factors.

Consistent

Standardized, uniform, and built on a centralized, shared baseline.

Modular

Scalable and flexible, designed to expand across platforms and systems while working in conjunction with other libraries.

Lightweight

Simple and low-maintenance, reducing time to value on new projects while being predictable and easy for new designers to adopt.

Visual Principles

Minimal

Free of unnecessary decoration, offering an honest, straightforward presentation of information.

Performant

Delivers responsive interactions, ensures optimized performance, and prioritizes user actions.

Robust

Adaptable, flexing from focused interactions to high density presentations of information.

Proven

Features battle-tested UI elements and familiar interaction patterns.

Orderly

Predictable, consistent, and easily understood.

Harmonious

Calm visual design, unified concentricity, and a shared form language, ensuring visual harmony across all touchpoints, including UI and hardware.

Process

How it was built

I taught myself design systems from scratch — an 8-week Memorisely course, done online, after office hours, alongside my day job. I later employed a highly reputable agency, PunchCut in California, to help expedite delivery. My role evolved over the course of the project: from initially building every element myself, to eventually overseeing delivery, having built the principles, the majority of base components, and set the definitions and expectations of the system, the style guides, and the component library.

There are many ways to build components — from a one-tool-to-rule-them-all approach, to a range of brand- or hardware-specific libraries. I like fast, iterative loops of build, test, breakdown, learn, build again, during discovery phases. It was only after I'd learned those lessons and defined a clear build path that I handed the reins of the component build to PunchCut, while managing the deliverables thereafter.

This is the best piece of work I did at J&J MedTech, and I am very proud to share that story here.

Now available as a service

Building a design system for your team?

I now offer design system consultancy directly — from foundation audits for teams with inconsistent component libraries, to full atomic system builds for regulated or multi-brand products. I work with companies and clients across MedTech, Consumer Electronics, and Digital Services who are hopping between products and landing on a different blue every time — exactly the problem this system was built to solve.

Design System Consultancy
Scoped to your team & product
  • Foundation & component audits
  • Atomic system architecture
  • Cross-brand governance
  • Team handover & training
Get in touch →