@coreui/coreui 4.1.6 → 4.2.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 +2 -2
  2. package/README.md +62 -10
  3. package/dist/css/coreui-grid.css +22 -4
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +2 -2
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +23 -5
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +3 -3
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +34 -41
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +2 -2
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +34 -42
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +3 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +278 -163
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +2 -2
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +273 -164
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +2177 -1240
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +2 -2
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +2159 -1228
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +3 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +2095 -1906
  36. package/dist/js/coreui.bundle.js.map +1 -1
  37. package/dist/js/coreui.bundle.min.js +2 -2
  38. package/dist/js/coreui.bundle.min.js.map +1 -1
  39. package/dist/js/coreui.esm.js +2098 -1909
  40. package/dist/js/coreui.esm.js.map +1 -1
  41. package/dist/js/coreui.esm.min.js +2 -2
  42. package/dist/js/coreui.esm.min.js.map +1 -1
  43. package/dist/js/coreui.js +2099 -1910
  44. package/dist/js/coreui.js.map +1 -1
  45. package/dist/js/coreui.min.js +2 -2
  46. package/dist/js/coreui.min.js.map +1 -1
  47. package/js/dist/alert.js +10 -148
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +36 -122
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +9 -76
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +212 -507
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +64 -251
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +2 -4
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +82 -133
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +22 -26
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +16 -81
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +99 -338
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +106 -774
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +309 -0
  70. package/js/dist/navigation.js.map +1 -0
  71. package/js/dist/offcanvas.js +88 -680
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +35 -120
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +178 -264
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +347 -0
  78. package/js/dist/sidebar.js.map +1 -0
  79. package/js/dist/tab.js +226 -216
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +27 -216
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +271 -618
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +166 -0
  86. package/js/dist/util/backdrop.js.map +1 -0
  87. package/js/dist/util/component-functions.js +47 -0
  88. package/js/dist/util/component-functions.js.map +1 -0
  89. package/js/dist/util/config.js +80 -0
  90. package/js/dist/util/config.js.map +1 -0
  91. package/js/dist/util/focustrap.js +130 -0
  92. package/js/dist/util/focustrap.js.map +1 -0
  93. package/js/dist/util/index.js +354 -0
  94. package/js/dist/util/index.js.map +1 -0
  95. package/js/dist/util/sanitizer.js +126 -0
  96. package/js/dist/util/sanitizer.js.map +1 -0
  97. package/js/dist/util/scrollbar.js +139 -0
  98. package/js/dist/util/scrollbar.js.map +1 -0
  99. package/js/dist/util/swipe.js +156 -0
  100. package/js/dist/util/swipe.js.map +1 -0
  101. package/js/dist/util/template-factory.js +178 -0
  102. package/js/dist/util/template-factory.js.map +1 -0
  103. package/js/src/alert.js +3 -15
  104. package/js/src/base-component.js +28 -18
  105. package/js/src/button.js +3 -15
  106. package/js/src/carousel.js +203 -320
  107. package/js/src/collapse.js +61 -94
  108. package/js/src/dom/data.js +1 -3
  109. package/js/src/dom/event-handler.js +74 -107
  110. package/js/src/dom/manipulator.js +22 -31
  111. package/js/src/dom/selector-engine.js +10 -19
  112. package/js/src/dropdown.js +84 -138
  113. package/js/src/modal.js +94 -158
  114. package/js/src/navigation.js +12 -13
  115. package/js/src/offcanvas.js +71 -60
  116. package/js/src/popover.js +31 -62
  117. package/js/src/scrollspy.js +166 -171
  118. package/js/src/sidebar.js +5 -8
  119. package/js/src/tab.js +201 -110
  120. package/js/src/toast.js +19 -41
  121. package/js/src/tooltip.js +264 -374
  122. package/js/src/util/backdrop.js +55 -36
  123. package/js/src/util/component-functions.js +1 -1
  124. package/js/src/util/config.js +66 -0
  125. package/js/src/util/focustrap.js +38 -28
  126. package/js/src/util/index.js +41 -57
  127. package/js/src/util/sanitizer.js +9 -17
  128. package/js/src/util/scrollbar.js +47 -30
  129. package/js/src/util/swipe.js +146 -0
  130. package/js/src/util/template-factory.js +160 -0
  131. package/package.json +37 -37
  132. package/scss/_accordion.scss +53 -25
  133. package/scss/_alert.scss +29 -9
  134. package/scss/_badge.scss +15 -6
  135. package/scss/_breadcrumb.scss +23 -11
  136. package/scss/_button-group.scss +3 -0
  137. package/scss/_buttons.scss +77 -50
  138. package/scss/_callout.scss +18 -6
  139. package/scss/_card.scss +55 -37
  140. package/scss/_carousel.scss +6 -6
  141. package/scss/_close.scss +4 -4
  142. package/scss/_containers.scss +1 -1
  143. package/scss/_dropdown.scss +86 -64
  144. package/scss/_footer.scss +15 -5
  145. package/scss/_functions.scss +11 -24
  146. package/scss/_grid.scss +3 -3
  147. package/scss/_header.scss +59 -34
  148. package/scss/_helpers.scss +1 -0
  149. package/scss/_images.scss +3 -3
  150. package/scss/_list-group.scss +47 -29
  151. package/scss/_maps.scss +54 -0
  152. package/scss/_modal.scss +70 -43
  153. package/scss/_nav.scss +53 -20
  154. package/scss/_navbar.scss +84 -94
  155. package/scss/_offcanvas.scss +120 -60
  156. package/scss/_pagination.scss +66 -21
  157. package/scss/_popover.scss +90 -52
  158. package/scss/_progress.scss +20 -9
  159. package/scss/_reboot.scss +31 -58
  160. package/scss/_root.scss +41 -19
  161. package/scss/_spinners.scss +37 -21
  162. package/scss/_subheader.scss +9 -9
  163. package/scss/_tables.scss +34 -36
  164. package/scss/_toasts.scss +35 -19
  165. package/scss/_tooltip.scss +61 -56
  166. package/scss/_utilities.scss +42 -25
  167. package/scss/_variables.scss +169 -148
  168. package/scss/coreui-grid.rtl.scss +1 -1
  169. package/scss/coreui-grid.scss +2 -1
  170. package/scss/coreui-reboot.rtl.scss +1 -1
  171. package/scss/coreui-reboot.scss +1 -1
  172. package/scss/coreui-utilities.rtl.scss +1 -1
  173. package/scss/coreui-utilities.scss +2 -1
  174. package/scss/coreui.rtl.scss +1 -1
  175. package/scss/coreui.scss +2 -1
  176. package/scss/forms/_floating-labels.scss +14 -3
  177. package/scss/forms/_form-check.scss +41 -18
  178. package/scss/forms/_form-control.scss +25 -50
  179. package/scss/forms/_form-range.scss +8 -8
  180. package/scss/forms/_form-select.scss +8 -8
  181. package/scss/forms/_form-text.scss +1 -1
  182. package/scss/forms/_input-group.scss +3 -3
  183. package/scss/forms/_labels.scss +2 -2
  184. package/scss/helpers/_color-bg.scss +10 -0
  185. package/scss/helpers/_colored-links.scss +2 -2
  186. package/scss/helpers/_position.scss +7 -1
  187. package/scss/helpers/_ratio.scss +2 -2
  188. package/scss/helpers/_vr.scss +1 -0
  189. package/scss/mixins/_alert.scss +10 -10
  190. package/scss/mixins/_breakpoints.scss +8 -8
  191. package/scss/mixins/_buttons.scss +45 -47
  192. package/scss/mixins/_container.scss +4 -2
  193. package/scss/mixins/_css-vars.scss +47 -47
  194. package/scss/mixins/_forms.scss +8 -0
  195. package/scss/mixins/_gradients.scss +1 -1
  196. package/scss/mixins/_grid.scss +11 -11
  197. package/scss/mixins/_list-group.scss +7 -9
  198. package/scss/mixins/_pagination.scss +4 -25
  199. package/scss/mixins/_table-variants.scss +20 -12
  200. package/scss/mixins/_utilities.scss +8 -3
  201. package/scss/sidebar/_sidebar-narrow.scss +10 -10
  202. package/scss/sidebar/_sidebar-nav.scss +37 -32
  203. package/scss/sidebar/_sidebar.scss +110 -56
