Claude Skills Guide

Claude Code Tailwind CSS V4 Migration Guide

Tailwind CSS v4 represents a significant evolution in the utility-first CSS framework, introducing a new engine, improved performance, and simplified configuration. If you’re working on existing projects, migrating to v4 requires careful planning and execution. This guide shows you how to use Claude Code and related skills to automate and streamline your migration workflow.

What’s New in Tailwind CSS v4

Tailwind CSS v4 brings several breaking changes and new features that justify the upgrade:

Preparing Your Project for Migration

Before running the migration, ensure your project meets the basic requirements:

  1. Node.js 18+: Tailwind v4 requires a modern Node environment
  2. Clean Git State: Commit or stash your current changes
  3. Backup: Create a backup branch before proceeding

Use the frontend-design skill to analyze your current Tailwind setup:

Use the frontend-design skill to audit your current CSS architecture and identify potential migration issues.

Automated Migration with Claude Code

Claude Code can handle much of the migration work automatically. Here’s a practical workflow:

Step 1: Analyze Current Dependencies

Ask Claude to examine your package.json and identify Tailwind-related dependencies:

grep -E "tailwind|postcss|autoprefixer" package.json

Step 2: Update Package Dependencies

Replace your Tailwind dependencies with v4 packages:

npm install tailwindcss@latest @tailwindcss/vite@latest

If you’re using PostCSS:

npm install tailwindcss@latest @tailwindcss/postcss@latest

Step 3: Update Configuration Files

Tailwind v4 simplifies configuration significantly. Your old tailwind.config.js might look like:

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./src/**/*.{html,js}"],
  theme: {
    extend: {
      colors: {
        primary: '#3b82f6',
      },
    },
  },
  plugins: [],
}

This can be replaced with CSS-native configuration:

@theme {
  --color-primary: #3b82f6;
}

Step 4: Update Import Statements

Replace the old @tailwind directives with the new @import:

/* Old syntax */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* New syntax */
@import "tailwindcss";

Handling Common Migration Issues

Renamed Utilities

Some utility classes have been renamed in v4. Use Claude to search and replace common patterns:

Old Utility New Utility
space-x-4 Use gap on parent instead
divide-y-1 Use gap on parent instead
text-opacity-50 Use text-black/50 syntax

Plugin Migration

If you’re using Tailwind plugins, update them to v4-compatible versions:

npm install @tailwindcss/forms@latest @tailwindcss/typography@latest

Custom Fonts and Theme Values

Move custom theme values to your CSS:

@theme {
  --font-display: 'Inter', sans-serif;
  --color-brand-50: #f0f9ff;
  --color-brand-500: #0ea5e9;
  --color-brand-900: #0c4a6e;
}

Using Claude Skills for Migration Assistance

Several Claude skills can assist during the migration:

Verifying Your Migration

After completing the migration steps, verify everything works:

  1. Run your development server: npm run dev
  2. Check for console errors: Ensure no CSS-related warnings appear
  3. Visual regression testing: Use the tdd skill to create visual tests
  4. Build production bundle: npm run build to ensure no build errors

Performance Benefits After Migration

Once migrated to v4, you’ll notice improvements:

Migrating Complex Projects

For larger projects with multiple teams or extensive Tailwind usage, consider a phased approach:

Phase 1: Assessment

Use Claude to scan your codebase and generate a migration report:

Analyze our Tailwind CSS usage and create a migration report. Identify:
1. All custom theme extensions in tailwind.config.js
2. Usage of deprecated utilities
3. Custom plugins that need updating
4. Components that may break with v4

Phase 2: Preparation

Create a v4-compatible component library in parallel:

/* styles/v4-compatibility.css */
@layer utilities {
  /* Provide backwards compatibility for renamed utilities */
  .space-x-4 > * + * {
    margin-left: 1rem;
  }
}

Phase 3: Incremental Migration

Migrate one feature or component at a time:

  1. Select a small, self-contained feature
  2. Update its Tailwind classes to v4 syntax
  3. Test thoroughly with visual regression
  4. Merge and deploy
  5. Repeat for the next feature

Working with CSS Variables

Tailwind v4 embraces CSS variables more fully. Here’s how to use them:

Converting Theme Values

Old tailwind.config.js:

module.exports = {
  theme: {
    extend: {
      colors: {
        brand: {
          50: '#eff6ff',
          100: '#dbeafe',
          500: '#3b82f6',
          900: '#1e3a8a',
        },
      },
      fontFamily: {
        sans: ['Inter', 'system-ui', 'sans-serif'],
      },
    },
  },
}

New CSS-native approach:

@theme {
  --color-brand-50: #eff6ff;
  --color-brand-100: #dbeafe;
  --color-brand-500: #3b82f6;
  --color-brand-900: #1e3a8a;
  
  --font-sans: 'Inter', system-ui, sans-serif;
  
  --spacing-container: 1280px;
}

Using CSS Variables in Components

Access theme values directly in your components:

<div class="bg-brand-500 text-white py-4 px-6 rounded-lg">
  <h2 class="font-sans text-xl">Welcome</h2>
</div>

Handling Third-Party Libraries

Many UI libraries still use the old Tailwind syntax. Here’s how to handle compatibility:

Wrapping External Components

/* Fix compatibility for third-party components */
.third-party-component {
  & > * + * {
    margin-top: 0.5rem; /* Equivalent to space-y-2 */
  }
}

Using the Compatibility Layer

For a smooth transition, create a compatibility CSS file:

/* styles/tailwind-v3-compat.css */
/* Include this during transition period */
@layer utilities {
  .text-opacity-80 { color: rgb(0 0 0 / 0.8); }
  .bg-opacity-90 { background-color: rgb(0 0 0 / 0.9); }
}

Best Practices for Future-Proofing

After migrating, follow these practices to stay current:

  1. Use semantic utility combinations: Prefer flex items-center gap-4 over deeply nested custom classes
  2. Leverage the @theme directive: Define custom values in CSS rather than JavaScript config
  3. Keep dependencies updated: Subscribe to Tailwind release notes
  4. Document custom patterns: Use the supermemory skill to maintain team knowledge

Conclusion

Migrating to Tailwind CSS v4 doesn’t have to be painful. By using Claude Code and following a systematic approach, you can upgrade your projects efficiently while maintaining code quality. The initial investment pays off through better performance, simpler configuration, and access to the latest CSS features.

Start with a small project or a feature branch to validate your migration process before rolling out to larger codebases. The skills mentioned throughout this guide—frontend-design for component analysis, pdf for documentation, tdd for testing, and supermemory for knowledge management—can accelerate your workflow significantly.

With proper planning and the right tools, your team can complete the migration with minimal disruption while positioning your projects for long-term maintainability and performance.


Built by theluckystrike — More at zovo.one