Agent skill
tailwind-css-v4-mastery
Expert guidance for leveraging Tailwind CSS V4's new Oxide engine, CSS-first configuration, and modern styling paradigms. This skill transforms Claude into a Tailwind V4 architecture specialist, capable of designing component systems, optimizing performance, and executing complex styling challenges with precision.
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/calel33/tailwind-css-v4-mastery
SKILL.md
Tailwind CSS V4 Mastery Skill
Philosophy: CSS-First Thinking
Tailwind V4 represents a philosophical shift from JavaScript-centric utility frameworks to CSS-native, declarative styling. This skill installs that mental model:
- Configuration is CSS —
@theme {}replacestailwind.config.js - Speed is Architectural — Oxide engine (Rust) replaces JavaScript parser
- Modern Standards First — Leverages
@property,color-mix(), CSS nesting - Performance as a First-Class Citizen — 10-100x faster than v3
The correct mental model for V4: "CSS is the source of truth. JavaScript configuration is outdated."
Core Conceptual Landscape
1. The Oxide Engine Revolution
What Changed:
v3: JavaScript → JavaScript Parser → CSS Output
v4: CSS @theme → Rust/Oxide Engine → Optimized CSS Output
Why It Matters:
- Performance: 10-100x faster build times, 15-30x faster HMR
- Simplicity: One language (CSS) instead of two (JS + CSS)
- Future-Proofing: Aligned with native browser capabilities
Mental Model: Think of the Oxide engine as a compiler, not a preprocessor. It compiles CSS declarations into optimized output.
2. CSS-First Configuration Paradigm
The Core Shift:
| Aspect | v3 | v4 |
|---|---|---|
| Config Format | JavaScript Object | CSS @theme {} Block |
| Location | tailwind.config.js |
styles.css |
| Execution | Node.js at build time | Oxide engine |
| Debugging | Console logs, file inspection | CSS DevTools |
| Scope | Global import | CSS cascade-aware |
Why This Matters: CSS-first configuration is more maintainable, debuggable, and aligned with how browsers actually work. You're no longer fighting a layer of abstraction.
3. Browser Requirements & Modern CSS Features
Tailwind V4 requires modern browser capabilities:
- Safari 16.4+ (OKLch color space,
@property) - Chrome 111+ (
color-mix()) - Firefox 128+ (CSS nesting)
This is intentional. V4 assumes modern CSS and optimizes around it. Legacy support requires v3.4.x.
Procedural Workflows
Workflow 1: Migration from V3 to V4
Trigger: User wants to upgrade existing Tailwind project from v3 to v4
Steps:
-
Audit Phase
- List all
tailwind.config.jsoverrides - Identify custom utilities and components
- Scan for deprecated utility usage (opacity, flex-shrink, etc.)
- Check browser support requirements
- List all
-
Installation Phase
bashnpm install -D tailwindcss@latest npm install -D @tailwindcss/vite # (or @tailwindcss/postcss or @tailwindcss/cli) -
Configuration Migration
- Convert
theme: {}→@theme { --var: value; } - Convert
extend: {}→ Additional--varin@theme - Replace
@tailwind base/components/utilities→@import "tailwindcss"
- Convert
-
Utility Refactoring
.shadow→.shadow-sm.rounded→.rounded-sm.outline-none→.outline-hidden.bg-opacity-*→.bg-black/*(slash syntax)
-
Validation
- Test responsive breakpoints
- Verify dark mode
- Check custom components
- Performance baseline
Decision Tree:
Is this a new project?
├─ YES → Use V4 directly with @theme config
└─ NO → Execute migration workflow above
├─ Does v3 use custom config extensively?
│ ├─ YES → Allocate migration time, go step-by-step
│ └─ NO → Quick migration, 30 mins
└─ Are you on legacy browsers?
├─ YES → Stay on v3.4
└─ NO → Proceed with v4
Workflow 2: Component System Design
Trigger: User wants to build reusable component library with Tailwind V4
Steps:
-
Define Component Scope
- List component primitives (Button, Card, Input, etc.)
- Identify shared styling patterns
- Plan for theme customization
-
Create Base Theme
css@import "tailwindcss"; @theme { /* Color system */ --color-primary-*: oklch(...); --color-neutral-*: oklch(...); /* Spacing scale */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; /* Typography */ --font-display: "Custom", sans-serif; --font-body: "System", sans-serif; } -
Build Component Classes
css@layer components { .btn-primary { @apply px-4 py-2 rounded-sm bg-primary text-white font-semibold transition-all hover:opacity-90; } .card { @apply p-6 rounded-lg bg-white shadow-md border border-gray-200; } } -
Establish Modifier Conventions
- Size modifiers:
.btn-sm,.btn-lg - State modifiers:
.btn-disabled,.btn-loading - Variant modifiers:
.btn-primary,.btn-secondary
- Size modifiers:
-
Document & Export
- Create component reference
- Provide usage examples
- Document theme variables
Output: Production-ready component library CSS file
Workflow 3: Performance Optimization
Trigger: User needs to optimize Tailwind V4 performance
Steps:
-
Baseline Measurement
- Measure current build time
- Check CSS file size
- Monitor HMR speed
-
Plugin Selection
- Use
@tailwindcss/vite(fastest option) - Enable Lightning CSS if using PostCSS
- Disable unnecessary optimizations
- Use
-
Configuration Tuning
javascript// vite.config.ts import tailwindcss from "@tailwindcss/vite"; export default defineConfig({ plugins: [react(), tailwindcss()] }); -
CSS Variable Optimization
- Use native CSS variables instead of computed values
- Leverage cascade for scoped themes
- Minimize
@themeblock duplication
-
Validation
- Verify build time improvement
- Check file size reduction
- Confirm visual consistency
Expected Outcomes:
- Build time: 100-500ms (vs 5-10s in v3)
- Hot reload: 50-200ms (vs 3s in v3)
- CSS size: -15-20% reduction
Critical Decision Trees
Decision 1: Plugin Selection
What build tool do you use?
├─ Vite (React, Vue, Svelte)
│ └─ Use @tailwindcss/vite (fastest, recommended)
├─ Webpack (NextJS, CRA)
│ └─ Use @tailwindcss/postcss
├─ Standalone/No bundler
│ └─ Use @tailwindcss/cli
└─ PostCSS pipeline
└─ Use @tailwindcss/postcss
Decision 2: Configuration Approach
How complex is your theme?
├─ Simple (5-10 color overrides)
│ └─ Use inline @theme block in styles.css
├─ Moderate (custom colors, spacing, fonts)
│ └─ Use single @theme block with organization
├─ Complex (multi-theme, extensive customization)
│ └─ Split into @layer base blocks with [data-theme] selectors
└─ Enterprise (multiple brands)
└─ Use CSS variable strategy with fallbacks
Decision 3: Component Extraction
When should I use @layer components?
├─ Recurring utility combinations
│ └─ YES → Extract to .btn-primary, .card, etc.
├─ One-off layouts
│ └─ NO → Use utilities directly in HTML
├─ Design system compliance needed
│ └─ YES → Extract as component class
└─ User will customize per instance
└─ NO → Leave as utility composition
Common Gotchas & Solutions
Gotcha 1: Expecting tailwind.config.js to Still Work
Problem: File is ignored in v4.
Solution: Use @theme {} in CSS instead.
Prevention: Delete tailwind.config.js early in migration.
Gotcha 2: Default Border Color Breaking Layouts
Problem: v3 used currentColor (inherits text), v4 uses #e5e7eb.
Solution: Use .border-current if you need inherited color.
Prevention: Test all border utilities during migration.
Gotcha 3: Ring Width Changed (3px → 1px)
Problem: Existing .ring classes now have thinner outlines.
Solution: Use .ring-3 for old 3px behavior, .ring-1 for new default.
Prevention: Find/replace .ring → .ring-1 during migration.
Gotcha 4: CSS Variables Must Have -- Prefix
Problem: @theme { color-primary: value; } is ignored.
Solution: Use @theme { --color-primary: value; }.
Prevention: Always use -- in @theme blocks.
Gotcha 5: Opacity Utilities Removed
Problem: .bg-opacity-50 no longer exists.
Solution: Use CSS color modifiers: .bg-black/50.
Prevention: Search codebase for opacity utilities and replace during migration.
Reference Materials
All detailed references are stored in references/:
- breaking-changes.md — Complete list of API removals and renames
- configuration-guide.md — Comprehensive
@themesetup patterns - utility-migration-table.md — v3 → v4 utility mappings
- color-space-guide.md — OKLch, HSL, and color migration strategies
- performance-tuning.md — Optimization techniques and measurements
When to Use This Skill
✅ Use this skill when:
- User asks about Tailwind V4 specifically (not v3)
- Designing component systems or styling architectures
- Migrating from Tailwind v3 to v4
- Optimizing Tailwind performance
- Troubleshooting CSS-first configuration issues
- Building design systems with Tailwind V4
- Creating custom theme configurations
❌ Don't use this skill when:
- User asks about Tailwind v3 or older (use general CSS knowledge)
- Question is about HTML/JavaScript/Framework-specific issues (not Tailwind's domain)
- User needs general CSS tutoring (use CSS fundamentals instead)
- Building non-web projects
Execution Standards
When activated by user query:
- Clarify Intent — Ask what they're building and why (component? migration? optimization?)
- Choose Workflow — Route to appropriate procedural path
- Provide References — Link to relevant reference materials
- Show Code Examples — Concrete, copy-paste-ready examples
- Explain Trade-offs — Why certain decisions matter
- Test Assumptions — Verify understanding before deep work
Advanced Capabilities
This skill enables Claude to:
- Design component systems that leverage Tailwind V4's architecture
- Execute migrations from v3 to v4 with minimal risk
- Optimize builds using Oxide engine capabilities
- Debug CSS-first configuration issues systematically
- Teach Tailwind V4 philosophy to teams
- Architect design systems using CSS variables + Tailwind
- Handle edge cases around browser support and feature detection
Resources & References
- Official Docs: https://tailwindcss.com/docs
- GitHub: https://github.com/tailwindlabs/tailwindcss
- Playground: https://play.tailwindcss.com
- Discord: https://tailwindcss.com/discord
Skill Version: 1.0.0
Last Updated: 2025-01-01
Status: Production Ready
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?