<div class="checkbox-container">
  <input type="checkbox" class="check" />
  <div class="checkbox">
    <svg viewBox="0 0 28 28" width="28px" hegiht="28px">
      <use href="#check-stroke-background"></use>
    </svg>
    <svg viewBox="0 0 28 28" width="28px" hegiht="28px">
      <use href="#check-stroke"></use>
    </svg>
  </div>
</div>


<svg class="template">
	<symbol id="check-stroke">
		<polyline stroke-width="3" stroke-linejoin="round" stroke-linecap="round" points="5 10.5 10.5 16 23.5 4"></polyline>
	</symbol>
	<symbol id="check-stroke-background">
		<polyline stroke-width="8" stroke-linejoin="round" stroke-linecap="round" points="5 11 10.5 15 23.5 4"></polyline>
	</symbol>
</svg>
.checkbox-container {
	position: relative;
	margin: 2rem;
}

.checkbox {
	margin-right: .5rem;
	position: relative;
	display: inline-flex;
	width: 24px;
	height: 24px;
	border-radius: 4px;
	border: 2px solid #cccfdb;
	transition: all 0.3s ease;
	cursor: pointer;

	svg {
		fill: none;
		stroke: #ea5514;
		stroke-dasharray: 28;
		stroke-dashoffset: 28;
		transition: all 0.3s ease;
		transform: scale(1.1);
		position: absolute;
		top: 0;
		left: 3px;

		&:first-child {
			stroke: #fff;
		}
	}
}

.check {
    -webkit-appearance: none;
    -moz-appearance: none;
    -o-appearance: none;
    appearance: none;
  	position: absolute;
	top: 0;
	left: 0;
	
	&:after {
		position: absolute;
		width: 24px;
		height: 24px;
		content: '';
		top: 0;
		left: 0;
		z-index: 2;
		cursor: pointer;
	}

	&:checked {
		& + .checkbox {
			color: #ea5514;
			border-color: #ea5514;

			svg {
			  stroke-dashoffset: 0;
			}
		}
	}
}

.template {
	display: none;
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.