--- id: JosiahSiegel/claude-plugin-marketplace/tailwindcss-performance version: "b531f0ed" license: MIT install: manual updated: 2026-06-18 --- # tailwindcss-performance — Accelerate Tailwind CSS v4 builds using the Rust-powered Oxide engine and master content detection to eliminate unused styles. Learn safelist strategies for dynamic classes, GPU-accelerated animations, and production minification techniques to keep CSS bundles lean. Publisher: JosiahSiegel · Stars: 49 · Updated: 2026-06-18 Install (manual): `git clone https://github.com/JosiahSiegel/claude-plugin-marketplace` ## SKILL.md # Tailwind CSS Performance Optimization ## v4 Performance Improvements Tailwind CSS v4 features a completely rewritten engine in Rust: | Metric | v3 | v4 | |--------|----|----| | Full builds | Baseline | Up to 5x faster | | Incremental builds | Milliseconds | Microseconds (100x+) | | Engine | JavaScript | Rust | ## JIT (Just-In-Time) Compilation ### How JIT Works JIT generates styles on-demand as classes are discovered in your files: 1. Scans source files for class names 2. Generates only the CSS you use 3. Produces minimal, optimized output ### v4: Always JIT Unlike v3, JIT is always enabled in v4—no configuration needed: ```css @import "tailwindcss"; /* JIT is automatic */ ``` ## Content Detection ### Automatic Detection (v4) v4 automatically detects template files—no content configuration required: ```css /* v4 - Works automatically */ @import "tailwindcss"; ``` ### Explicit Content (v4) If automatic detection fails, specify sources explicitly: ```css @import "tailwindcss"; @source "./src/**/*.{html,js,jsx,ts,tsx,vue,svelte}"; @source "./components/**/*.{js,jsx,ts,tsx}"; ``` ### Excluding Paths ```css @source not "./src/legacy/**"; ``` ## Tree Shaking ### How It Works Tailwind's build process removes unused CSS: ```text Source: All possible utilities (~15MB+) ↓ Scan: Find used class names ↓ Output: Only used styles (~10-50KB typical) ``` ### Production Build ```bash # Vite - automatically optimized for production npm run build # PostCSS - ensure NODE_ENV is set NODE_ENV=production npx postcss input.css -o output.css ``` ## Dynamic Class Names ### The Problem Tailwind can't detect dynamically constructed class names: ```javascript // BAD - Classes won't be generated const color = 'blue' className={`text-${color}-500`} // ❌ Not detected const size = 'lg' className={`text-${size}`} // ❌ Not detected ``` ### Solutions #### 1. Use Complete Class Names ```javascript // GOOD - Full class names const colorClasses = { blue: 'text-blue-500', red: 'text-red-500', green: 'text-green-500', } className={colorClasses[color]} // ✓ Detected ``` #### 2. Use Data Attributes ```javascript // GOOD - Style based on data attributes
``` #### 3. Safelist Classes ```css /* In your CSS for v4 */ @source inline("text-blue-500 text-red-500 text-green-500"); ``` #### 4. CSS Variables ```css @theme { --color-dynamic: oklch(0.6 0.2 250); } ``` ```html
Dynamic color
``` ## Optimizing Transitions ### Use Specific Transitions ```html