[ディネシュ・クマール]

ISSUE #01 — 2026

Issue #01 case study

WEAVE

Design system


[01. Challenge]

The company grew fast across healthcare and real estate, and its products drifted apart. Inconsistent UI, duplicated components and slower releases became design debt.

[02. Strategy]

As UX Lead I built Weave: foundations first, WCAG 2.2 AA in the tokens, and an AI version that tools like Copilot, Cursor and v0 can read and follow.

[03. Results]

Development time down 39%, satisfaction up 36%, 45+ components, and one rulebook for designers, developers and AI.

Tools:FigmaStorybookTokens StudioStack:Angular 17PrimeNGTailwind
The productFig. 00 — product screens

Act 1

Finding the cracks

A FigJam map of every component, a UX audit, user testing and a competitive review (Material Design, Carbon) looked for what was holding the products together. Two rounds of interviews with 20+ creators tuned spacing and colour.

Fig. 01
Process map for the design system: brainstorming in FigJam, then research (UX audit, user testing, competitive analysis, iterations), then dev handoff with a PrimeNG-compatible, Tailwind-native build, design documentation and dev review. A note says the Design Systems team was led by Dinesh and worked along with the dev team and the operations team in the US.
How the work ran: brainstorming, research, testing and iterations, then handoff to the dev team

Three gaps

  • Inconsistent visual language
  • Components with no modularity
  • No documentation

The sharpest finding

Auditing the brand colours against WCAG 2.2 showed several failing on white.

Contrast ratio of each original brand colour on white
TokenRatioAgainst the 3:1 and 4.5:1 linesResult
Accent#E69F502.22:1Fails as text, border or icon
Success#10B9812.54:1Fails
Info#0EA5E92.77:1Fails
Danger#EF44443.76:1Fails as normal text
Focus glow1.16:1Decorative only

79.1%

of home pages have low-contrast text, the most common failure on the web

WebAIM Million, February 2025: 94.8% of the top 1,000,000 home pages had detected WCAG 2 failures. Industry context, not a result from this project.

34%

faster task completion for designers with a design system

Figma data science team, as published on Figma's blog. Industry context for the 39% later on this page, not a result from this project.

Act 2

The turning point: foundations first

With limited time, we fixed the fundamentals first: tokens for colour, type, spacing, radius and elevation, synced from Tokens Studio to GitHub and built Tailwind-native and PrimeNG-compatible.

Decision 01

Layered tokens

Every value resolves through layers, from global to brand to mode to result, so one change reaches every component. Tokens are synced from Tokens Studio to GitHub.

  • Colour
  • Type
  • Spacing
  • Radius
  • Elevation
How one token resolves, layer by layer
LayerExample token
Globalneutral.900
Brandbrand.primary.default
Modebg.interactive.primary.default
ResultPrimary button
Fig. 02
Token chain from neutral.900 to brand.primary.default to bg.interactive.primary.default, resolving to a button
Neutral.900 resolves through brand.primary.default to bg.interactive.primary.default
Decision 02

Fix by addition

Failing colours stayed. Each got an accessible companion token, so nothing already shipped had to change.

Contrast on white, before and after
TokenBeforeAfter
Danger3.76:16.47:1
Success2.54:15.48:1
Secondary text—5.33:1
Fig. 03
Weave colour documentation with primary, secondary, neutral and semantic ramps
Colour palette with WCAG: primary and secondary, 50 to 950
Decision 03

Focus you can see

A solid 2px outline with a 2px offset in #0D3133 replaced the faint glow, which measured about 1.16:1.

Contrast on white, before and after
TokenBeforeAfter
Focus indicator1.16:113.96:1
Fig. 04
Stark contrast checker showing 13.96:1 on a dark teal button, passing WCAG AA and AAA
Primary button: 13.96:1

Act 3

Building the components

With the tokens in place, the FigJam component map became a library: 45+ components, each specified state by state, built to match Angular 17, PrimeNG and Tailwind so designers and developers use the same names.

  1. Style guide

    Colour, type, spacing, radius and elevation, documented once and resolved through the layered tokens.

  2. Component library

    Every component specified state by state, in light and dark modes, in Figma and a live Storybook.

  3. Content guide

    Shared wording for labels and messages, so the products sound like one product.

Fig. 05
Overview of the Weave component library: colour swatches, typography, button groups, pagination, tree view and search box
The component library

Act 4

What it delivered

The test of a system is a real screen. Here are two dashboards before Weave and after: same data, one visual language.

Fig. 06
Add-on Packages dashboard rebuilt with Weave: a clear page title, a multi-bar chart in the brand palette, status tabs and a filterable table
Old product dashboard: a dark teal icon rail and sidebar list, a single gold bar chart and a dense data table
Product dashboard: before and after Weave

The same system carried into an employee app. Its older profile page is on the left and its home screen, built with Weave, is on the right: two different screens of one product, in one visual language.

Fig. 07a
Older employee profile page: one long page with basic, contact and account information stacked in cards, and a short quick-links list on the right
The employee app's older profile page
Fig. 07b
Employee home screen built with Weave: a slim side navigation beside a profile summary, check-in and shift timing, leave balance, attendance summary, upcoming holidays and celebrations in a clear card grid
The employee home screen, built with Weave

39%

less development time

Fig. 08
Line chart of productivity over time: with a design system the curve dips at first, then crosses the without-a-design-system line and climbs higher
The efficiency curve: a slower start, then a faster finish

90

accessibility score

Google PageSpeed Insights, desktop, on the product login page.

36%

higher satisfaction

Satisfaction rose 36%, at least 90% of the initial goals were met, and hand-off to developers improved.

Consistency saves countless hours that used to go into rework and misaligned styles.

Act 5

The update: an AI version

Weave now has a second kind of user: the tools that generate screens and code. Once the system was live, we shipped an update so they can read it too.

  1. DESIGN.md

    The Storybook exports every colour, type, spacing, radius and shadow token as one portable file. Drop it in a repo and AI tools write code that follows the system.

  2. One instructions file

    Weave and WCAG 2.2 merged into a single brief for generative AI: Angular 17, PrimeNG, AA conformance, with strict rules of precedence.

  3. Guardrails

    WCAG is never broken. Tokens are used by name, not hex. Missing values are flagged with a computed contrast ratio, never guessed.

It also lists 12 things the AI must never output, such as the accent colour as text on a light surface, white text on the accent fill, status shown by colour alone, or placeholder-only inputs.

Step 1, export. Storybook publishes every token, and its Design Markdown tab turns them into a single DESIGN.md.

Fig. 09
Storybook Color page with primary teal swatches 50 to 400, a side menu and a Preview and Design Markdown toggle
Storybook: every token, with a Design.md tab
Fig. 10
Color Design.md page explaining how to drop a DESIGN.md file into a repository for AI tools, with a code preview of tokens
DESIGN.md: the system as one file

Step 2, brief. Weave and WCAG 2.2 merge into one instructions file, kept as markdown for the tools and as a readable page for people.

Fig. 11
VS Code showing the Weave Design System x WCAG 2.2 Unified Instructions for Generative AI markdown file, with its rules of precedence, beside an AI chat panel
The instructions file, open in the editor beside an AI chat
Fig. 12
Browser page of the Weave Design System x WCAG 2.2 instructions, Part A primary palette table listing each token, its hex value and its usage
The same brief as a readable page: Part A tokens, B WCAG bridge, C WCAG 2.2, D output
Work

Selected case studies

View all case studies