TA

tailwind-configuration

Provides structured methods to customize Tailwind CSS, including design tokens, plugins, and responsive breakpoints.

Install

mkdir -p .claude/skills/tailwind-configuration && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15925" && unzip -o skill.zip -d .claude/skills/tailwind-configuration && rm skill.zip

Installs to .claude/skills/tailwind-configuration

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Extend and customize Tailwind CSS with design tokens, custom utilities, dark mode, and project-specific configurations. Use for managing color palettes, typography scales, spacing systems, and animation utilities.
213 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Define custom color palettes with semantic names
  • Standardize typography scales including font families and sizes
  • Extend spacing systems beyond Tailwind defaults
  • Create custom utility classes for repeated patterns
  • Configure dark mode themes
  • Add Tailwind plugins

How it works

The skill modifies the tailwind.config.js file by adding or extending sections for colors, typography, spacing, and plugins based on user requirements.

Inputs & outputs

You give it
description of desired Tailwind CSS configurations (e.g., 'Add TrustServe color palette')
You get back
modified tailwind.config.js file with custom configurations

When to use tailwind-configuration

  • Adding custom brand colors
  • Configuring typography scales
  • Managing spacing systems
  • Adding Tailwind plugins

About this skill

Tailwind Configuration

Customize and extend Tailwind CSS for TrustServe with design tokens, utilities, and theme configurations.

When to Use

  • Adding custom colors, spacing, or typography to Tailwind
  • Creating custom utilities for repeated patterns
  • Configuring dark mode theme
  • Extending animation utilities
  • Managing design tokens in tailwind.config.js
  • Adding plugins (forms, typography, etc.)
  • Creating responsive utilities and breakpoints
  • Standardizing shadows, borders, and other reusable styles

Step-by-Step Procedure

1. Understand Tailwind Configuration Structure

Reference: tailwind.config.js Reference

module.exports = {
  content: ['./src/**/*.{js,jsx,ts,tsx}'],  // Purge unused styles
  darkMode: 'class',                         // Dark mode toggle
  theme: {
    extend: {
      colors: { /* custom colors */ },
      spacing: { /* custom spacing */ },
      typography: { /* custom fonts */ },
      animation: { /* custom animations */ },
    }
  },
  plugins: [],
}

2. Define Color Tokens

Add your design system colors:

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        // Primary brand colors
        primary: {
          50: '#ECFDF5',
          100: '#D1FAE5',
          500: '#10B981',  // Main green (trust color)
          600: '#059669',
          700: '#047857',
          900: '#065F46',
        },

        // Secondary action colors
        secondary: {
          500: '#3B82F6',  // Blue
          600: '#2563EB',
        },

        // Semantic colors
        success: {
          50: '#F0FDF4',
          500: '#22C55E',
          600: '#16A34A',
        },
        warning: {
          50: '#FFFBEB',
          500: '#FBBF24',
          600: '#F59E0B',
        },
        error: {
          50: '#FEF2F2',
          500: '#EF4444',
          600: '#DC2626',
        },
        info: {
          50: '#EFF6FF',
          500: '#3B82F6',
          600: '#2563EB',
        },

        // Neutral scale (grays)
        neutral: {
          50:  '#F9FAFB',
          100: '#F3F4F6',
          200: '#E5E7EB',
          300: '#D1D5DB',
          400: '#9CA3AF',
          500: '#6B7280',
          600: '#4B5563',  // primary text color
          700: '#374151',
          800: '#1F2937',
          900: '#111827',
        },
      },
    }
  }
}

Usage in components:

<div className="bg-primary-500 text-neutral-900 border-neutral-200 dark:border-neutral-700">
  Content
</div>

3. Define Typography Scale

Standardize font sizes and families:

