--- name: tailwind-4 description: > Tailwind CSS 4 patterns and best practices. Trigger: When styling with Tailwind - cn(), theme variables, no var() in className. license: Apache-2.0 metadata: author: gentleman-programming version: "1.1" --- ## Styling Decision Tree ``` Tailwind class exists? → className="..." Dynamic value? → style={{ width: `${x}%` }} Conditional styles? → cn("base", condition && "variant") Static only? → className="..." (no cn() needed) Library can't use class?→ style prop with var() constants ``` ## Critical Rules ### Never Use var() in className ```typescript // ❌ NEVER: var() in className
// ✅ ALWAYS: Use Tailwind semantic classes
``` ### Never Use Hex Colors ```typescript // ❌ NEVER: Hex colors in className

// ✅ ALWAYS: Use Tailwind color classes

``` ## The cn() Utility ```typescript import { clsx } from "clsx"; import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } ``` ### When to Use cn() ```typescript // ✅ Conditional classes
// ✅ Merging with potential conflicts