| created | "2025-12-16T00:00:00.000Z" |
| modified | "2026-05-09T00:00:00.000Z" |
| reviewed | "2025-12-16T00:00:00.000Z" |
| name | design-tokens |
| description | Design tokens and CSS custom properties: theme systems, dark mode, component libraries. Use when implementing design systems or user mentions tokens, CSS variables, or theming. |
| user-invocable | false |
| allowed-tools | Glob, Grep, Read, Edit, Write, Bash(npm *), Bash(npx *), TodoWrite |
Design Tokens
Design token architecture, CSS custom properties, and theme system implementation.
When to Use This Skill
| Use this skill when... | Use another skill instead when... |
|---|
| Setting up a design token system | Writing individual component styles |
| Implementing light/dark theme switching | Accessibility auditing (use accessibility skills) |
| Organizing CSS custom properties | CSS layout or responsive design |
| Integrating tokens with Tailwind/frameworks | Framework-specific component patterns |
Core Expertise
- Token Architecture: Organizing design tokens for scalability
- CSS Custom Properties: Variable patterns and inheritance
- Theme Systems: Light/dark mode, user preferences
- Component Integration: Applying tokens consistently
Token Structure
Three-Tier Architecture
:root {
--color-blue-50: #eff6ff;
--color-blue-100: #dbeafe;
--color-blue-500: #3b82f6;
--color-blue-600: #2563eb;
--color-blue-700: #1d4ed8;
--spacing-1: 0.25rem;
--spacing-2: 0.5rem;
--spacing-4: 1rem;
--spacing-8: 2rem;
--font-size-sm: 0.875rem;
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
}
:root {
--color-primary: var(--color-blue-600);
--color-primary-hover: var(--color-blue-700);
--color-background: white;
--color-surface: var(--color-gray-50);
--color-text: var(--color-gray-900);
--color-text-muted: var(--color-gray-600);
--spacing-component: var(--spacing-4);
--spacing-section: var(--spacing-8);
}
{
: (--spacing-);
: (--spacing-);
: (--color-primary);
: (--color-primary-hover);
: white;
: (--button-padding-y) (--button-padding-x);
: (--button-bg);
: (--button-text);
}
{
: (--button-bg-hover);
}
Token Categories
:root {
--color-{name}-{shade}: value;
--font-family-{name}: value;
--font-size-{name}: value;
--font-weight-{name}: value;
--line-height-{name}: value;
--spacing-{scale}: value;
--border-width-{name}: value;
--border-radius-{name}: value;
--shadow-{name}: value;
--duration-{name}: value;
--easing-{name}: value;
--z-{name}: value;
}
Theme Implementation
Light/Dark Mode
:root {
--color-background: #ffffff;
--color-surface: #f9fafb;
--color-text: #111827;
--color-text-muted: #6b7280;
--color-border: #e5e7eb;
}
[data-theme="dark"] {
--color-background: #111827;
--color-surface: #1f2937;
--color-text: #f9fafb;
--color-text-muted: #9ca3af;
--color-border: #374151;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--color-background: #111827;
--color-surface: #1f2937;
--color-text: #f9fafb;
--color-text-muted: #9ca3af;
--color-border: #374151;
}
}
File Organization
Recommended Structure
styles/
├── tokens/
│ ├── primitives.css # Raw values
│ ├── semantic.css # Purpose-based tokens
│ └── index.css # Combines all tokens
├── themes/
│ ├── light.css # Light theme overrides
│ └── dark.css # Dark theme overrides
├── base/
│ ├── reset.css # CSS reset
│ └── typography.css # Base typography
└── components/
├── button.css
└── card.css
Component Integration
Component-Level Tokens
.card {
--card-padding: var(--spacing-4, 1rem);
--card-radius: var(--border-radius-lg, 0.5rem);
--card-shadow: var(--shadow-md);
--card-bg: var(--color-surface);
--card-border: var(--color-border);
padding: var(--card-padding);
border-radius: var(--card-radius);
box-shadow: var(--card-shadow);
background: var(--card-bg);
border: 1px solid var(--card-border);
}
.card--elevated {
--card-shadow: var(--shadow-lg);
}
.card--outlined {
--card-shadow: none;
--card-border: var(--color-border-strong);
}
Agentic Optimizations
| Context | Command |
|---|
| Find all CSS variables | grep -r '--[a-z]' styles/ --include='*.css' |
| Check token usage | grep -r 'var(--color-primary)' src/ --include='*.css' --include='*.tsx' |
| Find hardcoded colors | grep -rn '#[0-9a-fA-F]\{3,8\}' src/ --include='*.css' |
| List all token files | find styles/tokens -name '*.css' |
| Validate CSS syntax | npx stylelint 'styles/**/*.css' |
For detailed examples, advanced patterns, and best practices, see REFERENCE.md.
References