$ascribe-black: #1E1E1E;
$ascribe-dark-blue: #003C69;
$ascribe-blue: #65CFE9;
$ascribe-light-blue: #D3DEE4;
$ascribe-pink: #D10074;

$ascribe--spinner-color: $ascribe-blue;

$ascribe--spinner-size-lg: 50px;
$ascribe--spinner-size-md: 30px;
$ascribe--spinner-size-sm: 15px;


[class^="spinner-wrapper-"]{
    margin: auto;
}

.spinner-wrapper-blue {
    color: $ascribe-blue;
    .spinner-circle {
        border-color: $ascribe-blue;
    }
}

.spinner-wrapper-dark-blue {
    color: $ascribe-dark-blue;
    .spinner-circle {
        border-color: $ascribe-dark-blue;
    }
}

.spinner-wrapper-pink {
    color: $ascribe-pink;
    .spinner-circle {
        border-color: $ascribe-pink;
    }
}

.spinner-wrapper-loop {
    -webkit-animation: spinner-color-loop 20s infinite;
       -moz-animation: spinner-color-loop 20s infinite;
         -o-animation: spinner-color-loop 20s infinite;
        -ms-animation: spinner-color-loop 20s infinite;
            animation: spinner-color-loop 20s;

}

.spinner-wrapper-black {
    color: $ascribe-black;
    .spinner-circle {
        border-color: $ascribe-black;
    }
}

.spinner-wrapper-white {
    color: $ascribe-white;
    .spinner-circle {
        border-color: $ascribe-white;
    }
}

.spinner-wrapper-lg {
    width: $ascribe--spinner-size-lg;
    height: $ascribe--spinner-size-lg;
}

.spinner-wrapper-md {
    width: $ascribe--spinner-size-md;
    height: $ascribe--spinner-size-md;
}

.spinner-wrapper-sm {
    width: $ascribe--spinner-size-sm;
    height: $ascribe--spinner-size-sm;
}

.spinner-circle {
    border-radius: 50%;
    border-style: solid;

    -webkit-animation: spin 1s infinite linear;
       -moz-animation: spin 1s infinite linear;
         -o-animation: spin 1s infinite linear;
        -ms-animation: spin 1s infinite linear;
            animation: spin 1s infinite linear;
}
.spinner-wrapper-lg .spinner-inner,
.spinner-wrapper-lg .spinner-circle {
    width: $ascribe--spinner-size-lg;
    height: $ascribe--spinner-size-lg;
}

.spinner-wrapper-md .spinner-inner,
.spinner-wrapper-md .spinner-circle {
    width: $ascribe--spinner-size-md;
    height: $ascribe--spinner-size-md;
}

.spinner-wrapper-sm .spinner-inner,
.spinner-wrapper-sm .spinner-circle {
    width: $ascribe--spinner-size-sm;
    height: $ascribe--spinner-size-sm;
}

.spinner-wrapper-lg .spinner-circle,
.spinner-wrapper-sm .spinner-circle,
.spinner-wrapper-md .spinner-circle {
    border-width: 1px 1px 1px 0;
}

.spinner-inner {
    position: relative;
    text-align: center;
}
.spinner-wrapper-lg .spinner-inner {
    font-size: $ascribe--spinner-size-lg;
    line-height: $ascribe--spinner-size-lg;
    top: -52px;
}

.spinner-wrapper-md .spinner-inner {
    font-size: $ascribe--spinner-size-md;
    line-height: $ascribe--spinner-size-md;
    top: -31px;
}

.spinner-wrapper-sm .spinner-inner {
    font-size: $ascribe--spinner-size-sm;
    line-height: $ascribe--spinner-size-sm;
    top: -15px;
}

@-webkit-keyframes spin {
    from {-webkit-transform: rotate(0deg);}
    to   {-webkit-transform: rotate(359deg);}
}

@-moz-keyframes spin {
    from {-moz-transform: rotate(0deg);}
    to   {-moz-transform: rotate(359deg);}
}

@-o-keyframes spin {
    from {-o-transform: rotate(0deg);}
    to   {-o-transform: rotate(359deg);}
}

@keyframes spin{
    from {transform: rotate(0deg);}
    to   {transform: rotate(359deg);}
}

@include keyframes(spinner-color-loop) {
    0%  { color: $ascribe-black; }
    20% { color: $ascribe-dark-blue; }
    40% { color: $ascribe-blue; }
    60% { color: $ascribe-light-blue; }
    80% { color: $ascribe-pink; }
}