module.exports = {
  theme: {
    extend: {
      fontFamily: {
        sans: ['Inter', 'system-ui', 'sans-serif'],
        display: ['Poppins', 'system-ui', 'sans-serif'],  // Headings
      },

      fontSize: {
        // Heading sizes
        'h1': ['32px', { lineHeight: '1.2', fontWeight: '700' }],
        'h2': ['24px', { lineHeight: '1.25', fontWeight: '600' }],
        'h3': ['20px', { lineHeight: '1.3', fontWeight: '600' }],

        // Body sizes
        'base': ['16px', { lineHeight: '1.6' }],  // Default
        'sm': ['14px', { lineHeight: '1.5' }],
        'xs': ['12px', { lineHeight: '1.4' }],

        // Display sizes
        'lg': ['18px', { lineHeight: '1.6' }],
        'xl': ['22px', { lineHeight: '1.4' }],
      },

      fontWeight: {
        light: '300',
        normal: '400',
        medium: '500',
        semibold: '600',
        bold: '700',
      },
    }
  }
}

Usage:

<h1 className="font-display text-h1 font-bold">Main Title</h1>
<p className="text-base text-neutral-700">Body text</p>
<small className="text-xs text-neutral-500">Caption</small>

4. Configure Spacing Scale

Extend the 8px grid:

module.exports = {
  theme: {
    extend: {
      spacing: {
        // Tailwind default: 4px (0=0, 1=4px, 2=8px, 3=12px, etc.)
        // Add custom spacing if needed
        '4.5': '18px',   // Between standard gaps
        '13': '52px',
        '17': '68px',
      },

      gap: {
        // Component gaps
        'xs': '4px',
        'sm': '8px',
        'md': '16px',
        'lg': '24px',
        'xl': '32px',
      },
    }
  }
}

Usage:

<div className="px-4 py-6 gap-4">Spacing</div>

5. Add Custom Utilities

Create shortcuts for repeated patterns:

const plugin = require('tailwindcss/plugin')

module.exports = {
  plugins: [
    plugin(function ({ addUtilities, theme }) {
      const newUtilities = {
        '.card': {
          '@apply': 'bg-white dark:bg-neutral-800 rounded-lg shadow-sm border border-neutral-200 dark:border-neutral-700 p-6'
        },

        '.text-truncate-lines': {
          display: '-webkit-box',
          WebkitLineClamp: 'var(--lines, 3)',
          WebkitBoxOrient: 'vertical',
          overflow: 'hidden',
        },

        '.input-base': {
          '@apply': 'w-full px-4 py-2 border border-neutral-300 dark:border-neutral-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:bg-neutral-700 dark:text-white'
        },

        '.btn-base': {
          '@apply': 'inline-flex items-center justify-center rounded-lg font-medium transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500'
        },
      }

      addUtilities(newUtilities)
    }),
  ],
}

Usage:

<div className="card">Card with predefined styling</div>
<input className="input-base" />
<button className="btn-base bg-primary-500 text-white hover:bg-primary-600">Button</button>

6. Configure Dark Mode

Set up dark mode classes and tokens:

module.exports = {
  darkMode: 'class',  // Use class-based dark mode

  theme: {
    extend: {
      colors: {
        light: { bg: '#FFFFFF', text: '#1F2937' },
        dark: { bg: '#111827', text: '#F9FAFB' },
      },
    }
  }
}

Usage:

<div className="bg-white dark:bg-neutral-900 text-neutral-900 dark:text-white">
  Content adapts to light/dark mode
</div>

Toggle via JavaScript:

const toggleDarkMode = () => {
  document.documentElement.classList.toggle('dark')
  localStorage.setItem('theme', document.documentElement.classList.contains('dark') ? 'dark' : 'light')
}

7. Add Animation Utilities

Create custom animations:

module.exports = {
  theme: {
    extend: {
      animation: {
        // Entrance animations
        'fade-in': 'fadeIn 0.3s ease-out',
        'slide-up': 'slideUp 0.3s ease-out',
        'scale-in': 'scaleIn 0.2s ease-out',

        // Feedback animations
        'spin': 'spin 1s linear infinite',
        'pulse': 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
        'bounce': 'bounce 1s infinite',

        // Custom
        'shimmer': 'shimmer 2s infinite',
      },

      keyframes: {
        fadeIn: {
          from: { opacity: '0' },
          to: { opacity: '1' },
        },
        slideUp: {
          from: { transform: 'translateY(20px)', opacity: '0' },
          to: { transform: 'translateY(0)', opacity: '1' },
        },
        scaleIn: {
          from: { transform: 'scale(0.95)', opacity: '0' },
          to: { transform: 'scale(1)', opacity: '1' },
        },
        shimmer: {
          '0%': { backgroundPosition: '-200% 0' },
          '100%': { backgroundPosition: '200% 0' },
        },
      },
    }
  }
}

