JSFiddle - React, Tailwind, and code Playground

HTML

<div class="">
  <a href="#">Putting this beside a hyperlink makes sense too.</a>
  <span class="circle-pointer">
    <span class="inner-circle-pointer red-circle"></span>
  </span>
</div>

<button type="button" name="button">This is a button
  <span class="circle-pointer">
    <span class="inner-circle-pointer red-circle"></span>
  </span>
</button>

CSS

/* MIT LICENSE */
/* Author: Bryan Lim */
/* Website: http://ytbryan.com */
/* Get your latest copy of blinking-pointer.css
at http://github.com/ytbryan/blinking-pointer.css*/


.circle-pointer {
    width: 25px;
    height: 25px;
    position: absolute;
    cursor: pointer;
}

/*green circle*/
.inner-circle-pointer.green-circle{
    background-color: #93d04c;
    border-color: #93d04c;
    box-shadow: 0 0 0 0 rgba(147, 208, 76, 0.7);
    -webkit-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    -moz-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
}

/*red circle*/
.inner-circle-pointer.red-circle{
    background-color: #FA254C;
    border-color: #FA254C;
    box-shadow: 0 0 0 0 rgba(250, 37, 76, 0.7);
    -webkit-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    -moz-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
}

/*orange circle*/
.inner-circle-pointer.orange-circle{
    background-color: #FA9D1B;
    border-color: #FA9D1B;
    box-shadow: 0 0 0 0 rgba(250, 157, 27, 0.7);
    -webkit-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    -moz-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
}

/*yellow circle*/
.inner-circle-pointer.yellow-circle{
    background-color: #FAF21B;
    border-color: #FAF21B;
    box-shadow: 0 0 0 0 rgba(250, 242, 27, 0.7);
    -webkit-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    -moz-animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
    animation: pulsing 1.25s infinite cubic-bezier(0.66, 0, 0, 1);
}


/*purple circle*/
.inner-circle-pointer.purple-circle{
    background-color: #B020F7;
    border-color: #B020F7;
    box-shadow: 0 0 0 0 rgba(176, 32, 247, 0.7);
    -webkit-animation: pulsing 1.25s infinite...