
.fill:hover,
.fill:focus {
    box-shadow: inset 0 0 0 2em var(--hover);
}

/* Animate the size, outside */
.pulse:hover,
.pulse:focus {
    animation: pulse 1s;
    box-shadow: 0 0 0 2em transparent;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 var(--hover);
    }
}


.pulseG:hover,
.pulseG:focus {
    animation: pulse 1s;
    box-shadow: 0 0 0 3em transparent;
}


@keyframes pulseG {
    0% {
        box-shadow: 0 0 0 0 var(--hover);
    }
}

/* Stack multiple shadows, one from the left, the other from the right */
.close:hover,
.close:focus {
    box-shadow: inset -3.5em 0 0 0 var(--hover), inset 3.5em 0 0 0 var(--hover);
}

/* Size can also be negative; see how it's smaller than the element */
.raise:hover,
.raise:focus {
    box-shadow: 0 0.5em 0.5em -0.4em var(--hover);
    transform: translateY(-0.25em);
}

/* Animating from the bottom */
.up:hover,
.up:focus {
    box-shadow: inset 0 -3.25em 0 0 var(--hover);
}

/* And from the left */
.slide:hover,
.slide:focus {
    box-shadow: inset 6.5em 0 0 0 var(--hover);
}

/* Multiple shadows, one on the outside, another on the inside */
.offset {
    box-shadow: 0.3em 0.3em 0 0 var(--color), inset 0.3em 0.3em 0 0 var(--color);

    &:hover,
    &:focus {
        box-shadow: 0 0 0 0 var(--hover), inset 6em 3.5em 0 0 var(--hover);
    }
}

/* Set button colors */
/* If you wonder why use Sass vars or CSS custom properties... */
/* Make a map with the class names and matching colors */
.fill {
    --color: #a972cb;
    --hover: #cf83d5;
}

.pulse {
    --color: #ef6eae;
    --hover: #ff8ebd;
}

.pulseG {
    --color: var(--primary-color);
    --hover: var(--secondary-color);
}

.close {
    --color: #ff7f82;
    --hover: #ff9e9f;
}

.raise {
    --color: var(--secondary-color);
    --hover: var(--secondary-color);
}

.up {
    --color: #e4cb58;
    --hover: #f7da6e;
}

.slide {
    --color: #8fc866;
    --hover: #9fda76;
}

.offset {
    --color: #19bc8b;
    --hover: #39ccab;
}

/* Now every button will have different colors as set above. We get to use the same structure, only changing the custom properties. */
.button-effect {
    color: var(--color);
    transition: 0.25s;
}

.button-effect:hover, .button-effect:focus {
    border-color: var(--hover);
    color: #fff;
}

/* Pen styling, ignore */


/* Basic button styles */
.button-effect {
    background: none;
    border: 2px solid;
    font: inherit;
    line-height: 1;
    margin: 0.5em;
    padding: 1em 2em;
}



code {
    color: #e4cb58;
    font: inherit;
}
