264 lines
6.8 KiB
SCSS
264 lines
6.8 KiB
SCSS
//
|
|
// Buttons
|
|
// --------------------------------------------------
|
|
|
|
|
|
// Global styles
|
|
|
|
.btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
&:not([class^='btn-outline-']):not([class*=' btn-outline-']):not(.btn-secondary):not(.btn-light):not(.btn-link) {
|
|
--#{$prefix}btn-color: #{$btn-color};
|
|
}
|
|
|
|
&:hover,
|
|
&:disabled, &.disabled { box-shadow: none !important; }
|
|
}
|
|
|
|
|
|
// Override solid buttons
|
|
|
|
@each $color, $value in $theme-colors {
|
|
.btn-#{$color} {
|
|
--#{$prefix}btn-hover-color: #{$btn-color};
|
|
--#{$prefix}btn-active-color: #{$btn-color};
|
|
--#{$prefix}btn-hover-bg: #{darken($value, 7.5%)};
|
|
--#{$prefix}btn-active-bg: #{darken($value, 7.5%)};
|
|
--#{$prefix}btn-hover-border-color: #{darken($value, 7.5%)};
|
|
--#{$prefix}btn-active-border-color: #{darken($value, 7.5%)};
|
|
--#{$prefix}btn-disabled-color: #{$btn-color};
|
|
}
|
|
}
|
|
|
|
.btn-secondary,
|
|
.btn-light {
|
|
--#{$prefix}btn-color: #{$gray-800};
|
|
--#{$prefix}btn-hover-color: #{$gray-900};
|
|
--#{$prefix}btn-active-color: #{$gray-900};
|
|
--#{$prefix}btn-disabled-color: #{$gray-700};
|
|
}
|
|
|
|
|
|
// Outline buttons
|
|
|
|
[class^='btn-outline-'],
|
|
[class*=' btn-outline-'] {
|
|
--#{$prefix}btn-hover-color: #{$btn-color};
|
|
--#{$prefix}btn-active-color: #{$btn-color};
|
|
}
|
|
|
|
@each $color, $value in $border-colors {
|
|
.btn-outline-#{$color} {
|
|
--#{$prefix}btn-border-color: #{$value};
|
|
--#{$prefix}btn-disabled-border-color: #{$value};
|
|
}
|
|
}
|
|
|
|
.btn-outline-secondary {
|
|
--#{$prefix}btn-color: #{$gray-800};
|
|
--#{$prefix}btn-hover-color: #{$gray-900};
|
|
--#{$prefix}btn-active-color: #{$gray-900};
|
|
--#{$prefix}btn-hover-bg: #{$gray-300};
|
|
--#{$prefix}btn-active-bg: #{$gray-300};
|
|
--#{$prefix}btn-border-color: #{$gray-400};
|
|
--#{$prefix}btn-hover-border-color: #{$gray-300};
|
|
--#{$prefix}btn-active-border-color: #{$gray-300};
|
|
--#{$prefix}btn-disabled-color: #{$gray-700};
|
|
--#{$prefix}btn-disabled-border-color: #{$gray-300};
|
|
}
|
|
|
|
.btn-outline-light {
|
|
--#{$prefix}btn-border-color: rgba(#{to-rgb($light)}, .25);
|
|
--#{$prefix}btn-hover-color: #{$gray-800};
|
|
--#{$prefix}btn-active-color: #{$gray-800};
|
|
--#{$prefix}btn-hover-bg: #{$light};
|
|
--#{$prefix}btn-active-bg: #{$light};
|
|
}
|
|
|
|
|
|
// Link button
|
|
|
|
.btn-link {
|
|
--#{$prefix}btn-font-weight: #{$btn-font-weight};
|
|
text-decoration: $btn-link-decoration;
|
|
}
|
|
|
|
|
|
// Icon button
|
|
|
|
.btn-icon {
|
|
--#{$prefix}btn-size: #{$btn-icon-size};
|
|
--#{$prefix}btn-icon-size: #{$font-size-base * 1.25};
|
|
|
|
flex-shrink: 0;
|
|
width: var(--#{$prefix}btn-size);
|
|
height: var(--#{$prefix}btn-size);
|
|
padding: 0;
|
|
|
|
> i {
|
|
font-size: var(--#{$prefix}btn-icon-size);
|
|
}
|
|
|
|
&.btn-sm {
|
|
--#{$prefix}btn-size: #{$btn-icon-sm-size};
|
|
--#{$prefix}btn-icon-size: #{$font-size-base * 1.125};
|
|
}
|
|
|
|
&.btn-lg {
|
|
--#{$prefix}btn-size: #{$btn-icon-lg-size};
|
|
--#{$prefix}btn-icon-size: #{$font-size-base * 1.4375};
|
|
}
|
|
|
|
&.btn-xl {
|
|
--#{$prefix}btn-size: #{$btn-icon-xl-size};
|
|
--#{$prefix}btn-icon-size: #{$font-size-base * 1.75};
|
|
}
|
|
}
|
|
|
|
|
|
// Video button
|
|
|
|
.btn-video {
|
|
--#{$prefix}btn-video-bg: #{$btn-video-bg};
|
|
--#{$prefix}btn-video-hover-bg: #{$btn-video-hover-bg};
|
|
--#{$prefix}btn-video-color: #{$btn-video-color};
|
|
--#{$prefix}btn-video-white-color: #{$btn-video-color};
|
|
--#{$prefix}btn-video-hover-color: #{$btn-video-hover-color};
|
|
--#{$prefix}btn-video-border-radius: #{$btn-video-border-radius};
|
|
--#{$prefix}btn-video-shadow: #{$btn-video-box-shadow};
|
|
--#{$prefix}btn-video-hover-shadow: #{$btn-video-hover-box-shadow};
|
|
|
|
padding-left: .125rem;
|
|
border: 0;
|
|
border-radius: $btn-video-border-radius;
|
|
background-color: var(--#{$prefix}btn-video-bg);
|
|
color: var(--#{$prefix}btn-video-color) !important;
|
|
@include box-shadow(var(--#{$prefix}btn-video-shadow));
|
|
|
|
&:focus {
|
|
@include box-shadow(var(--#{$prefix}btn-video-shadow));
|
|
}
|
|
|
|
&.bg-white {
|
|
color: var(--#{$prefix}btn-video-white-color) !important;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--#{$prefix}btn-video-hover-bg) !important;
|
|
color: var(--#{$prefix}btn-video-hover-color) !important;
|
|
@include box-shadow(var(--#{$prefix}btn-video-hover-shadow) !important);
|
|
}
|
|
}
|
|
|
|
|
|
// Button group
|
|
|
|
.btn-group .btn {
|
|
--#{$prefix}btn-padding-x: #{$input-btn-padding-x * .75};
|
|
&.dropdown-toggle-split {
|
|
--#{$prefix}btn-padding-x: #{$input-btn-padding-x * .5};
|
|
padding: {
|
|
right: var(--#{$prefix}btn-padding-x);
|
|
left: var(--#{$prefix}btn-padding-x);
|
|
}
|
|
}
|
|
}
|
|
.btn-group-lg .btn,
|
|
.btn-group .btn-lg {
|
|
--#{$prefix}btn-padding-x: #{$input-btn-padding-x-lg * .75};
|
|
&.dropdown-toggle-split {
|
|
--#{$prefix}btn-padding-x: #{$input-btn-padding-x-lg * .5};
|
|
padding: {
|
|
right: var(--#{$prefix}btn-padding-x);
|
|
left: var(--#{$prefix}btn-padding-x);
|
|
}
|
|
}
|
|
}
|
|
.btn-group-sm .btn,
|
|
.btn-group .btn-sm {
|
|
--#{$prefix}btn-padding-x: #{$input-btn-padding-x-sm * .75};
|
|
&.dropdown-toggle-split {
|
|
--#{$prefix}btn-padding-x: #{$input-btn-padding-x-sm * .5};
|
|
padding: {
|
|
right: var(--#{$prefix}btn-padding-x);
|
|
left: var(--#{$prefix}btn-padding-x);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Close button
|
|
|
|
.btn-close {
|
|
transition: $btn-close-transition;
|
|
}
|
|
|
|
|
|
// Scroll to top button
|
|
|
|
.btn-scroll-top {
|
|
--#{$prefix}btn-scroll-top-size: #{$btn-scroll-top-size};
|
|
--#{$prefix}btn-scroll-top-border-radius: 50%;
|
|
--#{$prefix}btn-scroll-top-color: #{$btn-scroll-top-color};
|
|
--#{$prefix}btn-scroll-top-hover-color: #{$btn-scroll-top-hover-color};
|
|
--#{$prefix}btn-scroll-top-bg: #{$btn-scroll-top-bg};
|
|
--#{$prefix}btn-scroll-top-hover-bg: #{$btn-scroll-top-hover-bg};
|
|
--#{$prefix}btn-scroll-top-icon-size: #{$btn-scroll-top-icon-font-size};
|
|
|
|
position: fixed;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
right: $spacer * 1.25;
|
|
bottom: -($btn-scroll-top-size * 1.5);
|
|
width: var(--#{$prefix}btn-scroll-top-size);
|
|
height: var(--#{$prefix}btn-scroll-top-size);
|
|
transition: $btn-scroll-top-transition;
|
|
@include border-radius(var(--#{$prefix}btn-scroll-top-border-radius));
|
|
background-color: var(--#{$prefix}btn-scroll-top-bg);
|
|
color: var(--#{$prefix}btn-scroll-top-color);
|
|
text-decoration: none;
|
|
opacity: 0;
|
|
z-index: $zindex-fixed;
|
|
> .btn-scroll-top-icon {
|
|
font: {
|
|
size: var(--#{$prefix}btn-scroll-top-icon-size);
|
|
weight: bold;
|
|
}
|
|
}
|
|
|
|
.btn-scroll-top-tooltip {
|
|
position: absolute;
|
|
top: 50%;
|
|
right: 100%;
|
|
transform: translateY(-50%);
|
|
transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--#{$prefix}btn-scroll-top-hover-bg);
|
|
color: var(--#{$prefix}btn-scroll-top-hover-color);
|
|
.btn-scroll-top-tooltip {
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
&.show {
|
|
bottom: $spacer * 1.25;
|
|
opacity: 1;
|
|
}
|
|
|
|
@include media-breakpoint-down(sm) {
|
|
width: calc(var(--#{$prefix}btn-scroll-top-size) * .8);
|
|
height: calc(var(--#{$prefix}btn-scroll-top-size) * .8);
|
|
right: $spacer;
|
|
&.show { bottom: $spacer; }
|
|
}
|
|
}
|