File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
export type ClassValue = string | false | null | undefined;
/**
* 조건부 클래스명을 합친다. falsy 값은 버린다.
*
* cx(styles.button, isActive && styles.active, className)
*
* 유틸리티 CSS 프레임워크에서 쓰는 클래스 병합 라이브러리(tailwind-merge 등)가
* 필요 없는 이유: CSS Module은 클래스명이 파일 단위로 스코프되므로 서로 다른
* 컴포넌트의 클래스가 같은 속성을 두고 충돌하지 않는다. 한 컴포넌트 안에서의
* 충돌은 선언 순서(뒤에 온 규칙이 이김)로 결정되며, 이는 CSS의 정상 동작이다.
*/
export function cx(...values: ClassValue[]): string {
return values.filter(Boolean).join(" ");
}