@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
package/scss/_card.scss CHANGED
@@ -3,17 +3,37 @@
3
3
  //
4
4
 
5
5
  .card {
6
+ // scss-docs-start card-css-vars
7
+ --#{$prefix}card-spacer-y: #{$card-spacer-y};
8
+ --#{$prefix}card-spacer-x: #{$card-spacer-x};
9
+ --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};
10
+ --#{$prefix}card-border-width: #{$card-border-width};
11
+ --#{$prefix}card-border-color: #{$card-border-color};
12
+ --#{$prefix}card-border-radius: #{$card-border-radius};
13
+ --#{$prefix}card-box-shadow: #{$card-box-shadow};
14
+ --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};
15
+ --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};
16
+ --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};
17
+ --#{$prefix}card-cap-bg: #{$card-cap-bg};
18
+ --#{$prefix}card-cap-color: #{$card-cap-color};
19
+ --#{$prefix}card-height: #{$card-height};
20
+ --#{$prefix}card-color: #{$card-color};
21
+ --#{$prefix}card-bg: #{$card-bg};
22
+ --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};
23
+ --#{$prefix}card-group-margin: #{$card-group-margin};
24
+ // scss-docs-end card-css-vars
25
+
6
26
  position: relative;
7
27
  display: flex;
8
28
  flex-direction: column;
9
29
  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
