💡 Sass(Syntactically Awesome Style Sheets)는 css의 단점을 보완해 등장한 css 전처리기 중 하나다.
/*CSS*/
article {
background-color: white;
}
article h1{
color: blue;
}
article p{
font-size: 20px;
}
/*Scss*/
article {
background-color: white;
h1{
color: blue;
}
p{
font-size: 20px;
}
}
// styles/variables.scss
$bgColor = #EEEEEE;
// Main/Main.scss
@import '../../styles/variables.scss';
body{ background-color: $bgColor }
/*css*/
button {
background-color:blue;
}
button:hover {
background-color:skyblue;
}
//scss
button {
background-color:blue;
&:hover {
background-color:skyblue;
}
}
scss에서 &
을 사용하면 부모 선택자로 바뀐다.
위의 네스팅한 코드를 보면 &을 넣어주면 검사기에서 확인하면 button:hover라고 잘 나온다.
변수와는 다르게 중복되는 속성이 여러개 있을 때 사용한다.
예를 들어 자주 사용하는 width와 height를 mixin 방법으로 만들어 보겠다.
//1번
@mixin widthHeight {
width:400px;
height: 600px;
}
.feed {
@include widthHeight;
}
//2번
@mixin widthHeight($w, $h) {
width:$w px;
height:$h px;
}
.feed {
@include widthHeight(400,600)
}
1번 처럼 속성값을 지정할 수도 있고 2번 처럼 인자를 통해 속성값을 변경할 수도 있다.
css를 작성할 때 항상 class명을 고민하느라 시간을 많이 쓰고 오류가 발생해서 골치가 아팠는데 Sass를 이용하면 지금까지의 걸림돌 이였던 class명을 더이상 걱정하지 않아도 되어 아주 유용한 라이브러리 같다.