@coreui/coreui 5.0.0-alpha.0 → 5.0.0-alpha.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 (207) hide show
  1. package/LICENSE +5 -5
  2. package/README.md +2 -2
  3. package/dist/css/coreui-grid.css +34 -192
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +3 -3
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +118 -275
  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 +166 -148
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +3 -3
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +170 -156
  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 +653 -427
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +3 -3
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +824 -703
  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 +2082 -1790
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +3 -3
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +2333 -2213
  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 +313 -292
  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 +273 -246
  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 +276 -248
  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 +7 -6
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +8 -7
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +7 -6
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +8 -7
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +7 -6
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +3 -3
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +7 -7
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +4 -4
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +4 -3
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +10 -9
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +9 -10
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +7 -6
  70. package/js/dist/navigation.js.map +1 -1
  71. package/js/dist/offcanvas.js +11 -10
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +7 -6
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +9 -8
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +7 -6
  78. package/js/dist/sidebar.js.map +1 -1
  79. package/js/dist/tab.js +21 -12
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +7 -6
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +12 -11
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +8 -7
  86. package/js/dist/util/backdrop.js.map +1 -1
  87. package/js/dist/util/component-functions.js +8 -7
  88. package/js/dist/util/component-functions.js.map +1 -1
  89. package/js/dist/util/config.js +8 -7
  90. package/js/dist/util/config.js.map +1 -1
  91. package/js/dist/util/focustrap.js +4 -3
  92. package/js/dist/util/focustrap.js.map +1 -1
  93. package/js/dist/util/index.js +3 -3
  94. package/js/dist/util/index.js.map +1 -1
  95. package/js/dist/util/sanitizer.js +28 -30
  96. package/js/dist/util/sanitizer.js.map +1 -1
  97. package/js/dist/util/scrollbar.js +8 -7
  98. package/js/dist/util/scrollbar.js.map +1 -1
  99. package/js/dist/util/swipe.js +8 -7
  100. package/js/dist/util/swipe.js.map +1 -1
  101. package/js/dist/util/template-factory.js +8 -7
  102. package/js/dist/util/template-factory.js.map +1 -1
  103. package/js/index.esm.js +21 -0
  104. package/js/index.umd.js +38 -0
  105. package/js/src/alert.js +3 -3
  106. package/js/src/base-component.js +3 -3
  107. package/js/src/button.js +4 -3
  108. package/js/src/carousel.js +6 -6
  109. package/js/src/collapse.js +4 -4
  110. package/js/src/dom/data.js +2 -2
  111. package/js/src/dom/event-handler.js +4 -5
  112. package/js/src/dom/manipulator.js +3 -3
  113. package/js/src/dom/selector-engine.js +2 -2
  114. package/js/src/dropdown.js +8 -8
  115. package/js/src/modal.js +8 -9
  116. package/js/src/navigation.js +3 -3
  117. package/js/src/offcanvas.js +11 -11
  118. package/js/src/popover.js +2 -2
  119. package/js/src/scrollspy.js +5 -5
  120. package/js/src/sidebar.js +4 -4
  121. package/js/src/tab.js +19 -9
  122. package/js/src/toast.js +3 -3
  123. package/js/src/tooltip.js +9 -9
  124. package/js/src/util/backdrop.js +3 -3
  125. package/js/src/util/component-functions.js +3 -3
  126. package/js/src/util/config.js +3 -3
  127. package/js/src/util/focustrap.js +2 -2
  128. package/js/src/util/index.js +2 -2
  129. package/js/src/util/sanitizer.js +40 -43
  130. package/js/src/util/scrollbar.js +3 -3
  131. package/js/src/util/swipe.js +3 -3
  132. package/js/src/util/template-factory.js +4 -5
  133. package/package.json +51 -45
  134. package/scss/_alert.scss +5 -5
  135. package/scss/_avatar.scss +4 -4
  136. package/scss/_badge.scss +11 -1
  137. package/scss/_breadcrumb.scss +9 -4
  138. package/scss/_button-group.scss +4 -4
  139. package/scss/_buttons.scss +38 -71
  140. package/scss/_callout.scss +2 -2
  141. package/scss/_card.scss +4 -3
  142. package/scss/_carousel.scss +9 -3
  143. package/scss/_close.scss +3 -0
  144. package/scss/_dropdown.scss +14 -14
  145. package/scss/_functions.scss +59 -0
  146. package/scss/_grid.scss +8 -0
  147. package/scss/_header.scss +186 -0
  148. package/scss/_helpers.scss +2 -0
  149. package/scss/_images.scss +3 -3
  150. package/scss/_list-group.scss +12 -19
  151. package/scss/_maps.scss +75 -21
  152. package/scss/_mixins.scss +6 -4
  153. package/scss/_modal.scss +2 -2
  154. package/scss/_nav.scss +8 -20
  155. package/scss/_navbar.scss +11 -8
  156. package/scss/_offcanvas.scss +8 -8
  157. package/scss/_pagination.scss +2 -2
  158. package/scss/_progress.scss +43 -0
  159. package/scss/_reboot.scss +23 -25
  160. package/scss/_root.scss +70 -63
  161. package/scss/_sidebar.scss +0 -11
  162. package/scss/_tables.scss +18 -11
  163. package/scss/_toasts.scss +2 -2
  164. package/scss/_tooltip.scss +14 -15
  165. package/scss/_type.scss +1 -1
  166. package/scss/_utilities.scss +117 -65
  167. package/scss/_variables-dark.scss +112 -61
  168. package/scss/_variables.scss +401 -268
  169. package/scss/coreui-grid.rtl.scss +4 -0
  170. package/scss/coreui-grid.scss +2 -5
  171. package/scss/coreui-reboot.rtl.scss +4 -0
  172. package/scss/coreui-reboot.scss +1 -1
  173. package/scss/coreui-utilities.rtl.scss +4 -0
  174. package/scss/coreui-utilities.scss +1 -1
  175. package/scss/coreui.rtl.scss +4 -0
  176. package/scss/coreui.scss +3 -3
  177. package/scss/forms/_floating-labels.scss +21 -16
  178. package/scss/forms/_form-check.scss +41 -20
  179. package/scss/forms/_form-control.scss +18 -5
  180. package/scss/forms/_form-range.scss +3 -3
  181. package/scss/forms/_form-select.scss +7 -8
  182. package/scss/forms/_input-group.scss +5 -5
  183. package/scss/helpers/_color-bg.scss +13 -4
  184. package/scss/helpers/_colored-links.scss +20 -2
  185. package/scss/helpers/_focus-ring.scss +5 -0
  186. package/scss/helpers/_icon-link.scss +25 -0
  187. package/scss/helpers/_ratio.scss +1 -1
  188. package/scss/helpers/_vr.scss +2 -1
  189. package/scss/mixins/_alert.scss +1 -1
  190. package/scss/mixins/_banner.scss +3 -3
  191. package/scss/mixins/_border-radius.scss +7 -7
  192. package/scss/mixins/_buttons.scss +53 -49
  193. package/scss/mixins/_caret.scss +3 -3
  194. package/scss/mixins/_forms.scss +7 -7
  195. package/scss/mixins/_grid.scss +1 -1
  196. package/scss/mixins/_list-group.scss +12 -20
  197. package/scss/mixins/_lists.scss +1 -1
  198. package/scss/mixins/_ltr-rtl.scss +87 -0
  199. package/scss/mixins/_utilities.scss +6 -1
  200. package/scss/mixins/_visually-hidden.scss +5 -1
  201. package/scss/sidebar/_sidebar-narrow.scss +37 -17
  202. package/scss/sidebar/_sidebar-nav.scss +115 -20
  203. package/scss/sidebar/_sidebar.scss +98 -139
  204. package/scss/vendor/_rfs.scss +24 -30
  205. package/scss/tests/mixins/_color-modes.test.scss +0 -69
  206. package/scss/tests/mixins/_utilities.test.scss +0 -393
  207. package/scss/tests/utilities/_api.test.scss +0 -75
