JSFiddle - React, Tailwind, and code Playground
by joplomacedo
HTML
<div class="success_check">
<div class="success_check__icon">
<span class="success_check__line success_check__line--tip"></span>
<span class="success_check__line success_check__line--long"></span>
<div class="success_check__placeholder"></div>
<div class="success_check__fix"></div>
</div>
</div>
CSS
.success_check {
width: 80px;
height: 130px;
margin: 0 auto;
}
.hide {
display: none;
}
.success_check__icon {
width: 80px;
height: 80px;
border: 4px solid #4CAF50;
border-radius: 50%;
margin: 20px auto;
padding: 0;
position: relative;
box-sizing: content-box;
}
.success_check__icon:before,
.success_check__icon:after {
content: '';
position: absolute;
width: 60px;
height: 120px;
background: white;
transform: rotate(45deg);
}
.success_check__icon:before {
border-radius: 120px 0 0 120px;
top: -7px;
left: -33px;
transform: rotate(-45deg);
transform-origin: 60px 60px;
}
.success_check__icon:after {
border-radius: 0 120px 120px 0;
top: -11px;
left: 30px;
transform: rotate(-45deg);
transform-origin: 0px 60px;
animation: rotatePlaceholder 4.25s ease-in;
}
.success_check__line {
height: 5px;
background-color: #4CAF50;
display: block;
border-radius: 2px;
position: absolute;
z-index: 2;
}
.success_check__line--tip {
animation: animateSuccessTip 0.75s;
width: 25px;
left: 14px;
top: 46px;
transform: rotate(45deg);
}
.success_check__line--long {
animation: animateSuccessLong 0.75s;
width: 47px;
right: 8px;
top: 38px;
transform: rotate(-45deg);
}
.success_check__placeholder {
width: 80px;
height: 80px;
border: 4px solid rgba(76, 175, 80, .5);
-webkit-border-radius: 40px;
border-radius: 40px;
border-radius: 50%;
box-sizing: content-box;
position: absolute;
left: -4px;
top: -4px;
z-index: 2;
}
.success_check__fix {
width: 5px;
height: 90px;
background-color: white;
position: absolute;
left: 28px;
top: 8px;
z-index: 1;
transform: rotate(-45deg);
}
@keyframes animateSuccessTip {
0%, 54% {
width: 0;
left: 1px;
top: 19px;
}
70% {
...