/* 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); } }