Design Systems × AI

From Brand Identity to
Automated Generation

A practical guide for design architects

February 2026 · Prepared by Bob for Ako

The Vision

💬 "Create a
landing page
for Feature X"
🤖 AI reads
design system
+ brand rules
✨ Generates
on-brand UI
using your tokens

This isn't science fiction. It's achievable today —
if you structure your design system for AI consumption.

What Is a Design System?

It's NOT just a component library.

Common Misconception

  • A Figma file with buttons
  • A React component library
  • A style guide PDF
  • A color palette

Reality

  • Design principles (the why)
  • Design tokens (the values)
  • Component library (the what)
  • Pattern library (the how)
  • Documentation (the rules)
  • Governance (the process)

Think: operating system for your product's visual language

The Design System Layer Cake

📄 Pages / Screens — Assembled from patterns
🧩 Patterns — Solutions to UX problems
⚙️ Components — Reusable UI elements (Button, Card)
🎨 Visual Style — Brand personality in pixels
⚛️ Design Tokens — Atomic values (color, spacing, type)

Each layer builds on the one below · Change a token → everything updates

Design Tokens: The Atoms

Every visual decision → a named, structured value

CategoryExamplesWhat It Controls
Colorsbrand-primary, text-secondary, errorEvery color in the product
Typographyfont-family, size-base, weight-boldAll text styling
Spacingspacing-sm (8px), spacing-md (16px)Padding, margins, gaps
Elevationshadow-sm, shadow-md, shadow-lgDepth & layering
Motionduration-fast (200ms), easing-defaultAnimations & transitions
Border Radiusradius-default (8px), radius-fullCorner rounding

W3C Design Tokens standard · Platform-agnostic · Single source of truth

Two-Tier Token Architecture

Primitive Tokens

Raw palette values


{
  "blue-500": "#3B82F6",
  "blue-700": "#1D4ED8",
  "neutral-900": "#171717",
  "red-500": "#EF4444"
}
      

⚠️ AI shouldn't use these directly

Semantic Tokens

Tokens with meaning


{
  "brand-primary": {
    "value": "{blue-500}",
    "description": "CTAs,
      links, active states"
  },
  "feedback-error": {
    "value": "{red-500}",
    "description": "Error
      states only"
  }
}
      

✅ AI uses these — intent is clear

Defining Your Visual Identity

 Design Principles — 3-5 statements that guide all decisions

"Clarity over cleverness" · "Accessible by default" · "Content first"

 Mood Boards — Visual references that capture the feeling

Colors, typography, UI references, competitor analysis

 Style Tiles — Test visual decisions without full mockups

Colors on buttons, type hierarchy, a card component, icon style

 Token Foundation — Every decision as a named value

tokens.json — the "constitution" of your design system

Part 2

From Figma to Code

Design tokens → Style Dictionary → Components → Storybook

The Token → Code Pipeline

🎨 Design
Decisions
📄 tokens.json
(W3C format)
⚙️ Style
Dictionary
💻 Platform
Output

Outputs from one source:

├── variables.css — CSS custom properties

├── tokens.scss — SCSS variables

├── tokens.ts — TypeScript constants

├── colors.xml — Android resources

└── tokens.swift — iOS/macOS

Tools: Style Dictionary (Amazon) · Tokens Studio (Figma) · Specify

Design Tokens in Practice


{
  "color": {
    "brand-primary": {
      "$value": "#3B82F6",
      "$type": "color",
      "$description": "Primary brand color — CTAs, links, active states"
    }
  },
  "spacing": {
    "md": {
      "$value": "16px",
      "$type": "dimension",
      "$description": "Default component spacing — most common value"
    }
  },
  "radius": {
    "default": {
      "$value": "8px",
      "$type": "dimension",
      "$description": "Standard border radius for cards, buttons, inputs"
    }
  },
  "shadow": {
    "sm": {
      "$value": "0 1px 3px rgba(0,0,0,0.08)",
      "$type": "shadow",
      "$description": "Subtle lift — cards at rest"
    }
  }
}
  

W3C Design Tokens format · $description is what makes it AI-readable

Generated CSS Custom Properties


:root {
  /* Colors */
  --color-brand-primary: #3B82F6;
  --color-brand-primary-hover: #2563EB;
  --color-text-primary: #1F2937;
  --color-text-secondary: #6B7280;
  --color-background: #FFFFFF;
  --color-surface: #F9FAFB;
  --color-border: #E5E7EB;
  --color-error: #EF4444;
  --color-success: #22C55E;

  /* Spacing (base-4) */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;  /* Most common */
  --spacing-lg: 24px;
  --spacing-xl: 32px;

  /* Typography · Radius · Shadows */
  --font-sans: 'Inter', system-ui, sans-serif;
  --radius-default: 8px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.12);
  --transition-fast: 150ms ease;
}
  

