1. SCSS의 장점 및 기능
장점: 가독성 및 유지보수성 향상,- 재사용성 높임, 연산 및 함수 정의, 파일 분할 및 모듈화로 코드 관리
변수 (Variables): 스타일에서 사용되는 색상, 폰트 크기 등을 변수로 정의중첩 규칙 (Nested Rules): 요소의 계층 구조를 중첩하여 스타일을 작성믹스인 (Mixins): 스타일 코드를 재사용하기 위한 함수와 같은 기능을 제공모듈 (Modules):- 하나의 파일에 모든 스타일 코드를 작성하지 않고,
- @use 규칙을 사용해서 여러 파일을 모듈로 나눠서 사용할 수 있음
연산과 함수 (Operators):- SCSS는 수치 연산을 지원하며 내장 함수를 사용하여
- 동적인 스타일을 생성할 수 있음 (e.g. darken(), lighten() 함수)
자세한 문법은 공식문서 가이드 참조
2. SCSS 기능
2.1 변수
1// 변수 정의2$primary-color: #3498db;3$font-size-large: 18px;4$margin-default: 10px;56// 변수 활용7.header {8background-color: $primary-color;9font-size: $font-size-large;10margin: $margin-default;11}1213.button {14background-color: $primary-color;15font-size: $font-size-large;16margin: $margin-default;17}
SCSS 변수는 스타일시트에서 자주 사용되는 값을 저장하고 재사용할 수 있음
- 스타일 일관성 유지, 효율적인 업데이트
- e.g.) 글꼴 크기, 여백 값 등을 변수로 저장하여 코드 중복을 피하고 유지보수 간소화
- 변수를 사용하면 스타일 코드가 보다 명확해지고 스타일을 정리하는데 더욱 편리함
2.2 중첩 규칙 (Nexted Rules)
1.header {2background-color: #333;3padding: 20px;4}5h1 {6font-size: 24px;7color: white;8}9.menu {10display: flex;11li {12margin-right: 10px;13}14a {15text-decoration: none;16color: white;17&:hover {18text-decoration: underline;19}20}21}
- CSS 규칙을 더 명확하고 계층적으로 표현
- 코드의 가독성을 높이고, 유지보수하기 쉽게 함
- e.g.) 웹사이트의 헤더와 메뉴 항목에 대한 스타일을 중첩 규칙으로 작성하면 구조적으로 코드를 정리할수 있음.
- 상위 요소의 스타일을 중복해서 작성하지 않고도 하위 요소에 쉽게 적용 가능
2.3 믹스인 (Mixins)
1@mixin button-style {2display: inline-block;3padding: 10px 20px;4font-size: 16px;5background-color: #3498db;6color: white;7border: none;8cursor: pointer;9&:hover {10background-color: darken (#3498db, 10%);11}12}13.button {14@include button-style;15}16.alert-button {17@include button-style;18background-color: #e74c3c;19}
- 믹스인: SCSS에서 스타일 속성과 값을 묶어서 재사용 가능한 코드 블럭을 생성하는 기능
- 반복되는 스타일 중복 방지
- e.g.) 웹사이트에서 버튼 스타일을 자주 사용한다면 믹스인으로 버튼 스타일을 정의하고 필요한 곳에서 호출하여 사용할 수 있음
- 스타일 코드를 재사용 가능한 함수로 사용 가능
- 스타일 코드의 간결성과 일관성 유지
2.4 연산과 함수 (Operators)
1$base-font-size: 16px;23.container {4width: 100% — 20px; // 수치 연산5font-size: $base-font-size * 1.2; // 곱셈 연산6color: darken (#3498db, 20%); // 내장 함수7}8.button {9background-color: lighten (#e74c3c, 10%); // 내장 함수10padding: 10px + 5px; // 수치 연산11}
- SCSS만의 수치 연산자 혹은 내장 함수를 사용하여 동적인 스타일 생성 (스타일 값 계산 & 변경)
- e.g.) 웹사이트에서 여백 값을 계산하는 경우나 색상을 변화시키는 경우 등에 연산과 함수를 활용
- 연산자 예시:
+, -, * math.div(), %반응형 디자인이나 동적 스타일링에 유용
2.5 모듈화 (Modules)
1// _variables.scss 파일2$primary-color: #3498db;3$font-size-large: 18px;45// _button.scss 파일6.button {7background-color: $primary-color;8color: white;9padding: 10px 20px;10font-size: $font-size-large;11}1213// _header.scss 파일14.header {15background-color: $primary-color;16padding: 20px;17}
1// main.scss 파일2@import 'variables';3@import 'button';4@import 'header';
- SCSS에서 스타일을 여러 파일로 나눠서 관리
- 큰 프로젝트에서 스타일을 조직화하고 유지보수하기 편하게 만들 수 있음
- e.g.) 웹사이트의 다양한 컴포넌트나 섹션마다 별도의 스타일 파일을 만들고 필요한 곳에서 가져와 사용
- 스타일 파일이 독립적으로 유지되므로 복잡성을 낮추고 스타일 충돌 방지