Dark mode ?
This commit is contained in:
266
static/css/darkmode.css
Normal file
266
static/css/darkmode.css
Normal file
@@ -0,0 +1,266 @@
|
||||
:root {
|
||||
--trans-dur: 0.3s;
|
||||
}
|
||||
|
||||
/* Default */
|
||||
.theme {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
.icon,
|
||||
.toggle {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.icon,
|
||||
.icon-part {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: block;
|
||||
top: 0.75em;
|
||||
left: 0.75em;
|
||||
width: 1.5em;
|
||||
height: 1.5em;
|
||||
-webkit-transition: var(--trans-dur);
|
||||
transition: var(--trans-dur);
|
||||
}
|
||||
|
||||
.icon-part {
|
||||
border-radius: 50%;
|
||||
-webkit-box-shadow: 0.4em -0.4em 0 0.5em hsl(0,0%,100%) inset;
|
||||
box-shadow: 0.4em -0.4em 0 0.5em hsl(0,0%,100%) inset;
|
||||
top: calc(50% - 0.5em);
|
||||
left: calc(50% - 0.5em);
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
-webkit-transition: opacity var(--trans-dur) ease-in-out,
|
||||
-webkit-box-shadow var(--trans-dur) ease-in-out,
|
||||
-webkit-transform var(--trans-dur) ease-in-out;
|
||||
transition: opacity var(--trans-dur) ease-in-out,
|
||||
-webkit-box-shadow var(--trans-dur) ease-in-out,
|
||||
-webkit-transform var(--trans-dur) ease-in-out;
|
||||
transition: box-shadow var(--trans-dur) ease-in-out,
|
||||
opacity var(--trans-dur) ease-in-out,
|
||||
transform var(--trans-dur) ease-in-out;
|
||||
transition: box-shadow var(--trans-dur) ease-in-out,
|
||||
opacity var(--trans-dur) ease-in-out,
|
||||
transform var(--trans-dur) ease-in-out,
|
||||
-webkit-box-shadow var(--trans-dur) ease-in-out,
|
||||
-webkit-transform var(--trans-dur) ease-in-out;
|
||||
-webkit-transform: scale(0.5);
|
||||
-ms-transform: scale(0.5);
|
||||
transform: scale(0.5);
|
||||
}
|
||||
|
||||
.icon-part ~ .icon-part {
|
||||
background-color: hsl(0,0%,100%);
|
||||
border-radius: 0.05em;
|
||||
top: 50%;
|
||||
left: calc(50% - 0.05em);
|
||||
-webkit-transform: rotate(0deg) translateY(0.5em);
|
||||
-ms-transform: rotate(0deg) translateY(0.5em);
|
||||
transform: rotate(0deg) translateY(0.5em);
|
||||
-webkit-transform-origin: 50% 0;
|
||||
-ms-transform-origin: 50% 0;
|
||||
transform-origin: 50% 0;
|
||||
width: 0.1em;
|
||||
height: 0.2em;
|
||||
}
|
||||
|
||||
.icon-part:nth-child(3) {
|
||||
-webkit-transform: rotate(45deg) translateY(0.45em);
|
||||
-ms-transform: rotate(45deg) translateY(0.45em);
|
||||
transform: rotate(45deg) translateY(0.45em);
|
||||
}
|
||||
|
||||
.icon-part:nth-child(4) {
|
||||
-webkit-transform: rotate(90deg) translateY(0.45em);
|
||||
-ms-transform: rotate(90deg) translateY(0.45em);
|
||||
transform: rotate(90deg) translateY(0.45em);
|
||||
}
|
||||
|
||||
.icon-part:nth-child(5) {
|
||||
-webkit-transform: rotate(135deg) translateY(0.45em);
|
||||
-ms-transform: rotate(135deg) translateY(0.45em);
|
||||
transform: rotate(135deg) translateY(0.45em);
|
||||
}
|
||||
|
||||
.icon-part:nth-child(6) {
|
||||
-webkit-transform: rotate(180deg) translateY(0.45em);
|
||||
-ms-transform: rotate(180deg) translateY(0.45em);
|
||||
transform: rotate(180deg) translateY(0.45em);
|
||||
}
|
||||
|
||||
.icon-part:nth-child(7) {
|
||||
-webkit-transform: rotate(225deg) translateY(0.45em);
|
||||
-ms-transform: rotate(225deg) translateY(0.45em);
|
||||
transform: rotate(225deg) translateY(0.45em);
|
||||
}
|
||||
|
||||
.icon-part:nth-child(8) {
|
||||
-webkit-transform: rotate(270deg) translateY(0.5em);
|
||||
-ms-transform: rotate(270deg) translateY(0.5em);
|
||||
transform: rotate(270deg) translateY(0.5em);
|
||||
}
|
||||
|
||||
.icon-part:nth-child(9) {
|
||||
-webkit-transform: rotate(315deg) translateY(0.5em);
|
||||
-ms-transform: rotate(315deg) translateY(0.5em);
|
||||
transform: rotate(315deg) translateY(0.5em);
|
||||
}
|
||||
|
||||
.label,
|
||||
.toggle,
|
||||
.toggle-wrap {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.toggle,
|
||||
.toggle:before {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.toggle {
|
||||
background-color: hsl(48,90%,85%);
|
||||
border-radius: 25% / 50%;
|
||||
-webkit-box-shadow: 0 0 0 0.125em var(--secondary);
|
||||
box-shadow: 0 0 0 0.125em var(--secondary);
|
||||
padding: 0.25em !important;
|
||||
width: 6em;
|
||||
height: 3em;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
-webkit-transition: background-color var(--trans-dur) ease-in-out,
|
||||
-webkit-box-shadow 0.15s ease-in-out,
|
||||
-webkit-transform var(--trans-dur) ease-in-out;
|
||||
transition: background-color var(--trans-dur) ease-in-out,
|
||||
-webkit-box-shadow 0.15s ease-in-out,
|
||||
-webkit-transform var(--trans-dur) ease-in-out;
|
||||
transition: background-color var(--trans-dur) ease-in-out,
|
||||
box-shadow 0.15s ease-in-out,
|
||||
transform var(--trans-dur) ease-in-out;
|
||||
transition: background-color var(--trans-dur) ease-in-out,
|
||||
box-shadow 0.15s ease-in-out,
|
||||
transform var(--trans-dur) ease-in-out,
|
||||
-webkit-box-shadow 0.15s ease-in-out,
|
||||
-webkit-transform var(--trans-dur) ease-in-out;
|
||||
}
|
||||
|
||||
.toggle:before {
|
||||
background-color: hsl(48,90%,55%);
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
-webkit-transition: 0.3s;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
.toggle:focus {
|
||||
-webkit-box-shadow: 0 0 0 0.125em var(--primary);
|
||||
box-shadow: 0 0 0 0.125em var(--primary);
|
||||
outline: transparent;
|
||||
}
|
||||
|
||||
/* Checked */
|
||||
.toggle:checked {
|
||||
background-color: hsl(198,90%,15%);
|
||||
}
|
||||
|
||||
.toggle:checked:before,
|
||||
.toggle:checked ~ .icon {
|
||||
-webkit-transform: translateX(3em);
|
||||
-ms-transform: translateX(3em);
|
||||
transform: translateX(3em);
|
||||
}
|
||||
|
||||
.toggle:checked:before {
|
||||
background-color: hsl(198,90%,55%);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(1) {
|
||||
-webkit-box-shadow: 0.2em -0.2em 0 0.2em hsl(0,0%,100%) inset;
|
||||
box-shadow: 0.2em -0.2em 0 0.2em hsl(0,0%,100%) inset;
|
||||
-webkit-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
transform: scale(1);
|
||||
top: 0.25em;
|
||||
left: 0.25em;
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part ~ .icon-part {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(2) {
|
||||
-webkit-transform: rotate(45deg) translateY(0.8em);
|
||||
-ms-transform: rotate(45deg) translateY(0.8em);
|
||||
transform: rotate(45deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(3) {
|
||||
-webkit-transform: rotate(90deg) translateY(0.8em);
|
||||
-ms-transform: rotate(90deg) translateY(0.8em);
|
||||
transform: rotate(90deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(4) {
|
||||
-webkit-transform: rotate(135deg) translateY(0.8em);
|
||||
-ms-transform: rotate(135deg) translateY(0.8em);
|
||||
transform: rotate(135deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(5) {
|
||||
-webkit-transform: rotate(180deg) translateY(0.8em);
|
||||
-ms-transform: rotate(180deg) translateY(0.8em);
|
||||
transform: rotate(180deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(6) {
|
||||
-webkit-transform: rotate(225deg) translateY(0.8em);
|
||||
-ms-transform: rotate(225deg) translateY(0.8em);
|
||||
transform: rotate(225deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(7) {
|
||||
-webkit-transform: rotate(270deg) translateY(0.8em);
|
||||
-ms-transform: rotate(270deg) translateY(0.8em);
|
||||
transform: rotate(270deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(8) {
|
||||
-webkit-transform: rotate(315deg) translateY(0.8em);
|
||||
-ms-transform: rotate(315deg) translateY(0.8em);
|
||||
transform: rotate(315deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle:checked ~ .icon .icon-part:nth-child(9) {
|
||||
-webkit-transform: rotate(360deg) translateY(0.8em);
|
||||
-ms-transform: rotate(360deg) translateY(0.8em);
|
||||
transform: rotate(360deg) translateY(0.8em);
|
||||
}
|
||||
|
||||
.toggle-wrap {
|
||||
margin: 0 0.75em;
|
||||
}
|
||||
|
||||
@supports selector(:focus-visible) {
|
||||
.toggle:focus {
|
||||
-webkit-box-shadow: 0 0 0 0.125em var(--secondary);
|
||||
box-shadow: 0 0 0 0.125em var(--secondary);
|
||||
}
|
||||
|
||||
.toggle:focus-visible {
|
||||
-webkit-box-shadow: 0 0 0 0.125em var(--primary);
|
||||
box-shadow: 0 0 0 0.125em var(--primary);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user