Anastasia Kuratnik ← TO THE MAP RU
01SYSTEM · «ELECTRON»

Design system for X-ray equipment

The interfaces across the product line all looked different, and developers hand-coded every component from PNG mockups. I built a UI kit, grew it into a design system and produced the components by vibe coding.

The product side of the same project — case 02. The radiographer’s interface →

ROLE
Design audit, UI kit, design system
DURATION
1 year 5 months
TEAM
Me, a second UX/UI designer, three developers
PLATFORM
Desktop

01How things were before

The company’s interfaces each lived their own life. There was no shared structure, the products looked different from one another, and no single brand came through. New flows had been piled on top of old ones for years, so the interfaces grew heavy — visually and functionally. Every new feature was written into the manual, which by then had grown past 100 printed pages that medical staff were expected to read before starting work.

  1. 01Different visual approaches inside a single company
  2. 02A printed manual for medical staff as the entry point into the interface
  3. 03Every component hand-coded by developers from PNG mockups
  4. 04Design debt growing, with no way to run a quick audit

02Design audit

I started with an inventory: went through the existing interfaces and marked what repeated and what was unique. The audit showed that consistency between the interfaces of one company was almost non-existent. Every device got its own look, barely related to its siblings. At the same time, the markup for any new component was written by hand from a PNG image, which took developers a lot of time for such a routine task. Design audits in this setup usually failed, and code review dragged on because different developers wrote components in different ways. Onboarding new colleagues was hard too — nothing was unified, neither in design nor in code.

AreaWhat is wrongWhat we propose
Typography
  • No clear visual hierarchy
  • Low text contrast
  • Broken letter spacing
  • Introduce a type system: H1, H2, H3, Body, Caption, Label
  • Set correct tracking and leading
  • Pick text colours to meet WCAG AA — contrast 4.5:1 and above
Colour
  • Too many shades of the brand colour
  • No systematic palette
  • Design a primary and an accent palette
  • Introduce system colours and their states
Icons
  • Icons drawn in different styles
  • Inconsistent sizes and colours
  • Unify the icon set
  • Draw custom icons for domain-specific functions
  • Write a guide on using icons
Buttons, inputs and selects
  • Elements styled inconsistently
  • No states
  • Bring the elements to one UI style
  • Add every system state
  • Set shared rules for spacing, shadows and radii
Grid and spacing
  • No single spacing system
  • Elements look out of sync
  • Introduce an 8pt grid
  • Define rules for inner and outer spacing
  • Write a guide on using spacing
Accessibility
  • No focus states
  • Forms and tables unreachable by keyboard
  • Add focus rings
  • Check accessibility against WCAG
  • Improve keyboard navigation
The audit across six areas: what we found and what we proposed instead

03The UI kit and the move to a system

Together with the second designer we redesigned the first screens and got the direction approved by the stakeholder. Then I built a UI kit covering every component on those screens. While working on it I realised that larger changes were needed, so I decided to get a design system project approved. I ran a presentation for management about the need for a single design system — to speed up production and to scale the brand. After that I talked to the developers and explained how the system would affect their day-to-day work, and why production had to move away from legacy. Some supported the idea, others insisted on the familiar way of working. I decided to start on the design system, move a few screens fully onto components, offer a test drive to the part of the engineering team that was on board — and, if it went well, present the switch together with them to the sceptical half.

  1. 01Redesign of the first screens, direction approved
  2. 02A UI kit with full component coverage
  3. 03Defending the move from a kit to a system in front of the stakeholder
A matrix of input fields: columns for Default, Hover, Focus, Pressed, Typing, Text Entered, Error, Disabled
Input field. 8 states, including typing and filled — the two that usually get forgotten
Sliders: the handle and track broken down at the top, below a matrix of Default, Hover, Active and Disabled states
Slider. Four kinds — plain, with ticks, with a value and a range — in four states each
Rows of icons: navigation, patient positioning, imaging modes Part of the set
Icons. A shop window, not the whole set. It was drawn for equipment functions that no ready-made library covers

The system on a real screen

The new screen: four labelled panels, a patient card, a positioning illustration The old screen: a dense grid of teal elements on black, with no section headings BEFORE AFTER
  • These are the very first screens the kit was assembled from
  • The buttons, fields and selects on them come from the library, not drawn again
  • A closer look at this redesign is in case 02

04Components through vibe coding

There were not enough developers to set up the library: they were busy with the product, and every component additionally went through a long code audit. I proposed building the components with AI and vibe coding — and defended the decision. That made it possible to keep growing the design system without pulling engineering away from their work. Vibe-coded components went through a quick code review to catch the model’s mistakes, and were then approved in Storybook.

  1. 01The reason: not enough developers and a long code audit
  2. 02The routine of producing components went to AI
  3. 03Decisions and rules stayed with design
LIVE COMPONENTS
STATE
ICONS ON BOTH SIDES
ICON ON THE RIGHT
ICON ON THE LEFT
NO ICON
ICON ONLY
  • TOKENS
  • Default#20a19b
  • Hover#00948f
  • Pressed#113a38
  • Focus#0a84ff
  • Disabled#383b3d
  • Error#ff453a
RESULT

A week → three working days

The time a designer needs to assemble a typical screen feature dropped from a week to three working days: the components and tokens already exist, so there is nothing left to invent or re-approve. The radiographer interface — case 02 — is built on this system.