162 lines
4.7 KiB
SCSS
162 lines
4.7 KiB
SCSS
|
// Button groups
|
||
|
// *******************************************************************************
|
||
|
|
||
|
// * Split button
|
||
|
// *******************************************************************************
|
||
|
|
||
|
.btn-group,
|
||
|
.btn-group-vertical {
|
||
|
&:disabled,
|
||
|
&.disabled {
|
||
|
opacity: 0.45;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.dropdown-toggle-split,
|
||
|
.btn-lg + .dropdown-toggle-split,
|
||
|
.btn-group-lg > .btn + .dropdown-toggle-split,
|
||
|
.input-group-lg .btn + .dropdown-toggle-split,
|
||
|
.btn-xl + .dropdown-toggle-split,
|
||
|
.btn-group-xl > .btn + .dropdown-toggle-split {
|
||
|
padding: 0.92em;
|
||
|
}
|
||
|
|
||
|
.btn-sm + .dropdown-toggle-split,
|
||
|
.btn-group-sm > .btn + .dropdown-toggle-split,
|
||
|
.input-group-sm .btn + .dropdown-toggle-split {
|
||
|
padding: 0.8em;
|
||
|
}
|
||
|
|
||
|
.btn-xs + .dropdown-toggle-split,
|
||
|
.btn-group-xs > .btn + .dropdown-toggle-split {
|
||
|
padding: 0.7em;
|
||
|
}
|
||
|
|
||
|
// * Sizing
|
||
|
// *******************************************************************************
|
||
|
|
||
|
.btn-group-xs > .btn {
|
||
|
@extend .btn-xs;
|
||
|
}
|
||
|
|
||
|
.btn-group-xl > .btn {
|
||
|
@extend .btn-xl;
|
||
|
}
|
||
|
|
||
|
// Button groups border
|
||
|
|
||
|
.btn-group > .btn-group:first-child > .btn:not([class*='btn-outline-']):first-child,
|
||
|
.input-group > .btn:not([class*='btn-outline-']):first-child,
|
||
|
:not(.btn-group):not(.input-group) > .btn-group > .btn:not([class*='btn-outline-']):first-child,
|
||
|
.input-group > .btn-group:first-child > .btn:not([class*='btn-outline-']):first-child {
|
||
|
@include ltr-style {
|
||
|
border-left-color: transparent !important;
|
||
|
}
|
||
|
@include rtl-style {
|
||
|
border-right-color: transparent !important;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.btn-group > .btn-group:last-child > .btn:not([class*='btn-outline-']):last-of-type,
|
||
|
.input-group > .btn:not([class*='btn-outline-']):last-of-type,
|
||
|
:not(.btn-group):not(.input-group) > .btn-group > .btn:not([class*='btn-outline-']):last-of-type,
|
||
|
.input-group > .btn-group:last-child > .btn:not([class*='btn-outline-']):last-of-type {
|
||
|
@include ltr-style {
|
||
|
border-right-color: transparent !important;
|
||
|
}
|
||
|
@include rtl-style {
|
||
|
border-left-color: transparent !important;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.btn-group-vertical > .btn-group-vertical:first-child > .btn:not([class*='btn-outline-']):first-child,
|
||
|
:not(.btn-group-vertical):not(.input-group) > .btn-group-vertical > .btn:not([class*='btn-outline-']):first-child {
|
||
|
@include ltr-style {
|
||
|
border-top-color: transparent !important;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.btn-group-vertical > .btn-group-vertical:last-child > .btn:not([class*='btn-outline-']):last-child,
|
||
|
:not(.btn-group-vertical):not(.input-group) > .btn-group-vertical > .btn:not([class*='btn-outline-']):last-child {
|
||
|
@include ltr-style {
|
||
|
border-bottom-color: transparent !important;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.btn-group-vertical > .btn-group-vertical:first-child > .btn:not([class*='btn-outline-']):first-child,
|
||
|
:not(.btn-group-vertical):not(.input-group) > .btn-group-vertical > .btn:not([class*='btn-outline-']):first-child {
|
||
|
border-top-color: transparent !important;
|
||
|
}
|
||
|
|
||
|
.btn-group-vertical > .btn-group-vertical:last-child > .btn:not([class*='btn-outline-']):last-of-type,
|
||
|
:not(.btn-group-vertical):not(.input-group) > .btn-group-vertical > .btn:not([class*='btn-outline-']):last-of-type {
|
||
|
border-bottom-color: transparent !important;
|
||
|
}
|
||
|
|
||
|
// * RTL
|
||
|
// *******************************************************************************
|
||
|
|
||
|
@include rtl-only {
|
||
|
.btn-group .btn[class] {
|
||
|
@include border-radius($border-radius);
|
||
|
}
|
||
|
|
||
|
.btn-group .btn-xs[class],
|
||
|
.btn-group-xs .btn[class] {
|
||
|
@include border-radius($border-radius-xs);
|
||
|
}
|
||
|
|
||
|
.btn-group .btn-sm[class],
|
||
|
.btn-group-sm .btn[class] {
|
||
|
@include border-radius($border-radius-sm);
|
||
|
}
|
||
|
|
||
|
.btn-group .btn-lg[class],
|
||
|
.btn-group-lg .btn[class] {
|
||
|
@include border-radius($border-radius-lg);
|
||
|
}
|
||
|
|
||
|
.btn-group .btn-xl[class],
|
||
|
.btn-group-xl .btn[class] {
|
||
|
@include border-radius($border-radius-xl);
|
||
|
}
|
||
|
|
||
|
.btn-group {
|
||
|
// Prevent double borders when buttons are next to each other
|
||
|
> .btn:not(:first-child),
|
||
|
> .btn-group:not(:first-child) {
|
||
|
margin-left: 0;
|
||
|
margin-right: calc(#{$btn-border-width} * -1);
|
||
|
}
|
||
|
|
||
|
// Reset rounded corners
|
||
|
> .btn:not(:last-child):not(.dropdown-toggle),
|
||
|
> .btn-group:not(:last-child) > .btn {
|
||
|
@include border-start-radius(0);
|
||
|
}
|
||
|
|
||
|
// The left radius should be 0 if the button is:
|
||
|
// - the "third or more" child
|
||
|
// - the second child and the previous element isn't `.btn-check` (making it the first child visually)
|
||
|
// - part of a btn-group which isn't the first child
|
||
|
> .btn:nth-child(n + 3),
|
||
|
> :not(.btn-check) + .btn,
|
||
|
> .btn-group:not(:first-child) > .btn {
|
||
|
@include border-end-radius(0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.btn-group-vertical {
|
||
|
// Reset rounded corners
|
||
|
> .btn:not(:last-child):not(.dropdown-toggle),
|
||
|
> .btn-group:not(:last-child) > .btn {
|
||
|
@include border-bottom-radius(0);
|
||
|
}
|
||
|
|
||
|
> .btn ~ .btn,
|
||
|
> .btn-group:not(:first-child) > .btn {
|
||
|
@include border-top-radius(0);
|
||
|
}
|
||
|
}
|
||
|
}
|