#e8e8e8
1.theme-switch { 2 --toggle-size: 30px; 3 /* the size is adjusted using font-size, 4 this is not transform scale, 5 so you can choose any size */ 6 --container-width: 5.625em; 7 --container-height: 2.5em; 8 --container-radius: 6.25em; 9 /* radius 0 - minecraft mode :) */ 10 --container-light-bg: #3D7EAE; 11 --container-night-bg: #1D1F2C; 12 --circle-container-diameter: 3.375em; 13 --sun-moon-diameter: 2.125em; 14 --sun-bg: #ECCA2F; 15 --moon-bg: #C4C9D1; 16 --spot-color: #959DB1; 17 --circle-container-offset: calc((var(--circle-container-diameter) - var(--container-height)) / 2 * -1); 18 --stars-color: #fff; 19 --clouds-color: #F3FDFF; 20 --back-clouds-color: #AACADF; 21 --transition: .5s cubic-bezier(0, -0.02, 0.4, 1.25); 22 --circle-transition: .3s cubic-bezier(0, -0.02, 0.35, 1.17); 23} 24 25.theme-switch, .theme-switch *, .theme-switch *::before, .theme-switch *::after { 26 -webkit-box-sizing: border-box; 27 box-sizing: border-box; 28 margin: 0; 29 padding: 0; 30 font-size: var(--toggle-size); 31} 32 33.theme-switch__container { 34 width: var(--container-width); 35 height: var(--container-height); 36 background-color: var(--container-light-bg); 37 border-radius: var(--container-radius); 38 overflow: hidden; 39 cursor: pointer; 40 -webkit-box-shadow: 0em -0.062em 0.062em rgba(0, 0, 0, 0.25), 0em 0.062em 0.125em rgba(255, 255, 255, 0.94); 41 box-shadow: 0em -0.062em 0.062em rgba(0, 0, 0, 0.25), 0em 0.062em 0.125em rgba(255, 255, 255, 0.94); 42 -webkit-transition: var(--transition); 43 -o-transition: var(--transition); 44 transition: var(--transition); 45 position: relative; 46} 47 48.theme-switch__container::before { 49 content: ""; 50 position: absolute; 51 z-index: 1; 52 inset: 0; 53 -webkit-box-shadow: 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset, 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset; 54 box-shadow: 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset, 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset; 55 border-radius: var(--container-radius) 56} 57 58.theme-switch__checkbox { 59 display: none; 60} 61 62.theme-switch__circle-container { 63 width: var(--circle-container-diameter); 64 height: var(--circle-container-diameter); 65 background-color: rgba(255, 255, 255, 0.1); 66 position: absolute; 67 left: var(--circle-container-offset); 68 top: var(--circle-container-offset); 69 border-radius: var(--container-radius); 70 -webkit-box-shadow: inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), 0 0 0 0.625em rgba(255, 255, 255, 0.1), 0 0 0 1.25em rgba(255, 255, 255, 0.1); 71 box-shadow: inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), 0 0 0 0.625em rgba(255, 255, 255, 0.1), 0 0 0 1.25em rgba(255, 255, 255, 0.1); 72 display: -webkit-box; 73 display: -ms-flexbox; 74 display: flex; 75 -webkit-transition: var(--circle-transition); 76 -o-transition: var(--circle-transition); 77 transition: var(--circle-transition); 78 pointer-events: none; 79} 80 81.theme-switch__sun-moon-container { 82 pointer-events: auto; 83 position: relative; 84 z-index: 2; 85 width: var(--sun-moon-diameter); 86 height: var(--sun-moon-diameter); 87 margin: auto; 88 border-radius: var(--container-radius); 89 background-color: var(--sun-bg); 90 -webkit-box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #a1872a inset; 91 box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #a1872a inset; 92 -webkit-filter: drop-shadow(0.062em 0.125em 0.125em rgba(0, 0, 0, 0.25)) drop-shadow(0em 0.062em 0.125em rgba(0, 0, 0, 0.25)); 93 filter: drop-shadow(0.062em 0.125em 0.125em rgba(0, 0, 0, 0.25)) drop-shadow(0em 0.062em 0.125em rgba(0, 0, 0, 0.25)); 94 overflow: hidden; 95 -webkit-transition: var(--transition); 96 -o-transition: var(--transition); 97 transition: var(--transition); 98} 99 100.theme-switch__moon { 101 -webkit-transform: translateX(100%); 102 -ms-transform: translateX(100%); 103 transform: translateX(100%); 104 width: 100%; 105 height: 100%; 106 background-color: var(--moon-bg); 107 border-radius: inherit; 108 -webkit-box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #969696 inset; 109 box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #969696 inset; 110 -webkit-transition: var(--transition); 111 -o-transition: var(--transition); 112 transition: var(--transition); 113 position: relative; 114} 115 116.theme-switch__spot { 117 position: absolute; 118 top: 0.75em; 119 left: 0.312em; 120 width: 0.75em; 121 height: 0.75em; 122 border-radius: var(--container-radius); 123 background-color: var(--spot-color); 124 -webkit-box-shadow: 0em 0.0312em 0.062em rgba(0, 0, 0, 0.25) inset; 125 box-shadow: 0em 0.0312em 0.062em rgba(0, 0, 0, 0.25) inset; 126} 127 128.theme-switch__spot:nth-of-type(2) { 129 width: 0.375em; 130 height: 0.375em; 131 top: 0.937em; 132 left: 1.375em; 133} 134 135.theme-switch__spot:nth-last-of-type(3) { 136 width: 0.25em; 137 height: 0.25em; 138 top: 0.312em; 139 left: 0.812em; 140} 141 142.theme-switch__clouds { 143 width: 1.25em; 144 height: 1.25em; 145 background-color: var(--clouds-color); 146 border-radius: var(--container-radius); 147 position: absolute; 148 bottom: -0.625em; 149 left: 0.312em; 150 -webkit-box-shadow: 0.937em 0.312em var(--clouds-color), -0.312em -0.312em var(--back-clouds-color), 1.437em 0.375em var(--clouds-color), 0.5em -0.125em var(--back-clouds-color), 2.187em 0 var(--clouds-color), 1.25em -0.062em var(--back-clouds-color), 2.937em 0.312em var(--clouds-color), 2em -0.312em var(--back-clouds-color), 3.625em -0.062em var(--clouds-color), 2.625em 0em var(--back-clouds-color), 4.5em -0.312em var(--clouds-color), 3.375em -0.437em var(--back-clouds-color), 4.625em -1.75em 0 0.437em var(--clouds-color), 4em -0.625em var(--back-clouds-color), 4.125em -2.125em 0 0.437em var(--back-clouds-color); 151 box-shadow: 0.937em 0.312em var(--clouds-color), -0.312em -0.312em var(--back-clouds-color), 1.437em 0.375em var(--clouds-color), 0.5em -0.125em var(--back-clouds-color), 2.187em 0 var(--clouds-color), 1.25em -0.062em var(--back-clouds-color), 2.937em 0.312em var(--clouds-color), 2em -0.312em var(--back-clouds-color), 3.625em -0.062em var(--clouds-color), 2.625em 0em var(--back-clouds-color), 4.5em -0.312em var(--clouds-color), 3.375em -0.437em var(--back-clouds-color), 4.625em -1.75em 0 0.437em var(--clouds-color), 4em -0.625em var(--back-clouds-color), 4.125em -2.125em 0 0.437em var(--back-clouds-color); 152 -webkit-transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25); 153 -o-transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25); 154 transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25); 155} 156 157.theme-switch__stars-container { 158 position: absolute; 159 color: var(--stars-color); 160 top: -100%; 161 left: 0.312em; 162 width: 2.75em; 163 height: auto; 164 -webkit-transition: var(--transition); 165 -o-transition: var(--transition); 166 transition: var(--transition); 167} 168 169/* actions */ 170 171.theme-switch__checkbox:checked + .theme-switch__container { 172 background-color: var(--container-night-bg); 173} 174 175.theme-switch__checkbox:checked + .theme-switch__container .theme-switch__circle-container { 176 left: calc(100% - var(--circle-container-offset) - var(--circle-container-diameter)); 177} 178 179.theme-switch__checkbox:checked + .theme-switch__container .theme-switch__circle-container:hover { 180 left: calc(100% - var(--circle-container-offset) - var(--circle-container-diameter) - 0.187em) 181} 182 183.theme-switch__circle-container:hover { 184 left: calc(var(--circle-container-offset) + 0.187em); 185} 186 187.theme-switch__checkbox:checked + .theme-switch__container .theme-switch__moon { 188 -webkit-transform: translate(0); 189 -ms-transform: translate(0); 190 transform: translate(0); 191} 192 193.theme-switch__checkbox:checked + .theme-switch__container .theme-switch__clouds { 194 bottom: -4.062em; 195} 196 197.theme-switch__checkbox:checked + .theme-switch__container .theme-switch__stars-container { 198 top: 50%; 199 -webkit-transform: translateY(-50%); 200 -ms-transform: translateY(-50%); 201 transform: translateY(-50%); 202}
Comments
1catraco 23. July at 22:48
23. July at 22:48
is it too late to try <3
MIT License