단 14줄의 CSS로 밝고 어두운 모드
이 솔루션은 JavaScript를 사용하지 않으므로 밝고 어두운 모드 토글을 구축하지 않습니다. 대신 CSS 미디어 쿼리로 사용자의 시스템 설정을 감지하고 두 개의 사용자 지정 CSS 속성을 사용하여 기본 색 구성표를 결정합니다. 방법은 다음과 같습니다.
2개의 CSS 사용자 지정 속성 선언
CSS 사용자 정의 속성은 CSS variables or cascading variables이라고도 합니다. CSS 사용자 정의 속성은 CSS 파일의 어느 곳에서나 정의할 수 있으며 다른 CSS 규칙과 동일한 연속 및 특정 패턴을 따릅니다. 예를 들어 문서 루트에서 CSS 변수를 정의하고 보다 구체적인 CSS 클래스에서 재정의할 수 있습니다. 멋진 점은 스타일시트 규칙 아래에 표시되는 브라우저 개발 도구에서 선언된 CSS 변수를 검사하고 디버그할 수도 있다는 것입니다.
CSS 사용자 정의 속성은 두 개의 대시(--) 접두사가 붙은 단어로 선언되며
var()
함수를 사용하여 액세스합니다.:root {
--my-color-variable: #000000;
}
.element {
/* This is calculated as #000000! */
color: var(--my-color-variable);
}
또한
var()
함수에 두 번째 매개변수를 전달할 수 있습니다. 이 매개변수는 사용하려고 할 때 사용자 정의 속성이 존재하지 않는 경우 대체 값 역할을 합니다..element {
color: var(--my-new-color, #ff0000);
}
이 밝은/어두운 모드 솔루션의 경우 문서 루트에서 두 개의 색상 변수를 정의합니다. 하나는 전경색용이고 다른 하나는 배경색용입니다. 저는 기본적으로 다크 모드를 선택하는 편이라 배경색을 검정(
--color-bg
), 전경색을 흰색(--color-fg
)으로 설정합니다.:root {
--color-bg: #000000;
--color-fg: #ffffff;
}
prefers-color-scheme 미디어 쿼리 사용
다음으로 prefers-color-scheme CSS 미디어 쿼리를 사용하여 시스템 설정에 연결하고 배경 및 전경색에 대한 변수 선언을 뒤집습니다. 다음 코드는 밝은 테마 설정이 감지되면
--color-bg
를 흰색으로, --color-fg
를 검은색으로 설정합니다.@media (prefers-color-scheme: light) {
:root {
--color-bg: #ffffff;
--color-fg: #000000;
}
}
바디 스타일 추가
마지막으로 CSS 사용자 지정 속성을 사용하여 HTML
background-color
요소에서 (페이지 색상의 경우) color
및 (텍스트의 경우) body
를 설정합니다. 덮어쓰지 않으면 모든 하위 요소가 상속합니다.body {
background-color: var(--color-bg);
color: var(--color-fg);
}
그게 전부입니다. 단 14줄의 CSS로 기본 조명 및 어두운 모드 기본 설정을 지원합니다!
CodePen에서 코드 보기
시스템 기본 설정에 따라 밝은 모드 또는 어두운 모드를 표시하는 full example on CodePen 이 있습니다. CodePen 스위치 테마를 보려면 시스템 설정을 전환하세요!
다크 모드와 라이트 모드를 어떻게 구현합니까? .
Reference
이 문제에 관하여(단 14줄의 CSS로 밝고 어두운 모드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/whitep4nth3r/light-and-dark-mode-in-just-14-lines-of-css-424e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)