React ClassName Organizer
Organize className attributes in React components for readability and maintainability.
When to trigger
Refactor className when:
- •Single-line className exceeds 80-100 characters
- •Disorganized
cn()orclassList()calls exist - •User explicitly requests className organization
Instructions
- •
Choose utility function:
- •Use
cn()if already imported in the file - •Otherwise, use standard
className
- •Use
- •
Break into multiple lines:
- •Each line should be semantically grouped
- •Lines should not exceed ~80 characters
- •Keep responsive modifiers with their base class
- •
Group classes in this order:
- •Layout (flex, grid, position type)
- •Spacing (gap, padding, margin)
- •Sizing (width, height, min/max)
- •Display & visibility
- •Typography (font, text-*)
- •Colors & backgrounds
- •Borders & effects
- •Positioning values (top, left, z-index)
- •Transitions & animations
- •Responsive variants (keep with base class)
- •
Format:
jsx// Before: className="overflow-y-auto max-h-[50vh] md:max-h-auto flex-col gap-4 md:gap-2 pt-2 w-full md:w-auto" // After: className=cn( 'flex-col gap-4 md:gap-2 pt-2', 'w-full md:w-auto max-h-[50vh] md:max-h-auto', 'overflow-y-auto scrollbar-hide' )
- •
Keep together:
- •Responsive modifiers with base:
'w-full md:w-auto' - •Related utilities:
'flex items-center justify-between'
- •Responsive modifiers with base:
Tool access
allowed-tools:
- •Read
- •Edit
- •Grep
Notes
- •Preserve all existing classes
- •Maintain semantic grouping over strict alphabetical order
- •Each line should be readable and cohesive