Description
The project installs both classnames (^2.5.1) and clsx (^2.1.1). These packages serve the same purpose — conditional CSS class string composition.
Having both adds unnecessary bundle weight and creates confusion about which one to use when contributing.
Recommendation
Keep clsx only. It is smaller (~330B vs ~600B gzipped), faster, and already works with tailwind-merge via the common cn() utility pattern:
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
Then remove classnames from package.json and replace any imports throughout the codebase.
This is a small cleanup, but for a starter template it helps set the right convention from the start.
Description
The project installs both
classnames(^2.5.1) andclsx(^2.1.1). These packages serve the same purpose — conditional CSS class string composition.Having both adds unnecessary bundle weight and creates confusion about which one to use when contributing.
Recommendation
Keep
clsxonly. It is smaller (~330B vs ~600B gzipped), faster, and already works withtailwind-mergevia the commoncn()utility pattern:Then remove
classnamesfrompackage.jsonand replace any imports throughout the codebase.This is a small cleanup, but for a starter template it helps set the right convention from the start.