웹사이트에 어두운 테마 및 밝은 테마 추가
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 웹 개발자 (HTML/CSS/JavaScript 기초 지식 보유자)
- 난이도: 중간 (라이브러리 없이 직접 구현하는 방법 설명)
핵심 요약
color-scheme
CSS 속성 사용으로 OS 테마 기반 자동 테마 적용 가능prefers-color-scheme
미디어 쿼리로 사용자 선호도 감지 및 테마 전환- JavaScript로
body
/html
태그 속성 조작을 통한 동적 테마 전환 구현 가능 - 보안/접근성 고려: 사용자 OS 설정에 따라 테마 자동 적용, 사용자 경험 향상
섹션별 세부 요약
1. 서론
- 웹사이트에 어두운/밝은 테마 추가는 사용자 경험 향상과 접근성 개선에 기여
- OS 테마 설정에 따라 자동 테마 전환 가능 (예:
color-scheme
속성) - 사용자 편의성 증대를 위한 필수 기능으로 간주
2. 어두운 모드 필요성
- 다크 모드는 밝은 환경에서는 눈에 피로감을 줄이고, 어두운 환경에서는 가독성 향상
- 사용자 OS 테마 선호도에 따라 테마 자동 전환 가능
- 라이브러리 사용 없이도 HTML/CSS/JavaScript로 구현 가능
3. 어두운/밝은 모드 구현 방법
color-scheme
CSS 속성 사용 (예:color-scheme: dark light
)prefers-color-scheme
미디어 쿼리로 사용자 OS 테마 감지 (예:@media (prefers-color-scheme: dark)
)- JavaScript로
body
태그 속성 조작 (예:document.body.setAttribute('data-theme', 'dark')
) html
태그 클래스 이름 변경을 통한 테마 전환 (예:document.documentElement.classList.add('dark')
)
4. 추가 개념
- 사용자 에이전트 스타일시트(User Agent Stylesheet): 기본 스타일 제공, OS 테마 기반 자동 조정
color-scheme
값:normal
,light
,dark
,light dark
,only light
등- 예시 코드:
```css
:root {
color-scheme: dark light; / 어두운/밝은 테마 모두 지원 /
}
```
결론
color-scheme
과 JavaScript 속성 조작을 활용해 라이브러리 없이도 테마 전환 구현 가능- 사용자 OS 설정을 반영한 자동 테마 전환으로 접근성 및 사용자 경험 향상
- 보안/접근성: 사용자 선호도 기반 테마 자동 적용, 코드 간결성 유지 권장