Tailwind CSS の不満点
テンプレート側がカオスになる問題
状態に応じたユーティリティの付与
今までの解決策
clsx によって class も文字列を分割できる(hover など纏めたり)
clsx を使ってても Prettier によってソートできる
新しい解決策
cva で宣言的になり見やすくなるし、JSX とスタイリングに分けられる為、他のコンポーネントに使い回すこともできる。
shadcn/ui にも clsx と cva と Tailwind Merge は使用されてる。Tailwind Merge は同じクラスはマージしてくれる。
さらに新しい解決策
NextUI の ver2 より Tailwind Variants が用いられるように。