SCSS에서 변수는 반복되는 값들을 손쉽게 관리하고, 유지보수성을 높이기 위해 사용됩니다. 변수는
$
기호로 선언하며, 색상, 숫자, 문자열 등 다양한 데이터 타입을 저장할 수 있습니다.
$primary-color: #3498db;
$font-size-large: 24px;
$spacing-unit: 16px;
body {
font-size: $font-size-large;
color: $primary-color;
padding: $spacing-unit;
}
위의 예시에서는 $primary-color
, $font-size-large
, $spacing-unit
변수를 사용하여 색상, 글자 크기, 간격을 쉽게 설정하고 있습니다. 이렇게 변수로 값을 지정하면, 나중에 디자인 요구사항이 변경될 때 변수만 수정하면 되므로 매우 유용합니다.
SCSS의 변수는 다양한 데이터 타입을 지원합니다. 대표적인 데이터 타입으로는 색상, 숫자, 문자열, 리스트, 맵 등이 있습니다.
$background-color: #f0f0f0;
.container {
background-color: $background-color;
}
$max-width: 1200px;
.wrapper {
max-width: $max-width;
}
$font-family-base: 'Helvetica, Arial, sans-serif';
body {
font-family: $font-family-base;
}
변수를 사용하면 코드가 반복되는 것을 방지하고, 일관성을 유지할 수 있습니다.
SCSS의 중첩 규칙은 CSS의 상위-하위 관계를 보다 직관적으로 표현할 수 있게 해줍니다. 일반적인 CSS에서는 하위 요소의 스타일을 지정할 때 선택자를 반복해야 하지만, SCSS의 중첩을 활용하면 코드의 구조가 더 명확해집니다.
nav {
background-color: #333;
ul {
list-style: none;
li {
display: inline-block;
a {
color: white;
text-decoration: none;
}
}
}
}
위의 예시에서 nav
, ul
, li
, a
요소들이 계층적으로 중첩되어 작성되어 있습니다. 중첩을 사용하면 각 요소 간의 관계가 명확하게 드러나므로 가독성이 높아집니다.
복잡한 구조를 가진 CSS에서도 중첩을 활용하면 코드가 간결해집니다.
.header {
background: #222;
.logo {
float: left;
img {
width: 100px;
}
}
.nav {
float: right;
ul {
li {
display: inline;
}
}
}
}
위와 같이 중첩을 활용하면, 각 요소들의 스타일을 선언하는 과정에서 선택자의 반복을 줄일 수 있습니다.
믹스인은 SCSS에서 자주 사용되는 스타일 블록을 재사용할 수 있도록 도와주는 기능입니다.
@mixin
키워드를 사용하여 믹스인을 정의하고,@include
를 사용해 호출합니다.
@mixin flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.container {
@include flex-center;
height: 100vh;
}
위의 예시에서 flex-center
믹스인은 display: flex;
및 정렬 관련 스타일을 포함하고 있으며, container
클래스에서 이 믹스인을 호출하여 재사용하고 있습니다.
믹스인에 인자를 전달하여 더 유연하게 스타일을 재사용할 수 있습니다.
@mixin border-radius($radius) {
border-radius: $radius;
}
.button {
@include border-radius(10px);
}
위의 예시에서 border-radius
믹스인은 $radius
라는 인자를 받아, 호출 시 원하는 값으로 설정할 수 있습니다. 이를 통해 다양한 상황에 맞게 스타일을 재사용할 수 있습니다.
CSS에서 반복되는 스타일 블록을 SCSS의 믹스인으로 변환하여 코드의 재사용성을 높일 수 있습니다.
/* 기존 CSS 코드 */
.button-primary {
padding: 10px 20px;
background-color: #3498db;
color: white;
border: none;
border-radius: 5px;
}
.button-secondary {
padding: 10px 20px;
background-color: #2ecc71;
color: white;
border: none;
border-radius: 5px;
}
위의 코드에서 버튼 스타일이 반복되고 있습니다. 이를 SCSS 믹스인을 사용하여 간결하게 작성할 수 있습니다.
@mixin button-style($bg-color) {
padding: 10px 20px;
background-color: $bg-color;
color: white;
border: none;
border-radius: 5px;
}
.button-primary {
@include button-style(#3498db);
}
.button-secondary {
@include button-style(#2ecc71);
}
이렇게 믹스인으로 반복되는 스타일을 분리하면, 스타일을 일관성 있게 유지할 수 있고 코드의 재사용성을 높일 수 있습니다. 또한, 스타일 수정 시 믹스인만 수정하면 되므로 유지보수가 용이해집니다.
SCSS는 변수, 중첩, 믹스인 등의 기능을 통해 CSS 코드의 효율성과 가독성을 크게 향상시킬 수 있습니다. 변수를 사용하면 반복되는 값을 손쉽게 관리할 수 있고, 중첩을 통해 계층적 구조를 직관적으로 표현할 수 있습니다. 또한, 믹스인은 반복되는 스타일을 재사용 가능하게 하여 코드의 유지보수성을 높여줍니다. 이러한 기능들을 잘 활용하여 더 효율적이고 관리하기 쉬운 스타일을 작성해 보세요.