@@ -0,0 +1,4 @@
1
+ $enable-ltr: false !default;
2
+ $enable-rtl: true !default;
3
+
4
+ @import "coreui-grid";
@@ -1,5 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner(Grid);
2
+ @include bsBanner(Grid);
3
3
 
4
4
  $include-column-box-sizing: true !default;
5
5
 
@@ -8,17 +8,14 @@ $include-column-box-sizing: true !default;
8
8
  @import "variables-dark";
9
9
  @import "maps";
10
10
 
11
- @import "mixins/lists";
11
+ @import "mixins/ltr-rtl";
12
12
  @import "mixins/breakpoints";
13
- @import "mixins/color-mode";
14
13
  @import "mixins/container";
15
14
  @import "mixins/grid";
16
15
  @import "mixins/utilities";
17
16
 
18
17
  @import "vendor/rfs";
19
18
 
20
- @import "root";
21
-
22
19
  @import "containers";
23
20
  @import "grid";
24
21
 
@@ -0,0 +1,4 @@
1
+ $enable-ltr: false !default;
2
+ $enable-rtl: true !default;
3
+
4
+ @import "coreui-reboot";
@@ -1,5 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner(Reboot);
2
+ @include bsBanner(Reboot);
3
3
 
4
4
  @import "functions";
