Checkboxes
PHP
<form action="" method="POST" autocomplete="off" enctype="multipart/form-data">
<!-- Default Checkbox -->
<div class="controls_wrap">
<input type="checkbox" name="home_services[]" class="checkbox" id="homeService1" value="Mobile Responsiveness">
<label for="homeService1">Mobile Responsiveness</label>
<input type="checkbox" name="home_services[]" class="checkbox" id="homeService2" value="Search Engine Optimization">
<label for="homeService2">Search Engine Optimization</label>
</div>
<!-- Custom Checkbox -->
<div class="controls_wrap">
<input type="checkbox" name="services[]" class="custom_checkbox" id="service1" value="App Development">
<label for="service1">
<span class="checkbox_design">
<?= svg('iconCheckbox','') ?>
</span>
<span class="checkbox_text">App Development</span>
</label>
<input type="checkbox" name="services[]" class="custom_checkbox" id="service2" value="Video Marketing">
<label for="service2">
<span class="checkbox_design">
<?= svg('iconCheckbox','') ?>
</span>
<span class="checkbox_text">Video Marketing</span>
</label>
</div>
</form>
<!-- Icon -->
<symbol id="iconCheckbox" viewBox="0 0 12 10">
<polyline points="1.5 6 4.5 9 10.5 1"></polyline>
</symbol>
CSS
/* Default Checkbox */
.checkbox{position:absolute;left:-999.9rem}
.checkbox + label{display:inline-block;font-size:1.6rem;padding:0 0 0 3rem;margin:0 2rem 1rem 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative}
.checkbox + label::before{content:'';position:absolute;left:0;top:0;width:2rem;height:2rem;border:.1rem solid #ccc;background-color:#fff;-webkit-transition:all .3s ease;-o-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease}
.checkbox + label::after{content:'✔\fe0e';position:absolute;top:-.05rem;left:.45rem;font-size:1.4rem;color:#fff;-webkit-transition:all .2s;-o-transition:all .2s;-moz-transition:all .2s;transition:all .2s}
.checkbox:not(:checked) + label::after{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}
.checkbox:checked + label::before{border-color:#09a5be;background-color:#09a5be}
.checkbox:checked + label::after{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
/* Custom Checkbox */
.custom_checkbox{position:absolute;left:-999.9rem}
.custom_checkbox + label{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:-ms-inline-flexbox;display:inline-flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0 2rem 1rem 0}
.custom_checkbox + label .checkbox_design{-webkit-box-flex:0;-webkit-flex:0 0 2rem;-moz-box-flex:0;-ms-flex:0 0 2rem;flex:0 0 2rem;width:2rem;height:2rem;border:.1rem solid #ccc;background-color:#fff;-webkit-border-radius:.3rem;-moz-border-radius:.3rem;border-radius:.3rem;position:relative;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:all .2s ease;-o-transition:all .2s ease;-moz-transition:all .2s ease;transition:all .2s ease}
.custom_checkbox + label .checkbox_design svg{position:absolute;top:.4rem;left:.3rem;width:1.2rem;height:1rem;fill:none;stroke:transparent;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.6rem;stroke-dashoffset:1.6rem;-webkit-transition:all .3s ease;-o-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}
.custom_checkbox + label .checkbox_design::before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%;opacity:1;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background-color:#09a5be;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}
.custom_checkbox + label .checkbox_text{display:inline-block;font-size:1.6rem;padding:0 0 0 1rem}
.custom_checkbox:checked + label .checkbox_design{background-color:#09a5be;border-color:#09a5be}
.custom_checkbox:checked + label .checkbox_design svg{stroke: #ffffff;stroke-dashoffset:0}
.custom_checkbox:checked + label .checkbox_design::before{opacity:0;-webkit-transform:scale(3.5);-moz-transform:scale(3.5);-ms-transform:scale(3.5);-o-transform:scale(3.5);transform:scale(3.5);-webkit-transition:all .6s ease;-o-transition:all .6s ease;-moz-transition:all .6s ease;transition:all .6s ease}
@media (-ms-high-contrast: none),(-ms-high-contrast: active),(-moz-touch-enabled: 0),(hover: hover) {
.custom_checkbox + label:hover .checkbox_design{border-color:#09a5be}
}
SCSS
/* Vars */
$white: #ffffff;
$grey: #cccccc;
$main: #09a5be;
/* Default Checkbox */
.checkbox {
position: absolute;
left: -999.9rem;
+ label {
display: inline-block;
font-size: 1.6rem;
padding: 0 0 0 3rem;
margin: 0 2rem 1rem 0;
user-select: none;
cursor: pointer;
position: relative;
&::before {
content: '';
position: absolute;
left: 0;
top: 0;
width: 2rem;
height: 2rem;
border: .1rem solid $grey;
background-color: $white;
transition: all 0.3s ease;
}
&::after {
content: '✔\fe0e';
position: absolute;
top: -0.05rem;
left: 0.45rem;
font-size: 1.4rem;
color: $white;
transition: all 0.2s;
}
}
&:not(:checked) + label::after {
opacity: 0;
transform: scale(0);
}
&:checked + label {
&::before {
border-color: $main;
background-color: $main;
}
&::after {
opacity: 1;
transform: scale(1);
}
}
}
/* Custom Checkbox */
.custom_checkbox {
position: absolute;
left: -999.9rem;
+ label {
display: inline-flex;
align-items: center;
user-select: none;
cursor: pointer;
margin: 0 2rem 1rem 0;
.checkbox_design {
flex: 0 0 2rem;
width: 2rem;
height: 2rem;
border: .1rem solid $grey;
background-color: $white;
border-radius: .3rem;
position: relative;
transform: scale(1);
transition: all .2s ease;
svg {
position: absolute;
top: .4rem;
left: .3rem;
width: 1.2rem;
height: 1rem;
fill: none;
stroke: transparent;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
stroke-dasharray: 1.6rem;
stroke-dashoffset: 1.6rem;
transition: all .3s ease;
transition-delay: .1s;
transform: translate3d(0,0,0);
}
&::before {
content: "";
position: absolute;
top: 0;
left: 0;
display: block;
width: 100%;
height: 100%;
opacity: 1;
border-radius: 50%;
background-color: $main;
transform: scale(0);
}
}
.checkbox_text {
display: inline-block;
font-size: 1.6rem;
padding:0 0 0 1rem;
}
}
&:checked + label {
.checkbox_design {
background-color: $main;
border-color: $main;
svg {
stroke: $white;
stroke-dashoffset: 0;
}
&::before {
opacity: 0;
transform: scale(3.5);
transition: all .6s ease;
}
}
}
}
@media (-ms-high-contrast: none), (-ms-high-contrast: active), (-moz-touch-enabled: 0), (hover: hover) {
.custom_checkbox + label:hover .checkbox_design {border-color: $main}
}