@coreui/coreui 5.0.0-alpha.0 → 5.0.0-alpha.1

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 (205) 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 +123 -275
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +7 -3
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +151 -138
  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 +160 -146
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +7 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +633 -412
  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 +809 -688
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +7 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +1925 -1617
  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 +2238 -2091
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +7 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +302 -289
  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 +262 -243
  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 +265 -245
  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 +10 -9
  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 +6 -6
  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 +2 -2
  139. package/scss/_buttons.scss +38 -71
  140. package/scss/_callout.scss +2 -2
  141. package/scss/_card.scss +1 -0
  142. package/scss/_carousel.scss +9 -3
  143. package/scss/_close.scss +2 -0
  144. package/scss/_dropdown.scss +10 -10
  145. package/scss/_functions.scss +59 -0
  146. package/scss/_grid.scss +8 -0
  147. package/scss/_header.scss +195 -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 +9 -39
  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 +19 -21
  160. package/scss/_root.scss +65 -64
  161. package/scss/_sidebar.scss +0 -11
  162. package/scss/_subheader.scss +72 -0
  163. package/scss/_tables.scss +18 -11
  164. package/scss/_toasts.scss +2 -2
  165. package/scss/_tooltip.scss +13 -14
  166. package/scss/_utilities.scss +117 -65
  167. package/scss/_variables-dark.scss +115 -55
  168. package/scss/_variables.scss +400 -247
  169. package/scss/coreui-grid.rtl.scss +7 -0
  170. package/scss/coreui-grid.scss +2 -5
  171. package/scss/coreui-reboot.rtl.scss +7 -0
  172. package/scss/coreui-reboot.scss +1 -1
  173. package/scss/coreui-utilities.rtl.scss +7 -0
  174. package/scss/coreui-utilities.scss +1 -1
  175. package/scss/coreui.rtl.scss +7 -0
  176. package/scss/coreui.scss +4 -3
  177. package/scss/forms/_floating-labels.scss +19 -15
  178. package/scss/forms/_form-check.scss +29 -8
  179. package/scss/forms/_form-control.scss +17 -4
  180. package/scss/forms/_form-select.scss +6 -7
  181. package/scss/forms/_input-group.scss +5 -5
  182. package/scss/helpers/_color-bg.scss +12 -2
  183. package/scss/helpers/_colored-links.scss +20 -2
  184. package/scss/helpers/_focus-ring.scss +5 -0
  185. package/scss/helpers/_icon-link.scss +25 -0
  186. package/scss/helpers/_ratio.scss +1 -1
  187. package/scss/helpers/_vr.scss +1 -0
  188. package/scss/mixins/_alert.scss +1 -1
  189. package/scss/mixins/_banner.scss +3 -3
  190. package/scss/mixins/_border-radius.scss +7 -7
  191. package/scss/mixins/_buttons.scss +53 -49
  192. package/scss/mixins/_forms.scss +7 -7
  193. package/scss/mixins/_grid.scss +1 -1
  194. package/scss/mixins/_list-group.scss +12 -20
  195. package/scss/mixins/_lists.scss +1 -1
  196. package/scss/mixins/_ltr-rtl.scss +87 -0
  197. package/scss/mixins/_utilities.scss +6 -1
  198. package/scss/mixins/_visually-hidden.scss +5 -1
  199. package/scss/sidebar/_sidebar-narrow.scss +6 -6
  200. package/scss/sidebar/_sidebar-nav.scss +4 -4
  201. package/scss/sidebar/_sidebar.scss +30 -22
  202. package/scss/vendor/_rfs.scss +24 -30
  203. package/scss/tests/mixins/_color-modes.test.scss +0 -69
  204. package/scss/tests/mixins/_utilities.test.scss +0 -393
  205. package/scss/tests/utilities/_api.test.scss +0 -75
