Skip to main content

Design Systems

A design system is more than a component library. It's the combination of design tokens, reusable components, interaction patterns, usage guidelines, tooling, and governance that keeps a product's UI consistent as it scales. Done well, it accelerates development, creates a shared vocabulary between designers and developers, and bakes accessibility in from the start.

Choosing a Design Approach​

Every frontend project starts with a design question. The answer depends on what the client brings to the table.

Client has no design preference​

Pick an existing design system and theme it to match the brand. This is the fastest, cheapest path and produces good results for most projects.

  • MUI β€” best when you need a large, complete component set out of the box.
  • shadcn/ui β€” best when you need full control over markup and styling.

Client has an existing design system​

Evaluate its maturity:

  • PDF / brand guidelines only β€” extract colors, typography, and spacing into tokens; pick a component library to theme.
  • Figma file β€” check if it maps to an existing library (Material, Ant Design, etc.). If so, use that library and customize.
  • Token set / coded components β€” integrate directly; assess quality and coverage gaps.

Client wants custom design​

  • Engage a UI designer. Figma is the standard tool.
  • Structure the component hierarchy using Atomic Design.
  • This is the most expensive option β€” factor it into the estimation.

Component Library vs. Design System​

AspectComponent LibraryDesign System
ScopeUI components in codeTokens + components + docs + patterns + Figma + governance
Design tokensOptionalCore part
Figma kitUsually not includedIncluded
DocumentationAPI docs onlyUsage guidelines, patterns, do's and don'ts
GovernanceVersion + publishContribution model, review, adoption tracking
Team to maintain1–2 developersCross-functional (design + engineering)

Many teams think they need "a design system" when they actually need "a component library with some tokens." Be honest about what the project really requires β€” the full design system investment is significant.

SystemMaintainerReact LibraryNotes
Material Design 3GoogleMUIDynamic color, tokens, most widely adopted
Fluent 2Microsoft@fluentui/react-componentsGood for Microsoft ecosystem projects
CarbonIBM@carbon/reactStrong data visualization (Carbon Charts)
Ant DesignAnt GroupantdPopular for enterprise/B2B, especially in Asia
shadcn/uiCommunityBuilt on Radix + TailwindCode distribution, not a library β€” recommended
RadixWorkOS@radix-ui/react-*Unstyled accessible primitives, foundation for shadcn/ui
React Aria / SpectrumAdobereact-aria-componentsBest-in-class accessibility primitives
MantineCommunity@mantine/core100+ components, batteries-included
Chakra UICommunity@chakra-ui/reactGood DX, theming, accessibility

Discovery resource: Design Systems Repo

tip

For most Aliz projects, start with shadcn/ui (maximum flexibility) or MUI (maximum out-of-the-box completeness). See the Tech Stack overview for the full recommendation.

Design Tokens​

Design tokens are atomic design decisions stored as platform-agnostic key-value pairs β€” colors, spacing, typography, shadows, border-radius. They are the bridge between design tools and code.

  • W3C DTCG spec β€” the first stable specification landed in October 2025. This is the standard format going forward.
  • Tooling:
    • Style Dictionary (Amazon) β€” most widely used token transformer. Converts tokens to CSS custom properties, SCSS, JS, iOS, Android.
    • Tokens Studio β€” Figma plugin with DTCG support; syncs tokens between Figma and code repos.

Even if you're not building a full design system, extract design decisions into CSS custom properties early. It's cheap to do and expensive to retrofit.

Example DTCG token file:

tokens/color.json
{
"color": {
"primary": {
"$type": "color",
"$value": "#0066cc"
}
}
}

Figma–Code Workflow​

Figma Variables (introduced 2023) provide a native way to define design tokens inside Figma. The challenge is getting them into code reliably.

Common workflows:

  • Tokens Studio plugin β†’ export DTCG JSON β†’ Style Dictionary β†’ CSS/code
  • Figma Variables β†’ Figma REST API β†’ build pipeline
  • Dev Mode β†’ inspect specs β†’ manual or AI-assisted code generation

The key principle: tokens should have a single source of truth β€” either Figma or code, not both maintained independently.

note

The Figma-to-code token pipeline is still maturing. Expect some manual steps. The W3C DTCG spec stabilization in 2025 should improve tooling interoperability.

Atomic Design​

Brad Frost's Atomic Design methodology, mapped to React:

  • Atoms β€” <Button>, <Input>, <Badge>, <Icon> β€” basic HTML elements styled with tokens.
  • Molecules β€” <SearchField> (input + button), <NavItem> (icon + text) β€” small functional groups.
  • Organisms β€” <Header>, <ProductCard>, <DataTable> β€” complex, self-contained sections.
  • Templates β€” Page layouts with placeholder content.
  • Pages β€” Specific instances with real data.

A good mental model for structuring a component library. Not every team follows it strictly, but the vocabulary is widely understood.

Building a Custom Design System​

When to build: strong brand identity, unique interaction patterns, multiple products sharing UI, dedicated design team available.

When NOT to: small team, single product, tight timeline, no designer. Use an existing system instead.

Approaches​

  • Extend existing β€” take shadcn/ui, customize tokens and components. Lowest cost.
  • Build on primitives β€” use Radix or React Aria for accessibility, add your own styling. Medium cost.
  • From scratch β€” only for large organizations with dedicated teams. Highest cost.

Tooling​

  • Storybook β€” component development environment, documentation, visual testing.
  • Chromatic β€” visual regression testing and review workflow (by the Storybook team).

Governance​

  • Semver for versioning, changelog for every release.
  • Contribution models: centralized (dedicated team owns it), federated (product teams contribute), or hybrid.
  • Every component needs: usage guidelines, API docs, accessibility notes, and live examples.
caution

Building a design system from scratch is a multi-month investment. For most consulting projects, extending shadcn/ui or theming MUI is the right call. Factor the cost into your estimation.