๋กœ๊ณ ๋กœ๊ณ 

cva(class-variance-authority)

2025๋…„ 3์›” 13์ผ

cva๋Š” class-variance-authority์˜ ์•ฝ์ž์ด๋ฉฐ, Tailwind CSS ์‚ฌ์šฉ์ž๋“ค์ด ๋™์  ํด๋ž˜์Šค ์กฐํ•ฉ์„ ๊น”๋”ํ•˜๊ณ  ํƒ€์ž… ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ฃผ๋กœ ๋ฒ„ํŠผ, ๋ฑƒ์ง€, ์นด๋“œ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ์—์„œ variant, size, disabled ๊ฐ™์€ **์†์„ฑ(variant)**์— ๋”ฐ๋ผ className์„ ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์„ฑ

ย 

ย 

์žฅ์ 

ย 

์„ค์น˜

npm install class-variance-authority

ย 

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

import { cva } from "class-variance-authority";

const button = cva("px-4 py-2 font-semibold rounded", {
  variants: {
    variant: {
      primary: "bg-blue-500 text-white",
      secondary: "bg-gray-300 text-black",
    },
    size: {
      sm: "text-sm",
      md: "text-md",
      lg: "text-lg",
    },
  },
  defaultVariants: {
    variant: "primary",
    size: "md",
  },
});

ย