Next.js์—์„œ SCSS ์‚ฌ์šฉํ•˜๊ธฐ
728x90

Today, What I learned?

์ด์ „์— ํ–ˆ๋˜ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ next.js๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ณผ์ • ์ค‘..

๋ฐ”๋‹๋ผ JS, HTML, SCSS๋กœ ๋˜์–ด์žˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ๋ ค๋‹ค๋ณด๋‹ˆ next.js์— SCSS๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ์ข€ ์žˆ์—ˆ๋‹ค.

 

๋จผ์ € ํ˜„์žฌ ์Šคํƒ€์ผ ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ์ด๋ ‡๋‹ค.

 

 

์„ค์น˜

๋จผ์ € ํ”„๋กœ์ ํŠธ ํด๋”์— sass ์„ค์น˜!

yarn add sass

์ปดํฌ๋„ŒํŠธ ํด๋”์˜ scss ํŒŒ์ผ๋“ค์€ module.scss๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค.

 

 

Selector "body" is not pure

์ฒ˜์Œ์— ๋ชจ๋“  ํŒŒ์ผ์— module์„ ๋ถ™์˜€๋‹ค๊ฐ€ ๋งŒ๋‚œ ์—๋Ÿฌ..

reset.scss ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ „์ฒด์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๋ถ€๋ถ„์ด๊ณ , module.css ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” CSS ๋ชจ๋“ˆ์ด๊ธฐ ๋•Œ๋ฌธ์—

๊ณตํ†ต์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” CSS ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” module.css๋กœ ์ ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„์€ index.scss์— ๋ชจ์•„์„œ ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ณ„ scss ํŒŒ์ผ์— import ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ •ํ–ˆ๋‹ค.

(์ขŒ) index.scss (์šฐ) ์ ์šฉ๋ฐฉ์‹

 

 

์ ์šฉ

css module ๋ฐฉ์‹์œผ๋กœ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  className ํ‚ค์›Œ๋“œ๋กœ ๊ฐ๊ฐ์˜ ์Šคํƒ€์ผ์„ ์ ์šฉํ–ˆ๋‹ค.
์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—” ๋ฐฑํ‹ฑ ์ด์šฉ!

const BeachInfoTop = () => {
  return (
    <div className={styles.beachInfoTop}>
      <FaUmbrellaBeach className={styles.icBeach} aria-disabled />
      <h1 className={`${styles.title} ${styles.beachName}`}>์—†์Œ</h1>
      <p className={styles.baseTime}>00:00</p>
      <div className={styles.weatherWrapper}>
        <div className={styles.weatherImg}>
          <Image src={`/assets/images/clear.png`} alt="๋ง‘์Œ" width={72} height={72} />
        </div>
        <h3 className={styles.currentTemp}>33°</h3>
      </div>
    </div>
  );
};

 

์œ„์˜ ์ฝ”๋“œ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ ์šฉํ–ˆ๋”๋‹ˆ ์ž˜ ๋‚˜์™”๋‹ค~  ๊ตฟ ๐Ÿ‘€

728x90