5
5
  @import "variables";
@@ -0,0 +1,4 @@
1
+ $enable-ltr: false !default;
2
+ $enable-rtl: true !default;
3
+
4
+ @import "coreui-utilities";
@@ -1,5 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner(Utilities);
2
+ @include bsBanner(Utilities);
3
3
 
4
4
  // Configuration
5
5
  @import "functions";
@@ -0,0 +1,4 @@
1
+ $enable-ltr: false !default;
2
+ $enable-rtl: true !default;
3
+
4
+ @import "coreui";
package/scss/coreui.scss CHANGED
@@ -1,6 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner("");
3
-
2
+ @include bsBanner("");
4
3
 
5
4
  // scss-docs-start import-stack
6
5
  // Configuration
@@ -46,8 +45,9 @@
46
45
 
47
46
  @import "avatar";
48
47
  @import "callout";
49
- @import "icon";
50
48
  @import "footer";
49
+ @import "header";
50
+ @import "icon";
51
51
  @import "sidebar";
52
52
 
53
53
  // Helpers
@@ -1,29 +1,19 @@
1
1
  .form-floating {
2
2
  position: relative;
3
3
 
4
- &::before:not(.form-control:disabled) {
5
- position: absolute;
6
- top: $input-border-width;
7
- left: $input-border-width;
8
- width: subtract(100%, add($input-height-inner-quarter, $input-height-inner-half));
9
- height: $form-floating-label-height;
10
- content: "";
11
- background-color: $input-bg;
12
- @include border-radius($input-border-radius);
13
- }
14
-
15
4
  > .form-control,
16
5
  > .form-control-plaintext,
17
6
  > .form-select {
18
7
  height: $form-floating-height;
8
+ min-height: $form-floating-height;
19
9
  line-height: $form-floating-line-height;
20
10
  }
21
11
 
22
12
  > label {
23
13
  position: absolute;
24
14
  top: 0;
25
- left: 0;
26
- width: 100%;
15
+ @include ltr-rtl("left", 0);
16
+ z-index: 2;
27
17
  height: 100%; // allow textareas
28
18
  padding: $form-floating-padding-y $form-floating-padding-x;
29
19
  overflow: hidden;
@@ -66,14 +56,24 @@
66
56
  > .form-control-plaintext,
67
57
  > .form-select {
68
58
  ~ label {
69
- opacity: $form-floating-label-opacity;
59
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
70
60
  transform: $form-floating-label-transform;
61
+
62
+ &::after {
63
+ position: absolute;
64
+ inset: $form-floating-padding-y ($form-floating-padding-x * .5);
65
+ z-index: -1;
66
+ height: $form-floating-label-height;
67
+ content: "";
68
+ background-color: $input-bg;
69
+ @include border-radius($input-border-radius);
70
+ }
71
71
  }
72
72
  }
73
73
  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
74
74
  > .form-control:-webkit-autofill {
75
75
  ~ label {
76
- opacity: $form-floating-label-opacity;
76
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
77
77
  transform: $form-floating-label-transform;
78
78
  }
79
79
  }
@@ -84,7 +84,12 @@
84
84
  }
85
85
  }
