학습
CSS 다크 모드 및 테마 적용
CSS 다크 모드 및 테마 적용 — 고급
다크 모드 및 테마 적용
1. 도입 (왜 배워야 하는가)
다크 모드는 사용자 경험을 개선하고, 눈의 피로를 줄이며, 배터리 소모를 최소화하는 등 여러 가지 이점을 제공합니다. 특히, 최근에는 많은 웹사이트와 애플리케이션들이 다크 모드를 지원하고 있어, 이를 구현하지 않으면 사용자들이 불편함을 느낄 수 있습니다. 또한, 다양한 테마를 적용할 수 있는 능력은 사용자 맞춤형 경험을 제공하는 데 중요한 요소입니다. 만약 이 토픽을 모르고 웹사이트를 개발한다면, 사용자들의 다양한 요구를 수용하지 못해 경쟁력에서 뒤처질 수 있습니다.
2. 핵심 개념 설명
다크 모드
다크 모드는 배경을 어둡게 하고 글씨를 밝게 하여, 눈의 피로를 줄이는 디자인 트렌드입니다. 마치 밤에 불을 끄고 밝은 화면을 보는 것과 비슷한 느낌입니다.
CSS 변수
CSS 변수를 사용하여 테마 색상을 동적으로 변경할 수 있습니다. 이는 마치 요리할 때 다양한 재료를 사용하여 요리를 만드는 것과 같습니다.
| 용어 | 설명 |
|---|---|
| 다크 모드 | 어두운 배경과 밝은 텍스트 구성 |
| CSS 변수 | 재사용 가능한 값으로 CSS 스타일을 쉽게 조정 |
| 미디어 쿼리 | 화면 크기나 환경에 따라 스타일을 변경하는 방법 |
3. 기본 코드 예제
다크 모드를 간단히 구현하는 기본 코드입니다.
:root {
--background-color: #ffffff; / 기본 배경색 /
--text-color: #000000; / 기본 텍스트색 /
}
body {
background-color: var(--background-color);
color: var(--text-color);
}
.dark-mode {
--background-color: #000000; / 다크 모드 배경색 /
--text-color: #ffffff; / 다크 모드 텍스트색 /
}
- 실행 결과: 기본적인 웹페이지가 흰색 배경에 검은색 텍스트로 표시됩니다. 다크 모드 클래스를 추가하면 배경이 검은색으로 변하고 텍스트는 흰색으로 바뀝니다.
- 코드 설명:
- :root에서는 CSS 변수를 정의합니다.
- body에서는 기본 스타일을 적용합니다.
- .dark-mode 클래스가 추가되면 변수의 값을 변경하여 스타일을 재정의합니다.
4. 실전 활용 예제
예제 1: 쇼핑몰에서 다크 모드 구현
쇼핑몰 웹사이트에서 사용자가 다크 모드를 선택할 수 있도록 구현할 수 있습니다.
<button onclick="toggleDarkMode()">다크 모드 전환</button>
<div class="container">
<h1>상품 목록</h1>
<p>여기에 상품이 나열됩니다.</p>
</div>
<script>
function toggleDarkMode() {
document.body.classList.toggle('dark-mode');
}
</script>
예제 2: 개인 블로그에서 테마 전환 기능 추가
블로그에서 독자가 선호하는 색상을 쉽게 변경할 수 있는 기능을 구현할 수 있습니다.
<select onchange="changeTheme(this.value)">
<option value="light">라이트</option>
<option value="dark">다크</option>
</select>
<script>
function changeTheme(theme) {
if (theme === 'dark') {
document.body.classList.add('dark-mode');
} else {
document.body.classList.remove('dark-mode');
}
}
</script>
5. 흔한 실수와 주의사항
실수 1: CSS 변수를 잘못 사용하기
body {
background-color: var(--bg-color); / 잘못된 변수명 /
}
body {
background-color: var(--background-color); / 올바른 변수명 /
}
실수 2: 다크 모드 클래스를 누락하기
function toggleDarkMode() {
// 클래스를 추가하지 않음
}
function toggleDarkMode() {
document.body.classList.toggle('dark-mode'); // 클래스를 추가
}