package/scss/_navbar.scss CHANGED
@@ -65,7 +65,7 @@
65
65
  .navbar-brand {
66
66
  padding-top: var(--#{$prefix}navbar-brand-padding-y);
67
67
  padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
68
- margin-right: var(--#{$prefix}navbar-brand-margin-end);
68
+ @include ltr-rtl("margin-right", var(--#{$prefix}navbar-brand-margin-end));
69
69
  @include font-size(var(--#{$prefix}navbar-brand-font-size));
70
70
  color: var(--#{$prefix}navbar-brand-color);
71
71
  text-decoration: if($link-decoration == none, null, none);
@@ -96,13 +96,15 @@
96
96
 
97
97
  display: flex;
98
98
  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
99
- padding-left: 0;
99
+ @include ltr-rtl("padding-left", 0);
100
100
  margin-bottom: 0;
101
101
  list-style: none;
102
102
 
103
- .show > .nav-link,
104
- .nav-link.active {
105
- color: var(--#{$prefix}navbar-active-color);
103
+ .nav-link {
104
+ &.active,
105
+ &.show {
106
+ color: var(--#{$prefix}navbar-active-color);
107
+ }
106
108
  }
107
109
 
108
110
  .dropdown-menu {
@@ -261,10 +263,11 @@
261
263
  // Styles for switching between navbars with light or dark background.
262
264
 
263
265
  .navbar-light {
264
- @include deprecate("`.navbar-light`", "v4.2.0", "v6.0.0", true);
266
+ @include deprecate("`.navbar-light`", "v4.2.6", "v6.0.0", true);
265
267
  }
266
268
 
267
- .navbar-dark {
269
+ .navbar-dark,
270
+ .navbar[data-coreui-theme="dark"] {
268
271
  // scss-docs-start navbar-dark-css-vars
269
272
  --#{$prefix}navbar-color: #{$navbar-dark-color};
270
273
  --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
@@ -279,7 +282,7 @@
279
282
 
280
283
  @if $enable-dark-mode {
281
284
  @include color-mode(dark) {
282
- .navbar {
285
+ .navbar-toggler-icon {
283
286
  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
284
287
  }
285
288
  }
@@ -48,17 +48,17 @@
48
48
 
49
49
  &.offcanvas-start {
50
50
  top: 0;
51
- left: 0;
51
+ @include ltr-rtl("left", 0);
52
52
  width: var(--#{$prefix}offcanvas-width);
53
- border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
54
- transform: translateX(-100%);
53
+ @include ltr-rtl("border-right", var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color));
54
+ @include ltr-rtl-value-only("transform", translateX(-100%), translateX(100%));
55
55
  }
56
56
 
57
57
  &.offcanvas-end {
58
58
  top: 0;
59
- right: 0;
59
+ @include ltr-rtl("right", 0);
60
60
  width: var(--#{$prefix}offcanvas-width);
61
- border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
61
+ @include ltr-rtl("border-left", var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color));
62
62
  transform: translateX(100%);
63
63
  }
64
64
 
@@ -83,7 +83,7 @@
83
83
 
84
84
  &.showing,
85
85
  &.show:not(.hiding) {
86
- transform: none;
86
+ transform: none !important; // stylelint-disable-line declaration-no-important
87
87
  }
88
88
 
89
89
  &.showing,
@@ -117,7 +117,7 @@
117
117
  }
118
118
 
119
119
  .offcanvas-backdrop {
120
- @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);
120
+ @include overlay-backdrop($zindex-offcanvas-backdrop, var(--#{$prefix}offcanvas-backdrop-bg, $offcanvas-backdrop-bg), $offcanvas-backdrop-opacity);
121
121
  }
122
122
 
123
123
  .offcanvas-header {
@@ -129,7 +129,7 @@
129
129
  .btn-close {
130
130
  padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
131
131
  margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
132
- margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));
132
+ @include ltr-rtl("margin-right", calc(-.5 * var(--#{$prefix}offcanvas-padding-x)));
133
133
  margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
134
134
  }
135
135
  }
@@ -72,10 +72,10 @@
72
72
 
73
73
  .page-item {
74
74
  &:not(:first-child) .page-link {
75
- margin-left: $pagination-margin-start;
75
+ @include ltr-rtl("margin-left", $pagination-margin-start);
76
76
  }
77
77
 
78
- @if $pagination-margin-start == calc($pagination-border-width * -1) {
78
+ @if $pagination-margin-start == calc(#{$pagination-border-width} * -1) {
79
79
  &:first-child {
80
80
  .page-link {
81
81
  @include border-start-radius(var(--#{$prefix}pagination-border-radius));
@@ -66,3 +66,46 @@
66
66
  }
67
67
  }
68
68
  }
69
+
70
+ .progress-thin {
71
+ height: 4px;
72
+ }
73
+
74
+ // White progress bar
75
+ .progress.progress-white {
76
+ background-color: rgba(255, 255, 255, .2);
77
+ .progress-bar {
78
+ background-color: $white;
79
+ }
80
+ }
81
+
82
+ .progress-group {
83
+ display: flex;
84
+ flex-flow: row wrap;
85
+ margin-bottom: $progress-group-margin-bottom;
86
+ }
87
+
88
+ .progress-group-prepend {
89
+ flex: 0 0 100px;
90
+ align-self: center;
91
+ }
92
+
93
+ .progress-group-header {
94
+ display: flex;
95
+ flex-basis: 100%;
96
+ align-items: center;
97
+ margin-bottom: $progress-group-header-margin-bottom;
98
+ }
99
+
100
+ .progress-group-bars {
101
+ flex-grow: 1;
102
+ align-self: center;
103
+
104
+ .progress:not(:last-child) {
105
+ margin-bottom: 2px;
106
+ }
107
+ }
108
+
109
+ .progress-group-header + .progress-group-bars {
110
+ flex-basis: 100%;
111
+ }
package/scss/_reboot.scss CHANGED
@@ -87,7 +87,7 @@ hr {
87
87
  font-style: $headings-font-style;
88
88
  font-weight: $headings-font-weight;
89
89
  line-height: $headings-line-height;
90
- color: var(--#{$prefix}heading-color, inherit);
90
+ color: var(--#{$prefix}heading-color);
91
91
  }
92
92
 
93
93
  h1 {
@@ -156,10 +156,10 @@ address {
156
156
 
157
157
  // Lists
158
158
 
159
- ol,
160
- ul {
161
- padding-left: 2rem;
162
- }
159
+ // ol,
160
+ // ul {
161
+ // @include ltr-rtl("padding-left", 2rem); // TODO: find solution
162
+ // }
163
163
 
164
164
  ol,
165
165
  ul,
@@ -183,7 +183,7 @@ dt {
183
183
 
184
184
  dd {
185
185
  margin-bottom: .5rem;
186
- margin-left: 0; // 1
186
+ @include ltr-rtl("margin-left", 0); // 1
187
187
  }
188
188
 
189
189
 
@@ -249,7 +249,6 @@ a {
249
249
  text-decoration: $link-hover-decoration;
250
250
  }
251
251
  }
252
-
253
252
  // And undo these styles for placeholder links/named anchors (without href).
254
253
  // It would be more straightforward to just use a[href] in previous block, but that
255
254
  // causes specificity issues in many other styles that are too complex to fix.
@@ -284,7 +283,7 @@ pre {
284
283
  margin-bottom: 1rem; // 2
285
284
  overflow: auto; // 3
286
285
  @include font-size($code-font-size);
287
- color: $pre-color;
286
+ color: var(--#{$prefix}pre-color, $pre-color);
288
287
 
289
288
  // Account for some code outputs that place code tags in pre tags
290
289
  code {
@@ -308,8 +307,8 @@ code {
308
307
  kbd {
309
308
  padding: $kbd-padding-y $kbd-padding-x;
310
309
  @include font-size($kbd-font-size);
311
- color: $kbd-color;
312
- background-color: $kbd-bg;
310
+ color: var(--#{$prefix}kbd-color, $kbd-color);
311
+ background-color: var(--#{$prefix}kbd-bg, $kbd-bg);
313
312
  @include border-radius($border-radius-sm);
314
313
 
315
314
  kbd {
@@ -349,7 +348,7 @@ table {
349
348
  caption {
350
349
  padding-top: $table-cell-padding-y;
351
350
  padding-bottom: $table-cell-padding-y;
352
- color: $table-caption-color;
351
+ color: var(--#{$prefix}table-caption-color, $table-caption-color);
353
352
  text-align: left;
354
353
  }
355
354
 
@@ -494,7 +493,7 @@ fieldset {
494
493
  // See https://github.com/twbs/bootstrap/issues/29712
495
494
 
496
495
  legend {
497
- float: left; // 1
496
+ @include ltr-rtl("float", left); // 1
498
497
  width: 100%;
499
498
  padding: 0;
500
499
  margin-bottom: $legend-margin-bottom;
@@ -537,17 +536,16 @@ legend {
537
536
 
538
537
  // 1. A few input types should stay LTR
539
538
  // See https://rtlstyling.com/posts/rtl-styling#form-inputs
540
- // 2. RTL only output
541
- // See https://rtlcss.com/learn/usage-guide/control-directives/#raw
542
539
 
543
- /* rtl:raw:
544
- [type="tel"],
545
- [type="url"],
546
- [type="email"],
547
- [type="number"] {
548
- direction: ltr;
540
+ *[dir="rtl"] {
541
+ [type="tel"],
542
+ [type="url"],
543
+ [type="email"],
544
+ [type="number"] {
545
+ direction: ltr;
546
+ }
549
547
  }
550
- */
548
+
551
549
 
552
550
  // Remove the inner padding in Chrome and Safari on macOS.
553
551
 
package/scss/_root.scss CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  // Colors
6
6
  //
7
- // Generate palettes for full colors, grays, and theme colors.
7
+ // Generate palettes for full colors, grays, and theme colors
8
8
 
9
9
  @each $color, $value in $colors {
10
10
  --#{$prefix}#{$color}: #{$value};
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  @each $color, $value in $theme-colors-text {
26
- --#{$prefix}#{$color}-text: #{$value};
26
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
27
27
  }
28
28
 
29
29
  @each $color, $value in $theme-colors-bg-subtle {
@@ -36,8 +36,6 @@
36
36
 
37
37
  --#{$prefix}white-rgb: #{to-rgb($white)};
38
38
  --#{$prefix}black-rgb: #{to-rgb($black)};
39
- --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
40
- --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
41
39
 
42
40
  // Fonts
43
41
 
@@ -56,7 +54,14 @@
56
54
  @include rfs($font-size-base, --#{$prefix}body-font-size);
57
55
  --#{$prefix}body-font-weight: #{$font-weight-base};
58
56
  --#{$prefix}body-line-height: #{$line-height-base};
57
+ @if $body-text-align != null {
58
+ --#{$prefix}body-text-align: #{$body-text-align};
59
+ }
60
+
59
61
  --#{$prefix}body-color: #{$body-color};
62
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
63
+ --#{$prefix}body-bg: #{$body-bg};
64
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
60
65
 
61
66
  --#{$prefix}emphasis-color: #{$body-emphasis-color};
62
67
  --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
@@ -70,17 +75,17 @@
70
75
  --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
71
76
  --#{$prefix}tertiary-bg: #{$body-tertiary-bg};
72
77
  --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
73
-
74
- @if $body-text-align != null {
75
- --#{$prefix}body-text-align: #{$body-text-align};
76
- }
77
- --#{$prefix}body-bg: #{$body-bg};
78
- --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
79
78
  // scss-docs-end root-body-variables
80
79
 
81
- @if $headings-color != null {
82
- --#{$prefix}heading-color: #{$headings-color};
83
- }
80
+ --#{$prefix}high-emphasis: #{$body-color};
81
+ --#{$prefix}medium-emphasis: #{$body-secondary-color};
82
+ --#{$prefix}disabled: #{$body-tertiary-color};
83
+
84
+ --#{$prefix}high-emphasis-inverse: #{$high-emphasis-inverse};
85
+ --#{$prefix}medium-emphasis-inverse: #{$medium-emphasis-inverse};
86
+ --#{$prefix}disabled-inverse: #{$disabled-inverse};
87
+
88
+ --#{$prefix}heading-color: #{$headings-color};
84
89
 
85
90
  --#{$prefix}link-color: #{$link-color};
86
91
  --#{$prefix}link-color-rgb: #{to-rgb($link-color)};
@@ -106,7 +111,8 @@
106
111
  --#{$prefix}border-radius-sm: #{$border-radius-sm};
107
112
  --#{$prefix}border-radius-lg: #{$border-radius-lg};
108
113
  --#{$prefix}border-radius-xl: #{$border-radius-xl};
109
- --#{$prefix}border-radius-2xl: #{$border-radius-2xl};
114
+ --#{$prefix}border-radius-xxl: #{$border-radius-xxl};
115
+ --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v4.3.0 for consistency
110
116
  --#{$prefix}border-radius-pill: #{$border-radius-pill};
111
117
  // scss-docs-end root-border-var
112
118
 
@@ -115,34 +121,25 @@
115
121
  --#{$prefix}box-shadow-lg: #{$box-shadow-lg};
116
122
  --#{$prefix}box-shadow-inset: #{$box-shadow-inset};
117
123
 
118
- --#{$prefix}emphasis-color: #{$emphasis-color};
119
-
120
- // scss-docs-start form-control-vars
121
- --#{$prefix}form-control-bg: var(--#{$prefix}body-bg);
122
- --#{$prefix}form-control-disabled-bg: var(--#{$prefix}secondary-bg);
123
- // scss-docs-end form-control-vars
124
-
125
- --#{$prefix}highlight-bg: #{$mark-bg};
126
-
127
- @each $name, $value in $grid-breakpoints {
128
- --#{$prefix}breakpoint-#{$name}: #{$value};
129
- }
130
-
131
- --#{$prefix}mobile-breakpoint: #{$mobile-breakpoint};
124
+ // Focus styles
125
+ // scss-docs-start root-focus-variables
126
+ --#{$prefix}focus-ring-width: #{$focus-ring-width};
127
+ --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
128
+ --#{$prefix}focus-ring-color: #{$focus-ring-color};
129
+ // scss-docs-end root-focus-variables
130
+
131
+ // scss-docs-start root-form-validation-variables
132
+ --#{$prefix}form-valid-color: #{$form-valid-color};
133
+ --#{$prefix}form-valid-border-color: #{$form-valid-border-color};
134
+ --#{$prefix}form-invalid-color: #{$form-invalid-color};
135
+ --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};
136
+ // scss-docs-end root-form-validation-variables
132
137
  }
133
138
 
134
139
  @if $enable-dark-mode {
135
140
  @include color-mode(dark, true) {
136
141
  color-scheme: dark;
137
142
 
138
- @each $color, $value in $theme-colors-dark {
139
- --#{$prefix}#{$color}: #{$value};
140
- }
141
-
142
- @each $color, $value in $theme-colors-dark-rgb {
143
- --#{$prefix}#{$color}-rgb: #{$value};
144
- }
145
-
146
143
  // scss-docs-start root-dark-mode-vars
147
144
  --#{$prefix}body-color: #{$body-color-dark};
148
145
  --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
@@ -162,34 +159,33 @@
162
159
  --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
163
160
  --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
164
161
 
165
- --#{$prefix}emphasis-color: #{$emphasis-color-dark};
166
-
167
- --#{$prefix}primary-text: #{$primary-text-dark};
168
- --#{$prefix}secondary-text: #{$secondary-text-dark};
169
- --#{$prefix}success-text: #{$success-text-dark};
170
- --#{$prefix}info-text: #{$info-text-dark};
171
- --#{$prefix}warning-text: #{$warning-text-dark};
172
- --#{$prefix}danger-text: #{$danger-text-dark};
173
- --#{$prefix}light-text: #{$light-text-dark};
174
- --#{$prefix}dark-text: #{$dark-text-dark};
175
-
176
- --#{$prefix}primary-bg-subtle: #{$primary-bg-subtle-dark};
177
- --#{$prefix}secondary-bg-subtle: #{$secondary-bg-subtle-dark};
178
- --#{$prefix}success-bg-subtle: #{$success-bg-subtle-dark};
179
- --#{$prefix}info-bg-subtle: #{$info-bg-subtle-dark};
180
- --#{$prefix}warning-bg-subtle: #{$warning-bg-subtle-dark};
181
- --#{$prefix}danger-bg-subtle: #{$danger-bg-subtle-dark};
182
- --#{$prefix}light-bg-subtle: #{$light-bg-subtle-dark};
183
- --#{$prefix}dark-bg-subtle: #{$dark-bg-subtle-dark};
184
-
185
- --#{$prefix}primary-border-subtle: #{$primary-border-subtle-dark};
186
- --#{$prefix}secondary-border-subtle: #{$secondary-border-subtle-dark};
187
- --#{$prefix}success-border-subtle: #{$success-border-subtle-dark};
188
- --#{$prefix}info-border-subtle: #{$info-border-subtle-dark};
189
- --#{$prefix}warning-border-subtle: #{$warning-border-subtle-dark};
190
- --#{$prefix}danger-border-subtle: #{$danger-border-subtle-dark};
191
- --#{$prefix}light-border-subtle: #{$light-border-subtle-dark};
192
- --#{$prefix}dark-border-subtle: #{$dark-border-subtle-dark};
162
+ --#{$prefix}high-emphasis: #{$body-color-dark};
163
+ --#{$prefix}medium-emphasis: #{$body-secondary-color-dark};
164
+ --#{$prefix}disabled: #{$body-tertiary-color-dark};
165
+
166
+ @each $color, $value in $theme-colors-dark {
167
+ --#{$prefix}#{$color}: #{$value};
168
+ }
169
+
170
+ @each $color, $value in $grays-dark {
171
+ --#{$prefix}gray-#{$color}: #{$value};
172
+ }
173
+
174
+ @each $color, $value in $theme-colors-rgb-dark {
175
+ --#{$prefix}#{$color}-rgb: #{$value};
176
+ }
177
+
178
+ @each $color, $value in $theme-colors-text-dark {
179
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
180
+ }
181
+
182
+ @each $color, $value in $theme-colors-bg-subtle-dark {
183
+ --#{$prefix}#{$color}-bg-subtle: #{$value};
184
+ }
185
+
186
+ @each $color, $value in $theme-colors-border-subtle-dark {
187
+ --#{$prefix}#{$color}-border-subtle: #{$value};
188
+ }
193
189
 
194
190
  --#{$prefix}heading-color: #{$headings-color-dark};
195
191
 
@@ -202,6 +198,11 @@
202
198
 
203
199
  --#{$prefix}border-color: #{$border-color-dark};
204
200
  --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};
201
+
202
+ --#{$prefix}form-valid-color: #{$form-valid-color-dark};
203
+ --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};
204
+ --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};
205
+ --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};
205
206
  // scss-docs-end root-dark-mode-vars
206
207
  }
207
208
  }
@@ -1,14 +1,3 @@
1
1
  @import "sidebar/sidebar";
2
2
  @import "sidebar/sidebar-nav";
3
3
  @import "sidebar/sidebar-narrow";
4
-
5
- @if $enable-dark-mode {
6
- @include color-mode(dark) {
7
- .sidebar {
8
- --#{$prefix}sidebar-bg: #{$sidebar-bg-dark};
9
- --#{$prefix}sidebar-color: #{$sidebar-color-dark};
10
- --#{$prefix}sidebar-nav-link-active-bg: #{$sidebar-nav-link-active-bg-dark};
11
- --#{$prefix}sidebar-nav-link-hover-bg: #{$sidebar-nav-link-hover-bg-dark};
12
- }
13
- }
14
- }
@@ -0,0 +1,72 @@
1
+ .subheader {
2
+ position: relative;
3
+ display: flex;
4
+ flex-wrap: wrap; // allow us to do the line break for collapsing content
5
+ align-items: center;
6
+ justify-content: space-between; // space out brand from logo
7
+ min-height: $subheader-min-height;
8
+ padding: $subheader-padding-y $subheader-padding-x;
9
+ background: var(--#{$prefix}subheader-bg, $subheader-bg);
10
+ border-bottom: var(--#{$prefix}subheader-border-width, $subheader-border-width) solid var(--#{$prefix}subheader-border-color, $subheader-border-color);
11
+ }
12
+
13
+ .subheader-sticky {
14
+ position: sticky;
15
+ top: 0;
16
+ z-index: $zindex-fixed - 1;
17
+ }
18
+
19
+ // Subheader nav
20
+ //
21
+ // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
22
+
23
+ .subheader-nav {
24
+ display: flex;
25
+ flex-direction: row; // cannot use `inherit` to get the `.header`s value
26
+ @include ltr-rtl("padding-left", 0);
27
+ margin-bottom: 0;
28
+ list-style: none;
29
+
30
+ .nav-link {
31
+ padding-right: $subheader-nav-link-padding-x;
32
+ padding-left: $subheader-nav-link-padding-x;
33
+ color: var(--#{$prefix}subheader-color, $subheader-color);
34
+
35
+ &:hover,
36
+ &:focus {
37
+ color: var(--#{$prefix}subheader-hover-color, $subheader-hover-color);
38
+ }
39
+
40
+ &.disabled {
41
+ color: var(--#{$prefix}subheader-disabled-color, $subheader-disabled-color);
42
+ }
43
+ }
44
+
45
+ .show > .nav-link,
46
+ .nav-link.active {
47
+ color: var(--#{$prefix}subheader-active-color, $subheader-active-color);
48
+ }
49
+
50
+ .dropdown-menu {
51
+ position: absolute;
52
+ }
53
+ }
54
+
55
+ // Subheader text
56
+ //
57
+ //
58
+
59
+ .subheader-text {
60
+ padding-top: $nav-link-padding-y;
61
+ padding-bottom: $nav-link-padding-y;
62
+ color: var(--#{$prefix}subheader-color, $subheader-color);
63
+
64
+ a {
65
+ color: var(--#{$prefix}subheader-active-color, $subheader-active-color);
66
+
67
+ &:hover,
68
+ &:focus {
69
+ color: var(--#{$prefix}subheader-active-color, $subheader-active-color);
70
+ }
71
+ }
72
+ }
package/scss/_tables.scss CHANGED
@@ -3,6 +3,12 @@
3
3
  //
4
4
 
5
5
  .table {
6
+ // Reset needed for nesting tables
7
+ --#{$prefix}table-color-type: initial;
8
+ --#{$prefix}table-bg-type: initial;
9
+ --#{$prefix}table-color-state: initial;
10
+ --#{$prefix}table-bg-state: initial;
11
+ // End of reset
6
12
  --#{$prefix}table-color: #{$table-color};
7
13
  --#{$prefix}table-bg: #{$table-bg};
8
14
  --#{$prefix}table-border-color: #{$table-border-color};
@@ -16,7 +22,6 @@
16
22
 
17
23
  width: 100%;
18
24
  margin-bottom: $spacer;
19
- color: var(--#{$prefix}table-color);
20
25
  vertical-align: $table-cell-vertical-align;
21
26
  border-color: var(--#{$prefix}table-border-color);
22
27
 
@@ -27,9 +32,11 @@
27
32
  // stylelint-disable-next-line selector-max-universal
28
33
  > :not(caption) > * > * {
29
34
  padding: $table-cell-padding-y $table-cell-padding-x;
35
+ // Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb
36
+ color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));
30
37
  background-color: var(--#{$prefix}table-bg);
31
38
  border-bottom-width: $table-border-width;
32
- box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);
39
+ box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));
33
40
  }
34
41
 
35
42
  > tbody {
@@ -42,7 +49,7 @@
42
49
  }
43
50
 
44
51
  .table-group-divider {
45
- border-top: calc($table-border-width * 2) solid $table-group-separator-color; // stylelint-disable-line function-disallowed-list
52
+ border-top: calc(#{$table-border-width} * 2) solid $table-group-separator-color; // stylelint-disable-line function-disallowed-list
46
53
  }
47
54
 
48
55
  //
@@ -104,16 +111,16 @@
104
111
  // For rows
105
112
  .table-striped {
106
113
  > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
107
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
108
- color: var(--#{$prefix}table-striped-color);
114
+ --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
115
+ --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
109
116
  }
110
117
  }
111
118
 
112
119
  // For columns
113
120
  .table-striped-columns {
114
121
  > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {
115
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
116
- color: var(--#{$prefix}table-striped-color);
122
+ --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
123
+ --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
117
124
  }
118
125
  }
119
126
 
@@ -122,8 +129,8 @@
122
129
  // The `.table-active` class can be added to highlight rows or cells
123
130
 
124
131
  .table-active {
125
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);
126
- color: var(--#{$prefix}table-active-color);
132
+ --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);
133
+ --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);
127
134
  }
128
135
 
129
136
  // Hover effect
@@ -132,8 +139,8 @@
132
139
 
133
140
  .table-hover {
134
141
  > tbody > tr:hover > * {
135
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);
136
- color: var(--#{$prefix}table-hover-color);
142
+ --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);
143
+ --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);
137
144
  }
138
145
  }
139
146
 
package/scss/_toasts.scss CHANGED
@@ -62,8 +62,8 @@
62
62
  @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));
63
63
 
64
64
  .btn-close {
65
- margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list
66
- margin-left: var(--#{$prefix}toast-padding-x);
65
+ @include ltr-rtl("margin-right", calc(-.5 * var(--#{$prefix}toast-padding-x)));
66
+ @include ltr-rtl("margin-left", var(--#{$prefix}toast-padding-x));
67
67
  }
68
68
  }
69
69