JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://fgnass.github.io/spin.js/spin.js"></script>
<div id="foo"></div>
<button id="spin"> Spin! </button>
<button id="stop"> Stop! </button>

CSS

body, html{
    background-color: #333;
}

#foo {
    width: 50px;
    height: 50px;
    background-color: #f00;
    position: relative;
}

JavaScript

var opts = {
  lines: 13, // The number of lines to draw
  length: 5, // The length of each line
  width: 2, // The line thickness
  radius:5, // The radius of the inner circle
  corners: 1, // Corner roundness (0..1)
  rotate: 58, // The rotation offset
  direction: 1, // 1: clockwise, -1: counterclockwise
  color: '#fff', // #rgb or #rrggbb or array of colors
  speed: 0.9, // Rounds per second
  trail: 100, // Afterglow percentage
  shadow: false, // Whether to render a shadow
  hwaccel: false, // Whether to use hardware acceleration
  className: 'spinner', // The CSS class to assign to the spinner
  zIndex: 2e9, // The z-index (defaults to 2000000000)
  top: '50%', // Top position relative to parent
  left: '50%' // Left position relative to parent
};

var target = document.getElementById('foo');

$(document).on('click','#spin',function()
{
  var spinner = new Spinner(opts).spin(target);
});

$(document).on('click','#stop',function()
{
  $("#foo").data('spinner').stop();
});