@coreui/coreui 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +183 -0
- package/dist/css/coreui-grid.css +5004 -0
- package/dist/css/coreui-grid.css.map +1 -0
- package/dist/css/coreui-grid.min.css +8 -0
- package/dist/css/coreui-grid.min.css.map +1 -0
- package/dist/css/coreui-grid.rtl.css +5011 -0
- package/dist/css/coreui-grid.rtl.css.map +1 -0
- package/dist/css/coreui-grid.rtl.min.css +14 -0
- package/dist/css/coreui-grid.rtl.min.css.map +1 -0
- package/dist/css/coreui-reboot.css +440 -0
- package/dist/css/coreui-reboot.css.map +1 -0
- package/dist/css/coreui-reboot.min.css +8 -0
- package/dist/css/coreui-reboot.min.css.map +1 -0
- package/dist/css/coreui-reboot.rtl.css +441 -0
- package/dist/css/coreui-reboot.rtl.css.map +1 -0
- package/dist/css/coreui-reboot.rtl.min.css +14 -0
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -0
- package/dist/css/coreui-utilities.css +5030 -0
- package/dist/css/coreui-utilities.css.map +1 -0
- package/dist/css/coreui-utilities.min.css +8 -0
- package/dist/css/coreui-utilities.min.css.map +1 -0
- package/dist/css/coreui-utilities.rtl.css +5024 -0
- package/dist/css/coreui-utilities.rtl.css.map +1 -0
- package/dist/css/coreui-utilities.rtl.min.css +14 -0
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -0
- package/dist/css/coreui.css +12152 -0
- package/dist/css/coreui.css.map +1 -0
- package/dist/css/coreui.min.css +8 -0
- package/dist/css/coreui.min.css.map +1 -0
- package/dist/css/coreui.rtl.css +12041 -0
- package/dist/css/coreui.rtl.css.map +1 -0
- package/dist/css/coreui.rtl.min.css +14 -0
- package/dist/css/coreui.rtl.min.css.map +1 -0
- package/dist/js/coreui.bundle.js +7437 -0
- package/dist/js/coreui.bundle.js.map +1 -0
- package/dist/js/coreui.bundle.min.js +7 -0
- package/dist/js/coreui.bundle.min.js.map +1 -0
- package/dist/js/coreui.esm.js +5622 -0
- package/dist/js/coreui.esm.js.map +1 -0
- package/dist/js/coreui.esm.min.js +7 -0
- package/dist/js/coreui.esm.min.js.map +1 -0
- package/dist/js/coreui.js +5673 -0
- package/dist/js/coreui.js.map +1 -0
- package/dist/js/coreui.min.js +7 -0
- package/dist/js/coreui.min.js.map +1 -0
- package/js/dist/alert.js +208 -0
- package/js/dist/alert.js.map +1 -0
- package/js/dist/base-component.js +181 -0
- package/js/dist/base-component.js.map +1 -0
- package/js/dist/button.js +142 -0
- package/js/dist/button.js.map +1 -0
- package/js/dist/carousel.js +724 -0
- package/js/dist/carousel.js.map +1 -0
- package/js/dist/collapse.js +515 -0
- package/js/dist/collapse.js.map +1 -0
- package/js/dist/dom/data.js +72 -0
- package/js/dist/dom/data.js.map +1 -0
- package/js/dist/dom/event-handler.js +319 -0
- package/js/dist/dom/event-handler.js.map +1 -0
- package/js/dist/dom/manipulator.js +92 -0
- package/js/dist/dom/manipulator.js.map +1 -0
- package/js/dist/dom/selector-engine.js +89 -0
- package/js/dist/dom/selector-engine.js.map +1 -0
- package/js/dist/dropdown.js +700 -0
- package/js/dist/dropdown.js.map +1 -0
- package/js/dist/modal.js +891 -0
- package/js/dist/modal.js.map +1 -0
- package/js/dist/offcanvas.js +724 -0
- package/js/dist/offcanvas.js.map +1 -0
- package/js/dist/popover.js +220 -0
- package/js/dist/popover.js.map +1 -0
- package/js/dist/scrollspy.js +387 -0
- package/js/dist/scrollspy.js.map +1 -0
- package/js/dist/tab.js +317 -0
- package/js/dist/tab.js.map +1 -0
- package/js/dist/toast.js +331 -0
- package/js/dist/toast.js.map +1 -0
- package/js/dist/tooltip.js +997 -0
- package/js/dist/tooltip.js.map +1 -0
- package/js/src/alert.js +128 -0
- package/js/src/base-component.js +78 -0
- package/js/src/button.js +89 -0
- package/js/src/carousel.js +589 -0
- package/js/src/collapse.js +391 -0
- package/js/src/dom/data.js +60 -0
- package/js/src/dom/event-handler.js +352 -0
- package/js/src/dom/manipulator.js +83 -0
- package/js/src/dom/selector-engine.js +78 -0
- package/js/src/dropdown.js +517 -0
- package/js/src/modal.js +451 -0
- package/js/src/navigation.js +298 -0
- package/js/src/offcanvas.js +277 -0
- package/js/src/popover.js +173 -0
- package/js/src/scrollspy.js +298 -0
- package/js/src/sidebar.js +347 -0
- package/js/src/tab.js +227 -0
- package/js/src/toast.js +245 -0
- package/js/src/tooltip.js +750 -0
- package/js/src/util/backdrop.js +129 -0
- package/js/src/util/index.js +327 -0
- package/js/src/util/sanitizer.js +130 -0
- package/js/src/util/scrollbar.js +97 -0
- package/package.json +166 -0
- package/scss/_accordion.scss +118 -0
- package/scss/_alert.scss +52 -0
- package/scss/_avatar.scss +49 -0
- package/scss/_badge.scss +38 -0
- package/scss/_breadcrumb.scss +33 -0
- package/scss/_button-group.scss +139 -0
- package/scss/_buttons.scss +143 -0
- package/scss/_callout.scss +16 -0
- package/scss/_card.scss +215 -0
- package/scss/_carousel.scss +231 -0
- package/scss/_close.scss +40 -0
- package/scss/_containers.scss +41 -0
- package/scss/_dropdown.scss +227 -0
- package/scss/_footer.scss +25 -0
- package/scss/_forms.scss +9 -0
- package/scss/_functions.scss +356 -0
- package/scss/_grid.scss +56 -0
- package/scss/_header.scss +170 -0
- package/scss/_helpers.scss +7 -0
- package/scss/_icon.scss +32 -0
- package/scss/_images.scss +42 -0
- package/scss/_list-group.scss +169 -0
- package/scss/_mixins.scss +50 -0
- package/scss/_modal.scss +219 -0
- package/scss/_nav.scss +140 -0
- package/scss/_navbar.scss +254 -0
- package/scss/_offcanvas.scss +79 -0
- package/scss/_pagination.scss +64 -0
- package/scss/_popover.scss +158 -0
- package/scss/_progress.scss +91 -0
- package/scss/_reboot.scss +632 -0
- package/scss/_root.scss +25 -0
- package/scss/_sidebar.scss +3 -0
- package/scss/_spinners.scss +69 -0
- package/scss/_subheader.scss +72 -0
- package/scss/_tables.scss +166 -0
- package/scss/_toasts.scss +52 -0
- package/scss/_tooltip.scss +115 -0
- package/scss/_transitions.scss +21 -0
- package/scss/_type.scss +104 -0
- package/scss/_utilities.scss +678 -0
- package/scss/_variables.scss +1801 -0
- package/scss/coreui-grid.rtl.scss +12 -0
- package/scss/coreui-grid.scss +67 -0
- package/scss/coreui-reboot.rtl.scss +12 -0
- package/scss/coreui-reboot.scss +15 -0
- package/scss/coreui-utilities.rtl.scss +12 -0
- package/scss/coreui-utilities.scss +19 -0
- package/scss/coreui.rtl.scss +12 -0
- package/scss/coreui.scss +61 -0
- package/scss/forms/_floating-labels.scss +63 -0
- package/scss/forms/_form-check.scss +188 -0
- package/scss/forms/_form-control.scss +219 -0
- package/scss/forms/_form-range.scss +91 -0
- package/scss/forms/_form-select.scss +70 -0
- package/scss/forms/_form-text.scss +11 -0
- package/scss/forms/_input-group.scss +121 -0
- package/scss/forms/_labels.scss +36 -0
- package/scss/forms/_validation.scss +12 -0
- package/scss/helpers/_clearfix.scss +3 -0
- package/scss/helpers/_colored-links.scss +12 -0
- package/scss/helpers/_position.scss +30 -0
- package/scss/helpers/_ratio.scss +26 -0
- package/scss/helpers/_stretched-link.scss +15 -0
- package/scss/helpers/_text-truncation.scss +7 -0
- package/scss/helpers/_visually-hidden.scss +8 -0
- package/scss/mixins/_alert.scss +15 -0
- package/scss/mixins/_avatar.scss +10 -0
- package/scss/mixins/_border-radius.scss +78 -0
- package/scss/mixins/_box-shadow.scss +18 -0
- package/scss/mixins/_breakpoints.scss +140 -0
- package/scss/mixins/_buttons.scss +101 -0
- package/scss/mixins/_caret.scss +64 -0
- package/scss/mixins/_clearfix.scss +9 -0
- package/scss/mixins/_color-scheme.scss +7 -0
- package/scss/mixins/_container.scss +9 -0
- package/scss/mixins/_css-vars.scss +87 -0
- package/scss/mixins/_deprecate.scss +10 -0
- package/scss/mixins/_forms.scss +144 -0
- package/scss/mixins/_gradients.scss +47 -0
- package/scss/mixins/_grid.scss +132 -0
- package/scss/mixins/_icon.scss +6 -0
- package/scss/mixins/_image.scss +16 -0
- package/scss/mixins/_list-group.scss +18 -0
- package/scss/mixins/_lists.scss +7 -0
- package/scss/mixins/_ltr-rtl.scss +60 -0
- package/scss/mixins/_pagination.scss +31 -0
- package/scss/mixins/_reset-text.scss +17 -0
- package/scss/mixins/_resize.scss +6 -0
- package/scss/mixins/_table-variants.scss +16 -0
- package/scss/mixins/_text-truncate.scss +8 -0
- package/scss/mixins/_transition.scss +26 -0
- package/scss/mixins/_utilities.scss +104 -0
- package/scss/mixins/_visually-hidden.scss +29 -0
- package/scss/sidebar/_sidebar-narrow.scss +106 -0
- package/scss/sidebar/_sidebar-nav.scss +165 -0
- package/scss/sidebar/_sidebar.scss +261 -0
- package/scss/utilities/_api.scss +47 -0
- package/scss/vendor/_rfs.scss +354 -0
package/scss/_alert.scss
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Base styles
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
.alert {
|
|
6
|
+
position: relative;
|
|
7
|
+
padding: $alert-padding-y $alert-padding-x;
|
|
8
|
+
margin-bottom: $alert-margin-bottom;
|
|
9
|
+
color: var(--#{$variable-prefix}alert-color);
|
|
10
|
+
@include gradient-bg(var(--#{$variable-prefix}alert-bg));
|
|
11
|
+
border: $alert-border-width solid var(--#{$variable-prefix}alert-border-color, transparent);
|
|
12
|
+
@include border-radius($alert-border-radius);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Headings for larger alerts
|
|
16
|
+
.alert-heading {
|
|
17
|
+
// Specified to prevent conflicts of changing $headings-color
|
|
18
|
+
color: inherit;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Provide class for links that match alerts
|
|
22
|
+
.alert-link {
|
|
23
|
+
font-weight: $alert-link-font-weight;
|
|
24
|
+
color: var(--#{$variable-prefix}alert-link-color);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// Dismissible alerts
|
|
29
|
+
//
|
|
30
|
+
// Expand the right padding and account for the close button's positioning.
|
|
31
|
+
|
|
32
|
+
.alert-dismissible {
|
|
33
|
+
@include ltr-rtl("padding-right", $alert-dismissible-padding-r);
|
|
34
|
+
|
|
35
|
+
// Adjust close link position
|
|
36
|
+
.btn-close {
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 0;
|
|
39
|
+
@include ltr-rtl("right", 0);
|
|
40
|
+
z-index: $stretched-link-z-index + 1;
|
|
41
|
+
padding: $alert-padding-y * 1.25 $alert-padding-x;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
// scss-docs-start alert-modifiers
|
|
47
|
+
// Generate contextual modifier classes for colorizing the alert.
|
|
48
|
+
|
|
49
|
+
@each $state, $variant in $alert-variants {
|
|
50
|
+
@include alert-variant($state, $variant);
|
|
51
|
+
}
|
|
52
|
+
// scss-docs-end alert-modifiers
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
.avatar {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
vertical-align: middle;
|
|
7
|
+
@include border-radius(50em);
|
|
8
|
+
@include transition($avatar-transition);
|
|
9
|
+
@include avatar($avatar-width);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.avatar-img {
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: auto;
|
|
15
|
+
@include border-radius(50em);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.avatar-status {
|
|
19
|
+
position: absolute;
|
|
20
|
+
@include ltr-rtl("right", 0);
|
|
21
|
+
bottom: 0;
|
|
22
|
+
display: block;
|
|
23
|
+
border: 1px solid $white;
|
|
24
|
+
@include border-radius(50em);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@each $width, $value in $avatar-widths {
|
|
28
|
+
.avatar-#{$width} {
|
|
29
|
+
@include avatar($value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.avatars-stack {
|
|
34
|
+
display: flex;
|
|
35
|
+
|
|
36
|
+
.avatar {
|
|
37
|
+
@include ltr-rtl("margin-right", - ($avatar-width * .4));
|
|
38
|
+
|
|
39
|
+
&:hover {
|
|
40
|
+
@include ltr-rtl("margin-right", 0);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@each $width, $value in $avatar-widths {
|
|
45
|
+
.avatar-#{$width} {
|
|
46
|
+
@include ltr-rtl("margin-right", - ($value * .4));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
package/scss/_badge.scss
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Base class
|
|
2
|
+
//
|
|
3
|
+
// Requires one of the contextual, color modifier classes for `color` and
|
|
4
|
+
// `background-color`.
|
|
5
|
+
|
|
6
|
+
.badge {
|
|
7
|
+
display: inline-block;
|
|
8
|
+
padding: $badge-padding-y $badge-padding-x;
|
|
9
|
+
@include font-size($badge-font-size);
|
|
10
|
+
font-weight: $badge-font-weight;
|
|
11
|
+
line-height: 1;
|
|
12
|
+
color: var(--#{$variable-prefix}badge-color, $badge-color);
|
|
13
|
+
text-align: center;
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
vertical-align: text-bottom;
|
|
16
|
+
@include border-radius($badge-border-radius);
|
|
17
|
+
@include gradient-bg();
|
|
18
|
+
|
|
19
|
+
// Empty badges collapse automatically
|
|
20
|
+
&:empty {
|
|
21
|
+
display: none;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Quick fix for badges in buttons
|
|
26
|
+
.btn .badge {
|
|
27
|
+
position: relative;
|
|
28
|
+
top: -1px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//
|
|
32
|
+
// Badge Sizes
|
|
33
|
+
//
|
|
34
|
+
|
|
35
|
+
.badge-sm {
|
|
36
|
+
padding: $badge-padding-y-sm $badge-padding-x-sm;
|
|
37
|
+
@include font-size($badge-font-size-sm);
|
|
38
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.breadcrumb {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-wrap: wrap;
|
|
4
|
+
padding: $breadcrumb-padding-y $breadcrumb-padding-x;
|
|
5
|
+
margin-bottom: $breadcrumb-margin-bottom;
|
|
6
|
+
@include font-size($breadcrumb-font-size);
|
|
7
|
+
list-style: none;
|
|
8
|
+
background-color: var(--#{$variable-prefix}breadcrumb-bg, $breadcrumb-bg);
|
|
9
|
+
@include border-radius($breadcrumb-border-radius);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.breadcrumb-item {
|
|
13
|
+
// The separator between breadcrumbs (by default, a forward-slash: "/")
|
|
14
|
+
+ .breadcrumb-item {
|
|
15
|
+
@include ltr-rtl("padding-left", $breadcrumb-item-padding-x);
|
|
16
|
+
|
|
17
|
+
&::before {
|
|
18
|
+
@include ltr-rtl("float", left); // Suppress inline spacings and underlining of the separator
|
|
19
|
+
@include ltr-rtl("padding-right", $breadcrumb-item-padding-x);
|
|
20
|
+
color: var(--#{$variable-prefix}breadcrumb-divider-color, $breadcrumb-divider-color);
|
|
21
|
+
@include ltr-rtl(
|
|
22
|
+
"content",
|
|
23
|
+
var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)),
|
|
24
|
+
null,
|
|
25
|
+
var(--#{$variable-prefix}breadcrumb-divider-flipped, escape-svg($breadcrumb-divider-flipped))
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.active {
|
|
31
|
+
color: var(--#{$variable-prefix}breadcrumb-active-color, $breadcrumb-active-color);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// Make the div behave like a button
|
|
2
|
+
.btn-group,
|
|
3
|
+
.btn-group-vertical {
|
|
4
|
+
position: relative;
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
vertical-align: middle; // match .btn alignment given font-size hack above
|
|
7
|
+
|
|
8
|
+
> .btn {
|
|
9
|
+
position: relative;
|
|
10
|
+
flex: 1 1 auto;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Bring the hover, focused, and "active" buttons to the front to overlay
|
|
14
|
+
// the borders properly
|
|
15
|
+
> .btn-check:checked + .btn,
|
|
16
|
+
> .btn-check:focus + .btn,
|
|
17
|
+
> .btn:hover,
|
|
18
|
+
> .btn:focus,
|
|
19
|
+
> .btn:active,
|
|
20
|
+
> .btn.active {
|
|
21
|
+
z-index: 1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Optional: Group multiple button groups together for a toolbar
|
|
26
|
+
.btn-toolbar {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-wrap: wrap;
|
|
29
|
+
justify-content: flex-start;
|
|
30
|
+
|
|
31
|
+
.input-group {
|
|
32
|
+
width: auto;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.btn-group {
|
|
37
|
+
// Prevent double borders when buttons are next to each other
|
|
38
|
+
> .btn:not(:first-child),
|
|
39
|
+
> .btn-group:not(:first-child) {
|
|
40
|
+
@include ltr-rtl("margin-left", -$btn-border-width);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Reset rounded corners
|
|
44
|
+
> .btn:not(:last-child):not(.dropdown-toggle),
|
|
45
|
+
> .btn-group:not(:last-child) > .btn {
|
|
46
|
+
@include border-end-radius(0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// The left radius should be 0 if the button is:
|
|
50
|
+
// - the "third or more" child
|
|
51
|
+
// - the second child and the previous element isn't `.btn-check` (making it the first child visually)
|
|
52
|
+
// - part of a btn-group which isn't the first child
|
|
53
|
+
> .btn:nth-child(n + 3),
|
|
54
|
+
> :not(.btn-check) + .btn,
|
|
55
|
+
> .btn-group:not(:first-child) > .btn {
|
|
56
|
+
@include border-start-radius(0);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Sizing
|
|
61
|
+
//
|
|
62
|
+
// Remix the default button sizing classes into new ones for easier manipulation.
|
|
63
|
+
|
|
64
|
+
.btn-group-sm > .btn { @extend .btn-sm; }
|
|
65
|
+
.btn-group-lg > .btn { @extend .btn-lg; }
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
//
|
|
69
|
+
// Split button dropdowns
|
|
70
|
+
//
|
|
71
|
+
|
|
72
|
+
.dropdown-toggle-split {
|
|
73
|
+
padding-right: $btn-padding-x * .75;
|
|
74
|
+
padding-left: $btn-padding-x * .75;
|
|
75
|
+
|
|
76
|
+
&::after,
|
|
77
|
+
.dropup &::after,
|
|
78
|
+
.dropend &::after {
|
|
79
|
+
@include ltr-rtl("margin-left", 0);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.dropstart &::before {
|
|
83
|
+
@include ltr-rtl("margin-right", 0);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.btn-sm + .dropdown-toggle-split {
|
|
88
|
+
padding-right: $btn-padding-x-sm * .75;
|
|
89
|
+
padding-left: $btn-padding-x-sm * .75;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.btn-lg + .dropdown-toggle-split {
|
|
93
|
+
padding-right: $btn-padding-x-lg * .75;
|
|
94
|
+
padding-left: $btn-padding-x-lg * .75;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
// The clickable button for toggling the menu
|
|
99
|
+
// Set the same inset shadow as the :active state
|
|
100
|
+
.btn-group.show .dropdown-toggle {
|
|
101
|
+
@include box-shadow($btn-active-box-shadow);
|
|
102
|
+
|
|
103
|
+
// Show no shadow for `.btn-link` since it has no other button styles.
|
|
104
|
+
&.btn-link {
|
|
105
|
+
@include box-shadow(none);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
//
|
|
111
|
+
// Vertical button groups
|
|
112
|
+
//
|
|
113
|
+
|
|
114
|
+
.btn-group-vertical {
|
|
115
|
+
flex-direction: column;
|
|
116
|
+
align-items: flex-start;
|
|
117
|
+
justify-content: center;
|
|
118
|
+
|
|
119
|
+
> .btn,
|
|
120
|
+
> .btn-group {
|
|
121
|
+
width: 100%;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
> .btn:not(:first-child),
|
|
125
|
+
> .btn-group:not(:first-child) {
|
|
126
|
+
margin-top: -$btn-border-width;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Reset rounded corners
|
|
130
|
+
> .btn:not(:last-child):not(.dropdown-toggle),
|
|
131
|
+
> .btn-group:not(:last-child) > .btn {
|
|
132
|
+
@include border-bottom-radius(0);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
> .btn ~ .btn,
|
|
136
|
+
> .btn-group:not(:first-child) > .btn {
|
|
137
|
+
@include border-top-radius(0);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Base styles
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
.btn {
|
|
6
|
+
display: inline-block;
|
|
7
|
+
font-family: $btn-font-family;
|
|
8
|
+
font-weight: $btn-font-weight;
|
|
9
|
+
line-height: $btn-line-height;
|
|
10
|
+
color: var(--#{$variable-prefix}btn-color, $body-color);
|
|
11
|
+
text-align: center;
|
|
12
|
+
text-decoration: if($link-decoration == none, null, none);
|
|
13
|
+
white-space: $btn-white-space;
|
|
14
|
+
vertical-align: middle;
|
|
15
|
+
cursor: if($enable-button-pointers, pointer, null);
|
|
16
|
+
user-select: none;
|
|
17
|
+
@include gradient-bg(var(--#{$variable-prefix}btn-bg, transparent));
|
|
18
|
+
border: $btn-border-width solid var(--#{$variable-prefix}btn-border-color, transparent);
|
|
19
|
+
@include box-shadow(var(--#{$variable-prefix}btn-box-shadow, $btn-box-shadow));
|
|
20
|
+
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
|
|
21
|
+
@include transition($btn-transition);
|
|
22
|
+
|
|
23
|
+
&:hover {
|
|
24
|
+
color: var(--#{$variable-prefix}btn-hover-color, $body-color);
|
|
25
|
+
@include gradient-bg(var(--#{$variable-prefix}btn-hover-bg));
|
|
26
|
+
text-decoration: if($link-hover-decoration == underline, none, null);
|
|
27
|
+
border-color: var(--#{$variable-prefix}btn-hover-border-color, transparent);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.btn-check:focus + &,
|
|
31
|
+
&:focus {
|
|
32
|
+
color: var(--#{$variable-prefix}btn-hover-color);
|
|
33
|
+
@include gradient-bg(var(--#{$variable-prefix}btn-hover-bg));
|
|
34
|
+
border-color: var(--#{$variable-prefix}btn-hover-border-color, transparent);
|
|
35
|
+
outline: 0;
|
|
36
|
+
@if $enable-shadows {
|
|
37
|
+
@include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow));
|
|
38
|
+
} @else {
|
|
39
|
+
// Avoid using mixin so we can pass custom focus shadow properly
|
|
40
|
+
box-shadow: 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.btn-check:checked + &,
|
|
45
|
+
.btn-check:active + &,
|
|
46
|
+
&:active,
|
|
47
|
+
&.active,
|
|
48
|
+
.show > &.dropdown-toggle {
|
|
49
|
+
color: var(--#{$variable-prefix}btn-active-color);
|
|
50
|
+
background-color: var(--#{$variable-prefix}btn-active-bg);
|
|
51
|
+
// Remove CSS gradients if they're enabled
|
|
52
|
+
background-image: if($enable-gradients, none, null);
|
|
53
|
+
border-color: var(--#{$variable-prefix}btn-active-border-color, transparent);
|
|
54
|
+
@include box-shadow($btn-active-box-shadow);
|
|
55
|
+
|
|
56
|
+
&:focus {
|
|
57
|
+
@if $enable-shadows {
|
|
58
|
+
@include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow));
|
|
59
|
+
} @else {
|
|
60
|
+
// Avoid using mixin so we can pass custom focus shadow properly
|
|
61
|
+
box-shadow: 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&:disabled,
|
|
67
|
+
&.disabled,
|
|
68
|
+
fieldset:disabled & {
|
|
69
|
+
color: var(--#{$variable-prefix}btn-disabled-color);
|
|
70
|
+
pointer-events: none;
|
|
71
|
+
background-color: var(--#{$variable-prefix}btn-disabled-bg);
|
|
72
|
+
// Remove CSS gradients if they're enabled
|
|
73
|
+
background-image: if($enable-gradients, none, null);
|
|
74
|
+
border-color: var(--#{$variable-prefix}btn-disabled-border-color, transparent);
|
|
75
|
+
opacity: $btn-disabled-opacity;
|
|
76
|
+
@include box-shadow(none);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
//
|
|
82
|
+
// Alternate buttons
|
|
83
|
+
//
|
|
84
|
+
// scss-docs-start btn-variant-loops
|
|
85
|
+
// scss-docs-start button-modifiers
|
|
86
|
+
@each $state, $variant in $button-variants {
|
|
87
|
+
@include button-variant($state, $variant);
|
|
88
|
+
}
|
|
89
|
+
// scss-docs-end button-modifiers
|
|
90
|
+
|
|
91
|
+
// scss-docs-start button-outline-modifiers
|
|
92
|
+
@each $state, $variant in $button-outline-ghost-variants {
|
|
93
|
+
@include button-outline-variant($state, $variant);
|
|
94
|
+
}
|
|
95
|
+
// scss-docs-end button-outline-modifiers
|
|
96
|
+
|
|
97
|
+
// scss-docs-start button-ghost-modifiers
|
|
98
|
+
@each $state, $variant in $button-outline-ghost-variants {
|
|
99
|
+
@include button-ghost-variant($state, $variant);
|
|
100
|
+
}
|
|
101
|
+
// scss-docs-end button-ghost-modifiers
|
|
102
|
+
// scss-docs-end btn-variant-loops
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
//
|
|
106
|
+
// Link buttons
|
|
107
|
+
//
|
|
108
|
+
|
|
109
|
+
// Make a button look and behave like a link
|
|
110
|
+
.btn-link {
|
|
111
|
+
font-weight: $font-weight-normal;
|
|
112
|
+
color: var(--#{$variable-prefix}btn-link-color, $btn-link-color);
|
|
113
|
+
text-decoration: $link-decoration;
|
|
114
|
+
|
|
115
|
+
&:hover {
|
|
116
|
+
color: var(--#{$variable-prefix}btn-link-hover-color, $btn-link-hover-color);
|
|
117
|
+
text-decoration: $link-hover-decoration;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
&:focus {
|
|
121
|
+
text-decoration: $link-hover-decoration;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
&:disabled,
|
|
125
|
+
&.disabled {
|
|
126
|
+
color: var(--#{$variable-prefix}btn-link-disabled-color, $btn-link-disabled-color);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// No need for an active state here
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
//
|
|
134
|
+
// Button Sizes
|
|
135
|
+
//
|
|
136
|
+
|
|
137
|
+
.btn-lg {
|
|
138
|
+
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.btn-sm {
|
|
142
|
+
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
|
|
143
|
+
}
|