← AI Lab

I built a design system, then taught it to catch drift.

Exploring how design changes can be detected, explained, and resolved across Figma and React.

Role

Design engineer. I designed it and built it with Claude Code.

Stack

React, Storybook, Tailwind, GitHub Actions

Tools

Figma, Claude Code

Year

2026

Live proof

Open the Storybook

Every component in every state, in light and dark. The tokens on these pages are read straight from the source file.

vandana-thota.github.io/design-systemOpen ↗ Storybook page for the design system's color tokens, showing background and text tokens in light and dark
Challenge

Designs change, but their implementations don’t always keep up. A button color changes, an illustration is added, or spacing is updated in Figma, while the React component remains unchanged. These differences are easy to miss during handoff.

What I did

I built a comparison engine that checks supported Figma properties and component structures against React and CSS. Then I created an interactive playground where designers can experiment with changes, detect drift, inspect findings, and simulate fixes.

Results

In a live Figma experiment, the checker detected button-color and structural differences. I translated these technical findings into a visual playground that makes design drift easier to understand. All 20 comparison-engine tests passed.

From detecting drift to making it understandable

The first comparison results were technically useful, but not always intuitive. A structural change, for example, could appear as a collection of individual vector differences instead of a meaningful component-level issue.

I wanted to make those findings easier to explore visually, without requiring someone to read a terminal report.

Break the design. See what drifts.

Change the button color, add an illustration, or adjust the Card radius. Run the checker to see what differs from the React implementation, then explore how a fix could be applied.

Runs only in your browser, on a sanitized design specification. It never edits a Figma file or production source code.

Open full playground ↗

What powers the playground?

Behind the interface is a comparison engine that maps supported design properties to React and CSS values, checks component structure, and generates structured findings. The visual layer makes those findings easier to inspect.

Comparing design with implementation

Comparison engine code that compares expected design values with implementation values and returns MATCH, DRIFT or NOT CHECKED
The comparison engine maps design properties to implementation values, normalizes supported differences, and produces MATCH, DRIFT, or NOT CHECKED findings.

Testing the comparison logic

Terminal output showing all 20 comparison-engine tests passing
Twenty automated tests passed, covering color differences, structural changes, CSS value resolution, unsupported properties, and sanitized design data.

From design changes to engineering review

  1. Figma design updated
  2. Compare design and code
  3. Inspect differences
  4. Propose implementation change
  5. Validate and review

The playground demonstrates how teams could identify and discuss differences before implementation changes are reviewed. Simulated fixes make the proposed result visible without modifying the actual repository. It doesn’t open pull requests or change production code.

Results
16baseline checks matched in the original Figma comparison
2differences detected after the Figma Card was modified
20/20automated Figma comparison-engine tests passed

The baseline and modified-Card results come from separate runs.