Components consume variables · Change token → everything updates

Atomic Design Hierarchy

Brad Frost's methodology for component composition

⚛️
Atoms
Button · Input
Label · Icon
🧬
Molecules
SearchBar
FormField
🦠
Organisms
Header · Hero
ProductCard
📐
Templates
Page layouts
Grid systems
📄
Pages
Complete
screens

AI needs to know: which atoms exist → don't reinvent, compose

Example: Button Component


// Button.tsx — Uses ONLY design tokens
type ButtonVariant = 'primary' | 'secondary'
                   | 'destructive' | 'ghost';

interface ButtonProps {
  variant?: ButtonVariant;
  size?: 'sm' | 'md' | 'lg';
  loading?: boolean;
  children: React.ReactNode;
}

export const Button: React.FC<ButtonProps> = ({
  variant = 'primary',
  size = 'md',
  loading,
  children,
  ...props
}) => (
  <button
    className={`btn btn-${variant} btn-${size}`}
    disabled={loading}
    {...props}
  >
    {loading && <Spinner />}
    {children}
  </button>
);
  
CSS uses var(--color-brand-primary), var(--spacing-md), var(--radius-default)
Zero hardcoded values · All styling flows from tokens

The Complete Pipeline

🧠 Brand
Decision
📄 Token
Definition
🎨 Figma
Component
💻 React
Component
⚙️ Style
Dictionary
📖 Storybook
Docs
👩‍💻 Developer
Uses

One brand decision → flows through tokens → Figma → code → docs → product

Part 3

Making It AI-Ready

The key insight: design systems are AI guardrails

The Key Insight

"A design system is already a set of constraints.
Constraints are exactly what AI needs
to produce consistent output."

🤖 Without constraints

Arbitrary colors
Random spacing
Invented border radius
Wrong fonts
Looks like nothing

🤖 With design system

Your exact tokens
Your spacing scale
Your border radius
Your typography
Looks like your product

SKILL.md: Teaching AI Your Rules


# My Design System — AI Guide

## Color Tokens (NEVER use raw hex)
- `--color-primary`: #3B82F6 — CTAs, links
- `--color-text`: #1F2937 — Body text
- `--color-error`: #EF4444 — Errors ONLY

## Component Rules
- **Button**: Max 1 primary per section
- **Card**: 16px padding, never nest cards
- **Form**: Label above input, always

## ❌ NEVER DO
- Use raw hex values
- Create custom spacing values
- Skip hover/focus states
- Make text smaller than 12px

## ✅ ALWAYS DO
- Use semantic HTML
- Include aria-label on icon buttons
- Use CSS custom properties only
- Include loading + error states
  

This single file = 90% of the value · 10% of the effort

Component Specs as Prompts


# Component: Button

## Variants
- `primary`: Main actions (1 per section)
- `secondary`: Supporting actions
- `destructive`: Delete, irreversible

## Token Usage
| Property     | Token                       |
|------------- |-----------------------------|
| Background   | `--color-brand-primary`     |
| Text         | `--color-text-on-primary`   |
| Padding      | `--spacing-sm` `--spacing-md`|
| Radius       | `--radius-default`          |
| Min height   | 40px (touch target)         |

## Rules
- NEVER use raw hex values
- Maximum 1 primary button per section
- Destructive buttons require confirmation
  

Each component becomes a contract that AI follows

AI Design Sub-Agent Architecture

💬 Human Input"Create a landing page for our analytics feature"
📄 tokens.jsonColors, spacing, type
📋 SKILL.mdRules & anti-patterns
⚙️ Component SpecsProps, variants, states
🤖 AI Design AgentReads all context → generates constrained output
💻 HTML/React OutputUses only approved tokens & components
👀 Human ReviewVerify → iterate → ship

Part 4

Tutorial: Build Your Own

5 steps · Copy-paste ready · Test with Claude or GPT

Step 1: Define 5 Core Tokens


{
  "color-primary":   { "value": "#3B82F6",
    "description": "CTAs, links, active states" },
  "font-family":     { "value": "Inter, system-ui, sans-serif",
    "description": "All text in the product" },
  "spacing-md":      { "value": "16px",
    "description": "Default padding & gaps" },
  "radius-default":  { "value": "8px",
    "description": "Cards, buttons, inputs" },
  "shadow-sm":       { "value": "0 1px 3px rgba(0,0,0,0.08)",
    "description": "Subtle lift for cards" }
}
  

