--- name: tailwind-react description: > Patterns for using Tailwind CSS with React components. Trigger: When using Tailwind CSS with React components. license: Apache-2.0 metadata: author: poletron version: "1.0" scope: [root] auto_invoke: "Working with tailwind react" ## When to Use Use this skill when: - Building React components with Tailwind - Creating reusable styled components - Managing component variants - Using utility libraries like clsx/cva --- ## Critical Patterns ### Class Merging (REQUIRED) ```typescript import { clsx } from 'clsx'; import { twMerge } from 'tailwind-merge'; // ✅ ALWAYS: Use cn() utility for class merging function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } // Usage
``` ### Component Variants (REQUIRED) ```typescript import { cva, type VariantProps } from 'class-variance-authority'; // ✅ Use CVA for variant management const buttonVariants = cva( "inline-flex items-center rounded-md font-medium transition-colors", { variants: { variant: { primary: "bg-blue-600 text-white hover:bg-blue-700", secondary: "bg-gray-100 text-gray-900 hover:bg-gray-200", ghost: "hover:bg-gray-100", }, size: { sm: "h-8 px-3 text-sm", md: "h-10 px-4 text-base", lg: "h-12 px-6 text-lg", }, }, defaultVariants: { variant: "primary", size: "md", }, } ); interface ButtonProps extends VariantProps