Sass

ํ•œ์ƒํ˜„ยท2021๋…„ 1์›” 25์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
6/12

๐ŸŽ yarn add node-sass sass loader๋ฅผ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ Sass๋ฅผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๐Ÿงจ์ฃผ์˜ : Error: Node Sass version 5.0.0 is incompatible with ^4.0.0. ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Node Sass์˜ ๋ฒ„์ „์ด ๋งž์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ.

  • npm uninstall node-sass
  • npm install node-sass@4.14.1 ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•ด์คŒ.
  • ๋ญ˜ํ•ด๋„ ์•ˆ๋˜๋ฉด nodejs๋ฅผ ์ง€์› ๋‹ค๊ฐ€ LTS๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ
    ํ•„์ž๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•ด๊ฒฐ. 3์‹œ๊ฐ„ ์‚ฝ์งˆ..

๐ŸŽˆ Sass ์‚ฌ์šฉ

๐ŸŽ ํ˜„์žฌ ์„ ํƒ์ž ์ฐธ์กฐ

ํŠน์ • ํด๋ž˜์Šค์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆด ๋•Œ๋‚˜ ํด๋ฆญํ•  ๋•Œ ๋‹ค๋ฅธ ์Šคํƒ€์ผ ์ ์šฉํ•˜๋Š” CSS ์ฝ”๋“œ.

.box:active{
	background:red;
.box:active{
	background:yellow;

โฌ‡

Sass์˜ ํ˜„์žฌ ์„ ํƒ์ž ์ฐธ์กฐ ๊ธฐ๋Šฅ์œผ๋กœ ์ž‘์„ฑ.

.box{
	&:hover{
    	background: red;
        }
        &:active{
        background:yellow;
        }
     }     
App.js render๋ฉ”์„œ๋“œ
render(){
  const isBlue=true;
  return(
    <div className={cx('box', {
    blue:isBlue
    })}>
    <div className={cx('box-inside')}/>
    </div>
  );
}

๐ŸŽ ๋ณ€์ˆ˜ ์‚ฌ์šฉ

Sass๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

$size: 100px;
.box{
display : inline-block;
width : $size;
height: $size;
}

๐ŸŽ ๋ฏน์Šค์ธ ์‚ฌ์šฉ

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’ -> ๋ณ€์ˆ˜
์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๋ฌธ -> ๋ฏน์Šค์ธ

$size : 100px;

@mixin place-at-center(){
top:50%;
left:50%;
transform: translate(-50%,-50%);
}
.box{
display : inline-block;
width: $size;
height : &size;

@include place-at-center();
}

๐Ÿงจ ๋ณ€์ˆ˜์™€ ๋ฏน์Šค์ธ ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๐Ÿ˜œ ์œ„์—์„œ ๋ฐฐ์šด ๋ณ€์ˆ˜์™€ ๋ฏน์Šค์ธ์€ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ€์ผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌ.

src/styles/utils.scss
$size : 100px;

@mixin place-at-center(){
top:50%;
left:50%;
transform: translate(-50%,-50%);
}
App.scss
@import './styles/utils';

๐ŸŽˆ Sass ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๐Ÿ˜œ Sass ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ์Šคํƒ€์ผ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ .
์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ‘์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
npm or yarn์œผ๋กœ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์˜ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋Š” ~๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ node_modules์— ์ ‘๊ทผ ๊ฐ€๋Šฅ.

  • yarn add include-media open-color

์ฐธ๊ณ  : <๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ >

profile
์˜ ๊ณต๋ถ€ ๋…ธํŠธ.

0๊ฐœ์˜ ๋Œ“๊ธ€