serbinov.com RUEN
frame/caseecom.tech
← Work

One token system for three design systems

Companyecom.tech, formerly Samokat.tech
Years2024–2026
RoleDesign System Lead
ProductsSamokat, Megamarket
ecom.tech
70+back-office products on the design systems
3 → 1three design systems, one token system underneath
40%faster feature delivery, per internal audit

Context

ecom.tech builds the tech behind Samokat and Megamarket. Inside the company there are 70+ back-office products for staff, warehouses and sellers. And “back office” is broader than it sounds: the apps serve everyone from couriers and warehouse workers to people operating delivery drones

I led the back-office design systems. Each had its own stack and its own teams. I worked hand in hand with the Director of Product Design

FunboxReact Native
RampaReact
SpineVue · SwiftUI · Compose
one token system
Map of the ecom.tech design systems and their stacks
The ecom.tech back-office design systems

Problem

Three independent design systems meant four kinds of pain: UX and UI drifted apart between products, decisions weren’t aligned, support was expensive, and moving between systems was hard for teams

  • Mockups full of old components nobody maintained anymore
  • Components hacked together on the fly, with no tokens and no review
  • Some components existed in design but not in code
  • No shared way of organizing Figma files

Approach

Don’t merge three systems into one: give them a shared foundation instead. Tokens became the common language between design and engineering, and between the design systems themselves. Components stay in their own stacks but are described by the same tokens

  • Designers understand the constraints of code: tokens, performance
  • Engineers join design discussions early and can assemble a working interface without a designer
  • Cross-functional workshops and shared processes for design and engineering
  • Legacy decisions are made together with engineering

System

Color semantics

A token name is built from six parts. Only the category and the property are required; the rest is added when needed

--colorcategory-notificationspecialization-backgroundproperty-brandrole-strongvariant-hoverstate
Structure of semantic color tokens: category, specialization, property, role, variant, state
Every value of every part of a token name

Put together, the parts give tokens like --color-background-brand-strong-hover or --color-text-on-strong. Specialization handles exceptions: for example, in the dark theme a notification’s background is darker than other components’

Sizes, spacing, radii, typography

space-1 … space-11spacing from 4 to 80 px
size-1 … size-11sizes from 4 to 80 px
radius-1 … radius-4, radius-max4, 8, 12, 16 and 800 px
button-radiusa dedicated token: 8 px by default, 800 px in merchant products
header-1 … header-3one token, a different typeface in each system: SF Pro Display, Roboto, MegaSans

Themes

We rebuilt the tokens to support multiple themes and gave all themes their own page in Storybook. The tokens came with documentation for everyone on the teams

Same tokens, different themes in Rampa and Spine
Same tokens, different themes: Rampa and Spine

Motion

Until summer 2024 the design systems had no motion at all. We introduced easing and duration tokens and described when to use which. Animated components, transitions and micro-interactions followed in Funbox, Rampa and Spine

Animated components in Funbox, Rampa and Spine
Motion in products built on Funbox, Rampa and Spine
ease-in-out · 500 msmovement and push, the default
ease-out · 500 msan element appearing
ease-in · 400 msdisappearing without user action, like a snackbar
linear · 200 msopacity and color

Processes

  • UX review of components and a self-check list for product designers
  • Accessibility (a11y): component audit, guidelines, contrast
  • How-tos for change requests and bug reports
  • Release digest, icon guidelines
  • Component usage analytics
  • Two-week sprints: one component per sprint

Design systems

RampaReact
  • 100 components
  • 45 products
  • Complex tables and theming
FunboxReact Native
  • Replaced 46 legacy components with our own
  • 8 projects
  • 90% of bug reports closed the same day
SpineVue · SwiftUI · Compose
  • 41 web components and 29 mobile
  • Moved to the shared token system
  • Tokens adopted by most merchant teams

Result

  • 70+ products on three design systems with a shared token foundation
  • Features ship 40% faster: an internal audit compared before and after on tasks of similar size and complexity
  • NPS went up for all three design systems over the year
System20242025
Rampa7.48.6
Spine7.58.1
Funbox7.097.8

One foundation, many products

Seller web interfaces built on the shared tokens
Seller tools: batch processing and virtual product photography
Warehouse and courier mobile interfaces built on the shared tokens
Warehouse and delivery apps, light and dark themes
Back-office web interfaces built on the shared tokens
Back office: assortment and shift planning