Style Basics

className

JSX ๊ตฌ๋ฌธ์—์„œ ํƒœ๊ทธ์— class ๋ช…์„ ์ถ”๊ฐ€ํ•  ๋•Œ class' ๋Œ€์‹  'className'์„ ์‚ฌ์šฉํ•œ๋‹ค.

jsx๊ตฌ๋ฌธ์€ html๊ณผ ๋น„์Šทํ•ด๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” js์ฝ”๋“œ์ด๋‹ค.

js์—์„œ class๋Š” ์ด๋ฏธ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์˜ˆ์•ฝ์–ด๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ jsx์—์„œ class ๋Œ€์‹  className์„ ์‚ฌ์šฉํ•œ๋‹ค.

classNames

react์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” class ๋ช… ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

class ๋ช…์„ ์กฐ๊ฑด๋ถ€๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ํ•ด์คŒ

declare function classNames(...args: classNames.ArgumentArray): string;
  1. classNaems ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด ๋˜๋Š” ๊ฐ์ฒด ํ˜•์‹์˜ ์—ฌ๋Ÿฌ ์ธ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

  2. ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ ํด๋ž˜์Šค ๋ช…์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜

  3. ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค ๋ช…์„ ์กฐ๊ฑด๋ถ€๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ

  4. key๊ฐ€ ํด๋ž˜์Šค ๋ช…์ด ๋˜๊ณ , value๊ฐ€ truthy(์ฐธ๊ฐ™์€ ๊ฐ’) ์ผ ๋•Œ๋งŒ ์ถ”๊ฐ€๋œ๋‹ค.

Install

npm i -D classnames

Usage

import cn from 'classnames';

return (
  <button
    className={cn("btn-base", {
      [cn(
        ButtonVariantClassName.default,
        ButtonVariantClassName.hover,
        ButtonVariantClassName.focus,
      )]: !disabled, 
    })}
  >
    Button
  </button>
);

Last updated