.icon(@icon) {
    .icon-OctoFont();
    content: @icon;
}

.icon-OctoFont() {
    // use !important to prevent issues with browser extensions that change fonts
    font-family: 'octo-icon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;

    // Better Font Rendering ===========
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

// Scroll markers
// --------------------------------------------------

.vertical-scroll-marker(@color) {
    .scroll-marker {
        position: absolute;
        left: 0;
        width: 100%;
        height: 10px;
        display: none;

        &:after {
            .icon(@icon-ellipsis-h);
            display: block;
            position: absolute;
            left: 50%;
            margin-left: -3px;
            top: 0;
            height: 9px;
            font-size: 10px;
            color: @color;
        }

        &.before {top: 0;}
        &.after {
            bottom: 3px;
            &:after {
                top: 2px;
            }
        }
    }

    &.scroll-before .scroll-marker.before { display: block; }
    &.scroll-after .scroll-marker.after { display: block; }
}

.horizontal-scroll-indicators(@color) {
    &:after, &:before {
        display: none;
        position: absolute;
        top: 50%;
        margin-top: -7px;
        height: 9px;
        font-size: 10px;
        color: @color;
    }

    &:before {
        left: -6px;
        .icon(@icon-angle-left);
    }

    &:after {
        right: -8px;
        .icon(@icon-angle-right);
    }

    &.scroll-before:before { display: block; }
    &.scroll-after:after { display: block; }
}

.horizontal-scroll-shadow() {
    position: relative;

    &:after, &:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 10px;
        z-index: 2;
        opacity: 0;
        transition: opacity 0.1s ease-out;
    }

    &:before {
        background: transparent linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0) 100%);
        left: 10px;
    }

    &:after {
        background: transparent linear-gradient(270deg, #000 0%, rgba(0, 0, 0, 0) 100%);
        right: -10px;
    }

    &.scroll-before:before { opacity: .15; }
    &.scroll-after:after { opacity: .15; }
}
