PluginBench
Skill
Pass
Audit score 90

tailwind-design-system

wshobson/agents

Build production-ready design systems with Tailwind CSS v4, design tokens, and component libraries.

What is tailwind-design-system?

A skill for creating scalable design systems using Tailwind CSS v4's CSS-first configuration, design tokens, and component variants. Use this when building component libraries, implementing design systems, standardizing UI patterns, or migrating from Tailwind v3 to v4.

  • Define semantic design tokens using OKLCH color space and CSS custom properties
  • Configure dark mode with native CSS @custom-variant instead of config files
  • Build responsive and accessible components with Tailwind v4 utilities
  • Create animation tokens and keyframes within @theme blocks
  • Implement component variants and states following a base-to-override hierarchy
  • Migrate Tailwind v3 projects to v4 CSS-first patterns

How to install tailwind-design-system

npx skills add https://github.com/wshobson/agents --skill tailwind-design-system
Prerequisites
  • Tailwind CSS v4 (2024+) installed in your project
  • Understanding of CSS custom properties and @layer syntax
  • Node.js and npm or equivalent package manager
Claude Code
Cursor
Windsurf
Cline

How to use tailwind-design-system

  1. 1.Replace your tailwind.config.ts with CSS-first @theme configuration in app.css
  2. 2.Import Tailwind v4 using @import "tailwindcss" at the top of your CSS file
  3. 3.Define semantic color tokens (primary, secondary, muted, destructive, etc.) using OKLCH values
  4. 4.Add animation tokens and @keyframes definitions inside the @theme block
  5. 5.Configure dark mode with @custom-variant dark (&:where(.dark, .dark *))
  6. 6.Apply tokens to base styles using @layer base and component classes

Use cases

Good for
  • Creating a reusable component library with consistent theming across projects
  • Implementing dark mode support using CSS custom properties and class-based variants
  • Standardizing color palettes and spacing scales across a large codebase
  • Building accessible form components with focus states and ring tokens
  • Setting up animation tokens for consistent entrance and exit animations
Who it's for
  • Design system engineers
  • Frontend developers building component libraries
  • Teams standardizing UI patterns across multiple products
  • Projects migrating from Tailwind v3 to v4

tailwind-design-system FAQ

What are the main differences between Tailwind v3 and v4?

v4 uses CSS-first configuration with @theme in CSS files instead of tailwind.config.ts, @import "tailwindcss" instead of @tailwind directives, and @custom-variant for dark mode instead of config options. Animation tokens are now defined as @keyframes within @theme.

Why use OKLCH color space for tokens?

OKLCH provides better perceptual uniformity and more intuitive color manipulation compared to hex or RGB values, making it easier to create accessible color palettes and maintain consistency across light and dark modes.

How do I set up dark mode in Tailwind v4?

Use @custom-variant dark (&:where(.dark, .dark *)) in your CSS, then override token values in a .dark selector block. This replaces the darkMode config option from v3.

Can I still use tailwind.config.ts in v4?

While v4 is CSS-first, you can still use a config file for non-theme settings, but design tokens should be defined in @theme blocks within your CSS for best results.

Where do I find detailed pattern documentation?

Detailed pattern documentation and worked examples are available in the references/details.md file included with this skill.

Full instructions (SKILL.md)

Source of truth, from wshobson/agents.


name: tailwind-design-system description: Build scalable design systems with Tailwind CSS v4, design tokens, component libraries, and responsive patterns. Use when creating component libraries, implementing design systems, or standardizing UI patterns.

Tailwind Design System (v4)

Build production-ready design systems with Tailwind CSS v4, including CSS-first configuration, design tokens, component variants, responsive patterns, and accessibility.

Note: This skill targets Tailwind CSS v4 (2024+). For v3 projects, refer to the upgrade guide.

When to Use This Skill

  • Creating a component library with Tailwind v4
  • Implementing design tokens and theming with CSS-first configuration
  • Building responsive and accessible components
  • Standardizing UI patterns across a codebase
  • Migrating from Tailwind v3 to v4
  • Setting up dark mode with native CSS features