86
86
 
87
- > .form-control:disabled ~ label {
87
+ > :disabled ~ label,
88
+ > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity
88
89
  color: $form-floating-label-disabled-color;
90
+
91
+ &::after {
92
+ background-color: $input-disabled-bg;
93
+ }
89
94
  }
90
95
  }
@@ -5,24 +5,24 @@
5
5
  .form-check {
6
6
  display: block;
7
7
  min-height: $form-check-min-height;
8
- padding-left: $form-check-padding-start;
8
+ @include ltr-rtl("padding-left", $form-check-padding-start);
9
9
  margin-bottom: $form-check-margin-bottom;
10
10
 
11
11
  .form-check-input {
12
- float: left;
13
- margin-left: $form-check-padding-start * -1;
12
+ @include ltr-rtl("float", left);
13
+ @include ltr-rtl("margin-left", $form-check-padding-start * -1);
14
14
  }
15
15
  }
16
16
 
17
17
  .form-check-reverse {
18
- padding-right: $form-check-padding-start;
19
- padding-left: 0;
20
- text-align: right;
18
+ @include ltr-rtl("padding-right", $form-check-padding-start);
19
+ @include ltr-rtl("padding-left", 0);
20
+ @include ltr-rtl("text-align", right);
21
21
 
22
22
  .form-check-input {
23
- float: right;
24
- margin-right: $form-check-padding-start * -1;
25
- margin-left: 0;
23
+ @include ltr-rtl("float", right);
24
+ @include ltr-rtl("margin-right", $form-check-padding-start * -1);
25
+ @include ltr-rtl("margin-left", 0);
26
26
  }
27
27
  }
28
28
 
@@ -33,13 +33,13 @@
33
33
  height: $form-check-input-width;
34
34
  margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
35
35
  vertical-align: top;
