Tool
Tailwind CSS์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ข์ ๋๊ตฌ ๋ชจ์
์กฐ๊ฑด๋ถ๋ก className ๋ฌธ์์ด์ ๊ตฌ์ฑํ๊ธฐ ์ํ ๋๊ตฌ
props์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ฌ๋ผ์ง๋ ์คํ์ผ์ ์ค์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋๊ตฌ๋ก
classnames
์clsx
๊ฐ ์๋ค.clsx
๋classnames
๋ณด๋ค ๋ ๊ฐ๋ณ๊ณ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
Install
yarn add clsx
className๊ณผ props๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ด์ ๊ด๋ จํ ํ์ ์ ์๋์ผ๋ก ์ถ๊ฐํ๊ณ ๊ด๋ฆฌํ๋ ์์ ์ ๋จ์ํํ๋ฉฐ, ์คํค๋ง๋ฅผ ํตํด ์ฝ๋์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์๋๋ก ๋์์ ์ฃผ๋ ๋๊ตฌ
cva
๋ ๋ด๋ถ์ ์ผ๋ก clsx
๋ฅผ ์ฌ์ฉํ๋ฉฐ, cx
ํจ์๋ฅผ ์ ๊ณตํ์ฌ clsx
์ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
ํ์ง๋ง "cva"๋ "classValue" ํ์
์ ์ ๊ณตํ์ง ์์์ ํ์ฌ ๋ ๊ฐ์ ํจํค์ง๋ฅผ ๋์์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด๋ค.
Install
yarn add class-variance-authority
Reference
const componentVariant = cva(base, options);
base
โ ์ปดํฌ๋ํธ์ ์ ์ฉ๋๋ ๊ธฐ๋ณธ์ ์ธ ์คํ์ผ ํด๋์ค ๋ฌธ์์ดstring, string[], ๋๋ clsx ๊ฐ์ผ๋ก ํํ๋ ์ ์๋ค.
options
(optional)variants โ ์ปดํฌ๋ํธ์ ์ ์ฉ๋๋ ๋ค์ํ ์ํ๋ ์คํ์ผ์ ๋ณํ์ ์ ์
compoundVaraints โ variants์ ์ ์๋ ๊ฐ๋ค์ ์กฐํฉ(AND ์ฐ์ฐ)์ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด varaints๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ
defaultvariants โ variants์ ์ ์ํ ๊ฐ๋ค์ ๊ธฐ๋ณธ๊ฐ์ ์ค์
cva๋ฅผ ์ฌ์ฉํด ์์ฑ๋ props๋ค์ undefined
, null
ํ์
๊ฐ๋ ์ถ๊ฐ๋์ด์ง๋๋ฐ, ์ด๋ ํด๋น varaint๋ฅผ ์์ ํ ๋ฌดํจํ ์ํค๊ธฐ ์ํ ์๋์ ์ธ ๊ธฐ๋ฅ ์ด๋ผ๊ณ ํ๋ค. #Issue
++ ์ง๊ธ์ ์คํ ๋จ๊ณ์ด์ง๋ง ๋ค์ ๋ฒ์ ์์๋ null
๋์ ๋ช
์์ ์ผ๋ก unset
์ ์ฌ์ฉํ ์์ ์ด๋ผ ํ๋ค.. #check
Usage
cva๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง ํด๋ณด๊ณ ๋น๊ตํด๋ณด์.
Tailwind-merge
ํด๋์ค๋ฅผ ์กฐํฉํ๊ณ ์ค๋ณต์ ํผํ์ฌ ์คํ์ผ ์ถฉ๋ ์ด์๋ฅผ ๋ฐฉ์งํ๊ณ , ํจ์จ์ ์ผ๋ก ์คํ์ผ์ ์ ์ํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ
Install
yarn add tailwind-merge
Reference
twMerge
โ ์ฌ๋ฌ ํด๋์ค๋ค์ ๋ณํฉํ๋ ์ ํธ ํจ์, ์ค๋ณต๋ ํด๋์ค ์ถฉ๋์ ํด๊ฒฐํ๊ณ , ๊ฐ์ฅ ๋ง์ง๋ง์ ์ ๋ฌ๋ ํด๋์ค๋ฅผ ์ ์งํ๋ค.twJoin
โtwMerge()
์ ๋ฌ๋ฆฌ ์ถฉ๋์ ํด๊ฒฐํ์ง ์๋๋ค. clsx์ ๋น์ทํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์ฌ์ฉ๋ฒ๋ ๋น์ทํ๋ค. But ๊ฐ์ฒด ์ธ์๋ ์ง์ํ์ง ์์
Last updated