285 lines
6.9 KiB
SCSS
285 lines
6.9 KiB
SCSS
// Override Bootstrap's base button class
|
|
|
|
.btn {
|
|
--#{$prefix}btn-active-border-color: transparent;
|
|
--#{$prefix}btn-disabled-border-color: transparent;
|
|
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
&:focus-visible {
|
|
box-shadow: $focus-ring-box-shadow;
|
|
}
|
|
|
|
// Fix chevron icons vertical aligment
|
|
&:not(.btn-icon) [class*=" #{$icon-prefix}chevron"],
|
|
&:not(.btn-icon) [class^="#{$icon-prefix}chevron"] {
|
|
margin-top: .125rem;
|
|
}
|
|
}
|
|
|
|
|
|
// Override solid buttons
|
|
/* stylelint-disable */
|
|
@each $color, $value in map-remove($theme-colors, "secondary", "dark", "light") {
|
|
.btn-#{$color} {
|
|
--#{$prefix}btn-hover-bg: #{adjust-color($value, $lightness: -10%)};
|
|
--#{$prefix}btn-active-bg: #{adjust-color($value, $lightness: -10%)};
|
|
--#{$prefix}btn-hover-border-color: #{adjust-color($value, $lightness: -10%)};
|
|
--#{$prefix}btn-active-border-color: #{adjust-color($value, $lightness: -10%)};
|
|
}
|
|
}
|
|
/* stylelint-enable */
|
|
|
|
.btn-secondary {
|
|
--#{$prefix}btn-color: #{$gray-700};
|
|
--#{$prefix}btn-bg: #{$gray-100};
|
|
--#{$prefix}btn-border-color: #{$gray-100};
|
|
--#{$prefix}btn-hover-color: #{$gray-900};
|
|
--#{$prefix}btn-hover-bg: #{$gray-200};
|
|
--#{$prefix}btn-hover-border-color: #{$gray-200};
|
|
--#{$prefix}btn-active-color: #{$gray-700};
|
|
--#{$prefix}btn-active-bg: #{$gray-200};
|
|
--#{$prefix}btn-active-border-color: #{$gray-200};
|
|
--#{$prefix}btn-disabled-color: #{$gray-700};
|
|
--#{$prefix}btn-disabled-bg: #{$gray-100};
|
|
--#{$prefix}btn-disabled-border-color: #{$gray-100};
|
|
}
|
|
|
|
.btn-dark {
|
|
--#{$prefix}btn-hover-bg: #{$gray-950};
|
|
--#{$prefix}btn-hover-border-color: #{$gray-950};
|
|
--#{$prefix}btn-active-bg: #{$gray-950};
|
|
--#{$prefix}btn-active-border-color: #{$gray-950};
|
|
}
|
|
|
|
.btn-light {
|
|
--#{$prefix}btn-color: #{$gray-900};
|
|
--#{$prefix}btn-hover-color: #{$gray-900};
|
|
--#{$prefix}btn-hover-bg: #{$gray-200};
|
|
--#{$prefix}btn-hover-border-color: #{$gray-200};
|
|
--#{$prefix}btn-active-color: #{$gray-900};
|
|
--#{$prefix}btn-active-bg: #{$gray-200};
|
|
--#{$prefix}btn-active-border-color: #{$gray-200};
|
|
}
|
|
|
|
.btn-link {
|
|
font-weight: $btn-font-weight;
|
|
}
|
|
|
|
|
|
// Override outline buttons
|
|
|
|
.btn-outline-secondary {
|
|
--#{$prefix}btn-color: #{$gray-700};
|
|
--#{$prefix}btn-border-color: #{$gray-200};
|
|
--#{$prefix}btn-hover-color: #{$gray-900};
|
|
--#{$prefix}btn-hover-bg: transparent;
|
|
--#{$prefix}btn-hover-border-color: #{$gray-500};
|
|
--#{$prefix}btn-active-color: #{$gray-900};
|
|
--#{$prefix}btn-active-bg: transparent;
|
|
--#{$prefix}btn-active-border-color: #{$gray-900};
|
|
--#{$prefix}btn-disabled-color: #{$gray-700};
|
|
--#{$prefix}btn-disabled-border-color: #{$gray-200};
|
|
}
|
|
|
|
|
|
// Ghost button
|
|
|
|
.btn-ghost {
|
|
background-color: transparent;
|
|
border-color: transparent;
|
|
|
|
&:hover,
|
|
&:focus-visible,
|
|
&.show {
|
|
background-color: var(--#{$prefix}btn-bg);
|
|
border-color: var(--#{$prefix}btn-border-color);
|
|
}
|
|
|
|
&.active {
|
|
background-color: var(--#{$prefix}btn-active-bg);
|
|
border-color: var(--#{$prefix}btn-active-border-color);
|
|
}
|
|
}
|
|
|
|
|
|
// Icon button
|
|
|
|
.btn-icon {
|
|
--#{$prefix}btn-size: #{$btn-icon-size};
|
|
|
|
flex-shrink: 0;
|
|
width: var(--#{$prefix}btn-size);
|
|
height: var(--#{$prefix}btn-size);
|
|
padding: 0;
|
|
|
|
&.btn-lg {
|
|
--#{$prefix}btn-size: #{$btn-icon-size-lg};
|
|
}
|
|
|
|
&.btn-sm {
|
|
--#{$prefix}btn-size: #{$btn-icon-size-sm};
|
|
}
|
|
}
|
|
|
|
|
|
// Market button
|
|
|
|
.btn-market {
|
|
--#{$prefix}btn-padding-y: .625rem;
|
|
--#{$prefix}btn-padding-x: 1rem;
|
|
--#{$prefix}btn-border-width: 0;
|
|
|
|
&.btn-lg {
|
|
--#{$prefix}btn-padding-y: .75rem;
|
|
--#{$prefix}btn-padding-x: 1.125rem;
|
|
}
|
|
}
|
|
|
|
|
|
// Color button
|
|
|
|
.btn-color {
|
|
--#{$prefix}btn-active-border-color: var(--#{$prefix}tertiary-color);
|
|
|
|
display: inline-block;
|
|
flex-shrink: 0;
|
|
width: 1em;
|
|
height: 1em;
|
|
padding: .125rem;
|
|
@include border-radius(50%);
|
|
|
|
&::before {
|
|
display: flex;
|
|
width: 100%;
|
|
height: 100%;
|
|
content: "";
|
|
background-color: currentcolor;
|
|
@include border-radius(50%);
|
|
}
|
|
}
|
|
|
|
|
|
// Image button
|
|
|
|
.btn-image {
|
|
--#{$prefix}btn-active-border-color: var(--#{$prefix}component-active-color);
|
|
}
|
|
|
|
|
|
// Back to top button
|
|
|
|
.btn-scroll-top {
|
|
--#{$prefix}btn-padding-x: .75rem;
|
|
--#{$prefix}btn-padding-y: #{calc($btn-padding-y-sm + var(--#{$prefix}border-width))};
|
|
|
|
position: relative;
|
|
@include font-size($font-size-base * .625);
|
|
text-transform: uppercase;
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
transition: transform .25s ease-in-out, opacity .25s, visibility .25s;
|
|
transform: scale(0);
|
|
|
|
&.show {
|
|
visibility: visible;
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
|
|
// Sort button
|
|
|
|
[data-sort] {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
|
|
&::after {
|
|
width: 1.25em;
|
|
margin-top: .125em;
|
|
font-size: 1.25em;
|
|
content: "\2195";
|
|
}
|
|
|
|
&.asc::after {
|
|
content: "\2191";
|
|
transform: scale(.75);
|
|
}
|
|
|
|
&.desc::after {
|
|
content: "\2193";
|
|
transform: scale(.75);
|
|
}
|
|
}
|
|
|
|
|
|
// Revoke Bootstrap badge inside button fix
|
|
|
|
.btn .badge {
|
|
top: 0;
|
|
}
|
|
|
|
|
|
// Floating buttons
|
|
|
|
.floating-buttons {
|
|
transform: translateX(50%) rotate(-90deg);
|
|
}
|
|
|
|
|
|
// Dark mode
|
|
|
|
@if $enable-dark-mode {
|
|
@include color-mode(dark) {
|
|
.btn-secondary:not([data-bs-theme="light"]) {
|
|
--#{$prefix}btn-color: #{$gray-200};
|
|
--#{$prefix}btn-bg: #{$gray-700};
|
|
--#{$prefix}btn-border-color: #{$gray-700};
|
|
--#{$prefix}btn-hover-color: #{$white};
|
|
--#{$prefix}btn-hover-bg: #{$gray-600};
|
|
--#{$prefix}btn-hover-border-color: #{$gray-600};
|
|
--#{$prefix}btn-active-color: #{$gray-200};
|
|
--#{$prefix}btn-active-bg: #{$gray-600};
|
|
--#{$prefix}btn-active-border-color: #{$gray-600};
|
|
--#{$prefix}btn-disabled-color: #{$gray-200};
|
|
--#{$prefix}btn-disabled-bg: #{$gray-700};
|
|
--#{$prefix}btn-disabled-border-color: #{$gray-700};
|
|
}
|
|
|
|
.btn-dark:not([data-bs-theme="light"]) {
|
|
@extend .btn-light;
|
|
}
|
|
|
|
.btn-link:not([data-bs-theme="light"]) {
|
|
--#{$prefix}btn-disabled-color: #{$btn-link-disabled-color-dark};
|
|
}
|
|
|
|
.btn-outline-secondary:not([data-bs-theme="light"]) {
|
|
--#{$prefix}btn-color: #{$gray-200};
|
|
--#{$prefix}btn-border-color: #{$gray-700};
|
|
--#{$prefix}btn-hover-color: #{$white};
|
|
--#{$prefix}btn-hover-border-color: #{$gray-400};
|
|
--#{$prefix}btn-active-color: #{$white};
|
|
--#{$prefix}btn-active-border-color: #{$white};
|
|
--#{$prefix}btn-disabled-color: #{$gray-200};
|
|
--#{$prefix}btn-disabled-border-color: #{$gray-700};
|
|
}
|
|
|
|
.btn-outline-dark:not([data-bs-theme="light"]) {
|
|
--#{$prefix}btn-color: #{$gray-50};
|
|
--#{$prefix}btn-border-color: #{$gray-50};
|
|
--#{$prefix}btn-hover-color: #{$gray-900};
|
|
--#{$prefix}btn-hover-bg: #{$white};
|
|
--#{$prefix}btn-hover-border-color: #{$white};
|
|
--#{$prefix}btn-active-color: #{$gray-900};
|
|
--#{$prefix}btn-active-bg: #{$white};
|
|
--#{$prefix}btn-active-border-color: #{$white};
|
|
--#{$prefix}btn-disabled-color: #{$gray-50};
|
|
--#{$prefix}btn-disabled-border-color: #{$gray-50};
|
|
}
|
|
}
|
|
}
|