Tailwind Class Merge Utility
A utility function for merging and deduplicating Tailwind CSS classes in Reflex components. Essential for combining conditional classes and allowing components to accept additional styling.
Purpose
The cn() utility handles:
- Merging multiple class strings into one
- Deduplicating identical classes
- Resolving conflicts between Tailwind classes
- Processing Reflex
Vartypes, strings, lists, and tuples - Filtering out
Nonevalues for conditional logic
Installation
Copy the following code into your app directory.
from reflex.utils.imports import ImportVar from reflex.vars import FunctionVar, Var from reflex.vars.base import VarData def cn( *classes: Var | str | tuple | list | None, ) -> Var: """Merge Tailwind CSS classes. Accepts strings, Vars, lists, or tuples. Args: *classes: Any number of class strings, Vars, tuples, or lists. Returns: Var: A Var representing the merged classes string. """ return ( Var( "cn", _var_data=VarData(imports={"clsx-for-tailwind": ImportVar(tag="cn")}), ) .to(FunctionVar) .call(*classes) .to(str) )