css-tailwind

pluginagentmarketplace's avatarfrom pluginagentmarketplace

Build with Tailwind CSS utility-first framework - configuration, customization, best practices

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 31, 2025

When & Why to Use This Skill

This Claude skill empowers developers to master the Tailwind CSS utility-first framework, streamlining frontend development through expert guidance on configuration, customization, and production optimization. It solves the complexity of managing large CSS files by providing atomic utility patterns, responsive design strategies, and JIT-mode optimization techniques to ensure high-performance, maintainable user interfaces.

Use Cases

  • Rapidly scaffolding Tailwind CSS configurations for modern frameworks like Next.js, React, or Vite with best-practice content paths.
  • Implementing complex, responsive UI components using utility classes for flexbox, grid, and custom state variants (hover, focus, dark mode).
  • Extending the default design system by customizing the tailwind.config.js file with brand-specific colors, typography, and spacing scales.
  • Optimizing production assets by configuring PostCSS and content purging to achieve minimal CSS bundle sizes.
  • Refactoring legacy CSS into clean, reusable Tailwind components using the @apply directive and plugin-based architectures.
namecss-tailwind
descriptionBuild with Tailwind CSS utility-first framework - configuration, customization, best practices
sasmp_version"1.3.0"
version"2.0.0"
updated"2025-12-30"
bonded_agent05-css-preprocessors
bond_typePRIMARY_BOND

CSS Tailwind Skill

Master Tailwind CSS utility-first framework with configuration, customization, and production optimization.

Overview

This skill provides atomic, focused guidance on Tailwind CSS with v3+ patterns, custom configuration, and purge optimization.

Skill Metadata

Property Value
Category Framework
Complexity Intermediate to Advanced
Dependencies css-fundamentals
Bonded Agent 05-css-preprocessors

Usage

Skill("css-tailwind")

Parameter Schema

parameters:
  topic:
    type: string
    required: true
    enum: [setup, configuration, utilities, components, plugins, optimization]
    description: Tailwind topic to explore

  framework:
    type: string
    required: false
    enum: [nextjs, vite, react, vue, vanilla]
    description: Framework integration

  include_examples:
    type: boolean
    required: false
    default: true
    description: Include practical code examples

validation:
  - rule: topic_required
    message: "topic parameter is required"
  - rule: valid_topic
    message: "topic must be one of: setup, configuration, utilities..."

Topics Covered

Setup & Configuration

  • Installation for different frameworks
  • tailwind.config.js customization
  • Content path configuration

Utilities

  • Spacing, colors, typography
  • Flexbox and Grid utilities
  • Responsive prefixes
  • State variants (hover, focus, dark)

Components

  • Component extraction with @apply
  • Plugin-based components
  • Headless UI integration

Optimization

  • Content purging
  • JIT mode
  • Production builds

Retry Logic

retry_config:
  max_attempts: 3
  backoff_type: exponential
  initial_delay_ms: 1000
  max_delay_ms: 10000

Logging & Observability

logging:
  entry_point: skill_invoked
  exit_point: skill_completed
  metrics:
    - invocation_count
    - topic_distribution
    - framework_usage

Quick Reference

Configuration Template

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    './src/**/*.{js,ts,jsx,tsx,html,vue}',
    './components/**/*.{js,ts,jsx,tsx}',
  ],
  theme: {
    extend: {
      colors: {
        primary: {
          50: '#eff6ff',
          500: '#3b82f6',
          900: '#1e3a8a',
        },
      },
      spacing: {
        '128': '32rem',
      },
      fontFamily: {
        sans: ['Inter', 'sans-serif'],
      },
    },
  },
  plugins: [
    require('@tailwindcss/forms'),
    require('@tailwindcss/typography'),
  ],
}

Common Utility Patterns

<!-- Flexbox centering -->
<div class="flex items-center justify-center">

<!-- Responsive grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">

<!-- Card component -->
<div class="bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow">

<!-- Button -->
<button class="px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2">

<!-- Typography -->
<h1 class="text-3xl font-bold text-gray-900 dark:text-white">

Responsive Prefixes

sm:  → 640px+
md:  → 768px+
lg:  → 1024px+
xl:  → 1280px+
2xl: → 1536px+

Example: class="text-sm md:text-base lg:text-lg"

State Variants

<!-- Hover -->
<div class="bg-white hover:bg-gray-50">

<!-- Focus -->
<input class="border focus:ring-2 focus:ring-blue-500">

<!-- Dark mode -->
<div class="bg-white dark:bg-gray-800">

<!-- Group hover -->
<div class="group">
  <span class="group-hover:text-blue-500">
</div>

Component Extraction

/* Using @apply for component classes */
@layer components {
  .btn {
    @apply px-4 py-2 rounded-md font-medium transition-colors;
  }

  .btn-primary {
    @apply btn bg-blue-500 text-white hover:bg-blue-600;
  }

  .btn-secondary {
    @apply btn bg-gray-200 text-gray-800 hover:bg-gray-300;
  }
}

Arbitrary Values

<!-- Arbitrary values with [] -->
<div class="top-[117px]">
<div class="bg-[#1da1f2]">
<div class="w-[calc(100%-2rem)]">
<div class="grid-cols-[1fr_2fr_1fr]">

Production Optimization

// postcss.config.js
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
    ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {})
  },
}

Test Template

describe('CSS Tailwind Skill', () => {
  test('validates topic parameter', () => {
    expect(() => skill({ topic: 'invalid' }))
      .toThrow('topic must be one of: setup, configuration...');
  });

  test('returns framework-specific setup', () => {
    const result = skill({ topic: 'setup', framework: 'nextjs' });
    expect(result).toContain('next.config');
  });

  test('includes content paths for configuration', () => {
    const result = skill({ topic: 'configuration' });
    expect(result).toContain('content:');
  });
});

Error Handling

Error Code Cause Recovery
INVALID_TOPIC Unknown topic Show valid options
MISSING_CONTENT_PATH Styles not applying Check content array
PLUGIN_NOT_FOUND Plugin import error Verify installation
  • css-fundamentals (utility understanding)
  • css-architecture (component organization)
  • css-performance (purge optimization)