← Selected work Design system · 2021–2026

A shared design system

The product needed more than a style guide could give it. I started a design system beyond the original brief, built it alongside the product, and scaled it to a second product line.

Role
UX Designer · Design system owner
Team
Engineers, V&V, designers, POs, PMs, managers
Timeline
2021–2026
Deliverables
Figma library · Tokens · Guidelines
Design system foundations and components: Noto Sans type scale in four weights, ten-shade blue, blue-grey and green colour ramps, and buttons, status chips, checkboxes, toggles, search field, dropdown and tabs in all their states

Figures on this page are reconstructions made for this portfolio, not original product screens.

Problem

The existing style guide covered basic visuals and only brief component states, with no usage guidance or sizing for new interfaces.

What I did

Initiated and owned a shared design system: tokens, components, a Storybook library and a contribution model with engineering.

Outcome

Shared by two programmes and eleven applications. One analyser family with four models was released to customers in August 2026.

Context

A global life sciences company was building new lab automation software. The only guidance available was an embedded-software style guide with typography, colours, icons, a few components and brief states.

The company’s broader guidelines were made for e-commerce websites, not product interfaces. Neither could support the new applications. There was no design system, and engineering was already waiting.

The problem

How do you build a design system while the product it serves is still being designed?

As the sole designer at the start, I saw that delivering the product would need a real shared foundation: complete component states, usage guidance and sizing. That wasn’t in the brief. Design and engineering capacity was limited, the timeline was tight, and any change to a shared component could later affect several products.

To find out what people needed, I interviewed nine people one to one, across UX design, management, software engineering, product ownership and V&V, and ran a workshop.

What we heard

“Is this design ready to build? I can’t tell what’s final and what isn’t.”
Software engineer
“Isn’t the style guide enough? Can’t we start designing right away?”
Product owner
“We need clear guidance on every state of a component, including the edge cases.”
Software engineers and V&V
“Can we build one system that works across programmes, based on our existing style?”
Management
“Where do I start? What should I use?”
New designer

Everyone needed the same thing: one clear source of truth for what was ready, how it behaved, and how to use it.

My role

  • Initiated the design system beyond the original brief, and owned it end to end
  • Set its priorities, roadmap and design direction
  • Partnered with frontend engineers on a shared component library in Storybook
  • Defined the collaboration model and contribution process between UX and engineering
  • Introduced impact assessment for changes to shared components, coordinated with managers
  • Reviewed implementation, and enabled other designers to contribute as the team grew
Ownership diagram: me as UX designer and system owner, connected to software engineers who implemented the library, UX designers who contributed components, and managers who coordinated capacity
Who did what. Collaboration relationships, not a reporting structure.

Key decisions

1

Make the case for a system nobody asked for

Why: Many on the team felt the existing style guide was enough to start. It had been written briefly for one embedded product: it had colours, type and icons, but many important components were missing and the states that existed were very limited. I showed the team exactly where it fell short and why it would not scale. I proposed keeping its foundations, so the design identity stayed, and building a full system on top of it, with a roadmap for how to get there.

Trade-off: It added work at the start of a tight schedule, and I had to earn buy-in before there was much to show. As the system grew, we also found contrast and sizing gaps in the original styles and refined the primary colour for accessibility. In return, the foundation was ready when the product grew.

Before and after: the style guide covered colour, typography, icons, buttons and dropdowns; the design system kept those foundations and added nineteen components, each documented with states, usage, sizes and edge cases
What the style guide covered, and what the system added on top of it.
2

Sequence components to match feature readiness

Why: Building everything at once was not possible. I detailed the foundations first, then the basic components, then the complex ones such as the date picker and table. The first product features were the ones that needed the fewest components, and I agreed feature order and readiness with the POs, the UX lead and the PMs.

Trade-off: Some features waited for the components they depended on. In return, engineering always knew what was ready to build. When a shipped component still needed iteration, we agreed the changes with engineering first, so nothing changed without the team knowing.

Simplified roadmap: audit and plan, foundations, basic components, complex components, a second programme about a year in, and the analyser release in 2026, with feature readiness agreed alongside every phase
The roadmap, simplified. Phases and milestones only; the original plan stays internal.
Build order: foundations, then basic components, then complex components such as the date picker and data table. Below, the seven steps every component went through: inventory, audit, model, discuss, create, review, publish
Build order, and the seven steps each component went through.
3

Use external components for complex controls