@@ -2,43 +2,70 @@
2
2
  // Base styles
3
3
  //
4
4
 
5
+ .accordion {
6
+ // scss-docs-start accordion-css-vars
7
+ --#{$prefix}accordion-color: #{color-contrast($accordion-bg)};
8
+ --#{$prefix}accordion-bg: #{$accordion-bg};
9
+ --#{$prefix}accordion-transition: #{$accordion-transition};
10
+ --#{$prefix}accordion-border-color: #{$accordion-border-color};
11
+ --#{$prefix}accordion-border-width: #{$accordion-border-width};
12
+ --#{$prefix}accordion-border-radius: #{$accordion-border-radius};
13
+ --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
14
+ --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
15
+ --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
16
+ --#{$prefix}accordion-btn-color: #{$accordion-color};
17
+ --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
18
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
19
+ --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
20
+ --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
21
+ --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
22
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
23
+ --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
24
+ --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
25
+ --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
26
+ --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
27
+ --#{$prefix}accordion-active-color: #{$accordion-button-active-color};
28
+ --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
29
+ // scss-docs-end accordion-css-vars
30
+ }
31
+
5
32
  .accordion-button {
6
33
  position: relative;
7
34
  display: flex;
8
35
  align-items: center;
9
36
  width: 100%;
10
- padding: $accordion-button-padding-y $accordion-button-padding-x;
37
+ padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
11
38
  @include font-size($font-size-base);
12
- color: var(--#{$variable-prefix}accordion-button-color, $accordion-button-color);
39
+ color: var(--#{$prefix}accordion-btn-color);
13
40
  text-align: left; // Reset button style
14
- background-color: var(--#{$variable-prefix}accordion-button-bg, $accordion-button-bg);
41
+ background-color: var(--#{$prefix}accordion-btn-bg);
15
42
  border: 0;
16
43
  @include border-radius(0);
17
44
  overflow-anchor: none;
18
- @include transition($accordion-transition);
45
+ @include transition(var(--#{$prefix}accordion-transition));
19
46
 
20
47
  &:not(.collapsed) {
21
- color: var(--#{$variable-prefix}accordion-button-active-color, $accordion-button-active-color);
22
- background-color: var(--#{$variable-prefix}accordion-button-active-bg, $accordion-button-active-bg);
23
- box-shadow: inset 0 ($accordion-border-width * -1) 0 var(--#{$variable-prefix}accordion-border-color, $accordion-border-color);
48
+ color: var(--#{$prefix}accordion-active-color);
49
+ background-color: var(--#{$prefix}accordion-active-bg);
50
+ box-shadow: inset 0 calc(var(--#{$prefix}accordion-border-width) * -1) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
24
51
 
25
52
  &::after {
26
- background-image: var(--#{$variable-prefix}accordion-button-active-icon, escape-svg($accordion-button-active-icon));
27
- transform: $accordion-icon-transform;
53
+ background-image: var(--#{$prefix}accordion-btn-active-icon);
54
+ transform: var(--#{$prefix}accordion-btn-icon-transform);
28
55
  }
29
56
  }
30
57
 
31
58
  // Accordion icon
32
59
  &::after {
33
60
  flex-shrink: 0;
34
- width: $accordion-icon-width;
35
- height: $accordion-icon-width;
36
- @include ltr-rtl("margin-left", auto);
61
+ width: var(--#{$prefix}accordion-btn-icon-width);
62
+ height: var(--#{$prefix}accordion-btn-icon-width);
63
+ margin-left: auto;
37
64
  content: "";
38
- background-image: var(--#{$variable-prefix}accordion-button-icon, escape-svg($accordion-button-icon));
65
+ background-image: var(--#{$prefix}accordion-btn-icon);
39
66
  background-repeat: no-repeat;
40
- background-size: $accordion-icon-width;
41
- @include transition($accordion-icon-transition);
67
+ background-size: var(--#{$prefix}accordion-btn-icon-width);
68
+ @include transition(var(--#{$prefix}accordion-btn-icon-transition));
42
69
  }
43
70
 
44
71
  &:hover {
@@ -47,9 +74,9 @@
47
74
 
48
75
  &:focus {
49
76
  z-index: 3;
50
- border-color: var(--#{$variable-prefix}accordion-button-focus-border-color, $accordion-button-focus-border-color);
77
+ border-color: var(--#{$prefix}accordion-btn-focus-border-color);
51
78
  outline: 0;
52
- box-shadow: $accordion-button-focus-box-shadow;
79
+ box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
53
80
  }
54
81
  }
55
82
 
@@ -58,14 +85,15 @@
58
85
  }
59
86
 
60
87
  .accordion-item {
61
- background-color: var(--#{$variable-prefix}accordion-bg, $accordion-bg);
62
- border: $accordion-border-width solid var(--#{$variable-prefix}accordion-border-color, $accordion-border-color);
88
+ color: var(--#{$prefix}accordion-color);
89
+ background-color: var(--#{$prefix}accordion-bg);
90
+ border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
63
91
 
64
92
  &:first-of-type {
65
- @include border-top-radius($accordion-border-radius);
93
+ @include border-top-radius(var(--#{$prefix}accordion-border-radius));
66
94
 
67
95
  .accordion-button {
68
- @include border-top-radius($accordion-inner-border-radius);
96
+ @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
69
97
  }
70
98
  }
71
99
 
@@ -75,22 +103,22 @@
75
103
 
76
104
  // Only set a border-radius on the last item if the accordion is collapsed
77
105
  &:last-of-type {
78
- @include border-bottom-radius($accordion-border-radius);
106
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
79
107
 
80
108
  .accordion-button {
81
109
  &.collapsed {
82
- @include border-bottom-radius($accordion-inner-border-radius);
110
+ @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
83
111
  }
84
112
  }
85
113
 
86
114
  .accordion-collapse {
87
- @include border-bottom-radius($accordion-border-radius);
115
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
88
116
  }
89
117
  }
90
118
  }
91
119
 
92
120
  .accordion-body {
93
- padding: $accordion-body-padding-y $accordion-body-padding-x;
121
+ padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
94
122
  }
95
123
 
96
124
 
package/scss/_alert.scss CHANGED
@@ -3,13 +3,24 @@
3
3
  //
4
4
 
5
5
  .alert {
6
+ // scss-docs-start alert-css-vars
7
+ --#{$prefix}alert-bg: transparent;
8
+ --#{$prefix}alert-padding-x: #{$alert-padding-x};
9
+ --#{$prefix}alert-padding-y: #{$alert-padding-y};
10
+ --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
11
+ --#{$prefix}alert-color: inherit;
12
+ --#{$prefix}alert-border-color: transparent;
13
+ --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14
+ --#{$prefix}alert-border-radius: #{$alert-border-radius};
15
+ // scss-docs-end alert-css-vars
16
+
6
17
  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);
18
+ padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
19
+ margin-bottom: var(--#{$prefix}alert-margin-bottom);
20
+ color: var(--#{$prefix}alert-color);
21
+ background-color: var(--#{$prefix}alert-bg);
22
+ border: var(--#{$prefix}alert-border);
23
+ @include border-radius(var(--#{$prefix}alert-border-radius));
13
24
  }
14
25
 
15
26
  // Headings for larger alerts
@@ -21,7 +32,7 @@
21
32
  // Provide class for links that match alerts
22
33
  .alert-link {
23
34
  font-weight: $alert-link-font-weight;
24
- color: var(--#{$variable-prefix}alert-link-color);
35
+ color: var(--#{$prefix}alert-link-color);
25
36
  }
26
37
 
27
38
 
@@ -46,7 +57,16 @@
46
57
  // scss-docs-start alert-modifiers
47
58
  // Generate contextual modifier classes for colorizing the alert.
48
59
 
49
- @each $state, $variant in $alert-variants {
50
- @include alert-variant($state, $variant);
60
+ @each $state, $value in $alert-variants {
61
+ $alert-background: map-get($value, "alert-bg");
62
+ $alert-border: map-get($value, "alert-border");
63
+ $alert-color: map-get($value, "alert-color");
64
+
65
+ @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
66
+ $alert-color: mix(map-get($value, "base-color"), color-contrast($alert-background), abs($alert-color-scale));
67
+ }
68
+ .alert-#{$state} {
69
+ @include alert-variant($alert-background, $alert-border, $alert-color);
70
+ }
51
71
  }
52
72
  // scss-docs-end alert-modifiers
package/scss/_badge.scss CHANGED
@@ -4,16 +4,25 @@
4
4
  // `background-color`.
5
5
 
6
6
  .badge {
7
+ // scss-docs-start badge-css-vars
8
+ --#{$prefix}badge-padding-x: #{$badge-padding-x};
9
+ --#{$prefix}badge-padding-y: #{$badge-padding-y};
10
+ @include rfs($badge-font-size, --#{$prefix}badge-font-size);
11
+ --#{$prefix}badge-font-weight: #{$badge-font-weight};
12
+ --#{$prefix}badge-color: #{$badge-color};
13
+ --#{$prefix}badge-border-radius: #{$badge-border-radius};
14
+ // scss-docs-end badge-css-vars
15
+
7
16
  display: inline-block;
8
- padding: $badge-padding-y $badge-padding-x;
9
- @include font-size($badge-font-size);
10
- font-weight: $badge-font-weight;
17
+ padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
18
+ @include font-size(var(--#{$prefix}badge-font-size));
19
+ font-weight: var(--#{$prefix}badge-font-weight);
11
20
  line-height: 1;
12
- color: var(--#{$variable-prefix}badge-color, $badge-color);
21
+ color: var(--#{$prefix}badge-color);
13
22
  text-align: center;
14
23
  white-space: nowrap;
15
- vertical-align: text-bottom;
16
- @include border-radius($badge-border-radius);
24
+ vertical-align: baseline;
25
+ border-radius: var(--#{$prefix}badge-border-radius, 0); // stylelint-disable-line property-disallowed-list
17
26
  @include gradient-bg();
18
27
 
19
28
  // Empty badges collapse automatically
@@ -1,33 +1,45 @@
1
1
  .breadcrumb {
2
+ // scss-docs-start breadcrumb-css-vars
3
+ --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
4
+ --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
5
+ --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
6
+ @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
7
+ --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
8
+ --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
9
+ --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
10
+ --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
11
+ --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
12
+ // scss-docs-end breadcrumb-css-vars
13
+
2
14
  display: flex;
3
15
  flex-wrap: wrap;
4
- padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5
- margin-bottom: $breadcrumb-margin-bottom;
6
- @include font-size($breadcrumb-font-size);
16
+ padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
17
+ margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
18
+ @include font-size(var(--#{$prefix}breadcrumb-font-size));
7
19
  list-style: none;
8
- background-color: var(--#{$variable-prefix}breadcrumb-bg, $breadcrumb-bg);
9
- @include border-radius($breadcrumb-border-radius);
20
+ background-color: var(--#{$prefix}breadcrumb-bg);
21
+ @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
10
22
  }
11
23
 
12
24
  .breadcrumb-item {
13
25
  // The separator between breadcrumbs (by default, a forward-slash: "/")
14
26
  + .breadcrumb-item {
15
- @include ltr-rtl("padding-left", $breadcrumb-item-padding-x);
27
+ @include ltr-rtl("padding-left", var(--#{$prefix}breadcrumb-item-padding-x));
16
28
 
17
29
  &::before {
18
30
  @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);
31
+ @include ltr-rtl("padding-right", var(--#{$prefix}breadcrumb-item-padding-x));
32
+ color: var(--#{$prefix}breadcrumb-divider-color);
21
33
  @include ltr-rtl(
22
34
  "content",
23
- var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)),
35
+ var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)),
24
36
  null,
25
- var(--#{$variable-prefix}breadcrumb-divider-flipped, escape-svg($breadcrumb-divider-flipped))
37
+ var(--#{$prefix}breadcrumb-divider-flipped, escape-svg($breadcrumb-divider-flipped))
26
38
  );
27
39
  }
28
40
  }
29
41
 
30
42
  &.active {
31
- color: var(--#{$variable-prefix}breadcrumb-active-color, $breadcrumb-active-color);
43
+ color: var(--#{$prefix}breadcrumb-item-active-color);
32
44
  }
33
45
  }
@@ -34,6 +34,8 @@
34
34
  }
35
35
 
36
36
  .btn-group {
37
+ @include border-radius($btn-border-radius);
38
+
37
39
  // Prevent double borders when buttons are next to each other
38
40
  > .btn:not(:first-child),
39
41
  > .btn-group:not(:first-child) {
@@ -42,6 +44,7 @@
42
44
 
43
45
  // Reset rounded corners
44
46
  > .btn:not(:last-child):not(.dropdown-toggle),
47
+ > .btn.dropdown-toggle-split:first-child,
45
48
  > .btn-group:not(:last-child) > .btn {
46
49
  @include border-end-radius(0);
47
50
  }
@@ -3,40 +3,60 @@
3
3
  //
4
4
 
5
5
  .btn {
6
+ // scss-docs-start btn-css-vars
7
+ --#{$prefix}btn-padding-x: #{$btn-padding-x};
8
+ --#{$prefix}btn-padding-y: #{$btn-padding-y};
9
+ --#{$prefix}btn-font-family: #{$btn-font-family};
10
+ @include rfs($btn-font-size, --#{$prefix}btn-font-size);
11
+ --#{$prefix}btn-font-weight: #{$btn-font-weight};
12
+ --#{$prefix}btn-line-height: #{$btn-line-height};
13
+ --#{$prefix}btn-color: #{$body-color};
14
+ --#{$prefix}btn-bg: transparent;
15
+ --#{$prefix}btn-border-width: #{$btn-border-width};
16
+ --#{$prefix}btn-border-color: transparent;
17
+ --#{$prefix}btn-border-radius: #{$btn-border-radius};
18
+ --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
19
+ --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
20
+ --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
21
+ // scss-docs-end btn-css-vars
22
+
6
23
  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);
24
+ padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);
25
+ font-family: var(--#{$prefix}btn-font-family);
26
+ @include font-size(var(--#{$prefix}btn-font-size));
27
+ font-weight: var(--#{$prefix}btn-font-weight);
28
+ line-height: var(--#{$prefix}btn-line-height);
29
+ color: var(--#{$prefix}btn-color);
11
30
  text-align: center;
12
31
  text-decoration: if($link-decoration == none, null, none);
13
32
  white-space: $btn-white-space;
14
33
  vertical-align: middle;
15
34
  cursor: if($enable-button-pointers, pointer, null);
16
35
  user-select: none;
17
- background-color: var(--#{$variable-prefix}btn-bg, transparent);
18
- border: $btn-border-width solid var(--#{$variable-prefix}btn-border-color, transparent);
19
- @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
36
+ border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
37
+ @include border-radius(var(--#{$prefix}btn-border-radius));
38
+ @include gradient-bg(var(--#{$prefix}btn-bg));
39
+ @include box-shadow(var(--#{$prefix}btn-box-shadow));
20
40
  @include transition($btn-transition);
21
41
 
22
42
  &:hover {
23
- color: var(--#{$variable-prefix}btn-hover-color, $body-color);
24
- @include gradient-bg(var(--#{$variable-prefix}btn-hover-bg));
43
+ color: var(--#{$prefix}btn-hover-color);
25
44
  text-decoration: if($link-hover-decoration == underline, none, null);
26
- border-color: var(--#{$variable-prefix}btn-hover-border-color, transparent);
45
+ background-color: var(--#{$prefix}btn-hover-bg);
46
+ border-color: var(--#{$prefix}btn-hover-border-color);
27
47
  }
28
48
 
29
49
  .btn-check:focus + &,
30
50
  &:focus {
31
- color: var(--#{$variable-prefix}btn-hover-color);
32
- @include gradient-bg(var(--#{$variable-prefix}btn-hover-bg));
33
- border-color: var(--#{$variable-prefix}btn-hover-border-color, transparent);
51
+ color: var(--#{$prefix}btn-hover-color);
52
+ @include gradient-bg(var(--#{$prefix}btn-hover-bg));
53
+ border-color: var(--#{$prefix}btn-hover-border-color);
34
54
  outline: 0;
55
+ // Avoid using mixin so we can pass custom focus shadow properly
35
56
  @if $enable-shadows {
36
- @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow));
57
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
37
58
  } @else {
38
- // Avoid using mixin so we can pass custom focus shadow properly
39
- box-shadow: 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow);
59
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
40
60
  }
41
61
  }
42
62
 
@@ -44,20 +64,20 @@
44
64
  .btn-check:active + &,
45
65
  &:active,
46
66
  &.active,
47
- .show > &.dropdown-toggle {
48
- color: var(--#{$variable-prefix}btn-active-color);
49
- background-color: var(--#{$variable-prefix}btn-active-bg);
67
+ &.show {
68
+ color: var(--#{$prefix}btn-active-color);
69
+ background-color: var(--#{$prefix}btn-active-bg);
50
70
  // Remove CSS gradients if they're enabled
51
71
  background-image: if($enable-gradients, none, null);
52
- border-color: var(--#{$variable-prefix}btn-active-border-color, transparent);
53
- @include box-shadow($btn-active-box-shadow);
72
+ border-color: var(--#{$prefix}btn-active-border-color);
73
+ @include box-shadow(var(--#{$prefix}btn-active-shadow));
54
74
 
55
75
  &:focus {
76
+ // Avoid using mixin so we can pass custom focus shadow properly
56
77
  @if $enable-shadows {
57
- @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow));
78
+ box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
58
79
  } @else {
59
- // Avoid using mixin so we can pass custom focus shadow properly
60
- box-shadow: 0 0 0 $btn-focus-width var(--#{$variable-prefix}btn-shadow);
80
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
61
81
  }
62
82
  }
63
83
  }
@@ -65,13 +85,12 @@
65
85
  &:disabled,
66
86
  &.disabled,
67
87
  fieldset:disabled & {
68
- color: var(--#{$variable-prefix}btn-disabled-color);
88
+ color: var(--#{$prefix}btn-disabled-color);
69
89
  pointer-events: none;
70
- background-color: var(--#{$variable-prefix}btn-disabled-bg);
71
- // Remove CSS gradients if they're enabled
90
+ background-color: var(--#{$prefix}btn-disabled-bg);
72
91
  background-image: if($enable-gradients, none, null);
73
- border-color: var(--#{$variable-prefix}btn-disabled-border-color, transparent);
74
- opacity: $btn-disabled-opacity;
92
+ border-color: var(--#{$prefix}btn-disabled-border-color);
93
+ opacity: var(--#{$prefix}btn-disabled-opacity);
75
94
  @include box-shadow(none);
76
95
  }
77
96
  }
@@ -80,24 +99,31 @@
80
99
  //
81
100
  // Alternate buttons
82
101
  //
102
+
103
+ .btn-transparent {
104
+ --#{$prefix}btn-active-border-color: transparent;
105
+ --#{$prefix}btn-disabled-border-color: transparent;
106
+ --#{$prefix}btn-hover-border-color: transparent;
107
+ }
108
+
83
109
  // scss-docs-start btn-variant-loops
84
- // scss-docs-start button-modifiers
85
110
  @each $state, $variant in $button-variants {
86
- @include button-variant($state, $variant);
111
+ .btn-#{$state} {
112
+ @include button-variant($variant);
113
+ }
87
114
  }
88
- // scss-docs-end button-modifiers
89
115
 
90
- // scss-docs-start button-outline-modifiers
91
116
  @each $state, $variant in $button-outline-ghost-variants {
92
- @include button-outline-variant($state, $variant);
117
+ .btn-outline-#{$state} {
118
+ @include button-outline-variant($variant);
119
+ }
93
120
  }
94
- // scss-docs-end button-outline-modifiers
95
121
 
96
- // scss-docs-start button-ghost-modifiers
97
122
  @each $state, $variant in $button-outline-ghost-variants {
98
- @include button-ghost-variant($state, $variant);
123
+ .btn-ghost-#{$state} {
124
+ @include button-ghost-variant($variant);
125
+ }
99
126
  }
100
- // scss-docs-end button-ghost-modifiers
101
127
  // scss-docs-end btn-variant-loops
102
128
 
103
129
 
@@ -107,24 +133,25 @@
107
133
 
108
134
  // Make a button look and behave like a link
109
135
  .btn-link {
110
- font-weight: $font-weight-normal;
111
- color: var(--#{$variable-prefix}btn-link-color, $btn-link-color);
112
- text-decoration: $link-decoration;
136
+ --#{$prefix}btn-font-weight: #{$font-weight-normal};
137
+ --#{$prefix}btn-color: #{$btn-link-color};
138
+ --#{$prefix}btn-bg: transparent;
139
+ --#{$prefix}btn-border-color: transparent;
140
+ --#{$prefix}btn-hover-color: #{$btn-link-hover-color};
141
+ --#{$prefix}btn-hover-border-color: transparent;
142
+ --#{$prefix}btn-active-border-color: transparent;
143
+ --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};
144
+ --#{$prefix}btn-disabled-border-color: transparent;
145
+ --#{$prefix}btn-box-shadow: none;
146
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};
113
147
 
114
- &:hover {
115
- color: var(--#{$variable-prefix}btn-link-hover-color, $btn-link-hover-color);
116
- text-decoration: $link-hover-decoration;
117
- }
148
+ text-decoration: $link-decoration;
118
149
 
150
+ &:hover,
119
151
  &:focus {
120
152
  text-decoration: $link-hover-decoration;
121
153
  }
122
154
 
123
- &:disabled,
124
- &.disabled {
125
- color: var(--#{$variable-prefix}btn-link-disabled-color, $btn-link-disabled-color);
126
- }
127
-
128
155
  // No need for an active state here
129
156
  }
130
157
 
@@ -1,16 +1,28 @@
1
1
  .callout {
2
- padding: $callout-padding-y $callout-padding-x;
3
- margin: $callout-margin-y $callout-margin-x;
4
- border: var(--#{$variable-prefix}callout-border-width, $callout-border-width) solid var(--#{$variable-prefix}callout-border-color, $callout-border-color);
5
- @include ltr-rtl("border-left-width", var(--#{$variable-prefix}callout-border-left-width, $callout-border-left-width));
6
- @include border-radius($callout-border-radius);
2
+ // scss-docs-start callout-css-vars
3
+ --#{$prefix}callout-padding-x: #{$callout-padding-x};
4
+ --#{$prefix}callout-padding-y: #{$callout-padding-y};
5
+ --#{$prefix}callout-margin-x: #{$callout-margin-x};
6
+ --#{$prefix}callout-margin-y: #{$callout-margin-y};
7
+ --#{$prefix}callout-border-width: #{$callout-border-width};
8
+ --#{$prefix}callout-border-color: #{$callout-border-color};
9
+ --#{$prefix}callout-border-left-width: #{$callout-border-left-width};
10
+ --#{$prefix}callout-border-radius: #{$callout-border-radius};
11
+ // scss-docs-end callout-css-vars
12
+
13
+ padding: var(--#{$prefix}callout-padding-y) var(--#{$prefix}callout-padding-x);
14
+ margin: var(--#{$prefix}callout-margin-y) var(--#{$prefix}callout-margin-x);
15
+ border: var(--#{$prefix}callout-border-width) solid var(--#{$prefix}callout-border-color);
16
+ @include ltr-rtl("border-left-width", var(--#{$prefix}callout-border-left-width));
17
+ @include ltr-rtl("border-left-color", var(--#{$prefix}callout-border-left-color));
18
+ @include border-radius(var(--#{$prefix}callout-border-radius));
7
19
  }
8
20
 
9
21
  // scss-docs-start callout-modifiers
10
22
  // Generate contextual modifier classes for colorizing the collor.
11
23
  @each $state, $value in $callout-variants {
12
24
  .callout-#{$state} {
13
- @include ltr-rtl("border-left-color", var(--#{$variable-prefix}callout-border-left-color, $value));
25
+ --#{$prefix}callout-border-left-color: #{$value};
14
26
  }
15
27
  }
16
28
  // scss-docs-end callout-modifiers