JSFiddle - React, Tailwind, and code Playground

by joplomacedo

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="success_circle">
  <div class="success_circle__check"></div>
</div>

CSS

.success_circle {
    margin-bottom: 3.5em;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-left-color: #5cb85c;
    animation: success_circle_Anim 1.2s infinite linear;
    position: relative;
    display: inline-block;
    vertical-align: top;
    border-radius: 50%;
    width: 7em;
    height: 7em;
  }

  .success_circle.is-done {
    -webkit-animation: none;
    animation: none;
    border-color: #5cb85c;
    transition: border 500ms ease-out;
  }


  .success_circle__check {
    display: none;
  }

  .success_circle.is-done .success_circle__check {
    display: block;
  }

  .success_circle__check:after {
    animation-duration: 800ms;
    animation-timing-function: ease;
    animation-name: success_circle__check_Anim;
    transform: scaleX(-1) rotate(135deg);
    opacity: 1;
    height: 3.5em;
    width: 1.75em;
    transform-origin: left top;
    border-right: 3px solid #5cb85c;
    border-top: 3px solid #5cb85c;
    content: '';
    left: 1.75em;
    top: 3.5em;
    position: absolute;
  }

  @keyframes success_circle_Anim {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }

  @keyframes success_circle__check_Anim {
    0% {
      height: 0;
      width: 0;
      opacity: 1;
    }
    20% {
      height: 0;
      width: 1.75em;
      opacity: 1;
    }
    40% {
      height: 3.5em;
      width: 1.75em;
      opacity: 1;
    }
    100% {
      height: 3.5em;
      width: 1.75em;
      opacity: 1;
    }
  }

JavaScript

function toggle() {
    $('.success_circle').toggleClass('is-done');
  }

$('body').on('click', function () {

	toggle();
	});