.button--pulse {
    position: relative;
    display: block;
    border: 1px solid #fff;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    -webkit-animation: pulse 1.5s infinite cubic-bezier(0.25, 0.46, 0.45, 0.94);
    animation: pulse 1.5s infinite cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.button--pulse::before {
    content: '';
    display: inline-block;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .5);
    left: 50%;
    top: 50%;
    -ms-transform: translate(-50%, -50%);
    /* IE 9 */
    -webkit-transform: translate(-50%, -50%);
    /* Safari and Chrome */
    transform: translate(-50%, -50%);
    -webkit-animation: pulse-shadow 1.5s infinite cubic-bezier(0.25, 0.46, 0.45, 0.94);
    animation: pulse-shadow 1.5s infinite cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes pulse {
    0% {
        transform: scale(.8);
    }
    70% {
        transform: scale(1);
    }
    100% {
        transform: scale(.8);
    }
}

@keyframes pulse-shadow {
    0% {}
    70% {
        box-shadow: 0 0 0 35px rgba(255, 255, 255, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
}