Skip to content
Snippets Groups Projects
_button.scss 6.74 KiB
Newer Older
.button {
    padding: 0;
    background-color: transparent;
    background-image: none;
    border: 0;
    box-shadow: none;

    &:hover {
        cursor: pointer;
    }

    &:disabled,
    &.is-disabled {
        pointer-events: none;
        opacity: .5;
    }

    &--primary {
        @include button($color--light-blue, $color--dark-blue);
        display: inline-block;

        .form--filters & {
            text-align: center;
    &--contains-icons {
        display: flex;
        align-items: center;

        .header & {
            margin-right: 20px;
        }
    }

    &--transparent {
        @include button(transparent, $color--black);
        @include button--narrow;
        color: $color--black;
        border: 1px solid $color--black;

        &:focus {
            color: $color--black;
        }

        &:hover {
            color: $color--white;
        }
    }
    &--white {
        @include button($color--white, $color--light-blue);
        display: inline-block;
        color: $color--light-blue;
        border: 1px solid $color--mid-grey;

        &:focus {
            color: $color--light-blue;
        }

        &:hover {
            color: $color--white;
        }
    }

    &--warning {
        @include button($color--error, $color--error);

        &:focus {
            background-color: $color--pastel-red;
        }
    }

    &--filters {
        display: flex;
        justify-content: space-between;
        max-width: 300px;
        padding: 15px 20px;
        font-weight: $weight--normal;
        color: $color--default;
        background: url('./../../images/filters.svg') $color--white no-repeat 93% center;
        border: 1px solid $color--light-mid-grey;
        @include media-query(tablet-landscape) {
            background: none;
            padding: 10px;
            border: 0;
            justify-content: flex-start;
            width: auto;
            opacity: .7;

            &::before {
                content: '';
                background-image: url('./../../images/filters.svg');
                transform: rotate(90deg);
                background-color: transparent;
                background-position: left center;
                background-size: 20px;
                width: 20px;
                height: 20px;
                display: inline-block;
                margin-right: 10px;

    &--filters-header {
        display: flex;
    }

    &--search {
        position: absolute;
        top: .65em;
        right: 10px;

        svg {
            fill: $color--primary;
        }
    }

    &--full-width {
        width: 100%;
        text-align: center;
    }

    &--half-width {
        width: 50%;
        padding: 10px 0;
        text-align: center;

        &:first-child {
            margin-right: 20px;
        }
    }

    &--bottom-space {
        margin-bottom: 10px;

        &:last-child {
            margin-bottom: 0;
        }
    }

    &--actions {
        position: relative;
        display: block;
        background-color: $color--white;

        &:active {
            background: $color--light-blue-90;
        }

        &::after {
            position: absolute;
            top: 0;
            right: 15px;
            font-size: 30px;
            content: '+';
        }

        &.is-active {
            color: $color--dark-blue;
            background: $color--light-blue-90;

            &::after {
                top: -12px;
                content: '_';
            }
        }

        @include media-query(tablet-portrait) {
            display: none;
        }
    }
    &--top-space {
        margin-top: 20px;
    }
Chris Lawton's avatar
Chris Lawton committed
        margin-right: 10px;
    &--compare {
        width: 75px;
        padding: 3px;
        margin-top: 10px;
        font-size: 12px;
        font-weight: $weight--bold;
        text-align: center;
        text-transform: uppercase;
        border: 1px solid currentColor;
        transition: background-color, color, border, $quick-transition;

        @include media-query(tablet-portrait) {
            margin-top: 0;
        }

        &:focus,
        &:hover {
            color: $color--white;
            background-color: $color--light-blue;
            border: 1px solid $color--light-blue;
        }
    }

    &--arrow-pixels-white {
        display: flex;
        align-items: center;

        svg {
            width: 10px;
            height: 14px;
            margin-left: 10px;
            fill: $color--white;
        }
    }
        align-items: center;
        transition: opacity $transition;
        font-weight: $weight--semibold;
        position: relative;
        &:hover {
            opacity: 1;
        }

        &:disabled {
            color: $color--mid-dark-grey;
            cursor: not-allowed;

            // tooltip
            &::before {
                content: attr(data-tooltip);
                pointer-events: none;
                position: absolute;
                width: 200px;
                padding: 12px;
                font-size: 12px;
                font-weight: $weight--normal;
                white-space: normal;
                background: $color--light-blue;
                opacity: 0;
                transition: opacity $transition;
                bottom: 45px;
                left: 50%;
                transform: translateX(-50%);
                color: $color--white;
                text-align: left;
                line-height: 1rem;
                border: 1px solid $color--white;
                border-radius: 3px;
            }

            &::after {
                @include triangle(bottom, $color--primary, 7px);
                position: absolute;
                top: -22px;
                left: 50%;
                transform: translateX(-50%);
                opacity: 0;
                transition: opacity $transition;
                z-index: 10;
            }

            svg {
                fill: $color--mid-dark-grey;
            }
                // show tooltip
                &::before {
                    pointer-events: all;
                    z-index: 10;
                    opacity: 1;
                }

                &::after {
                    opacity: 1;
                }
        svg {
            fill: $color--light-blue;
            width: 24px;
            height: 24px;
            margin-right: 10px;
            pointer-events: none;
    &--change-status {
        svg {
            transform: rotate(90deg);