--- name: design-system-architect description: "Expert guide for designing, building, and maintaining scalable UI design systems with design tokens, headless primitives (Radix/Base UI), Tailwind v4 @theme, and WCAG 2.2 accessibility in English and Indonesian." author: "Roedy Rustam" --- # Design System Architect [English](#english) | [Bahasa Indonesia](#bahasa-indonesia) --- ## English ### Description Production-grade guidance for designing, building, documenting, and publishing scalable UI **Design Systems**. Covers Design Tokens architecture (OKLCH colors, spacing, typography, radii, shadows), headless accessibility primitives (**Radix UI**, **Base UI**, **React ARIA**), Tailwind CSS v4 `@theme` integration, component variance management (**CVA**), and WCAG 2.2 AAA accessibility standards. ### Trigger Conditions - Bootstrapping or refactoring a component library or enterprise UI design system. - Standardizing design tokens across Figma and codebase stylesheets. - Building accessible, unstyled UI primitives (Dialog, Popover, Combobox, Select, Tabs, Data Table). - Configuring Tailwind CSS v4 `@theme` tokens and CSS custom properties. - Setting up component variants using `class-variance-authority` (CVA) and `cn()` utilities. - Auditing UI accessibility compliance (keyboard navigation, focus management, screen reader ARIA roles). ### Design System Architecture Pillars ``` +-------------------------------------------------------------------+ | Figma Tokens | +---------------------------------+---------------------------------+ | Sync +---------------------------------v---------------------------------+ | Design Tokens (OKLCH, Rem, Durations) | +---------------------------------+---------------------------------+ | +---------------------------------v---------------------------------+ | Tailwind v4 @theme / CSS Custom Properties | +---------------------------------+---------------------------------+ | +---------------------------------v---------------------------------+ | Headless Accessible Primitives (Radix UI / Base UI) | +---------------------------------+---------------------------------+ | Styled with CVA +---------------------------------v---------------------------------+ | Production Component Library | +-------------------------------------------------------------------+ ``` #### 1. Design Tokens Architecture Store design tokens as raw CSS custom properties or JSON variables. Use OKLCH color space for perceptual uniformity: ```css @import "tailwindcss"; @theme { --color-brand-primary: oklch(0.62 0.24 256.4); --color-brand-surface: oklch(0.98 0.01 250.0); --font-sans: "Inter", system-ui, sans-serif; --radius-sm: 0.25rem; --radius-md: 0.5rem; --radius-lg: 1rem; } ``` #### 2. Headless Primitives + CVA Pattern Combine zero-styled, accessible primitives (Radix UI / Base UI) with `class-variance-authority` for type-safe variant styling: ```typescript import * as React from 'react'; import { cva, type VariantProps } from 'class-variance-authority'; import { cn } from '@/lib/utils'; const buttonVariants = cva( 'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary disabled:pointer-events-none disabled:opacity-50', { variants: { variant: { default: 'bg-brand-primary text-white hover:bg-brand-primary/90', outline: 'border border-gray-300 bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800', ghost: 'hover:bg-gray-100 dark:hover:bg-gray-800', }, size: { sm: 'h-8 px-3 text-xs', md: 'h-10 px-4 py-2', lg: 'h-12 px-6 text-base', }, }, defaultVariants: { variant: 'default', size: 'md', }, } ); export interface ButtonProps extends React.ButtonHTMLAttributes, VariantProps {} export const Button = React.forwardRef( ({ className, variant, size, ...props }, ref) => { return (