@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.
Files changed (203) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +183 -0
  3. package/dist/css/coreui-grid.css +5004 -0
  4. package/dist/css/coreui-grid.css.map +1 -0
  5. package/dist/css/coreui-grid.min.css +8 -0
  6. package/dist/css/coreui-grid.min.css.map +1 -0
  7. package/dist/css/coreui-grid.rtl.css +5011 -0
  8. package/dist/css/coreui-grid.rtl.css.map +1 -0
  9. package/dist/css/coreui-grid.rtl.min.css +14 -0
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -0
  11. package/dist/css/coreui-reboot.css +440 -0
  12. package/dist/css/coreui-reboot.css.map +1 -0
  13. package/dist/css/coreui-reboot.min.css +8 -0
  14. package/dist/css/coreui-reboot.min.css.map +1 -0
  15. package/dist/css/coreui-reboot.rtl.css +441 -0
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -0
  17. package/dist/css/coreui-reboot.rtl.min.css +14 -0
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -0
  19. package/dist/css/coreui-utilities.css +5030 -0
  20. package/dist/css/coreui-utilities.css.map +1 -0
  21. package/dist/css/coreui-utilities.min.css +8 -0
  22. package/dist/css/coreui-utilities.min.css.map +1 -0
  23. package/dist/css/coreui-utilities.rtl.css +5024 -0
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -0
  25. package/dist/css/coreui-utilities.rtl.min.css +14 -0
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -0
  27. package/dist/css/coreui.css +12152 -0
  28. package/dist/css/coreui.css.map +1 -0
  29. package/dist/css/coreui.min.css +8 -0
  30. package/dist/css/coreui.min.css.map +1 -0
  31. package/dist/css/coreui.rtl.css +12041 -0
  32. package/dist/css/coreui.rtl.css.map +1 -0
  33. package/dist/css/coreui.rtl.min.css +14 -0
  34. package/dist/css/coreui.rtl.min.css.map +1 -0
  35. package/dist/js/coreui.bundle.js +7437 -0
  36. package/dist/js/coreui.bundle.js.map +1 -0
  37. package/dist/js/coreui.bundle.min.js +7 -0
  38. package/dist/js/coreui.bundle.min.js.map +1 -0
  39. package/dist/js/coreui.esm.js +5622 -0
  40. package/dist/js/coreui.esm.js.map +1 -0
  41. package/dist/js/coreui.esm.min.js +7 -0
  42. package/dist/js/coreui.esm.min.js.map +1 -0
  43. package/dist/js/coreui.js +5673 -0
  44. package/dist/js/coreui.js.map +1 -0
  45. package/dist/js/coreui.min.js +7 -0
  46. package/dist/js/coreui.min.js.map +1 -0
  47. package/js/dist/alert.js +208 -0
  48. package/js/dist/alert.js.map +1 -0
  49. package/js/dist/base-component.js +181 -0
  50. package/js/dist/base-component.js.map +1 -0
  51. package/js/dist/button.js +142 -0
  52. package/js/dist/button.js.map +1 -0
  53. package/js/dist/carousel.js +724 -0
  54. package/js/dist/carousel.js.map +1 -0
  55. package/js/dist/collapse.js +515 -0
  56. package/js/dist/collapse.js.map +1 -0
  57. package/js/dist/dom/data.js +72 -0
  58. package/js/dist/dom/data.js.map +1 -0
  59. package/js/dist/dom/event-handler.js +319 -0
  60. package/js/dist/dom/event-handler.js.map +1 -0
  61. package/js/dist/dom/manipulator.js +92 -0
  62. package/js/dist/dom/manipulator.js.map +1 -0
  63. package/js/dist/dom/selector-engine.js +89 -0
  64. package/js/dist/dom/selector-engine.js.map +1 -0
  65. package/js/dist/dropdown.js +700 -0
  66. package/js/dist/dropdown.js.map +1 -0
  67. package/js/dist/modal.js +891 -0
  68. package/js/dist/modal.js.map +1 -0
  69. package/js/dist/offcanvas.js +724 -0
  70. package/js/dist/offcanvas.js.map +1 -0
  71. package/js/dist/popover.js +220 -0
  72. package/js/dist/popover.js.map +1 -0
  73. package/js/dist/scrollspy.js +387 -0
  74. package/js/dist/scrollspy.js.map +1 -0
  75. package/js/dist/tab.js +317 -0
  76. package/js/dist/tab.js.map +1 -0
  77. package/js/dist/toast.js +331 -0
  78. package/js/dist/toast.js.map +1 -0
  79. package/js/dist/tooltip.js +997 -0
  80. package/js/dist/tooltip.js.map +1 -0
  81. package/js/src/alert.js +128 -0
  82. package/js/src/base-component.js +78 -0
  83. package/js/src/button.js +89 -0
  84. package/js/src/carousel.js +589 -0
  85. package/js/src/collapse.js +391 -0
  86. package/js/src/dom/data.js +60 -0
  87. package/js/src/dom/event-handler.js +352 -0
  88. package/js/src/dom/manipulator.js +83 -0
  89. package/js/src/dom/selector-engine.js +78 -0
  90. package/js/src/dropdown.js +517 -0
  91. package/js/src/modal.js +451 -0
  92. package/js/src/navigation.js +298 -0
  93. package/js/src/offcanvas.js +277 -0
  94. package/js/src/popover.js +173 -0
  95. package/js/src/scrollspy.js +298 -0
  96. package/js/src/sidebar.js +347 -0
  97. package/js/src/tab.js +227 -0
  98. package/js/src/toast.js +245 -0
  99. package/js/src/tooltip.js +750 -0
  100. package/js/src/util/backdrop.js +129 -0
  101. package/js/src/util/index.js +327 -0
  102. package/js/src/util/sanitizer.js +130 -0
  103. package/js/src/util/scrollbar.js +97 -0
  104. package/package.json +166 -0
  105. package/scss/_accordion.scss +118 -0
  106. package/scss/_alert.scss +52 -0
  107. package/scss/_avatar.scss +49 -0
  108. package/scss/_badge.scss +38 -0
  109. package/scss/_breadcrumb.scss +33 -0
  110. package/scss/_button-group.scss +139 -0
  111. package/scss/_buttons.scss +143 -0
  112. package/scss/_callout.scss +16 -0
  113. package/scss/_card.scss +215 -0
  114. package/scss/_carousel.scss +231 -0
  115. package/scss/_close.scss +40 -0
  116. package/scss/_containers.scss +41 -0
  117. package/scss/_dropdown.scss +227 -0
  118. package/scss/_footer.scss +25 -0
  119. package/scss/_forms.scss +9 -0
  120. package/scss/_functions.scss +356 -0
  121. package/scss/_grid.scss +56 -0
  122. package/scss/_header.scss +170 -0
  123. package/scss/_helpers.scss +7 -0
  124. package/scss/_icon.scss +32 -0
  125. package/scss/_images.scss +42 -0
  126. package/scss/_list-group.scss +169 -0
  127. package/scss/_mixins.scss +50 -0
  128. package/scss/_modal.scss +219 -0
  129. package/scss/_nav.scss +140 -0
  130. package/scss/_navbar.scss +254 -0
  131. package/scss/_offcanvas.scss +79 -0
  132. package/scss/_pagination.scss +64 -0
  133. package/scss/_popover.scss +158 -0
  134. package/scss/_progress.scss +91 -0
  135. package/scss/_reboot.scss +632 -0
  136. package/scss/_root.scss +25 -0
  137. package/scss/_sidebar.scss +3 -0
  138. package/scss/_spinners.scss +69 -0
  139. package/scss/_subheader.scss +72 -0
  140. package/scss/_tables.scss +166 -0
  141. package/scss/_toasts.scss +52 -0
  142. package/scss/_tooltip.scss +115 -0
  143. package/scss/_transitions.scss +21 -0
  144. package/scss/_type.scss +104 -0
  145. package/scss/_utilities.scss +678 -0
  146. package/scss/_variables.scss +1801 -0
  147. package/scss/coreui-grid.rtl.scss +12 -0
  148. package/scss/coreui-grid.scss +67 -0
  149. package/scss/coreui-reboot.rtl.scss +12 -0
  150. package/scss/coreui-reboot.scss +15 -0
  151. package/scss/coreui-utilities.rtl.scss +12 -0
  152. package/scss/coreui-utilities.scss +19 -0
  153. package/scss/coreui.rtl.scss +12 -0
  154. package/scss/coreui.scss +61 -0
  155. package/scss/forms/_floating-labels.scss +63 -0
  156. package/scss/forms/_form-check.scss +188 -0
  157. package/scss/forms/_form-control.scss +219 -0
  158. package/scss/forms/_form-range.scss +91 -0
  159. package/scss/forms/_form-select.scss +70 -0
  160. package/scss/forms/_form-text.scss +11 -0
  161. package/scss/forms/_input-group.scss +121 -0
  162. package/scss/forms/_labels.scss +36 -0
  163. package/scss/forms/_validation.scss +12 -0
  164. package/scss/helpers/_clearfix.scss +3 -0
  165. package/scss/helpers/_colored-links.scss +12 -0
  166. package/scss/helpers/_position.scss +30 -0
  167. package/scss/helpers/_ratio.scss +26 -0
  168. package/scss/helpers/_stretched-link.scss +15 -0
  169. package/scss/helpers/_text-truncation.scss +7 -0
  170. package/scss/helpers/_visually-hidden.scss +8 -0
  171. package/scss/mixins/_alert.scss +15 -0
  172. package/scss/mixins/_avatar.scss +10 -0
  173. package/scss/mixins/_border-radius.scss +78 -0
  174. package/scss/mixins/_box-shadow.scss +18 -0
  175. package/scss/mixins/_breakpoints.scss +140 -0
  176. package/scss/mixins/_buttons.scss +101 -0
  177. package/scss/mixins/_caret.scss +64 -0
  178. package/scss/mixins/_clearfix.scss +9 -0
  179. package/scss/mixins/_color-scheme.scss +7 -0
  180. package/scss/mixins/_container.scss +9 -0
  181. package/scss/mixins/_css-vars.scss +87 -0
  182. package/scss/mixins/_deprecate.scss +10 -0
  183. package/scss/mixins/_forms.scss +144 -0
  184. package/scss/mixins/_gradients.scss +47 -0
  185. package/scss/mixins/_grid.scss +132 -0
  186. package/scss/mixins/_icon.scss +6 -0
  187. package/scss/mixins/_image.scss +16 -0
  188. package/scss/mixins/_list-group.scss +18 -0
  189. package/scss/mixins/_lists.scss +7 -0
  190. package/scss/mixins/_ltr-rtl.scss +60 -0
  191. package/scss/mixins/_pagination.scss +31 -0
  192. package/scss/mixins/_reset-text.scss +17 -0
  193. package/scss/mixins/_resize.scss +6 -0
  194. package/scss/mixins/_table-variants.scss +16 -0
  195. package/scss/mixins/_text-truncate.scss +8 -0
  196. package/scss/mixins/_transition.scss +26 -0
  197. package/scss/mixins/_utilities.scss +104 -0
  198. package/scss/mixins/_visually-hidden.scss +29 -0
  199. package/scss/sidebar/_sidebar-narrow.scss +106 -0
  200. package/scss/sidebar/_sidebar-nav.scss +165 -0
  201. package/scss/sidebar/_sidebar.scss +261 -0
  202. package/scss/utilities/_api.scss +47 -0
  203. package/scss/vendor/_rfs.scss +354 -0
@@ -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
+ }
@@ -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
+ }