mcpField
D
design-tokens

design-tokens

github.com/laurigatesDesign & UI5982 installsUpdated today
Repository

About design-tokens

A design skill for developers setting up token systems in CSS. It covers token structure, theme switching, and consistent component integration.

Key features

  1. 01Three-tier token architecture
  2. 02CSS custom property patterns
  3. 03Light and dark theme systems
  4. 04Component-level token integration
  5. 05Tailwind and framework integration

Use cases

  1. 01Establishing a scalable design token system
  2. 02Implementing light and dark themes
  3. 03Organizing CSS variables across stylesheets

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill design-tokens

After installing, type/design-tokensin Claude Code to confirm it loaded.

Bundled filesREFERENCE.md

Details

From the project README

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 systemWriting individual component styles
Implementing light/dark theme switchingAccessibility auditing (use accessibility skills)
Organizing CSS custom propertiesCSS layout or responsive design
Integrating tokens with Tailwind/frameworksFramework-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
/* 1. Primitive tokens (raw values) */
: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;
}

/* 2. Semantic tokens (purpose-based) */
: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);
}

/* 3. Component tokens (specific usage) */
.button {
  --button-padding-x: var(--spacing-4);
  --button-padding-y: var(--spacing-2);
  --button-bg: var(--color-primary);
  --button-bg-hover: var(--color-primary-hover);
  --button-text: white;

  padding: var(--button-padding-y) var(--button-padding-x);
  background: var(--button-bg);
  color: var(--button-text);
}

.button:hover {
  background: var(--button-bg-hover);
}
Token Categories
:root {
  /* Colors */       --color-{name}-{shade}: value;
  /* Typography */   --font-family-{name}: value;
                     --font-size-{name}: value;
                     --font-weight-{name}: value;
                     --line-height-{name}: value;
  /* Spacing */      --spacing-{scale}: value;
  /* Borders */      --border-width-{name}: value;
                     --border-radius-{name}: value;
  /* Shadows */      --shadow-{name}: value;
  /* Transitions */  --duration-{name}: value;
                     --easing-{name}: value;
  /* Z-index */      --z-{name}: value;
}

Theme Implementation

Light/Dark Mode
/* Default (light) theme */
:root {
  --color-background: #ffffff;
  --color-surface: #f9fafb;
  --color-text: #111827;
  --color-text-muted: #6b7280;
  --color-border: #e5e7eb;
}

/* Dark theme */
[data-theme="dark"] {
  --color-background: #111827;
  --color-surface: #1f2937;
  --color-text: #f9fafb;
  --color-text-muted: #9ca3af;
  --color-border: #374151;
}

/* System preference */
@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 component with local 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);
}

/* Variant via token override */
.card--elevated {
  --card-shadow: var(--shadow-lg);
}

.card--outlined {
  --card-shadow: none;
  --card-border: var(--color-border-strong);
}

Agentic Optimizations

ContextCommand
Find all CSS variablesgrep -r '--[a-z]' styles/ --include='*.css'
Check token usagegrep -r 'var(--color-primary)' src/ --include='*.css' --include='*.tsx'
Find hardcoded colorsgrep -rn '#[0-9a-fA-F]\{3,8\}' src/ --include='*.css'
List all token filesfind styles/tokens -name '*.css'
Validate CSS syntaxnpx stylelint 'styles/**/*.css'

For detailed examples, advanced patterns, and best practices, see REFERENCE.md.

References

Comments

Markdown supported