Sass의 변수(Variables)는 CSS에서 반복적으로 사용되는 값(색상, 글꼴, 크기 등)을 재사용 가능하도록 저장하는 기능이다.
변수를 사용하면 유지보수성이 좋아지고, 스타일을 일관성 있게 관리할 수 있다.
Sass에서 변수는 $
기호를 사용하여 선언한다.
$변수명: 값;
$primary-color: #3498db;
$secondary-color: #2ecc71;
body {
background-color: $primary-color;
color: white;
}
button {
background-color: $secondary-color;
border: none;
padding: 10px;
}
$primary-color
와 $secondary-color
를 사용하면 스타일을 쉽게 변경할 수 있음Sass 변수는 다양한 데이터 타입을 가질 수 있다.
타입 | 예제 |
---|---|
숫자 | $width: 100px; |
색상 | $color: #ff5733; |
문자열 | $font: "Arial", sans-serif; |
불리언 | $is-dark-mode: true; |
리스트 | $margins: 10px 15px 20px; |
맵(Map) | $theme-colors: ("primary": #3498db, "danger": #e74c3c); |
// 리스트
$spacing-sizes: 10px, 20px, 30px;
.box {
margin: nth($spacing-sizes, 2); // 20px
}
// 맵(Map)
$theme-colors: (
"primary": #3498db,
"secondary": #2ecc71
);
button {
background-color: map-get($theme-colors, "primary");
}
nth()
함수로 리스트에서 값을 가져오고, map-get()
으로 맵에서 값을 찾을 수 있음Sass 변수는 전역(Global)과 지역(Local) 범위를 가질 수 있다.
$global-color: red; // 전역 변수
.container {
$local-color: blue; // 지역 변수
color: $local-color; // ✅ 정상 작동
}
p {
color: $global-color; // ✅ 정상 작동
// color: $local-color; ❌ 오류 발생 (범위를 벗어남)
}
!default
변수는 다른 값으로 재할당할 수 있다.
하지만, !default
를 사용하면 값이 이미 설정되지 않은 경우에만 적용된다.
!default
$primary-color: blue; // 기본 값
$primary-color: red; // 새로운 값으로 변경
$secondary-color: green !default; // 값이 설정되지 않았으므로 적용됨
$secondary-color: orange !default; // 이미 설정되어 있으므로 변경되지 않음
button {
background-color: $primary-color; // red
border-color: $secondary-color; // green
}
!default
를 사용하면 기본 값을 제공하면서도 필요할 경우 다른 값으로 덮어쓸 수 있음--variable
)와 Sass 변수($variable
)의 차이비교 항목 | Sass 변수 ($var ) | CSS 변수 (--var ) |
---|---|---|
선언 위치 | SCSS에서만 사용 가능 | CSS에서 직접 사용 가능 |
값 변경 가능 여부 | 컴파일 후 변경 불가능 | 런타임에서 변경 가능 (JavaScript 활용 가능) |
사용 가능 환경 | SCSS 파일에서만 가능 | 모든 CSS에서 사용 가능 |
계산 가능 여부 | 컴파일 시 계산됨 | 브라우저에서 실시간 계산 가능 |
// Sass 변수
$primary-color: #3498db;
body {
background-color: $primary-color; // Sass 변수를 사용
}
/* CSS 변수 */
:root {
--primary-color: #3498db;
}
body {
background-color: var(--primary-color); /* CSS 변수를 사용 */
}
$variable
)를 사용하면 코드 재사용성과 유지보수성이 향상됨--variable
)와 함께 사용하여 유연성을 극대화할 수도 있음