Add primaryColorScheme feature

This commit is contained in:
Sat Naing
2022-09-26 12:04:10 +06:30
parent e6e70f713e
commit 3bc440144a
+19
View File
@@ -62,6 +62,8 @@ const socialImageURL = new URL(
/> />
<script is:inline> <script is:inline>
const primaryColorScheme = "none"; // "light" | "dark" | "none"
const darkModeMediaQuery = window.matchMedia( const darkModeMediaQuery = window.matchMedia(
"(prefers-color-scheme: dark)" "(prefers-color-scheme: dark)"
).matches; ).matches;
@@ -75,8 +77,25 @@ const socialImageURL = new URL(
if (currentTheme) { if (currentTheme) {
theme = currentTheme === "dark" ? "theme-dark" : ""; theme = currentTheme === "dark" ? "theme-dark" : "";
} else { } else {
// If primary color scheme is dark
// or primary color scheme is not set and prefers-color-scheme is dark
// choose dark mode
if (
primaryColorScheme === "dark" ||
(primaryColorScheme === "none" && darkModeMediaQuery)
) {
theme = "theme-dark";
}
// If primary color scheme is light
// choose light mode
else if (primaryColorScheme === "light") {
theme = "";
}
// fallback to prefers-color-scheme
else {
theme = darkModeMediaQuery ? "theme-dark" : ""; theme = darkModeMediaQuery ? "theme-dark" : "";
} }
}
// Put dark class on html tag to enable dark mode // Put dark class on html tag to enable dark mode
document.querySelector("html").className = theme; document.querySelector("html").className = theme;