10
- height: $card-height;
30
+ height: var(--#{$prefix}card-height);
11
31
  word-wrap: break-word;
12
- background-color: var(--#{$variable-prefix}card-bg, $card-bg);
32
+ background-color: var(--#{$prefix}card-bg);
13
33
  background-clip: border-box;
14
- border: $card-border-width solid var(--#{$variable-prefix}card-border-color, $card-border-color);
15
- @include border-radius($card-border-radius);
16
- @include box-shadow($card-box-shadow);
34
+ border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
35
+ @include border-radius(var(--#{$prefix}card-border-radius));
36
+ @include box-shadow(var(--#{$prefix}card-box-shadow));
17
37
 
18
38
  > hr {
19
39
  margin-right: 0;
@@ -26,12 +46,12 @@
26
46
 
27
47
  &:first-child {
28
48
  border-top-width: 0;
29
- @include border-top-radius($card-inner-border-radius);
49
+ @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
30
50
  }
31
51
 
32
52
  &:last-child {
33
53
  border-bottom-width: 0;
34
- @include border-bottom-radius($card-inner-border-radius);
54
+ @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
35
55
  }
36
56
  }
37
57
 
@@ -47,16 +67,16 @@
47
67
  // Enable `flex-grow: 1` for decks and groups so that card blocks take up
48
68
  // as much space as possible, ensuring footers are aligned to the bottom.
49
69
  flex: 1 1 auto;
50
- padding: $card-spacer-y $card-spacer-x;
51
- color: var(--#{$variable-prefix}card-color, $card-color);
70
+ padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);
71
+ color: var(--#{$prefix}card-color);
52
72
  }
53
73
 
54
74
  .card-title {
55
- margin-bottom: $card-title-spacer-y;
75
+ margin-bottom: var(--#{$prefix}card-title-spacer-y);
56
76
  }
57
77
 
58
78
  .card-subtitle {
59
- margin-top: -$card-title-spacer-y * .5;
79
+ margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
60
80
  margin-bottom: 0;
61
81
  }
62
82
 
@@ -70,7 +90,7 @@
70
90
  }
71
91
 
72
92
  + .card-link {
73
- @include ltr-rtl("margin-left", $card-spacer-x);
93
+ @include ltr-rtl("margin-left", var(--#{$prefix}card-spacer-x));
74
94
  }
75
95
  }
76
96
 
@@ -79,25 +99,25 @@
79
99
  //
80
100
 
81
101
  .card-header {
82
- padding: $card-cap-padding-y $card-cap-padding-x;
102
+ padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
83
103
  margin-bottom: 0; // Removes the default margin-bottom of <hN>
84
- color: var(--#{$variable-prefix}card-cap-color, $card-cap-color);
85
- background-color: var(--#{$variable-prefix}card-cap-bg, $card-cap-bg);
86
- border-bottom: $card-border-width solid var(--#{$variable-prefix}card-border-color, $card-border-color);
104
+ color: var(--#{$prefix}card-cap-color);
105
+ background-color: var(--#{$prefix}card-cap-bg);
106
+ border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
87
107
 
88
108
  &:first-child {
89
- @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
109
+ @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);
90
110
  }
91
111
  }
92
112
 
93
113
  .card-footer {
94
- padding: $card-cap-padding-y $card-cap-padding-x;
95
- color: var(--#{$variable-prefix}card-cap-color, $card-cap-color);
96
- background-color: var(--#{$variable-prefix}card-cap-bg, $card-cap-bg);
97
- border-top: $card-border-width solid var(--#{$variable-prefix}card-border-color, $card-border-color);
114
+ padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
115
+ color: var(--#{$prefix}card-cap-color);
116
+ background-color: var(--#{$prefix}card-cap-bg);
117
+ border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
98
118
 
99
119
  &:last-child {
100
- @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);
120
+ @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));
101
121
  }
102
122
  }
103
123
 
@@ -107,22 +127,20 @@
107
127
  //
108
128
 
109
129
  .card-header-tabs {
110
- margin-right: -$card-cap-padding-x * .5;
111
- margin-bottom: -$card-cap-padding-y;
112
- margin-left: -$card-cap-padding-x * .5;
130
+ margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
131
+ margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list
132
+ margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
113
133
  border-bottom: 0;
114
134
 
115
- @if $nav-tabs-link-active-bg != $card-bg {
116
- .nav-link.active {
117
- background-color: var(--#{$variable-prefix}card-bg, $card-bg);
118
- border-bottom-color: var(--#{$variable-prefix}card-bg, $card-bg);
119
- }
135
+ .nav-link.active {
136
+ background-color: var(--#{$prefix}card-bg);
137
+ border-bottom-color: var(--#{$prefix}card-bg);
120
138
  }
121
139
  }
122
140
 
123
141
  .card-header-pills {
124
- margin-right: -$card-cap-padding-x * .5;
125
- margin-left: -$card-cap-padding-x * .5;
142
+ margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
143
+ margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
126
144
  }
127
145
 
128
146
  // Card image
@@ -132,8 +150,8 @@
132
150
  right: 0;
133
151
  bottom: 0;
134
152
  left: 0;
135
- padding: $card-img-overlay-padding;
136
- @include border-radius($card-inner-border-radius);
153
+ padding: var(--#{$prefix}card-img-overlay-padding);
154
+ @include border-radius(var(--#{$prefix}card-inner-border-radius));
137
155
  }
138
156
 
139
157
  .card-img,
@@ -144,12 +162,12 @@
144
162
 
145
163
  .card-img,
146
164
  .card-img-top {
147
- @include border-top-radius($card-inner-border-radius);
165
+ @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
148
166
  }
149
167
 
150
168
  .card-img,
151
169
  .card-img-bottom {
152
- @include border-bottom-radius($card-inner-border-radius);
170
+ @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
153
171
  }
154
172
 
155
173
 
@@ -161,7 +179,7 @@
161
179
  // The child selector allows nested `.card` within `.card-group`
162
180
  // to display properly.
163
181
  > .card {
164
- margin-bottom: $card-group-margin;
182
+ margin-bottom: var(--#{$prefix}card-group-margin);
165
183
  }
166
184
 
167
185
  @include media-breakpoint-up(sm) {
@@ -99,7 +99,7 @@
99
99
  justify-content: center; // 3. horizontally center contents
100
100
  width: $carousel-control-width;
101
101
  padding: 0;
102
- color: var(--#{$variable-prefix}carousel-control-color, $carousel-control-color);
102
+ color: var(--#{$prefix}carousel-control-color, $carousel-control-color);
103
103
  text-align: center;
104
104
  background: none;
105
105
  border: 0;
@@ -109,7 +109,7 @@
109
109
  // Hover/focus state
110
110
  &:hover,
111
111
  &:focus {
112
- color: var(--#{$variable-prefix}carousel-control-color, $carousel-control-color);
112
+ color: var(--#{$prefix}carousel-control-color, $carousel-control-color);
113
113
  text-decoration: none;
114
114
  outline: 0;
115
115
  opacity: $carousel-control-hover-opacity;
@@ -180,7 +180,7 @@
180
180
  margin-left: $carousel-indicator-spacer;
181
181
  text-indent: -999px;
182
182
  cursor: pointer;
183
- background-color: var(--#{$variable-prefix}carousel-indicator-active-bg, $carousel-indicator-active-bg);
183
+ background-color: var(--#{$prefix}carousel-indicator-active-bg, $carousel-indicator-active-bg);
184
184
  background-clip: padding-box;
185
185
  border: 0;
186
186
  // Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -207,15 +207,15 @@
207
207
  left: (100% - $carousel-caption-width) * .5;
208
208
  padding-top: $carousel-caption-padding-y;
209
209
  padding-bottom: $carousel-caption-padding-y;
210
- color: var(--#{$variable-prefix}carousel-caption-color, $carousel-caption-color);
210
+ color: var(--#{$prefix}carousel-caption-color, $carousel-caption-color);
211
211
  text-align: center;
212
212
  }
213
213
 
214
214
  // Dark mode carousel
215
215
 
216
216
  .carousel-dark {
217
- --#{$variable-prefix}carousel-indicator-active-bg: #{$carousel-dark-indicator-active-bg};
218
- --#{$variable-prefix}carousel-caption-color: #{$carousel-dark-caption-color};
217
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-dark-indicator-active-bg};
218
+ --#{$prefix}carousel-caption-color: #{$carousel-dark-caption-color};
219
219
  .carousel-control-prev-icon,
220
220
  .carousel-control-next-icon {
221
221
  filter: $carousel-dark-control-icon-filter;
package/scss/_close.scss CHANGED
@@ -1,4 +1,4 @@
1
- // transparent background and border properties included for button version.
1
+ // Transparent background and border properties included for button version.
2
2
  // iOS requires the button element instead of an anchor tag.
3
3
  // If you want the anchor version, it requires `href="#"`.
4
4
  // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
@@ -8,15 +8,15 @@
8
8
  width: $btn-close-width;
9
9
  height: $btn-close-height;
10
10
  padding: $btn-close-padding-y $btn-close-padding-x;
11
- color: var(--#{$variable-prefix}btn-close-color, $btn-close-color);
12
- background: transparent var(--#{$variable-prefix}btn-close-bg, escape-svg($btn-close-bg)) center / $btn-close-width auto no-repeat; // include transparent for button elements
11
+ color: var(--#{$prefix}btn-close-color, $btn-close-color);
12
+ background: transparent var(--#{$prefix}btn-close-bg, escape-svg($btn-close-bg)) center / $btn-close-width auto no-repeat; // include transparent for button elements
13
13
  border: 0; // for button elements
14
14
  @include border-radius();
15
15
  opacity: $btn-close-opacity;
16
16
 
17
17
  // Override <a>'s hover style
18
18
  &:hover {
19
- color: var(--#{$variable-prefix}btn-close-color, $btn-close-color);
19
+ color: var(--#{$prefix}btn-close-color, $btn-close-color);
20
20
  text-decoration: none;
21
21
  opacity: $btn-close-hover-opacity;
22
22
  }
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // Set the container width, and override it for fixed navbars in media queries.
4
4
 
5
- @if $enable-grid-classes {
5
+ @if $enable-container-classes {
6
6
  // Single container class with breakpoint max-widths
7
7
  .container,
8
8
  // 100% wide container at all breakpoints
@@ -2,7 +2,9 @@
2
2
  .dropup,
3
3
  .dropend,
4
4
  .dropdown,
5
- .dropstart {
5
+ .dropstart,
6
+ .dropup-center,
7
+ .dropdown-center {
6
8
  position: relative;
7
9
  }
8
10
 
@@ -15,26 +17,66 @@
15
17
 
16
18
  // The dropdown menu
17
19
  .dropdown-menu {
20
+ // scss-docs-start dropdown-css-vars
21
+ --#{$prefix}dropdown-min-width: #{$dropdown-min-width};
22
+ --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};
23
+ --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};
24
+ --#{$prefix}dropdown-spacer: #{$dropdown-spacer};
25
+ @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);
26
+ --#{$prefix}dropdown-color: #{$dropdown-color};
27
+ --#{$prefix}dropdown-bg: #{$dropdown-bg};
28
+ --#{$prefix}dropdown-border-color: #{$dropdown-border-color};
29
+ --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};
30
+ --#{$prefix}dropdown-border-width: #{$dropdown-border-width};
31
+ --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};
32
+ --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};
33
+ --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};
34
+ --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};
35
+ --#{$prefix}dropdown-link-color: #{$dropdown-link-color};
36
+ --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};
37
+ --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
38
+ --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};
39
+ --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};
40
+ --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};
41
+ --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};
42
+ --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};
43
+ --#{$prefix}dropdown-header-color: #{$dropdown-header-color};
44
+ --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};
45
+ --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};
46
+ // scss-docs-end dropdown-css-vars
47
+
18
48
  position: absolute;
19
49
  z-index: $zindex-dropdown;
20
50
  display: none; // none by default, but block on "open" of the menu
21
- min-width: $dropdown-min-width;
22
- padding: $dropdown-padding-y $dropdown-padding-x;
51
+ min-width: var(--#{$prefix}dropdown-min-width);
52
+ padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);
23
53
  margin: 0; // Override default margin of ul
24
- @include font-size($dropdown-font-size);
25
- color: var(--#{$variable-prefix}dropdown-color, $dropdown-color);
26
- text-align: start; // Ensures proper alignment if parent has it changed (e.g., modal footer)
54
+ @include font-size(var(--#{$prefix}dropdown-font-size));
55
+ color: var(--#{$prefix}dropdown-color);
56
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
27
57
  list-style: none;
28
- background-color: var(--#{$variable-prefix}dropdown-bg, $dropdown-bg);
58
+ background-color: var(--#{$prefix}dropdown-bg);
29
59
  background-clip: padding-box;
30
- border: $dropdown-border-width solid var(--#{$variable-prefix}dropdown-border-color, $dropdown-border-color);
31
- @include border-radius($dropdown-border-radius);
32
- @include box-shadow($dropdown-box-shadow);
60
+ border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);
61
+ @include border-radius(var(--#{$prefix}dropdown-border-radius));
62
+ @include box-shadow(var(--#{$prefix}dropdown-box-shadow));
33
63
 
34
64
  &[data-coreui-popper] {
35
65
  top: 100%;
36
66
  @include ltr-rtl("left", 0);
37
- margin-top: $dropdown-spacer;
67
+ margin-top: var(--#{$prefix}dropdown-spacer);
68
+ }
69
+
70
+ @if $dropdown-padding-y == 0 {
71
+ > .dropdown-item:first-child,
72
+ > li:first-child .dropdown-item {
73
+ @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));
74
+ }
75
+ > .dropdown-item:last-child,
76
+ > li:last-child .dropdown-item {
77
+ @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));
78
+ }
79
+
38
80
  }
39
81
  }
40
82
 
@@ -47,7 +89,7 @@
47
89
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
48
90
 
49
91
  .dropdown-menu#{$infix}-start {
50
- --#{$variable-prefix}position: start;
92
+ --#{$prefix}position: start;
51
93
 
52
94
  &[data-coreui-popper] {
53
95
  right: auto;
@@ -56,7 +98,7 @@
56
98
  }
57
99
 
58
100
  .dropdown-menu#{$infix}-end {
59
- --#{$variable-prefix}position: end;
101
+ --#{$prefix}position: end;
60
102
 
61
103
  &[data-coreui-popper] {
62
104
  right: 0;
@@ -74,7 +116,7 @@
74
116
  top: auto;
75
117
  bottom: 100%;
76
118
  margin-top: 0;
77
- margin-bottom: $dropdown-spacer;
119
+ margin-bottom: var(--#{$prefix}dropdown-spacer);
78
120
  }
79
121
 
80
122
  .dropdown-toggle {
@@ -88,7 +130,7 @@
88
130
  @include ltr-rtl("right", auto);
89
131
  @include ltr-rtl("left", 100%);
90
132
  margin-top: 0;
91
- @include ltr-rtl("margin-left", $dropdown-spacer);
133
+ @include ltr-rtl("margin-left", var(--#{$prefix}dropdown-spacer));
92
134
  }
93
135
 
94
136
  .dropdown-toggle {
@@ -106,7 +148,7 @@
106
148
  @include ltr-rtl("right", 100%);
107
149
  @include ltr-rtl("left", auto);
108
150
  margin-top: 0;
109
- @include ltr-rtl("margin-right", $dropdown-spacer);
151
+ @include ltr-rtl("margin-right", var(--#{$prefix}dropdown-spacer));
110
152
  }
111
153
 
112
154
  .dropdown-toggle {
@@ -121,9 +163,10 @@
121
163
  // Dividers (basically an `<hr>`) within the dropdown
122
164
  .dropdown-divider {
123
165
  height: 0;
124
- margin: $dropdown-divider-margin-y 0;
166
+ margin: var(--#{$prefix}dropdown-divider-margin-y) 0;
125
167
  overflow: hidden;
126
- border-top: 1px solid var(--#{$variable-prefix}dropdown-divider-bg, $dropdown-divider-bg);
168
+ border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);
169
+ opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element
127
170
  }
128
171
 
129
172
  // Links, buttons, and more within the dropdown menu
@@ -132,45 +175,33 @@
132
175
  .dropdown-item {
133
176
  display: block;
134
177
  width: 100%; // For `<button>`s
135
- padding: $dropdown-item-padding-y $dropdown-item-padding-x;
178
+ padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
136
179
  clear: both;
137
180
  font-weight: $font-weight-normal;
138
- color: var(--#{$variable-prefix}dropdown-link-color, $dropdown-link-color);
181
+ color: var(--#{$prefix}dropdown-link-color);
139
182
  text-align: inherit; // For `<button>`s
140
183
  text-decoration: if($link-decoration == none, null, none);
141
184
  white-space: nowrap; // prevent links from randomly breaking onto new lines
142
185
  background-color: transparent; // For `<button>`s
143
186
  border: 0; // For `<button>`s
144
187
 
145
- // Prevent dropdown overflow if there's no padding
146
- // See https://github.com/twbs/bootstrap/pull/27703
147
- @if $dropdown-padding-y == 0 {
148
- &:first-child {
149
- @include border-top-radius($dropdown-inner-border-radius);
150
- }
151
-
152
- &:last-child {
153
- @include border-bottom-radius($dropdown-inner-border-radius);
154
- }
155
- }
156
-
157
188
  &:hover,
158
189
  &:focus {
159
- color: var(--#{$variable-prefix}dropdown-link-hover-color, $dropdown-link-hover-color);
190
+ color: var(--#{$prefix}dropdown-link-hover-color);
160
191
  text-decoration: if($link-hover-decoration == underline, none, null);
161
- @include gradient-bg(var(--#{$variable-prefix}dropdown-link-hover-bg, $dropdown-link-hover-bg));
192
+ @include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));
162
193
  }
163
194
 
164
195
  &.active,
165
196
  &:active {
166
- color: var(--#{$variable-prefix}dropdown-link-active-color, $dropdown-link-active-color);
197
+ color: var(--#{$prefix}dropdown-link-active-color);
167
198
  text-decoration: none;
168
- @include gradient-bg(var(--#{$variable-prefix}dropdown-link-active-bg, $dropdown-link-active-bg));
199
+ @include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));
169
200
  }
170
201
 
171
202
  &.disabled,
172
203
  &:disabled {
173
- color: var(--#{$variable-prefix}dropdown-link-disabled-color, $dropdown-link-disabled-color);
204
+ color: var(--#{$prefix}dropdown-link-disabled-color);
174
205
  pointer-events: none;
175
206
  background-color: transparent;
176
207
  // Remove CSS gradients if they're enabled
@@ -185,43 +216,34 @@
185
216
  // Dropdown section headers
186
217
  .dropdown-header {
187
218
  display: block;
188
- padding: $dropdown-header-padding;
219
+ padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);
189
220
  margin-bottom: 0; // for use with heading elements
190
221
  @include font-size($font-size-sm);
191
- color: var(--#{$variable-prefix}dropdown-header-color, $dropdown-header-color);
222
+ color: var(--#{$prefix}dropdown-header-color);
192
223
  white-space: nowrap; // as with > li > a
193
224
  }
194
225
 
195
226
  // Dropdown text
196
227
  .dropdown-item-text {
197
228
  display: block;
198
- padding: $dropdown-item-padding-y $dropdown-item-padding-x;
199
- color: var(--#{$variable-prefix}dropdown-link-color, $dropdown-link-color);
229
+ padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
230
+ color: var(--#{$prefix}dropdown-link-color);
200
231
  }
201
232
 
202
233
  // Dark dropdowns
203
234
  .dropdown-menu-dark {
204
- @include box-shadow($dropdown-dark-box-shadow);
205
-
206
- --#{$variable-prefix}dropdown-color: #{$dropdown-dark-color};
207
- --#{$variable-prefix}dropdown-bg: #{$dropdown-dark-bg};
208
- --#{$variable-prefix}dropdown-border-color: #{$dropdown-dark-border-color};
209
- --#{$variable-prefix}dropdown-link-color: #{$dropdown-dark-link-color};
210
- --#{$variable-prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
211
- --#{$variable-prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
212
- --#{$variable-prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
213
- --#{$variable-prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
214
- --#{$variable-prefix}dropdown-header-color: #{$dropdown-dark-header-color};
215
-
216
- .dropdown-item {
217
- &:hover,
218
- &:focus {
219
- @include gradient-bg(var(--#{$variable-prefix}dropdown-dark-link-hover-bg, $dropdown-dark-link-hover-bg));
220
- }
221
-
222
- &.active,
223
- &:active {
224
- @include gradient-bg(var(--#{$variable-prefix}dropdown-dark-link-active-bg, $dropdown-dark-link-active-bg));
225
- }
226
- }
235
+ // scss-docs-start dropdown-dark-css-vars
236
+ --#{$prefix}dropdown-color: #{$dropdown-dark-color};
237
+ --#{$prefix}dropdown-bg: #{$dropdown-dark-bg};
238
+ --#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};
239
+ --#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};
240
+ --#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};
241
+ --#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
242
+ --#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
243
+ --#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
244
+ --#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
245
+ --#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
246
+ --#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
247
+ --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
248
+ // scss-docs-end dropdown-dark-css-vars
227
249
  }
package/scss/_footer.scss CHANGED
@@ -1,13 +1,23 @@
1
1
  .footer {
2
+ // scss-docs-start footer-css-vars
3
+ --#{$prefix}footer-min-height: #{$footer-min-height};
4
+ --#{$prefix}footer-padding-x: #{$footer-padding-x};
5
+ --#{$prefix}footer-padding-y: #{$footer-padding-y};
6
+ --#{$prefix}footer-color: #{$footer-color};
7
+ --#{$prefix}footer-bg: #{$footer-bg};
8
+ --#{$prefix}footer-border-color: #{$footer-border-color};
9
+ --#{$prefix}footer-border: #{$footer-border-width} solid var(--#{$prefix}footer-border-color);
10
+ // scss-docs-end footer-css-vars
11
+
2
12
  display: flex;
3
13
  flex-wrap: wrap; // allow us to do the line break for collapsing content
4
14
  align-items: center;
5
15
  justify-content: space-between;
6
- min-height: $footer-min-height;
7
- padding: $footer-padding-y $footer-padding-x;
8
- color: var(--#{$variable-prefix}footer-color, $footer-color);
9
- background: var(--#{$variable-prefix}footer-bg, $footer-bg);
10
- border-top: var(--#{$variable-prefix}footer-border-width, $footer-border-width) solid var(--#{$variable-prefix}footer-border-color, $footer-border-color);
16
+ min-height: var(--#{$prefix}footer-min-height);
17
+ padding: var(--#{$prefix}footer-padding-y) var(--#{$prefix}footer-padding-x);
18
+ color: var(--#{$prefix}footer-color);
19
+ background: var(--#{$prefix}footer-bg);
20
+ border-top: var(--#{$prefix}footer-border);
11
21
  }
12
22
 
13
23
  .footer-fixed {
@@ -40,11 +40,11 @@
40
40
  // stylelint-disable scss/dollar-variable-pattern
41
41
  @function rgba-css-var($identifier, $target) {
42
42
  @if $identifier == "body" and $target == "bg" {
43
- @return rgba(var(--#{$variable-prefix}#{$identifier}-bg-rgb), var(--#{$variable-prefix}#{$target}-opacity));
43
+ @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));
44
44
  } @if $identifier == "body" and $target == "text" {
45
- @return rgba(var(--#{$variable-prefix}#{$identifier}-color-rgb), var(--#{$variable-prefix}#{$target}-opacity));
45
+ @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));
46
46
  } @else {
47
- @return rgba(var(--#{$variable-prefix}#{$identifier}-rgb), var(--#{$variable-prefix}#{$target}-opacity));
47
+ @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));
48
48
  }
49
49
  }
50
50
 
@@ -68,7 +68,7 @@
68
68
  @function varify($list) {
69
69
  $result: null;
70
70
  @each $entry in $list {
71
- $result: append($result, var(--#{$variable-prefix}#{$entry}), space);
71
+ $result: append($result, var(--#{$prefix}#{$entry}), space);
72
72
  }
73
73
  @return $result;
74
74
  }
@@ -177,22 +177,9 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
177
177
  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
178
178
  }
179
179
 
180
- @function contrast-ratio-correction($color, $background, $scale, $state) {
181
- @if ($enable-contrast-ratio-correction) {
182
- $contrast-ratio: contrast-ratio($background, $color);
183
- @if $contrast-ratio < $min-contrast-ratio {
184
- @if $enable-contrast-ratio-warnings {
185
- @warn "#{$state} contrast ratio #{$contrast-ratio}.";
186
- }
187
- @return mix($color, color-contrast($background), abs($scale));
188
- }
189
- }
190
- @return $color;
191
- }
192
-
193
- // Return WCAG2.0 relative luminance
194
- // See https://www.w3.org/WAI/GL/wiki/Relative_luminance
195
- // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
180
+ // Return WCAG2.1 relative luminance
181
+ // See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
182
+ // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
196
183
  @function luminance($color) {
197
184
  $rgb: (
198
185
  "r": red($color),
@@ -234,10 +221,10 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
234
221
  // scss-docs-start alert-color-functions
235
222
  @function alert-color-map($color) {
236
223
  @return (
237
- "bg": shift-color($color, $alert-bg-scale),
238
- "border-color": shift-color($color, $alert-border-scale),
239
- "color": shift-color($color, $alert-color-scale),
240
- "link-color": shade-color(shift-color($color, $alert-color-scale), 20%)
224
+ "alert-bg": shift-color($color, $alert-bg-scale),
225
+ "alert-border": shift-color($color, $alert-border-scale),
226
+ "alert-color": shift-color($color, $alert-color-scale),
227
+ "base-color": $color
241
228
  );
242
229
  }
243
230
  // scss-docs-end alert-color-functions
package/scss/_grid.scss CHANGED
@@ -15,9 +15,9 @@
15
15
  @if $enable-cssgrid {
16
16
  .grid {
17
17
  display: grid;
18
- grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);
19
- grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);
20
- gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});
18
+ grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);
19
+ grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);
20
+ gap: var(--#{$prefix}gap, #{$grid-gutter-width});
21
21
 
22
22
  @include make-cssgrid();
23
23
  }