--- name: tailwind-css-v4-mastery description: > 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. version: 1.0.0 trigger_keywords: - "tailwind v4" - "tailwind 4" - "css-first configuration" - "oxide engine" - "@theme directive" - "tailwind migration" - "tailwind component" - "style system" license: MIT --- # 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 {}` replaces `tailwind.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:** 1. **Audit Phase** - List all `tailwind.config.js` overrides - Identify custom utilities and components - Scan for deprecated utility usage (opacity, flex-shrink, etc.) - Check browser support requirements 2. **Installation Phase** ```bash npm install -D tailwindcss@latest npm install -D @tailwindcss/vite # (or @tailwindcss/postcss or @tailwindcss/cli) ``` 3. **Configuration Migration** - Convert `theme: {}` → `@theme { --var: value; }` - Convert `extend: {}` → Additional `--var` in `@theme` - Replace `@tailwind base/components/utilities` → `@import "tailwindcss"` 4. **Utility Refactoring** - `.shadow` → `.shadow-sm` - `.rounded` → `.rounded-sm` - `.outline-none` → `.outline-hidden` - `.bg-opacity-*` → `.bg-black/*` (slash syntax) 5. **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:** 1. **Define Component Scope** - List component primitives (Button, Card, Input, etc.) - Identify shared styling patterns - Plan for theme customization 2. **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; } ``` 3. **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; } } ``` 4. **Establish Modifier Conventions** - Size modifiers: `.btn-sm`, `.btn-lg` - State modifiers: `.btn-disabled`, `.btn-loading` - Variant modifiers: `.btn-primary`, `.btn-secondary` 5. **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:** 1. **Baseline Measurement** - Measure current build time - Check CSS file size - Monitor HMR speed 2. **Plugin Selection** - Use `@tailwindcss/vite` (fastest option) - Enable Lightning CSS if using PostCSS - Disable unnecessary optimizations 3. **Configuration Tuning** ```javascript // vite.config.ts import tailwindcss from "@tailwindcss/vite"; export default defineConfig({ plugins: [react(), tailwindcss()] }); ``` 4. **CSS Variable Optimization** - Use native CSS variables instead of computed values - Leverage cascade for scoped themes - Minimize `@theme` block duplication 5. **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 `@theme` setup 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: 1. **Clarify Intent** — Ask what they're building and why (component? migration? optimization?) 2. **Choose Workflow** — Route to appropriate procedural path 3. **Provide References** — Link to relevant reference materials 4. **Show Code Examples** — Concrete, copy-paste-ready examples 5. **Explain Trade-offs** — Why certain decisions matter 6. **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