// https://github.com/kazzkiq/balloon.css
// 1.0.3

//
// Variables
// -----------------------------------------

$balloon-bg: fade-out(#101010, 0.05) !default;
$balloon-base-size: 12px !default;
$balloon-arrow-size: 5px !default;
$balloon-move: 4px !default;

//
// Mixins
// -----------------------------------------

@mixin arrow-down() {
    width: 0;
    height: 0;
    border: $balloon-arrow-size solid transparent;
    border-top-color: var(--balloon-color);
}

@mixin base-effects() {
    opacity: 0;
    pointer-events: none;
    transition: all 0.18s ease-out 0.18s;
}

@mixin normalized-text() {
    text-indent: 0;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
        'Helvetica Neue', sans-serif;
    font-weight: normal;
    font-style: normal;
    text-shadow: none;
    font-size: var(--balloon-font-size);
}

//
// Styles
// -----------------------------------------

:root {
    --balloon-color: #{$balloon-bg};
    --balloon-font-size: #{$balloon-base-size};
    --balloon-move: #{$balloon-move};
}

// IE 11 button bugfix
button[aria-label] {
    &[data-balloon-pos] {
        overflow: visible;
    }
}

[aria-label] {
    &[data-balloon-pos] {
        position: relative; // alt. absolute or fixed

        // Fixing iOS Safari event issue.
        // More info at: https://goo.gl/w8JF4W
        cursor: pointer;

        &:after {
            @include base-effects();
            @include normalized-text();

            background: var(--balloon-color);
            border-radius: 2px;
            color: #fff;
            content: attr(aria-label);
            padding: 0.5em 1em;
            position: absolute;
            white-space: nowrap;
            line-height: 1.2;
            z-index: 10;
        }

        &:before {
            @include arrow-down();
            @include base-effects();

            content: '';
            position: absolute;
            z-index: 10;
        }

        &:hover {
            &:before,
            &:after {
                opacity: 1;
                pointer-events: none;
            }
        }

        &[data-balloon-pos='up'] {
            &:after {
                bottom: 100%;
                left: 50%;
                margin-bottom: $balloon-arrow-size + 5px;
                transform: translate(-50%, var(--balloon-move));
                transform-origin: top;
            }
            &:before {
                bottom: 100%;
                left: 50%;
                transform: translate(-50%, var(--balloon-move));
                transform-origin: top;
            }

            &:hover {
                &:after {
                    transform: translate(-50%, 0);
                }

                &:before {
                    transform: translate(-50%, 0);
                }
            }
        }
    }
}