Usage:

<div className="animate-fade-in">Fades in on load</div>
<div className="animate-spin">Spinning loader</div>

8. Add Plugins

Extend Tailwind with community plugins:

npm install @tailwindcss/forms @tailwindcss/typography @tailwindcss/container-queries
module.exports = {
  plugins: [
    require('@tailwindcss/forms'),      // Better form styling
    require('@tailwindcss/typography'), // Prose class for rich text
    require('@tailwindcss/container-queries'), // Container queries
  ],
}

Usage:

<form className="space-y-4">
  <input className="form-input" type="text" />
  <textarea className="form-textarea" />
  <select className="form-select">...</select>
</form>

<article className="prose dark:prose-invert">
  <!-- Rich text content automatically styled -->
</article>

Reference: Tailwind Plugins

9. Configure Responsive Breakpoints

Standard breakpoints (usually defaults are fine):

module.exports = {
  theme: {
    screens: {
      'sm': '640px',   // Tablets
      'md': '768px',   // Small desktops
      'lg': '1024px',  // Desktops
      'xl': '1280px',  // Large desktops
      '2xl': '1536px', // Ultra-wide
    },
  }
}

10. Export Configuration Reference

Create a documentation file:

Reference: Available Tailwind Utilities

Quick Checklist

  • Define color palette (primary, secondary, semantic, neutral)
  • Configure dark mode variants
  • Set typography scale (font families, sizes, weights)
  • Extend spacing and gaps
  • Create custom utilities (.card, .input-base, etc.)
  • Add custom animations and keyframes
  • Install helpful plugins (@tailwindcss/forms)
  • Document custom utilities and colors
  • Test colors for WCAG contrast compliance
  • Purge unused styles in production

Common Patterns

Complete Button Utility

'.btn-primary': {
  '@apply': 'inline-flex items-center justify-center px-4 py-2 rounded-lg font-medium bg-primary-500 text-white hover:bg-primary-600 dark:hover:bg-primary-400 focus:outline-none focus:ring-2 focus:ring-primary-300 dark:focus:ring-primary-600 transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed'
}

Card Component Utility

'.card': {
  '@apply': 'bg-white dark:bg-neutral-800 rounded-lg border border-neutral-200 dark:border-neutral-700 

---

*Content truncated.*

When not to use it

  • When not customizing or extending Tailwind CSS
  • When not managing design tokens in tailwind.config.js

Limitations

  • Limited to configurations within tailwind.config.js
  • Requires understanding of JavaScript object structure for configuration
  • Assumes a project setup that uses Tailwind CSS

How it compares

This workflow provides a structured approach to customizing Tailwind CSS by directly modifying the configuration file with design tokens and utilities, offering a more organized and maintainable solution than ad-hoc styling.

Compared to similar skills

tailwind-configuration side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
tailwind-configuration (this skill)04moReviewIntermediate
ui-styling129moReviewBeginner
tailwind-design-system342moNo flagsIntermediate
figma224moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

ui-styling

mrgoonie

Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs. Use when building user interfaces, implementing design systems, creating responsive layouts, adding accessible components (dialogs, dropdowns, forms, tables), customizing themes and colors, implementing dark mode, generating visual designs and posters, or establishing consistent styling patterns across applications.

12132

tailwind-design-system

wshobson

Build scalable design systems with Tailwind CSS, design tokens, component libraries, and responsive patterns. Use when creating component libraries, implementing design systems, or standardizing UI patterns.

3495

figma

openai

Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.

2266

design-system-patterns

wshobson

Build scalable design systems with design tokens, theming infrastructure, and component architecture patterns. Use when creating design tokens, implementing theme switching, building component libraries, or establishing design system foundations.

1157

interaction-design

wshobson

Design and implement microinteractions, motion design, transitions, and user feedback patterns. Use when adding polish to UI interactions, implementing loading states, or creating delightful user experiences.

1550

web-design-reviewer

github

This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.

750

Search skills

Search the agent skills registry