:root {
    --button-size: 36px;
    --icon-size: 20px;

    --padding-ver: calc(0.3 * var(--icon-size));
    --padding-hor: calc(var(--icon-size) / 2);
    --padding-icon: calc((var(--button-size) - var(--icon-size)) / 2);

    --height: calc(var(--button-size) - 2 * var(--padding-ver));
    --width: calc(var(--button-size) - 2 * var(--padding-hor));
}

.shareon {
    font-size: 0 !important;
}

.shareon > * {
    display: inline-block;
    position: relative;

    height: var(--height);
    min-width: var(--width);

    margin: calc(var(--padding-ver) / 2);
    padding: var(--padding-ver) var(--padding-hor);

    background-color: #ccc;
    border-radius: calc(var(--icon-size) / 6);
    border: none;
    box-sizing: content-box;
    color: white;
    line-height: 1.5;
    transition: opacity 300ms ease;
    vertical-align: middle;
}

.shareon > *:hover {
    border: none;
    cursor: pointer;
    opacity: .7;
}

.shareon > *:not(:empty) {
     font-size: calc(0.8 * var(--icon-size));
     text-decoration: none;
}

.shareon > *:not(:empty)::before {
     position: relative;

     height: 100%;
     width: calc(var(--icon-size) + var(--padding-icon));

     top: 0;
     left: 0;

     background-position: 0 50%;
 }

.shareon > *::before {
    display: inline-block;
    position: absolute;

    height: var(--icon-size);
    width: var(--icon-size);

    top: var(--padding-icon);
    left: var(--padding-icon);

    background-repeat: no-repeat;
    background-size: var(--icon-size) var(--icon-size);
    content: '';
    vertical-align: bottom;
}

@mixin networks;