prefer-color-scheme ๐ data-theme ๐ class ๋ฐฉ์prefers-color-scheme
prefers-color-scheme์ CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ด๋ค.
์ด๋ ์ฌ์ฉ์์ ์์คํ ์ด ๋ผ์ดํธ ํ ๋ง๋ ๋คํฌ ํ ๋ง๋ฅผ ์ฌ์ฉํ๋์ง ํ์งํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ค.
์ฌ์ฉ์์ ์ด์์ฒด์ ์ค์ (๋ผ์ดํธ ๋ชจ๋ ๋๋ ๋คํฌ ๋ชจ๋)์ด๋ ์ฌ์ฉ์ ์์ด์ ํธ ์ค์ ์์ ์ ํธํ๋ ํ ๋ง๋ฅผ ๋ํ๋ผ ์ ์๋ค.
โ ์ฅ์
โ ๏ธ ๋จ์
๐ฏ ์ฌ์ฉ ์์
.box {
background: #eee;
color: black;
}
@media (prefers-color-scheme: dark) {
.box.dark-scheme {
background: #333;
color: white;
}
}
@media (prefers-color-scheme: light) {
.box.light-scheme {
background: white;
color: #555;
}
}
data-theme="light" / data-theme="dark"
data-*์์ฑ์ ํ์ค์ด ์๋ ์์ฑ์ด๋ ์ถ๊ฐ์ ์ธ DOM ์์ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์กฐ์์ ํ์ง ์๊ณ ๋, ์๋ฏธ๋ก ์ ํ์ค HTML ์์์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๊ฒ ๋์์ค๋ค.
์์ฑ์ ์ด๋ฆ์ดdata-๋ก ์์ํ๋ ๋ชจ๋ ์์ฑ์ ๋ฐ์ดํฐ ์์ฑ์ด๋ค. ํ๋ฉด์ ์ ๋ณด์ด๊ฒ ๊ธ์ด๋ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์๋ฆฌ๋ฉํธ์ ๋ด์ ๋์ ์ ์๋ค.
โ ์ฅ์
data-theme="sepia"์ฒ๋ผ ๋ค์ํ ํ
๋ง๋ ์์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.data- ์์ฑ์ ์ฉ๋๊ฐ ๋ช
ํํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋
์ฑ์ด๋ ์ ์ง๋ณด์์ ์ข๋ค.โ ๏ธ ๋จ์
๐ฏ ์ฌ์ฉ ์์
<body data-theme="dark">
[data-theme="dark"] .box {
background: #333;
color: white;
}
.light-mode, .dark-mode๋คํฌ ๋ชจ๋๋ฅผ ์๋์ผ๋ก ํ ๊ธํ๊ฑฐ๋, ์์คํ
์ค์ ๊ณผ ๋ณ๊ฐ๋ก ์ฌ์ฉ์ ์ค์ ์ ์ ์ฅํด์ ์ ์ฉํ๋ ค๋ฉด
<body> ํ๊ทธ์ ํ
๋ง ์ ๋ณด๋ฅผ ์ง์ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค.
โ ์ฅ์
โ ๏ธ ๋จ์
์ฌ์ฉ ์์
<body class="dark">
.dark .box {
background: #333;
color: white;
}
data-theme ๋ฐฉ์์ด ์ข ๋ ์ ๋ฆฌํ๋ค.