Oribi

Three products, built by three teams, looked like three companies. Over twenty weeks I audited 1,400 screens, designed one shared system and built its React library with the teams.

Client

Oribi, Rotterdam

Year

2025

Type

Design system

Role

Design and build

Team

Me, Oribi’s design lead and six engineers from three product teams

Live

Docs site, private

Oribi’s design system: buttons, a tracking-number field, toggles, status badges, a blue colour ramp and the type specimen.

Twenty weeks

Eight of design, then twelve of build, with a release of the library every two weeks.

  1. Weeks 1–3An audit of 1,400 screens across the three products, and interviews with 11 designers and engineers

  2. Weeks 4–8Tokens, type and colour, then 86 components in Figma, reviewed with all three teams

  3. Weeks 9–14The React library, starting with the ten components every product already used

  4. Weeks 15–20The docs site, tokens exported to iOS and Android, and each team’s migration

The problem

The problem

Oribi’s freight platform has three products: one for shippers, one for carriers and one for warehouse staff. Each team had built its own buttons, its own tables and its own idea of blue. The audit found 23 blues and nine kinds of button.

That cost real time. A change to a status badge meant three pull requests, designers redrew the same table in every project, and customers who used two products felt they had moved to another company. Oribi wanted one system that three teams would choose to use.

Design

I began with the audit, then asked each team which parts they would give up first. Almost everyone said tables and forms, so the system starts there. Colour, type and spacing became tokens with plain names, so a designer and an engineer mean the same thing when they say “surface” or “muted”.

I drew 86 components in Figma, each with every state and a note on when not to use it. The three team leads reviewed them before any code existed.

  • An audit of 1,400 screens, sorted by pattern

  • Tokens for colour, type and spacing

  • 86 Figma components, every state drawn

  • A usage note on every component

Oribi’s documentation site on a desk monitor: the Button page with its variants, sizes, states, colour ramp and code.

Build

I built the React library on accessible primitives, so keyboard and screen-reader behaviour comes with every component. Each team adopted it one component at a time, next to the old one. The docs site shows every variant with live code, and the tokens are exported for the web, iOS and Android.

Library

React and TypeScript, on accessible primitives

Docs

A site with live examples for all 86 components

Tokens

Exported to web, iOS and Android

Adoption

One component at a time, with codemods for the old ones

The result

3 teams, 1 system

In five months, from the first audit to the last migration

−40%

Size of the average UI pull request once a team had moved over

9 → 1

Kinds of button across the three products

“A change to a status badge used to take three pull requests. Now it takes one, and nobody argues about blue.”

Sanne de Vries, head of product design, Oribi

Datum centre mark

Next project ·

03

Lumen Grid

Lumen Grid’s home page: the headline ‘The grid, hour by hour.’ above a chart of a day’s solar supply and total demand.

Have a product that needs designing and building?

Create a free website with Framer, the website builder loved by startups, designers and agencies.