RCWMAS Global
HomeAboutProductsTechnologyCareersContact
Sign inGet started free
R

RCWMAS

Build with RCWMAS

Move from exploratory tooling to systems that teams can trust in production.

Product strategy, engineering, AI workflows, and infrastructure are delivered as one operating model.

Start a conversationExplore products
RCWMAS Global

Reshaping Civilizations With Machines and Systems

RCWMAS Global builds intelligent platforms and digital infrastructure for the future economy.

contact@rcwmas.global

Company

  • About
  • Careers
  • Contact

Products

  • OMEN
  • Mediabay
  • Justify

Resources

  • Technology
  • Documentation

Legal

  • Privacy Policy
  • Terms of Service

© 2026 RCWMAS Global. All rights reserved.

PrivacyTerms
Research & Publications
Article12 min read

Building Design Systems That Scale

How we built ColoursUI to serve multiple products while maintaining consistency and developer experience.

RCWMAS Engineering·June 15, 2024
design-systemstokensuideveloper-experience

The Problem With Ad-Hoc UI

Most product teams start with a handful of components and a shared colours file. Six months later, they have three shims for the same button and four interpretations of "primary colour." The design system conversation usually begins as a refactor and ends as a philosophy.

At RCWMAS we faced this problem across six simultaneous products. The answer was ColoursUI — not a component kit, but a layered token architecture with compiler-enforced contracts.

Layers of the Token System

ColoursUI separates concerns into three tiers:

  • Primitive tokens — raw values (hex colours, pixel sizes, weights). Never used directly in components.
  • Semantic tokens — intent-mapped aliases (--color-text-primary, --color-surface). Components consume only these.
  • Component tokens — component-specific overrides scoped to a namespace. Prevents bleed between design contexts.
  • The three-layer model means you can retheme an entire product by touching only the semantic tier — without touching a single component file.

    Enforcing the Contract

    A design system is only as good as its adoption. We use a combination of lint rules and TypeScript's type system to make "going off-piste" a compile error rather than a review comment.

    // Bad — direct primitive consumption (lint error)
    const label = ...;

    // Good — semantic token via CSS variable const label = ...;

    Developer Experience Tradeoffs

    Enforcing contracts adds friction early but removes ambiguity at scale. The teams that adapted fastest were those with the most cross-product work — they immediately valued a single source of truth over local shortcuts.

    What We Learned

    Design systems are not finished products. They are living contracts between design intent and implementation reality. The governance model — who can change a token and how — matters as much as the tokens themselves.

    This article is part of an ongoing series on RCWMAS engineering decisions.

    Back to Research & Publications

    Related Articles

    • Colour Theory at Scale: How We Built ColoursUI

      From perceptual uniformity to accessible contrast ratios — the engineering and aesthetic decisions behind a production-grade colour system.