🍓𝗪𝗲𝗯/𝖱𝖾𝖺𝖼𝗍

[React] SASS 문법 정리

안오늘 2021. 9. 17. 21:27

SASS란?

프로그래밍언어스럽게 작성가능한 Preprocessor로, CSS에서 변수, 연산자, 함수, extend, import를 사용 가능하다.

브라우저는 SASS문법을 모르기 때문에 SASS로 작성 파일을 다시 CSS로 컴파일해야하는데, 이 작업을 node-sass가 해준다.

 

설치방법

1. yarn add node-sass

2. import './파일이름.scss'; 해온다.

설치 시 생기는 버전상의 오류는 아래 게시글을 참고하면 좋다 ! 👍 

2021.09.17 - [🍓𝗪𝗲𝗯/𝖱𝖾𝖺𝖼𝗍] - [오류처리] node-sass 설치오류, version 문제 해결

 

[오류처리] node-sass 설치오류, version 문제 해결

에러 상황 1. yarn add node-sass로 설치했는데 6.0.1 버전은 지원하지 않고 4.0.0이나 5.0.0을 써야한다고 나왔다. 2. yarn remove node-sass했으나 명령이 듣지 않았다. package.json이 아니다? 이런식으로 나..

ahntoday.tistory.com

 

문법

1. $변수명: 변수에 넣을 값

$maincolor: #ff0000;

.red {
	color: $maincolor;
}

2. @import 파일경로

모든 페이지에 필요한 아래의 예시와 같은 것을 reset.scss로 미리 저장해둔다.

그리고 @import './reset.scss' 와 같이 import해서 사용한다.

쓸데없는 파일이니 컴파일을 자동으로 하지 말라고 표현할 때는 파일명 맨앞에 _를 붙인다. _reset.css와 같이!

body {
	margin: 0;
}

div {
	box-sizing: border-box;
}

3. nesting

div.container h1 {
	color: mint;
}
div.container p {
	color: blue;
}

div.container {
	h1 {
    	color: mint;
    }
    
    p {
    	color: blue;
    }
}

안에 넣어 관계를 표시하기 때문에, 전부 div.container 안에 있는 UI라는 것을 인식하기 쉬움

 

4. @extend

기존에는 클래스를 그대로 복붙해서 background만 바꿔서 적용했는데,  @extend를 이용하면 복붙을 안해도 되서 편리하다.

.customAlert {
    background: #eeeeee;
    padding: 20px;
    border-radius: 5px;
    max-width: 500px;
    width: 100%;
    margin: auto;
}

.customAlert-yellow {
    @extend .customAlert;
    background: #ffe591;
}

5. @mixin / @include

mixin으로 함수를 만들고 (위에서 선언한다

include로 함수 가져가서 쓴다.

 

@mixin 함수() {

     ... css 속성

}

 

.클래스명 {

    @include 함수()

}

 

장점

sass문법으로 css작성하면 코드의 양이 줄어든다.