웹 개발에서 스타일링은 매우 중요한 요소이며, 코드의 효율성과 유지보수성을 높이는 것은 디자이너와 개발자 모두에게 필수적입니다. CSS 변수, 또는 CSS Custom Properties는 이러한 필요를 충족시키기 위한 강력한 도구입니다. 이번 포스팅에서는 개념, 사용법, 그리고 이를 통해 스타일을 관리하는 방법에 대해 알아보겠습니다.
1. CSS 변수란?
재사용 가능한 값을 저장할 수 있는 변수를 CSS에서 사용하는 기능입니다. --로 시작하는 사용자 정의 속성을 사용하여 선언하며, 이후에는 var() 함수를 사용하여 참조합니다. CSS 변수는 전역 또는 지역으로 선언할 수 있으며, 이를 통해 코드의 중복을 줄이고 일관성을 유지할 수 있습니다.
2. 변수 선언과 사용법
1. 변수 선언
보통 :root 선택자를 사용하여 전역적으로 선언합니다. 이는 문서의 최상위 요소를 의미하며, 페이지 전체에서 접근할 수 있는 변수를 생성합니다.
:root {
--primary-color: #3498db;
--secondary-color: #2ecc71;
--font-size: 16px;
}
–primary-color, –secondary-color, –font-size는 각각의 변수를 선언하는 코드입니다. 이 변수들은 스타일을 적용할 때 어디서나 재사용할 수 있습니다.
2. 변수 사용
변수를 사용하려면 var() 함수를 사용하여 선언한 변수를 참조합니다.
body {
font-size: var(--font-size);
background-color: var(--primary-color);
}
h1 {
color: var(--secondary-color);
}
위 코드는 body와 h1에 각각 변수를 적용하여 스타일을 설정합니다. 이와 같이 변수를 사용하면 코드가 간결해지고, 스타일을 변경할 때 수정을 한 곳에서만 진행하면 됩니다.
3. CSS 변수의 장점
1. 재사용성
가장 큰 장점은 재사용성입니다. 한번 선언한 변수는 어디에서든지 참조할 수 있어, 색상이나 폰트 크기 등을 여러 곳에서 일관되게 사용할 수 있습니다. 이를 통해 스타일이 변경될 경우, 변수만 수정하면 전체에 반영됩니다.
2. 유지보수성
코드의 가독성을 높이고 유지보수를 용이하게 합니다. 만약 색상을 변경하고 싶다면, 변수를 한 번 수정하는 것만으로 모든 요소에 일관된 변화를 줄 수 있습니다. 이를 통해 개발자는 스타일 시트를 관리하는 데 소요되는 시간을 줄일 수 있습니다.
3. 동적 변경
JavaScript를 사용하여 동적으로 값을 변경할 수 있습니다. 이를 통해 사용자 인터랙션에 따라 스타일을 실시간으로 조정할 수 있습니다.
document.documentElement.style.setProperty('--primary-color', '#e74c3c');
JavaScript를 사용해 변수의 값을 변경함으로써, 웹 페이지의 스타일을 즉시 수정할 수 있습니다. 예를 들어, 테마 전환 기능을 쉽게 구현할 수 있습니다.
4. CSS 변수의 사용 예시
1. 테마 전환
변수를 사용하여 테마 전환 기능을 쉽게 구현할 수 있습니다. 다크 모드와 라이트 모드를 예로 들어보겠습니다.
:root {
--background-color: #ffffff;
--text-color: #000000;
}
.dark-mode {
--background-color: #2c3e50;
--text-color: #ecf0f1;
}
body {
background-color: var(--background-color);
color: var(--text-color);
}
기본 테마와 다크 모드를 CSS 변수로 정의했습니다. JavaScript를 통해 다크 모드를 토글할 수 있으며, 클래스 추가만으로 테마를 변경할 수 있습니다.
const toggleButton = document.querySelector('#theme-toggle');
toggleButton.addEventListener('click', () => {
document.body.classList.toggle('dark-mode');
});
2. 반응형 디자인
CSS 변수를 사용하여 반응형 디자인을 보다 쉽게 구현할 수 있습니다. 화면 크기에 따라 다양한 변수 값을 설정하여 더 유연한 스타일링이 가능합니다.
:root {
--padding: 20px;
}
@media (max-width: 600px) {
:root {
--padding: 10px;
}
}
.container {
padding: var(--padding);
}
화면 크기에 따라 패딩 값을 조정하는 방법을 보여줍니다. 이를 통해 다양한 화면 크기에 대응할 수 있습니다.
5. 주의할 점
CSS 변수를 사용할 때 주의해야 할 점은 브라우저 호환성입니다. 대부분의 최신 브라우저에서 지원하지만, 구형 브라우저에서는 지원하지 않을 수 있습니다. 따라서 브라우저 호환성을 고려하여 사용할 때는 항상 확인이 필요합니다.
CSS 변수(CSS Custom Properties)는 웹 개발에서 스타일을 관리하고 유지보수성을 향상시키는 데 큰 도움이 되는 기능입니다. 변수의 재사용성, 동적 변경 가능성, 그리고 가독성을 통해 개발자는 더 효율적으로 작업할 수 있습니다. 변수를 활용하여 코드의 일관성을 유지하고, 사용자 인터페이스를 더 매력적이고 유연하게 만들어 보세요.