36
+ appearance: none;
36
37
  background-color: var(--#{$prefix}form-check-bg);
37
38
  background-image: var(--#{$prefix}form-check-bg-image);
38
39
  background-repeat: no-repeat;
39
40
  background-position: center;
40
41
  background-size: contain;
41
42
  border: $form-check-input-border;
42
- appearance: none;
43
43
  print-color-adjust: exact; // Keep themed appearance for print
44
44
  @include transition($form-check-transition);
45
45
 
@@ -63,8 +63,8 @@
63
63
  }
64
64
 
65
65
  &:checked {
66
- background-color: $form-check-input-checked-bg-color;
67
- border-color: $form-check-input-checked-border-color;
66
+ background-color: var(--#{$prefix}form-check-input-checked-bg-color, $form-check-input-checked-bg-color);
67
+ border-color: var(--#{$prefix}form-check-input-checked-border-color, $form-check-input-checked-border-color);
68
68
 
69
69
  &[type="checkbox"] {
70
70
  @if $enable-gradients {
@@ -112,7 +112,7 @@
112
112
  }
113
113
 
114
114
  .form-check-label {
115
- color: $form-check-label-color;
115
+ color: var(--#{$prefix}form-check-label-color, $form-check-label-color);
116
116
  cursor: $form-check-label-cursor;
117
117
  }
118
118
 
@@ -121,13 +121,13 @@
121
121
  //
122
122
 
123
123
  .form-switch {
124
- padding-left: $form-switch-padding-start;
124
+ @include ltr-rtl("padding-left", $form-switch-padding-start);
125
125
 
126
126
  .form-check-input {
127
127
  --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)};
128
128
 
129
129
  width: $form-switch-width;
130
- margin-left: $form-switch-padding-start * -1;
130
+ @include ltr-rtl("margin-left", $form-switch-padding-start * -1);
131
131
  background-image: var(--#{$prefix}form-switch-bg);
132
132
  background-position: left center;
133
133
  @include border-radius($form-switch-border-radius);
@@ -149,19 +149,40 @@
149
149
  }
150
150
 
151
151
  &.form-check-reverse {
152
- padding-right: $form-switch-padding-start;
153
- padding-left: 0;
152
+ @include ltr-rtl("padding-right", $form-check-padding-start);
153
+ @include ltr-rtl("padding-left", 0);
154
154
 
155
155
  .form-check-input {
156
- margin-right: $form-switch-padding-start * -1;
157
- margin-left: 0;
156
+ @include ltr-rtl("margin-right", $form-check-padding-start * -1);
157
+ @include ltr-rtl("margin-left", 0);
158
+ }
159
+ }
160
+ }
161
+
162
+ @each $size, $map in $form-switch-widths {
163
+ $width: map-get($map, "width");
164
+ $height: map-get($map, "height");
165
+
166
+ .form-switch-#{$size} {
167
+ min-height: $height;
168
+ @include ltr-rtl("padding-left", $width + .5em);
169
+
170
+ .form-check-input {
171
+ width: $width;
172
+ height: $height;
173
+ @include ltr-rtl("margin-left", ($width + .5em) * -1);
174
+ }
175
+
176
+ .form-check-label {
177
+ // stylelint-disable-next-line function-disallowed-list
178
+ padding-top: calc((#{$height} - #{$font-size-base}) / 2);
158
179
  }
159
180
  }
160
181
  }
161
182
 
162
183
  .form-check-inline {
163
184
  display: inline-block;
164
- margin-right: $form-check-inline-margin-end;
185
+ @include ltr-rtl("margin-right", $form-check-inline-margin-end);
165
186
  }
166
187
 
167
188
  .btn-check {
@@ -11,10 +11,10 @@
11
11
  font-weight: $input-font-weight;
12
12
  line-height: $input-line-height;
13
13
  color: $input-color;
14
+ appearance: none; // Fix appearance for date inputs in Safari
14
15
  background-color: $input-bg;
15
16
  background-clip: padding-box;
16
17
  border: $input-border-width solid $input-border-color;
17
- appearance: none; // Fix appearance for date inputs in Safari
18
18
 
19
19
  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
20
20
  @include border-radius($input-border-radius, 0);
@@ -44,12 +44,24 @@
44
44
  }
45
45
  }
46
46
 
47
- // Add some height to date inputs on iOS
48
- // https://github.com/twbs/bootstrap/issues/23307
49
- // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
50
47
  &::-webkit-date-and-time-value {
48
+ // On Android Chrome, form-control's "width: 100%" makes the input width too small
49
+ // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
50
+ //
51
+ // On iOS Safari, form-control's "appearance: none" + "width: 100%" makes the input width too small
52
+ // Tested under iOS 16.2 / Safari 16.2
53
+ min-width: 85px; // Seems to be a good minimum safe width
54
+
55
+ // Add some height to date inputs on iOS
56
+ // https://github.com/twbs/bootstrap/issues/23307
57
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
51
58
  // Multiply line-height by 1em if it has no unit
52
59
  height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
60
+
61
+ // Android Chrome type="date" is taller than the other inputs
62
+ // because of "margin: 1px 24px 1px 4px" inside the shadow DOM
63
+ // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
64
+ margin: 0;
53
65
  }
54
66
 
55
67
  // Prevent excessive date input height in Webkit
@@ -61,7 +73,7 @@
61
73
 
62
74
  // Placeholder
63
75
  &::placeholder {
64
- color: $input-placeholder-color;
76
+ color: var(--#{$prefix}input-placeholder-color, $input-placeholder-color);
65
77
  // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
66
78
  opacity: 1;
67
79
  }
@@ -193,6 +205,7 @@ textarea {
193
205
  }
194
206
 
195
207
  &::-webkit-color-swatch {
208
+ border: 0 !important; // stylelint-disable-line declaration-no-important
196
209
  @include border-radius($input-border-radius);
197
210
  }
198
211
 
@@ -8,8 +8,8 @@
8
8
  width: 100%;
9
9
  height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
10
10
  padding: 0; // Need to reset padding
11
- background-color: transparent;
12
11
  appearance: none;
12
+ background-color: transparent;
13
13
 
14
14
  &:focus {
15
15
  outline: 0;
@@ -28,12 +28,12 @@
28
28
  width: $form-range-thumb-width;
29
29
  height: $form-range-thumb-height;
30
30
  margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
31
+ appearance: none;
31
32
  @include gradient-bg($form-range-thumb-bg);
32
33
  border: $form-range-thumb-border;
33
34
  @include border-radius($form-range-thumb-border-radius);
34
35
  @include box-shadow($form-range-thumb-box-shadow);
35
36
  @include transition($form-range-thumb-transition);
36
- appearance: none;
37
37
 
38
38
  &:active {
39
39
  @include gradient-bg($form-range-thumb-active-bg);
@@ -54,12 +54,12 @@
54
54
  &::-moz-range-thumb {
55
55
  width: $form-range-thumb-width;
56
56
  height: $form-range-thumb-height;
57
+ appearance: none;
57
58
  @include gradient-bg($form-range-thumb-bg);
58
59
  border: $form-range-thumb-border;
59
60
  @include border-radius($form-range-thumb-border-radius);
60
61
  @include box-shadow($form-range-thumb-box-shadow);
61
62
  @include transition($form-range-thumb-transition);
62
- appearance: none;
63
63
 
64
64
  &:active {
65
65
  @include gradient-bg($form-range-thumb-active-bg);
@@ -8,26 +8,25 @@
8
8
 
9
9
  display: block;
10
10
  width: 100%;
11
- padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
12
- -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
11
+ @include ltr-rtl-value-only("padding", $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x, $form-select-padding-y $form-select-padding-x $form-select-padding-y $form-select-indicator-padding);
13
12
  font-family: $form-select-font-family;
14
13
  @include font-size($form-select-font-size);
15
14
  font-weight: $form-select-font-weight;
16
15
  line-height: $form-select-line-height;
17
16
  color: $form-select-color;
17
+ appearance: none;
18
18
  background-color: $form-select-bg;
19
19
  background-image: var(--#{$prefix}form-select-bg-img), var(--#{$prefix}form-select-bg-icon, none);
20
20
  background-repeat: no-repeat;
21
- background-position: $form-select-bg-position;
21
+ @include ltr-rtl-value-only("background-position", $form-select-bg-position);
22
22
  background-size: $form-select-bg-size;
23
23
  border: $form-select-border-width solid $form-select-border-color;
24
24
  @include border-radius($form-select-border-radius, 0);
25
25
  @include box-shadow($form-select-box-shadow);
26
26
  @include transition($form-select-transition);
27
- appearance: none;
28
27
 
29
28
  &:focus {
30
- border-color: $form-select-focus-border-color;
29
+ border-color: var($form-select-focus-border-color);
31
30
  outline: 0;
32
31
  @if $enable-shadows {
33
32
  @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
@@ -39,7 +38,7 @@
39
38
 
40
39
  &[multiple],
41
40
  &[size]:not([size="1"]) {
42
- padding-right: $form-select-padding-x;
41
+ @include ltr-rtl("padding-right", $form-select-padding-x);
43
42
  background-image: none;
44
43
  }
45
44
 
@@ -59,7 +58,7 @@
59
58
  .form-select-sm {
60
59
  padding-top: $form-select-padding-y-sm;
61
60
  padding-bottom: $form-select-padding-y-sm;
62
- padding-left: $form-select-padding-x-sm;
61
+ @include ltr-rtl("padding-left", $form-select-padding-x-sm);
63
62
  @include font-size($form-select-font-size-sm);
64
63
  @include border-radius($form-select-border-radius-sm);
65
64
  }
@@ -67,7 +66,7 @@
67
66
  .form-select-lg {
68
67
  padding-top: $form-select-padding-y-lg;
69
68
  padding-bottom: $form-select-padding-y-lg;
70
- padding-left: $form-select-padding-x-lg;
69
+ @include ltr-rtl("padding-left", $form-select-padding-x-lg);
71
70
  @include font-size($form-select-font-size-lg);
72
71
  @include border-radius($form-select-border-radius-lg);
73
72
  }
@@ -51,11 +51,11 @@
51
51
  @include font-size($input-font-size); // Match inputs
52
52
  font-weight: $input-group-addon-font-weight;
53
53
  line-height: $input-line-height;
54
- color: $input-group-addon-color;
54
+ color: var(--#{$prefix}input-group-addon-color, $input-group-addon-color);
55
55
  text-align: center;
56
56
  white-space: nowrap;
57
- background-color: $input-group-addon-bg;
58
- border: $input-border-width solid $input-group-addon-border-color;
57
+ background-color: var(--#{$prefix}input-group-addon-bg, $input-group-addon-bg);
58
+ border: $input-border-width solid var(--#{$prefix}input-group-addon-border-color, $input-group-addon-border-color);
59
59
  @include border-radius($input-border-radius);
60
60
  }
61
61
 
@@ -85,7 +85,7 @@
85
85
 
86
86
  .input-group-lg > .form-select,
87
87
  .input-group-sm > .form-select {
88
- padding-right: $form-select-padding-x + $form-select-indicator-padding;
88
+ @include ltr-rtl("padding-right", $form-select-padding-x + $form-select-indicator-padding);
89
89
  }
90
90
 
91
91
 
@@ -121,7 +121,7 @@
121
121
  }
122
122
 
123
123
  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
124
- margin-left: calc($input-border-width * -1); // stylelint-disable-line function-disallowed-list
124
+ @include ltr-rtl("margin-left", calc(#{$input-border-width} * -1));
125
125
  @include border-start-radius(0);
126
126
  }
127
127
 
@@ -1,10 +1,19 @@
1
- // stylelint-disable function-name-case
2
-
3
1
  // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
4
2
  @each $color, $value in $theme-colors {
5
- $color-rgb: to-rgb($value);
6
3
  .text-bg-#{$color} {
7
4
  color: color-contrast($value) if($enable-important-utilities, !important, null);
8
- background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
5
+ background-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
6
+ }
7
+ }
8
+
9
+ @if $enable-dark-mode {
10
+ @include color-mode(dark) {
11
+ @each $color, $value in $theme-colors-dark {
12
+ $color-rgb: to-rgb($value);
13
+ .text-bg-#{$color} {
14
+ color: color-contrast($value) if($enable-important-utilities, !important, null);
15
+ background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
16
+ }
17
+ }
9
18
  }
10
19
  }
@@ -1,12 +1,30 @@
1
+ // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
1
2
  @each $color, $value in $theme-colors {
2
3
  .link-#{$color} {
3
- color: $value if($enable-important-utilities, !important, null);
4
+ color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
5
+ text-decoration-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
4
6
 
5
7
  @if $link-shade-percentage != 0 {
6
8
  &:hover,
7
9
  &:focus {
8
- color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) if($enable-important-utilities, !important, null);
10
+ $hover-color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));
11
+ color: RGBA(#{to-rgb($hover-color)}, var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
12
+ text-decoration-color: RGBA(to-rgb($hover-color), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
9
13
  }
10
14
  }
11
15
  }
12
16
  }
17
+
18
+ // One-off special link helper as a bridge until v6
19
+ .link-body-emphasis {
20
+ color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
21
+ text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
22
+
23
+ @if $link-shade-percentage != 0 {
24
+ &:hover,
25
+ &:focus {
26
+ color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, .75)) if($enable-important-utilities, !important, null);
27
+ text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, .75)) if($enable-important-utilities, !important, null);
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ .focus-ring:focus {
2
+ outline: 0;
3
+ // By default, there is no `--cui-focus-ring-x`, `--cui-focus-ring-y`, or `--cui-focus-ring-blur`, but we provide CSS variables with fallbacks to initial `0` values
4
+ box-shadow: var(--#{$prefix}focus-ring-x, 0) var(--#{$prefix}focus-ring-y, 0) var(--#{$prefix}focus-ring-blur, 0) var(--#{$prefix}focus-ring-width) var(--#{$prefix}focus-ring-color);
5
+ }
@@ -0,0 +1,25 @@
1
+ .icon-link {
2
+ display: inline-flex;
3
+ gap: $icon-link-gap;
4
+ align-items: center;
5
+ text-decoration-color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, .5));
6
+ text-underline-offset: $icon-link-underline-offset;
7
+ backface-visibility: hidden;
8
+
9
+ > .bi {
10
+ flex-shrink: 0;
11
+ width: $icon-link-icon-size;
12
+ height: $icon-link-icon-size;
13
+ fill: currentcolor;
14
+ @include transition($icon-link-icon-transition);
15
+ }
16
+ }
17
+
18
+ .icon-link-hover {
19
+ &:hover,
20
+ &:focus-visible {
21
+ > .bi {
22
+ transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform);
23
+ }
24
+ }
25
+ }
@@ -13,7 +13,7 @@
13
13
  > * {
14
14
  position: absolute;
15
15
  top: 0;
16
- left: 0;
16
+ @include ltr-rtl("left", 0);
17
17
  width: 100%;
18
18
  height: 100%;
19
19
  }
@@ -1,8 +1,9 @@
1
1
  .vr {
2
2
  display: inline-block;
3
3
  align-self: stretch;
4
- width: 1px;
4
+ width: $vr-border-width;
5
5
  min-height: 1em;
6
+ padding: 0;
6
7
  background-color: currentcolor;
7
8
  opacity: $hr-opacity;
8
9
  }
@@ -1,4 +1,4 @@
1
- @include deprecate("`alert-variant()`", "v5.0.0", "v6.0.0");
1
+ @include deprecate("`alert-variant()`", "v4.3.0", "v6.0.0");
2
2
 
3
3
  // scss-docs-start alert-variant-mixin
4
4
  @mixin alert-variant($background, $border, $color) {
@@ -1,7 +1,7 @@
1
- @mixin cuiBanner($file) {
1
+ @mixin bsBanner($file) {
2
2
  /*!
3
- * CoreUI #{$file} v5.0.0-alpha.0 (https://getbootstrap.com/)
4
- * Copyright (c) 2022 creativeLabs Łukasz Holeczek
3
+ * CoreUI #{$file} v5.0.0-alpha.2 (https://coreui.io)
4
+ * Copyright (c) 2023 creativeLabs Łukasz Holeczek
5
5
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
6
6
  */
7
7
  }
@@ -33,8 +33,8 @@
33
33
 
34
34
  @mixin border-end-radius($radius: $border-radius) {
35
35
  @if $enable-rounded {
36
- border-top-right-radius: valid-radius($radius);
37
- border-bottom-right-radius: valid-radius($radius);
36
+ @include ltr-rtl("border-top-right-radius", valid-radius($radius));
37
+ @include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
38
38
  }
39
39
  }
40
40
 
@@ -47,8 +47,8 @@
47
47
 
48
48
  @mixin border-start-radius($radius: $border-radius) {
49
49
  @if $enable-rounded {
50
- border-top-left-radius: valid-radius($radius);
51
- border-bottom-left-radius: valid-radius($radius);
50
+ @include ltr-rtl("border-top-left-radius", valid-radius($radius));
51
+ @include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
52
52
  }
53
53
  }
54
54
 
@@ -60,19 +60,19 @@
60
60
 
61
61
  @mixin border-top-end-radius($radius: $border-radius) {
62
62
  @if $enable-rounded {
63
- border-top-right-radius: valid-radius($radius);
63
+ @include ltr-rtl("border-top-right-radius", valid-radius($radius));
64
64
  }
65
65
  }
66
66
 
67
67
  @mixin border-bottom-end-radius($radius: $border-radius) {
68
68
  @if $enable-rounded {
69
- border-bottom-right-radius: valid-radius($radius);
69
+ @include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
70
70
  }
71
71
  }
72
72
 
73
73
  @mixin border-bottom-start-radius($radius: $border-radius) {
74
74
  @if $enable-rounded {
75
- border-bottom-left-radius: valid-radius($radius);
75
+ @include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
76
76
  }
77
77
  }
78
78
  // scss-docs-end border-radius-mixins