Back
Checkbox
1 2<div class="checkbox-wrapper">3 <input id="_checkbox-26" type="checkbox">4 <label for="_checkbox-26">5 <div class="tick_mark"></div>6 </label>7</div>
1 2.checkbox-wrapper * { 3 -webkit-tap-highlight-color: transparent; 4 outline: none; 5} 6 7.checkbox-wrapper input[type="checkbox"] { 8 display: none; 9} 10 11.checkbox-wrapper label { 12 --size: 50px; 13 --shadow: calc(var(--size) * .07) calc(var(--size) * .1); 14 position: relative; 15 display: block; 16 width: var(--size); 17 height: var(--size); 18 margin: 0 auto; 19 background-color: #4158D0; 20 background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%); 21 border-radius: 50%; 22 box-shadow: 0 var(--shadow) #ffbeb8; 23 cursor: pointer; 24 transition: 0.2s ease transform, 0.2s ease background-color, 25 0.2s ease box-shadow; 26 overflow: hidden; 27 z-index: 1; 28} 29 30.checkbox-wrapper label:before { 31 content: ""; 32 position: absolute; 33 top: 50%; 34 right: 0; 35 left: 0; 36 width: calc(var(--size) * .7); 37 height: calc(var(--size) * .7); 38 margin: 0 auto; 39 background-color: #fff; 40 transform: translateY(-50%); 41 border-radius: 50%; 42 box-shadow: inset 0 var(--shadow) #ffbeb8; 43 transition: 0.2s ease width, 0.2s ease height; 44} 45 46.checkbox-wrapper label:hover:before { 47 width: calc(var(--size) * .55); 48 height: calc(var(--size) * .55); 49 box-shadow: inset 0 var(--shadow) #ff9d96; 50} 51 52.checkbox-wrapper label:active { 53 transform: scale(0.9); 54} 55 56.checkbox-wrapper .tick_mark { 57 position: absolute; 58 top: -1px; 59 right: 0; 60 left: calc(var(--size) * -.05); 61 width: calc(var(--size) * .6); 62 height: calc(var(--size) * .6); 63 margin: 0 auto; 64 margin-left: calc(var(--size) * .14); 65 transform: rotateZ(-40deg); 66} 67 68.checkbox-wrapper .tick_mark:before, 69 .checkbox-wrapper .tick_mark:after { 70 content: ""; 71 position: absolute; 72 background-color: #fff; 73 border-radius: 2px; 74 opacity: 0; 75 transition: 0.2s ease transform, 0.2s ease opacity; 76} 77 78.checkbox-wrapper .tick_mark:before { 79 left: 0; 80 bottom: 0; 81 width: calc(var(--size) * .1); 82 height: calc(var(--size) * .3); 83 box-shadow: -2px 0 5px rgba(0, 0, 0, 0.23); 84 transform: translateY(calc(var(--size) * -.68)); 85} 86 87.checkbox-wrapper .tick_mark:after { 88 left: 0; 89 bottom: 0; 90 width: 100%; 91 height: calc(var(--size) * .1); 92 box-shadow: 0 3px 5px rgba(0, 0, 0, 0.23); 93 transform: translateX(calc(var(--size) * .78)); 94} 95 96.checkbox-wrapper input[type="checkbox"]:checked + label { 97 background-color: #4158D0; 98 background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%); 99 box-shadow: rgba(0, 0, 0, 0.3) 0px 19px 38px, rgba(0, 0, 0, 0.22) 0px 15px 12px;100}101 102.checkbox-wrapper input[type="checkbox"]:checked + label:before {103 width: 0;104 height: 0;105}106 107.checkbox-wrapper input[type="checkbox"]:checked + label .tick_mark:before,108 .checkbox-wrapper input[type="checkbox"]:checked + label .tick_mark:after {109 transform: translate(0);110 opacity: 1;111}
MIT License