229 lines
7.4 KiB
CSS
229 lines
7.4 KiB
CSS
/* 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-fast);
|
|
transition: var(--trans-dur-fast);
|
|
}
|
|
.icon-part {
|
|
border-radius: 50%;
|
|
-webkit-box-shadow: 0.4em -0.4em 0 0.5em var(--white) inset;
|
|
box-shadow: 0.4em -0.4em 0 0.5em var(--white) inset;
|
|
top: calc(50% - 0.5em);
|
|
left: calc(50% - 0.5em);
|
|
width: 1em;
|
|
height: 1em;
|
|
-webkit-transition: opacity var(--trans-dur-fast) ease-in-out,
|
|
-webkit-box-shadow var(--trans-dur-fast) ease-in-out,
|
|
-webkit-transform var(--trans-dur-fast) ease-in-out;
|
|
transition: opacity var(--trans-dur-fast) ease-in-out,
|
|
-webkit-box-shadow var(--trans-dur-fast) ease-in-out,
|
|
-webkit-transform var(--trans-dur-fast) ease-in-out;
|
|
transition: box-shadow var(--trans-dur-fast) ease-in-out,
|
|
opacity var(--trans-dur-fast) ease-in-out,
|
|
transform var(--trans-dur-fast) ease-in-out;
|
|
transition: box-shadow var(--trans-dur-fast) ease-in-out,
|
|
opacity var(--trans-dur-fast) ease-in-out,
|
|
transform var(--trans-dur-fast) ease-in-out,
|
|
-webkit-box-shadow var(--trans-dur-fast) ease-in-out,
|
|
-webkit-transform var(--trans-dur-fast) ease-in-out;
|
|
-webkit-transform: scale(0.5);
|
|
-ms-transform: scale(0.5);
|
|
transform: scale(0.5);
|
|
}
|
|
.icon-part ~ .icon-part {
|
|
background-color: var(--white);
|
|
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-fast) ease-in-out,
|
|
-webkit-box-shadow 0.15s ease-in-out,
|
|
-webkit-transform var(--trans-dur-fast) ease-in-out;
|
|
transition: background-color var(--trans-dur-fast) ease-in-out,
|
|
-webkit-box-shadow 0.15s ease-in-out,
|
|
-webkit-transform var(--trans-dur-fast) ease-in-out;
|
|
transition: background-color var(--trans-dur-fast) ease-in-out,
|
|
box-shadow 0.15s ease-in-out,
|
|
transform var(--trans-dur-fast) ease-in-out;
|
|
transition: background-color var(--trans-dur-fast) ease-in-out,
|
|
box-shadow 0.15s ease-in-out,
|
|
transform var(--trans-dur-fast) ease-in-out,
|
|
-webkit-box-shadow 0.15s ease-in-out,
|
|
-webkit-transform var(--trans-dur-fast) ease-in-out;
|
|
}
|
|
.toggle:before {
|
|
background-color: var(--yellow);
|
|
border-radius: 50%;
|
|
content: "";
|
|
width: 2.5em;
|
|
height: 2.5em;
|
|
-webkit-transition: var(--trans-dur-fast);
|
|
transition: var(--trans-dur-fast);
|
|
}
|
|
.toggle:focus {
|
|
-webkit-box-shadow: 0 0 0 0.125em var(--theme-blue);
|
|
box-shadow: 0 0 0 0.125em var(--theme-blue);
|
|
outline: transparent;
|
|
}
|
|
/* Checked */
|
|
.toggle:checked {
|
|
background-color: var(--theme-gray);
|
|
}
|
|
.toggle:checked:before,
|
|
.toggle:checked ~ .icon {
|
|
-webkit-transform: translateX(3em);
|
|
-ms-transform: translateX(3em);
|
|
transform: translateX(3em);
|
|
}
|
|
.toggle:checked:before {
|
|
background-color: var(--theme-blue);
|
|
}
|
|
.toggle:checked ~ .icon .icon-part:nth-child(1) {
|
|
-webkit-box-shadow: 0.2em -0.2em 0 0.2em var(--white) inset;
|
|
box-shadow: 0.2em -0.2em 0 0.2em var(--white) 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(--theme-blue);
|
|
box-shadow: 0 0 0 0.125em var(--theme-blue);
|
|
}
|
|
} |