That's it. Five decisions define 80% of your visual language.

Step 2: Create Your Design System CSS


:root {
  --color-primary: #3B82F6;
  --color-primary-hover: #2563EB;
  --color-text: #1F2937;
  --color-text-secondary: #6B7280;
  --color-bg: #FFFFFF;
  --color-surface: #F9FAFB;
  --color-border: #E5E7EB;

  --font-sans: 'Inter', system-ui, sans-serif;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;

  --radius-default: 8px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.12);
  --transition-fast: 150ms ease;
}
  

Tokens → CSS custom properties · Components will consume these

Step 3: Write Your SKILL.md


# Design System AI Guide

## Rules
- Use ONLY CSS variables (--color-*, --spacing-*)
- NEVER use raw hex colors or pixel values
- All interactive elements need hover + focus states
- Semantic HTML always (<button>, <nav>, <main>)

## Token Reference
- Primary: var(--color-primary) — CTAs, links
- Text: var(--color-text) — body copy
- Spacing: var(--spacing-md) — default gaps
- Radius: var(--radius-default) — all components
- Shadow: var(--shadow-sm) — card resting state

## ❌ Don't
- Raw hex colors
- Nest cards inside cards
- Custom spacing values
- Skip error/loading states
  

Feed this to Claude or GPT as system context → try it now!

Step 4: Test — Generate a Card

Your Prompt


Using my design system
(SKILL.md above):

Create a "Feature Card" with:
- An emoji icon
- A title
- A 2-line description
- A "Learn More" link

Follow my rules exactly.
      

AI Output

🚀

Lightning Fast

Sub-100ms response times globally with edge computing.

Learn More →

✅ Uses your tokens
✅ Follows your rules

Step 5: Iterate & Refine

Common failures → SKILL.md fixes

AI Fails To…Add to SKILL.md
Uses raw hex values"NEVER use raw hex — ALWAYS CSS variables"
Invents new spacing"ONLY these values: sm, md, lg"
Skips hover states"ALL buttons MUST have :hover"
Wrong font size"Body = 16px, small = 14px, NOTHING ELSE"
Nests cards"NEVER nest .card inside .card"

Every failure → new anti-pattern → system gets stronger 💪

AI-Readiness Maturity

L1
~30%
Tokens
defined
L2
~50%
Tokens
described
L3
~70%
SKILL.md
created
L4
~85%
Components
spec'd
L5
~95%
Patterns
documented

% = AI output accepted without changes

Today's tutorial gets you to L3 — that's already 70% accuracy

5-Week Production Roadmap

📋 Week 1: Tokens

  • Design principles (3-5)
  • Full token set: colors, type, spacing
  • tokens.json in W3C format

⚙️ Week 2-3: Components

  • 10-15 core components in React
  • Style Dictionary pipeline
  • All states: hover, focus, disabled

📖 Week 3-4: Storybook

  • Interactive docs
  • Pattern library
  • Do's & don'ts with visuals

🤖 Week 4-5: AI Setup

  • SKILL.md + component specs
  • Test with 10+ prompts
  • Figma MCP integration

🔄 Phase 5 (ongoing): Generate → Review → Fix gaps → Repeat

Learn from the Best

🎨 Material Design 3 — Google's comprehensive system
Dynamic color, motion system, adaptive layouts · m3.material.io

🍎 Apple HIG — Opinionated and deep
Platform patterns, accessibility, spatial computing · developer.apple.com/design

🐜 Ant Design — Enterprise-grade, open source
Complete React library + design tokens · ant.design

Shadcn/ui — Modern, composable, copy-paste
Not a library, a collection of components · ui.shadcn.com

🔵 Fluent Design — Microsoft's cross-platform system
Depth, motion, material, light · fluent2.microsoft.design

Key Takeaways

1️⃣  Design systems are more than component libraries — they're knowledge bases

2️⃣  Design tokens with $description = AI-readable design

3️⃣  Semantic tokens over primitives — intent matters more than values

4️⃣  Your design system IS the AI guardrail — no separate layer needed

5️⃣  SKILL.md + component specs = an AI that follows your rules

6️⃣  Start with 5 tokens + 1 SKILL.md → iterate from failures

Start Today

 Define 5 tokens with $description

 Write a SKILL.md with rules + anti-patterns

 Test: ask Claude to generate a card component

 Iterate: add every failure as an anti-pattern

90% of the value · 10% of the effort


Thank you! 🙏

Research & presentation by Bob · February 2026