Key v4 Changes

v3 Patternv4 Pattern
tailwind.config.ts@theme in CSS
@tailwind base/components/utilities@import "tailwindcss"
darkMode: "class"@custom-variant dark (&:where(.dark, .dark *))
theme.extend.colors@theme { --color-*: value }
require("tailwindcss-animate")CSS @keyframes in @theme + @starting-style for entry animations

Quick Start

/* app.css - Tailwind v4 CSS-first configuration */
@import "tailwindcss";

/* Define your theme with @theme */
@theme {
  /* Semantic color tokens using OKLCH for better color perception */
  --color-background: oklch(100% 0 0);
  --color-foreground: oklch(14.5% 0.025 264);

  --color-primary: oklch(14.5% 0.025 264);
  --color-primary-foreground: oklch(98% 0.01 264);

  --color-secondary: oklch(96% 0.01 264);
  --color-secondary-foreground: oklch(14.5% 0.025 264);

  --color-muted: oklch(96% 0.01 264);
  --color-muted-foreground: oklch(46% 0.02 264);

  --color-accent: oklch(96% 0.01 264);
  --color-accent-foreground: oklch(14.5% 0.025 264);

  --color-destructive: oklch(53% 0.22 27);
  --color-destructive-foreground: oklch(98% 0.01 264);

  --color-border: oklch(91% 0.01 264);
  --color-ring: oklch(14.5% 0.025 264);

  --color-card: oklch(100% 0 0);
  --color-card-foreground: oklch(14.5% 0.025 264);

  /* Ring offset for focus states */
  --color-ring-offset: oklch(100% 0 0);

  /* Radius tokens */
  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;

  /* Animation tokens - keyframes inside @theme are output when referenced by --animate-* variables */
  --animate-fade-in: fade-in 0.2s ease-out;
  --animate-fade-out: fade-out 0.2s ease-in;
  --animate-slide-in: slide-in 0.3s ease-out;
  --animate-slide-out: slide-out 0.3s ease-in;

  @keyframes fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }

  @keyframes fade-out {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }

  @keyframes slide-in {
    from {
      transform: translateY(-0.5rem);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  @keyframes slide-out {
    from {
      transform: translateY(0);
      opacity: 1;
    }
    to {
      transform: translateY(-0.5rem);
      opacity: 0;
    }
  }
}

/* Dark mode variant - use @custom-variant for class-based dark mode */
@custom-variant dark (&:where(.dark, .dark *));

/* Dark mode theme overrides */
.dark {
  --color-background: oklch(14.5% 0.025 264);
  --color-foreground: oklch(98% 0.01 264);

  --color-primary: oklch(98% 0.01 264);
  --color-primary-foreground: oklch(14.5% 0.025 264);

  --color-secondary: oklch(22% 0.02 264);
  --color-secondary-foreground: oklch(98% 0.01 264);

  --color-muted: oklch(22% 0.02 264);
  --color-muted-foreground: oklch(65% 0.02 264);

  --color-accent: oklch(22% 0.02 264);
  --color-accent-foreground: oklch(98% 0.01 264);

  --color-destructive: oklch(42% 0.15 27);
  --color-destructive-foreground: oklch(98% 0.01 264);

  --color-border: oklch(22% 0.02 264);
  --color-ring: oklch(83% 0.02 264);

  --color-card: oklch(14.5% 0.025 264);
  --color-card-foreground: oklch(98% 0.01 264);

  --color-ring-offset: oklch(14.5% 0.025 264);
}

/* Base styles */
@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground antialiased;
  }
}

Core Concepts

1. Design Token Hierarchy

Brand Tokens (abstract)
    └── Semantic Tokens (purpose)
        └── Component Tokens (specific)

Example:
    oklch(45% 0.2 260) → --color-primary → bg-primary

2. Component Architecture

Base styles → Variants → Sizes → States → Overrides

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.