@import '../mixins'; @mixin button() { background: var(--white); border: 1px solid var(--base-color); border-radius: 0; box-sizing: border-box; color: var(--base-color); cursor: pointer; display: inline-block; font-family: $font-family-base; font-size: 14px; line-height: 130%; margin: 0.8em 0.6em 0.8em 0; min-width: 100px; overflow: visible; padding: 5px 15px; position: relative; text-align: center; text-decoration: none; vertical-align: middle; white-space: nowrap; width: auto; &:hover, &:active { background: var(--base-color); color: var(--white); } &.disabled, &[disabled] { box-shadow: none; background: var(--light-gray-color-20); cursor: default; opacity: 0.65; &:hover { color: var(--base-color); } } transition: none; } a.button, button.button { @include button(); } .button-with-empty-icon { white-space: nowrap; &::before { background-repeat: no-repeat; content: " "; float: left; height: 16px; margin: 1px 5px 0 -8px; width: 16px; } } @mixin button-with-icon($icon, $role, $roleOnHover) { @extend .button-with-empty-icon; &::before { @include background-icon($icon, $role); } &:hover::before { @include background-icon($icon, $roleOnHover); } &.disabled, &[disabled] { &:hover::before { @include background-icon($icon, $role); } } } .button.accept { @include button-with-icon(accept, clickable, info_alt); } .button.cancel { @include button-with-icon(decline, clickable, info_alt); } .button.edit { @include button-with-icon(edit, clickable, info_alt); } .button.move-up { @include button-with-icon(arr_1up, clickable, info_alt); } .button.move-down { @include button-with-icon(arr_1down, clickable, info_alt); } .button.add { @include button-with-icon(add, clickable, info_alt); } .button.trash { @include button-with-icon(trash, clickable, info_alt); } .button.download { @include button-with-icon(download, clickable, info_alt); } .button.search { @include button-with-icon(search, clickable, info_alt); } .button.arr_left { @include button-with-icon(arr_1left, clickable, info_alt); } .button.refresh { @include button-with-icon(refresh, clickable, info_alt); } .button.arr_right { @include button-with-icon(arr_1right, clickable, info_alt); &::before { float: right; margin: 1px -8px 0 5px; } } /* Grouped Buttons */ .button-group { display: inline-flex; gap: 5px; list-style: none; margin: 0 0.8em 0 0; padding: 0; vertical-align: middle; button, .button { margin-left: 0; margin-right: 0; } } button, .button { &.as-link, &.styleless, &.undecorated, &.icon-button { background-color: unset; border: 0; } &.as-link, &.undecorated { cursor: pointer; margin: 0; padding: 0; } &.as-link, &.undecorated[formaction] { color: var(--base-color); transition: color var(--transition-duration); &:hover, &:active { color: var(--active-color); text-decoration: none; } &[disabled] { pointer-events: none; } } }