add dark mode toggle (closes #38)
This commit is contained in:
parent
aea1812e50
commit
084aa94c3b
2 changed files with 88 additions and 80 deletions
|
@ -1,28 +1,6 @@
|
||||||
/*General theming*/
|
/*General theming*/
|
||||||
|
|
||||||
.dark-mode {
|
:root, :root.dark {
|
||||||
--bg-color: #222;
|
|
||||||
--fg-color: #f8f9fa;
|
|
||||||
--button-fg: #010000;
|
|
||||||
--textarea-focus-border: #e5ebff;
|
|
||||||
--textarea-bg: var(--bg-color);
|
|
||||||
--select-border: #ccc;
|
|
||||||
--select-bg: #2f2f2f;
|
|
||||||
--select-fg: #b2b2b2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light-mode {
|
|
||||||
--bg-color: #ffedd5;
|
|
||||||
--fg-color: #000000;
|
|
||||||
--button-fg: #fbe9e7;
|
|
||||||
--textarea-focus-border: #261f1e;
|
|
||||||
--textarea-bg: #fff4e6;
|
|
||||||
--select-border: #888888;
|
|
||||||
--select-bg: #fff;
|
|
||||||
--select-fg: #2f2f2f;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
/* Global Values */
|
/* Global Values */
|
||||||
--main-border-color: #b2b2b2;
|
--main-border-color: #b2b2b2;
|
||||||
--accent-color: #f57c00;
|
--accent-color: #f57c00;
|
||||||
|
@ -39,13 +17,40 @@ body {
|
||||||
--select-border: #ccc;
|
--select-border: #ccc;
|
||||||
--select-bg: #2f2f2f;
|
--select-bg: #2f2f2f;
|
||||||
--select-fg: #b2b2b2;
|
--select-fg: #b2b2b2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
:root {
|
||||||
|
--bg-color: #ffedd5;
|
||||||
|
--fg-color: #000000;
|
||||||
|
--button-fg: #fbe9e7;
|
||||||
|
--textarea-focus-border: #261f1e;
|
||||||
|
--textarea-bg: #fff4e6;
|
||||||
|
--select-border: #888888;
|
||||||
|
--select-bg: #fff;
|
||||||
|
--select-fg: #2f2f2f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:root.light {
|
||||||
|
--bg-color: #ffedd5;
|
||||||
|
--fg-color: #000000;
|
||||||
|
--button-fg: #fbe9e7;
|
||||||
|
--textarea-focus-border: #261f1e;
|
||||||
|
--textarea-bg: #fff4e6;
|
||||||
|
--select-border: #888888;
|
||||||
|
--select-bg: #fff;
|
||||||
|
--select-fg: #2f2f2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
margin: 20px auto;
|
margin: 20px auto;
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
background-color: #222;
|
background-color: var(--bg-color);
|
||||||
color: #f8f9fa;
|
color: var(--fg-color);
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
hyphens: auto;
|
hyphens: auto;
|
||||||
}
|
}
|
||||||
|
@ -144,6 +149,7 @@ button {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
background: var(--accent-color);
|
background: var(--accent-color);
|
||||||
|
color: var(--button-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
button:hover {
|
button:hover {
|
||||||
|
@ -249,6 +255,8 @@ button:hover {
|
||||||
border-left: 2px solid var(--accent-color);
|
border-left: 2px solid var(--accent-color);
|
||||||
/* The rgba is the same value as above, but with a 0.25 opacity */
|
/* The rgba is the same value as above, but with a 0.25 opacity */
|
||||||
box-shadow: 2px 2px 0px 0px var(--select-shadow);
|
box-shadow: 2px 2px 0px 0px var(--select-shadow);
|
||||||
|
background-color: var(--select-bg);
|
||||||
|
color: var(--select-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.center-area {
|
.center-area {
|
||||||
|
@ -314,54 +322,3 @@ div.definitions {
|
||||||
div.translations {
|
div.translations {
|
||||||
grid-area: translations;
|
grid-area: translations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
|
||||||
body {
|
|
||||||
--bg-color: #ffedd5;
|
|
||||||
--fg-color: #000000;
|
|
||||||
--button-fg: #fbe9e7;
|
|
||||||
--textarea-focus-border: #261f1e;
|
|
||||||
--textarea-bg: #fff4e6;
|
|
||||||
--select-border: #888888;
|
|
||||||
--select-bg: #fff;
|
|
||||||
--select-fg: #2f2f2f;
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
color: var(--fg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.options {
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
box-shadow: 0 2px 4px var(--engine-options-shadow);
|
|
||||||
border: 1px solid var(--select-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.selected-option {
|
|
||||||
border: 1px solid var(--select-border);
|
|
||||||
color: var(--fg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Theming for buttons and text areas*/
|
|
||||||
textarea {
|
|
||||||
border: 2px solid var(--textarea-border);
|
|
||||||
background-color: var(--textarea-bg);
|
|
||||||
color: var(--fg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea:focus {
|
|
||||||
border-color: var(--textarea-focus-border);
|
|
||||||
outline: 1px solid var(--textarea-focus-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
select,
|
|
||||||
.nice-select .nice-select-dropdown,
|
|
||||||
.nice-select,
|
|
||||||
.nice-select-search {
|
|
||||||
background-color: var(--select-bg);
|
|
||||||
color: var(--select-fg);
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
#url {
|
|
||||||
color: var(--button-fg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -14,18 +14,69 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="referrer" content="no-referrer" />
|
<meta name="referrer" content="no-referrer" />
|
||||||
<script src="/js/nice-select2.js"></script>
|
<script src="/js/nice-select2.js"></script>
|
||||||
<link rel="stylesheet" href="/css/nice-select2.css">
|
<link rel="stylesheet" href="/css/nice-select2.css" />
|
||||||
<link rel="stylesheet" href="/css/style.css" />
|
<link rel="stylesheet" href="/css/style.css" />
|
||||||
<link rel="manifest" href="/manifest.json">
|
<link rel="manifest" href="/manifest.json" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<a href="/"><img src="/assets/mozhi.png" alt="Mozhi Logo" class="navlogo" /></a>
|
<a href="/"
|
||||||
|
><img src="/assets/mozhi.png" alt="Mozhi Logo" class="navlogo"
|
||||||
|
/></a>
|
||||||
<nav>
|
<nav>
|
||||||
<a href="/about">About</a>
|
<a href="/about">About</a>
|
||||||
<a href="/api/swagger">API</a>
|
<a href="/api/swagger">API</a>
|
||||||
|
<button onclick="toggleDarkMode()">
|
||||||
|
<svg
|
||||||
|
width="20px"
|
||||||
|
height="20px"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<g
|
||||||
|
id="🔍-Product-Icons"
|
||||||
|
stroke="none"
|
||||||
|
stroke-width="1"
|
||||||
|
fill="none"
|
||||||
|
fill-rule="evenodd"
|
||||||
|
>
|
||||||
|
<g
|
||||||
|
id="ic_fluent_dark_theme_24_regular"
|
||||||
|
fill="#212121"
|
||||||
|
fill-rule="nonzero"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M12,22 C17.5228475,22 22,17.5228475 22,12 C22,6.4771525 17.5228475,2 12,2 C6.4771525,2 2,6.4771525 2,12 C2,17.5228475 6.4771525,22 12,22 Z M12,20.5 L12,3.5 C16.6944204,3.5 20.5,7.30557963 20.5,12 C20.5,16.6944204 16.6944204,20.5 12,20.5 Z"
|
||||||
|
id="🎨-Color"
|
||||||
|
></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
<script>
|
||||||
|
function toggleDarkMode() {
|
||||||
|
if (document.documentElement.classList.contains("light")) {
|
||||||
|
document.documentElement.classList.remove("light");
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
} else if (document.documentElement.classList.contains("dark")) {
|
||||||
|
document.documentElement.classList.remove("dark");
|
||||||
|
document.documentElement.classList.add("light");
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
window.matchMedia &&
|
||||||
|
window.matchMedia("(prefers-color-scheme: light)").matches
|
||||||
|
) {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
} else {
|
||||||
|
document.documentElement.classList.add("light");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
<br />
|
<br />
|
||||||
|
|
Loading…
Reference in a new issue