MIF_E31210141/public/landing/third-party/silicon-theme/scss/components/_buttons.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; }
}
}