Design System Migration

Design System Migration

The Lesson

Migrating an existing multi-page site to a design system is a page-by-page operation, not a big-bang rewrite. The design system (tokens + components) must be complete and proven on one reference page before touching others. The migration ends with deleting the old stylesheets — if the old CSS files can be removed without breaking anything, the migration is complete.

Context

A 10-provider certification site had grown organically with ad-hoc CSS: css/styles.css (432 lines) and css/quiz.css (793 lines). Each provider page had inline styles for brand colors. There was no shared color palette, no spacing scale, no typography system. Adding dark mode, responsive improvements, or a new page meant duplicating CSS patterns.

The "Atlas" design system was created: system/tokens.css (design tokens) and system/system.css (component classes).

How the Migration Was Executed

  1. Design doc first. A full design document defined the token inventory, component library, and rollout order.
  2. Reference implementation. Azure's provider page and the quiz page were rebuilt with Atlas tokens as proof-of-concept.
  3. Landing page. The index page was ported, establishing the provider grid component.
  4. Provider pages in batches. AWS/GCP/Anthropic in one commit, then CompTIA/ISC2/GitHub/Databricks/NVIDIA/Cisco in another.
  5. Results page. Ported with legacy CSS variable bridging (--primary-color: var(--p-current)).
  6. Legacy CSS deletion. css/styles.css and css/quiz.css removed (1,225 lines deleted) with no visual regressions.

Key Insights

Related Lessons