JSFiddle - React, Tailwind, and code Playground

HTML

<div id="button-container">
<button class="btn btnPulse inactive throb"></button>
</div>

CSS

@keyframes pulse-short {
    100% {
        box-shadow: inset 0 0 0 80px red;
        -moz-box-shadow: inset 0 0 0 80px red;
        -webkit-box-shadow: inset 0 0 0 80px red;
        height: 60px;
        width: 60px;
        left: -22px;
        opacity: 0;
    }
}
@keyframes pulse-long {
    100% {
        box-shadow: inset 0 0 0 10px red;
        -moz-box-shadow: inset 0 0 0 10px red;
        -webkit-box-shadow: inset 0 0 0 10px red;
        height: 60px;
        width: 60px;
        left: -22px;
        opacity: 0;
    }
}

.btnPulse.inactive.throb::before {
    animation: 1000ms ease 0s normal none infinite running pulse-long;
    box-shadow: 0 0 0 0 red inset;
    display: block;
    height: 100%;
    left: 3px;
    margin: 0 auto;
    right: 0;
    top: 50%;
    transform: translate3d(-3px, -50%, 0px);
    width: 100%;
}
.btnPulse.inactive::before {
    border-radius: 100%;
    bottom: -5px;
    box-shadow: 0 0 0 1px red inset;
    content: "";
    display: block;
    height: 30px;
    left: -10px;
    margin: 0 auto;
    position: absolute;
    right: -5px;
    top: -5px;
    transition: all 300ms ease-in-out 0s;
    width: 30px;
}

.btnPulse.inactive.throb::after {
    animation: 2500ms ease 300ms normal none infinite running pulse-short;
    border-radius: 100%;
    bottom: -5px;
    box-shadow: 0 0 0 0 red inset;
    content: "";
    display: block;
    height: 30px;
    left: -9px;
    margin: 0 auto;
    position: absolute;
    right: -5px;
    top: 50%;
    transform: translate3d(-2px, -50%, 0px);
    transition: all 300ms ease-in-out 0s;
    width: 30px;
}
.btnPulse.inactive {
    background: red none repeat scroll 0 0;
    border: medium none;
    border-radius: 100%;
    height: 10px;
    outline: medium none;
    padding: 0;
    position: relative;
    width: 10px;
}
.btnPulse {
    border-radius: 50%;
    cursor: pointer;
    height: 15px;
    padding: 0;
    transition: all 300ms ease-in-out 0s;
    width: 15px;
}
.btn {
    -moz-user-select:...