Why: Tables and date pickers need substantial engineering and testing. With limited capacity and a tight timeline, external libraries let product work move forward.

Trade-off: Less flexibility in styling, behaviour and variants, and replacing them later means another round of design, build and testing. We accepted that rework on purpose. Once the system was stable, we replaced the external components with our own.

Adopt temporarily: external libraries for tables and date pickers meant less custom work, but less flexibility in styling, behaviour and variants; once the system was stable they were replaced with internal components after another round of design, build and testing
External components, adopted on purpose and later replaced with our own.
4

Share the foundation, not every pattern

Why: About a year in, an analyser product joined with different needs: chemists building experiments, complex tables, longer labels and a hardware status view. I organised tokens into base, semantic and component layers, so products could share decisions while components adapted. Shared components like the navigation bar and masthead grew new variants.

Trade-off: The analyser’s hardware overview stayed product-specific instead of becoming a shared component. Less reuse, but the system stayed clean and each product kept what made it different.

One base token, two products. Teal and indigo are shown only to illustrate the change; the system uses blue.
One shared foundation of tokens, core components and app shell, used by lab automation as designed and by the analyser with new variants for more menu items and longer labels; the analyser hardware overview stayed product-specific
One foundation, two products. Schematic, not original screens.
Token layers from broad to specific: raw value #0071D0, base token blue/700, semantic token Primary/700, component token Surface/primary-interactive/default
Token layers: products share the lower layers, components adapt at the top.

Inside the system

Every component had its own page: variants, sizes, specs, states and usage rules. Designers, engineers and V&V worked from the same source.

Overview of the component library: documentation pages for button, badge, chip, checkbox, radio button, text input, dropdown, tab, navigation, data table, banner, tooltip, pagination, progress indicator and list
Part of the component library, one page per component.
Library structure: introduction, foundations (text, icons, tokens) and components grouped into actions, navigation, layout, form elements, data display and feedback; shared with stakeholders through Figma, Zeplin for specs and Storybook for coded components; every component page has variants, sizes, spec, states and usage
How the library was organised and shared.

Example: Button

Button page: six variants with definitions and three sizes with where each is used; medium spec with 16 px padding, 40 px height, 24 px icon and 16 px label; four states with definitions
Variants, sizes, spec and states. Each state is defined, not just drawn.

Example: Dropdown

Dropdown page: six states including disabled and error, the open menu showing six options with scroll, end and middle ellipsis for long options, and behaviour rules
States, edge cases and behaviour rules, the guidance engineers and V&V asked for.

Accessibility

Components were checked against WCAG for colour contrast, keyboard access, visible focus and touch target size. We checked all text against contrast requirements. The original primary colour failed, so I updated it for action buttons and all main actions. Every function could be operated by keyboard, with a visible focus indicator. Body text stayed at 14 px or larger for readability.

Text input was kept out of the MVP. The module displays were small touch screens mounted on the hardware, too cramped for comfortable typing, and the desktop apps used keyboard, mouse and barcode scanner. An on-screen keyboard, which would need nine languages and had no design yet, moved to the roadmap.

Accessibility checks: updated primary colour #0071D0 at 4.9 to 1 on white, passing WCAG AA; 48 px touch display buttons and 40 px desktop buttons; visible focus ring for keyboard navigation; every function operable by keyboard
Three checks applied to every component.

Pages rebuilt for this portfolio from the original documentation. Sample content is illustrative.

Outcome

2programmes on one shared foundation
11applications: 8 in lab automation, 3 in analysers
2026first analyser family on the system released to customers, with four models

Once the foundation stabilised, designers assembled new interfaces from existing components, and engineers reused implementations instead of building from scratch. Day to day, both programmes moved faster.

Storybook became a shared reference for UX, product management and engineering, which made design discussions more concrete and helped new designers onboard and contribute sooner.

Maintenance flow: add or modify a component with specs in Zeplin, review in Storybook with engineers, check in running products; bugs are recorded, prioritised and resolved
Ownership continued after release: every change was checked in Storybook and in the products using it.

Reflection

A design system is a product, not a deliverable. It needed ongoing ownership: reviewing variants, following up on bugs and weighing every change against the products already using it.

Temporary components also come with a cost: replacing them took another round of design, build and testing. Next time, I would put those dependencies on the roadmap from the start: the limitations we accept, what would trigger the replacement, and the cost of changing course.

Next case Samsung C&T Raemian home→
© 2026 · Youngkyu Kim Helsinki