@coreui/coreui 4.2.5 → 4.3.0-alpha.0

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 (194) hide show
  1. package/LICENSE +5 -6
  2. package/README.md +2 -2
  3. package/dist/css/coreui-grid.css +36 -83
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +4 -6
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +40 -89
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +8 -12
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +176 -48
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +4 -6
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +180 -54
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +8 -12
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +1328 -95
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +4 -6
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +1237 -101
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +8 -12
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +2372 -889
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +4 -6
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +2295 -902
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +8 -12
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +289 -264
  36. package/dist/js/coreui.bundle.js.map +1 -1
  37. package/dist/js/coreui.bundle.min.js +4 -4
  38. package/dist/js/coreui.bundle.min.js.map +1 -1
  39. package/dist/js/coreui.esm.js +255 -230
  40. package/dist/js/coreui.esm.js.map +1 -1
  41. package/dist/js/coreui.esm.min.js +4 -4
  42. package/dist/js/coreui.esm.min.js.map +1 -1
  43. package/dist/js/coreui.js +258 -232
  44. package/dist/js/coreui.js.map +1 -1
  45. package/dist/js/coreui.min.js +4 -4
  46. package/dist/js/coreui.min.js.map +1 -1
  47. package/js/dist/alert.js +10 -9
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +11 -10
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +10 -9
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +11 -10
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +10 -9
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +5 -5
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +9 -9
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +5 -5
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +6 -5
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +13 -12
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +12 -13
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +10 -9
  70. package/js/dist/navigation.js.map +1 -1
  71. package/js/dist/offcanvas.js +13 -12
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +10 -9
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +14 -13
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +10 -9
  78. package/js/dist/sidebar.js.map +1 -1
  79. package/js/dist/tab.js +13 -12
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +10 -9
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +14 -13
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +10 -9
  86. package/js/dist/util/backdrop.js.map +1 -1
  87. package/js/dist/util/component-functions.js +10 -9
  88. package/js/dist/util/component-functions.js.map +1 -1
  89. package/js/dist/util/config.js +10 -9
  90. package/js/dist/util/config.js.map +1 -1
  91. package/js/dist/util/focustrap.js +6 -5
  92. package/js/dist/util/focustrap.js.map +1 -1
  93. package/js/dist/util/index.js +5 -5
  94. package/js/dist/util/index.js.map +1 -1
  95. package/js/dist/util/sanitizer.js +10 -6
  96. package/js/dist/util/sanitizer.js.map +1 -1
  97. package/js/dist/util/scrollbar.js +10 -9
  98. package/js/dist/util/scrollbar.js.map +1 -1
  99. package/js/dist/util/swipe.js +10 -9
  100. package/js/dist/util/swipe.js.map +1 -1
  101. package/js/dist/util/template-factory.js +10 -9
  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 +4 -4
  106. package/js/src/base-component.js +4 -4
  107. package/js/src/button.js +4 -4
  108. package/js/src/carousel.js +7 -7
  109. package/js/src/collapse.js +5 -5
  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 +2 -2
  113. package/js/src/dom/selector-engine.js +2 -2
  114. package/js/src/dropdown.js +9 -9
  115. package/js/src/modal.js +9 -10
  116. package/js/src/navigation.js +4 -4
  117. package/js/src/offcanvas.js +11 -11
  118. package/js/src/popover.js +3 -3
  119. package/js/src/scrollspy.js +6 -6
  120. package/js/src/sidebar.js +5 -5
  121. package/js/src/tab.js +7 -7
  122. package/js/src/toast.js +4 -4
  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 +6 -4
  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 -4
  133. package/package.json +54 -44
  134. package/scss/_accordion.scss +9 -1
  135. package/scss/_alert.scss +6 -10
  136. package/scss/_badge.scss +2 -1
  137. package/scss/_button-group.scss +4 -4
  138. package/scss/_buttons.scss +23 -1
  139. package/scss/_card.scss +8 -3
  140. package/scss/_carousel.scss +24 -8
  141. package/scss/_close.scss +32 -9
  142. package/scss/_dropdown.scss +3 -3
  143. package/scss/_functions.scss +6 -22
  144. package/scss/_grid.scss +8 -0
  145. package/scss/_helpers.scss +2 -0
  146. package/scss/_list-group.scss +11 -2
  147. package/scss/_maps.scss +125 -0
  148. package/scss/_mixins.scss +1 -4
  149. package/scss/_nav.scss +7 -0
  150. package/scss/_navbar.scss +17 -4
  151. package/scss/_offcanvas.scss +4 -2
  152. package/scss/_pagination.scss +1 -1
  153. package/scss/_progress.scss +10 -1
  154. package/scss/_reboot.scss +2 -3
  155. package/scss/_root.scss +144 -16
  156. package/scss/_tables.scss +18 -15
  157. package/scss/_tooltip.scss +5 -6
  158. package/scss/_type.scss +3 -1
  159. package/scss/_utilities.scss +182 -23
  160. package/scss/_variables-dark.scss +169 -0
  161. package/scss/_variables.scss +357 -340
  162. package/scss/coreui-grid.rtl.scss +2 -7
  163. package/scss/coreui-grid.scss +3 -10
  164. package/scss/coreui-reboot.rtl.scss +2 -7
  165. package/scss/coreui-reboot.scss +4 -7
  166. package/scss/coreui-utilities.rtl.scss +2 -7
  167. package/scss/coreui-utilities.scss +3 -7
  168. package/scss/coreui.rtl.scss +2 -7
  169. package/scss/coreui.scss +3 -7
  170. package/scss/forms/_floating-labels.scss +23 -4
  171. package/scss/forms/_form-check.scss +22 -24
  172. package/scss/forms/_form-control.scss +33 -13
  173. package/scss/forms/_form-range.scss +8 -8
  174. package/scss/forms/_form-select.scss +19 -10
  175. package/scss/forms/_form-text.scss +1 -1
  176. package/scss/forms/_input-group.scss +1 -1
  177. package/scss/forms/_labels.scss +2 -2
  178. package/scss/helpers/_color-bg.scss +12 -2
  179. package/scss/helpers/_colored-links.scss +20 -2
  180. package/scss/helpers/_focus-ring.scss +5 -0
  181. package/scss/helpers/_icon-link.scss +25 -0
  182. package/scss/mixins/_alert.scss +4 -1
  183. package/scss/mixins/_banner.scss +7 -0
  184. package/scss/mixins/_breakpoints.scss +0 -13
  185. package/scss/mixins/_caret.scss +31 -26
  186. package/scss/mixins/_color-mode.scss +21 -0
  187. package/scss/mixins/_forms.scss +8 -7
  188. package/scss/mixins/_grid.scss +1 -1
  189. package/scss/mixins/_list-group.scss +3 -0
  190. package/scss/mixins/_utilities.scss +35 -15
  191. package/scss/mixins/_visually-hidden.scss +5 -1
  192. package/scss/sidebar/_sidebar.scss +10 -2
  193. package/scss/vendor/_rfs.scss +24 -30
  194. package/scss/mixins/_css-vars.scss +0 -87
package/scss/_maps.scss CHANGED
@@ -6,6 +6,95 @@
6
6
  $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
7
7
  // scss-docs-end theme-colors-rgb
8
8
 
9
+ // scss-docs-start theme-text-map
10
+ $theme-colors-text: (
11
+ "primary": $primary-text-emphasis,
12
+ "secondary": $secondary-text-emphasis,
13
+ "success": $success-text-emphasis,
14
+ "info": $info-text-emphasis,
15
+ "warning": $warning-text-emphasis,
16
+ "danger": $danger-text-emphasis,
17
+ "light": $light-text-emphasis,
18
+ "dark": $dark-text-emphasis,
19
+ ) !default;
20
+ // scss-docs-end theme-text-map
21
+
22
+ // scss-docs-start theme-bg-subtle-map
23
+ $theme-colors-bg-subtle: (
24
+ "primary": $primary-bg-subtle,
25
+ "secondary": $secondary-bg-subtle,
26
+ "success": $success-bg-subtle,
27
+ "info": $info-bg-subtle,
28
+ "warning": $warning-bg-subtle,
29
+ "danger": $danger-bg-subtle,
30
+ "light": $light-bg-subtle,
31
+ "dark": $dark-bg-subtle,
32
+ ) !default;
33
+ // scss-docs-end theme-bg-subtle-map
34
+
35
+ // scss-docs-start theme-border-subtle-map
36
+ $theme-colors-border-subtle: (
37
+ "primary": $primary-border-subtle,
38
+ "secondary": $secondary-border-subtle,
39
+ "success": $success-border-subtle,
40
+ "info": $info-border-subtle,
41
+ "warning": $warning-border-subtle,
42
+ "danger": $danger-border-subtle,
43
+ "light": $light-border-subtle,
44
+ "dark": $dark-border-subtle,
45
+ ) !default;
46
+ // scss-docs-end theme-border-subtle-map
47
+
48
+ $theme-colors-rgb-dark: null !default;
49
+ $theme-colors-text-dark: null !default;
50
+ $theme-colors-bg-subtle-dark: null !default;
51
+ $theme-colors-border-subtle-dark: null !default;
52
+
53
+ @if $enable-dark-mode {
54
+ // scss-docs-start theme-colors-rgb-dark
55
+ $theme-colors-rgb-dark: map-loop($theme-colors-dark, to-rgb, "$value") !default;
56
+ // scss-docs-end theme-colors-rgb-dark
57
+
58
+ // scss-docs-start theme-text-dark-map
59
+ $theme-colors-text-dark: (
60
+ "primary": $primary-text-emphasis-dark,
61
+ "secondary": $secondary-text-emphasis-dark,
62
+ "success": $success-text-emphasis-dark,
63
+ "info": $info-text-emphasis-dark,
64
+ "warning": $warning-text-emphasis-dark,
65
+ "danger": $danger-text-emphasis-dark,
66
+ "light": $light-text-emphasis-dark,
67
+ "dark": $dark-text-emphasis-dark,
68
+ ) !default;
69
+ // scss-docs-end theme-text-dark-map
70
+
71
+ // scss-docs-start theme-bg-subtle-dark-map
72
+ $theme-colors-bg-subtle-dark: (
73
+ "primary": $primary-bg-subtle-dark,
74
+ "secondary": $secondary-bg-subtle-dark,
75
+ "success": $success-bg-subtle-dark,
76
+ "info": $info-bg-subtle-dark,
77
+ "warning": $warning-bg-subtle-dark,
78
+ "danger": $danger-bg-subtle-dark,
79
+ "light": $light-bg-subtle-dark,
80
+ "dark": $dark-bg-subtle-dark,
81
+ ) !default;
82
+ // scss-docs-end theme-bg-subtle-dark-map
83
+
84
+ // scss-docs-start theme-border-subtle-dark-map
85
+ $theme-colors-border-subtle-dark: (
86
+ "primary": $primary-border-subtle-dark,
87
+ "secondary": $secondary-border-subtle-dark,
88
+ "success": $success-border-subtle-dark,
89
+ "info": $info-border-subtle-dark,
90
+ "warning": $warning-border-subtle-dark,
91
+ "danger": $danger-border-subtle-dark,
92
+ "light": $light-border-subtle-dark,
93
+ "dark": $dark-border-subtle-dark,
94
+ ) !default;
95
+ // scss-docs-end theme-border-subtle-dark-map
96
+ }
97
+
9
98
  // Utilities maps
10
99
  //
11
100
  // Extends the default `$theme-colors` maps to help create our utilities.
@@ -25,6 +114,17 @@ $utilities-text: map-merge(
25
114
  )
26
115
  ) !default;
27
116
  $utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
117
+
118
+ $utilities-text-emphasis-colors: (
119
+ "primary-emphasis": var(--#{$prefix}primary-text-emphasis),
120
+ "secondary-emphasis": var(--#{$prefix}secondary-text-emphasis),
121
+ "success-emphasis": var(--#{$prefix}success-text-emphasis),
122
+ "info-emphasis": var(--#{$prefix}info-text-emphasis),
123
+ "warning-emphasis": var(--#{$prefix}warning-text-emphasis),
124
+ "danger-emphasis": var(--#{$prefix}danger-text-emphasis),
125
+ "light-emphasis": var(--#{$prefix}light-text-emphasis),
126
+ "dark-emphasis": var(--#{$prefix}dark-text-emphasis)
127
+ ) !default;
28
128
  // scss-docs-end utilities-text-colors
29
129
 
30
130
  // scss-docs-start utilities-bg-colors
@@ -37,18 +137,43 @@ $utilities-bg: map-merge(
37
137
  )
38
138
  ) !default;
39
139
  $utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
140
+
141
+ $utilities-bg-subtle: (
142
+ "primary-subtle": var(--#{$prefix}primary-bg-subtle),
143
+ "secondary-subtle": var(--#{$prefix}secondary-bg-subtle),
144
+ "success-subtle": var(--#{$prefix}success-bg-subtle),
145
+ "info-subtle": var(--#{$prefix}info-bg-subtle),
146
+ "warning-subtle": var(--#{$prefix}warning-bg-subtle),
147
+ "danger-subtle": var(--#{$prefix}danger-bg-subtle),
148
+ "light-subtle": var(--#{$prefix}light-bg-subtle),
149
+ "dark-subtle": var(--#{$prefix}dark-bg-subtle)
150
+ ) !default;
40
151
  // scss-docs-end utilities-bg-colors
41
152
 
42
153
  // scss-docs-start utilities-border-colors
43
154
  $utilities-border: map-merge(
44
155
  $utilities-colors,
45
156
  (
157
+ "black": to-rgb($black),
46
158
  "white": to-rgb($white)
47
159
  )
48
160
  ) !default;
49
161
  $utilities-border-colors: map-loop($utilities-border, rgba-css-var, "$key", "border") !default;
162
+
163
+ $utilities-border-subtle: (
164
+ "primary-subtle": var(--#{$prefix}primary-border-subtle),
165
+ "secondary-subtle": var(--#{$prefix}secondary-border-subtle),
166
+ "success-subtle": var(--#{$prefix}success-border-subtle),
167
+ "info-subtle": var(--#{$prefix}info-border-subtle),
168
+ "warning-subtle": var(--#{$prefix}warning-border-subtle),
169
+ "danger-subtle": var(--#{$prefix}danger-border-subtle),
170
+ "light-subtle": var(--#{$prefix}light-border-subtle),
171
+ "dark-subtle": var(--#{$prefix}dark-border-subtle)
172
+ ) !default;
50
173
  // scss-docs-end utilities-border-colors
51
174
 
175
+ $utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "link-underline") !default;
176
+
52
177
  $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
53
178
 
54
179
  $gutters: $spacers !default;
package/scss/_mixins.scss CHANGED
@@ -13,6 +13,7 @@
13
13
 
14
14
  // Helpers
15
15
  @import "mixins/breakpoints";
16
+ @import "mixins/color-mode";
16
17
  @import "mixins/color-scheme";
17
18
  @import "mixins/image";
18
19
  @import "mixins/resize";
@@ -31,7 +32,6 @@
31
32
  @import "mixins/caret";
32
33
  @import "mixins/pagination";
33
34
  @import "mixins/lists";
34
- @import "mixins/list-group";
35
35
  @import "mixins/forms";
36
36
  @import "mixins/table-variants";
37
37
  @import "mixins/icon";
@@ -46,6 +46,3 @@
46
46
  @import "mixins/clearfix";
47
47
  @import "mixins/container";
48
48
  @import "mixins/grid";
49
-
50
- // CSS Variables
51
- @import "mixins/css-vars";
package/scss/_nav.scss CHANGED
@@ -28,6 +28,8 @@
28
28
  font-weight: var(--#{$prefix}nav-link-font-weight);
29
29
  color: var(--#{$prefix}nav-link-color);
30
30
  text-decoration: if($link-decoration == none, null, none);
31
+ background: none;
32
+ border: 0;
31
33
  @include transition($nav-link-transition);
32
34
 
33
35
  &:hover,
@@ -36,6 +38,11 @@
36
38
  text-decoration: if($link-hover-decoration == underline, none, null);
37
39
  }
38
40
 
41
+ &:focus-visible {
42
+ outline: 0;
43
+ box-shadow: $nav-link-focus-box-shadow;
44
+ }
45
+
39
46
  // Disabled state lightens text
40
47
  &.disabled {
41
48
  color: var(--#{$prefix}nav-link-disabled-color);
package/scss/_navbar.scss CHANGED
@@ -87,6 +87,8 @@
87
87
  // scss-docs-start navbar-nav-css-vars
88
88
  --#{$prefix}nav-link-padding-x: 0;
89
89
  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
90
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
91
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
90
92
  --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
91
93
  --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
92
94
  --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
@@ -98,9 +100,11 @@
98
100
  margin-bottom: 0;
99
101
  list-style: none;
100
102
 
101
- .show > .nav-link,
102
- .nav-link.active {
103
- color: var(--#{$prefix}navbar-active-color);
103
+ .nav-link {
104
+ &.active,
105
+ &.show {
106
+ color: var(--#{$prefix}navbar-active-color);
107
+ }
104
108
  }
105
109
 
106
110
  .dropdown-menu {
@@ -108,6 +112,7 @@
108
112
  }
109
113
  }
110
114
 
115
+
111
116
  // Navbar text
112
117
  //
113
118
  //
@@ -258,7 +263,7 @@
258
263
  // Styles for switching between navbars with light or dark background.
259
264
 
260
265
  .navbar-light {
261
- @include deprecate("`.navbar-light`", "v4.2.5", "v6.0.0", true);
266
+ @include deprecate("`.navbar-light`", "v4.2.6", "v6.0.0", true);
262
267
  }
263
268
 
264
269
  .navbar-dark {
@@ -273,3 +278,11 @@
273
278
  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
274
279
  // scss-docs-end navbar-dark-css-vars
275
280
  }
281
+
282
+ @if $enable-dark-mode {
283
+ @include color-mode(dark) {
284
+ .navbar-toggler-icon {
285
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
286
+ }
287
+ }
288
+ }
@@ -12,6 +12,8 @@
12
12
  --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
13
13
  --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
14
14
  --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
15
+ --#{$prefix}offcanvas-transition: #{transform $offcanvas-transition-duration ease-in-out};
16
+ --#{$prefix}offcanvas-title-line-height: #{$offcanvas-title-line-height};
15
17
  // scss-docs-end offcanvas-css-vars
16
18
  }
17
19
 
@@ -42,7 +44,7 @@
42
44
  background-clip: padding-box;
43
45
  outline: 0;
44
46
  @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));
45
- @include transition(transform $offcanvas-transition-duration ease-in-out);
47
+ @include transition(var(--#{$prefix}offcanvas-transition));
46
48
 
47
49
  &.offcanvas-start {
48
50
  top: 0;
@@ -134,7 +136,7 @@
134
136
 
135
137
  .offcanvas-title {
136
138
  margin-bottom: 0;
137
- line-height: $offcanvas-title-line-height;
139
+ line-height: var(--#{$prefix}offcanvas-title-line-height);
138
140
  }
139
141
 
140
142
  .offcanvas-body {
@@ -75,7 +75,7 @@
75
75
  @include ltr-rtl("margin-left", $pagination-margin-start);
76
76
  }
77
77
 
78
- @if $pagination-margin-start == ($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));
@@ -8,7 +8,8 @@
8
8
  }
9
9
  // scss-docs-end progress-keyframes
10
10
 
11
- .progress {
11
+ .progress,
12
+ .progress-stacked {
12
13
  // scss-docs-start progress-css-vars
13
14
  --#{$prefix}progress-height: #{$progress-height};
14
15
  @include rfs($progress-font-size, --#{$prefix}progress-font-size);
@@ -46,6 +47,14 @@
46
47
  background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
47
48
  }
48
49
 
50
+ .progress-stacked > .progress {
51
+ overflow: visible;
52
+ }
53
+
54
+ .progress-stacked > .progress > .progress-bar {
55
+ width: 100%;
56
+ }
57
+
49
58
  @if $enable-transitions {
50
59
  .progress-bar-animated {
51
60
  animation: $progress-bar-animation-timing progress-bar-stripes;
package/scss/_reboot.scss CHANGED
@@ -241,15 +241,14 @@ sup { top: -.5em; }
241
241
  // Links
242
242
 
243
243
  a {
244
- color: var(--#{$prefix}link-color);
244
+ color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));
245
245
  text-decoration: $link-decoration;
246
246
 
247
247
  &:hover {
248
- color: var(--#{$prefix}link-hover-color);
248
+ --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);
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.
package/scss/_root.scss CHANGED
@@ -1,9 +1,10 @@
1
- :root {
1
+ :root,
2
+ [data-coreui-theme="light"] {
2
3
  // Note: Custom variable values only support SassScript inside `#{}`.
3
4
 
4
5
  // Colors
5
6
  //
6
- // Generate palettes for full colors, grays, and theme colors.
7
+ // Generate palettes for full colors, grays, and theme colors
7
8
 
8
9
  @each $color, $value in $colors {
9
10
  --#{$prefix}#{$color}: #{$value};
@@ -21,10 +22,20 @@
21
22
  --#{$prefix}#{$color}-rgb: #{$value};
22
23
  }
23
24
 
25
+ @each $color, $value in $theme-colors-text {
26
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
27
+ }
28
+
29
+ @each $color, $value in $theme-colors-bg-subtle {
30
+ --#{$prefix}#{$color}-bg-subtle: #{$value};
31
+ }
32
+
33
+ @each $color, $value in $theme-colors-border-subtle {
34
+ --#{$prefix}#{$color}-border-subtle: #{$value};
35
+ }
36
+
24
37
  --#{$prefix}white-rgb: #{to-rgb($white)};
25
38
  --#{$prefix}black-rgb: #{to-rgb($black)};
26
- --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
27
- --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
28
39
 
29
40
  // Fonts
30
41
 
@@ -39,17 +50,57 @@
39
50
  @if $font-size-root != null {
40
51
  --#{$prefix}root-font-size: #{$font-size-root};
41
52
  }
42
- --#{$prefix}body-font-family: #{$font-family-base};
53
+ --#{$prefix}body-font-family: #{inspect($font-family-base)};
43
54
  @include rfs($font-size-base, --#{$prefix}body-font-size);
44
55
  --#{$prefix}body-font-weight: #{$font-weight-base};
45
56
  --#{$prefix}body-line-height: #{$line-height-base};
46
- --#{$prefix}body-color: #{$body-color};
47
57
  @if $body-text-align != null {
48
58
  --#{$prefix}body-text-align: #{$body-text-align};
49
59
  }
60
+
61
+ --#{$prefix}body-color: #{$body-color};
62
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
50
63
  --#{$prefix}body-bg: #{$body-bg};
64
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
65
+
66
+ --#{$prefix}emphasis-color: #{$body-emphasis-color};
67
+ --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
68
+
69
+ --#{$prefix}secondary-color: #{$body-secondary-color};
70
+ --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};
71
+ --#{$prefix}secondary-bg: #{$body-secondary-bg};
72
+ --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};
73
+
74
+ --#{$prefix}tertiary-color: #{$body-tertiary-color};
75
+ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
76
+ --#{$prefix}tertiary-bg: #{$body-tertiary-bg};
77
+ --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
51
78
  // scss-docs-end root-body-variables
52
79
 
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};
89
+
90
+ --#{$prefix}link-color: #{$link-color};
91
+ --#{$prefix}link-color-rgb: #{to-rgb($link-color)};
92
+ --#{$prefix}link-decoration: #{$link-decoration};
93
+
94
+ --#{$prefix}link-hover-color: #{$link-hover-color};
95
+ --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};
96
+
97
+ @if $link-hover-decoration != null {
98
+ --#{$prefix}link-hover-decoration: #{$link-hover-decoration};
99
+ }
100
+
101
+ --#{$prefix}code-color: #{$code-color};
102
+ --#{$prefix}highlight-bg: #{$mark-bg};
103
+
53
104
  // scss-docs-start root-border-var
54
105
  --#{$prefix}border-width: #{$border-width};
55
106
  --#{$prefix}border-style: #{$border-style};
@@ -60,21 +111,98 @@
60
111
  --#{$prefix}border-radius-sm: #{$border-radius-sm};
61
112
  --#{$prefix}border-radius-lg: #{$border-radius-lg};
62
113
  --#{$prefix}border-radius-xl: #{$border-radius-xl};
63
- --#{$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
64
116
  --#{$prefix}border-radius-pill: #{$border-radius-pill};
65
117
  // scss-docs-end root-border-var
66
118
 
67
- --#{$prefix}heading-color: #{$headings-color};
68
- --#{$prefix}link-color: #{$link-color};
69
- --#{$prefix}link-hover-color: #{$link-hover-color};
119
+ --#{$prefix}box-shadow: #{$box-shadow};
120
+ --#{$prefix}box-shadow-sm: #{$box-shadow-sm};
121
+ --#{$prefix}box-shadow-lg: #{$box-shadow-lg};
122
+ --#{$prefix}box-shadow-inset: #{$box-shadow-inset};
123
+
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
137
+ }
70
138
 
71
- --#{$prefix}code-color: #{$code-color};
139
+ @if $enable-dark-mode {
140
+ @include color-mode(dark, true) {
141
+ color-scheme: dark;
72
142
 
73
- --#{$prefix}highlight-bg: #{$mark-bg};
143
+ // scss-docs-start root-dark-mode-vars
144
+ --#{$prefix}body-color: #{$body-color-dark};
145
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
146
+ --#{$prefix}body-bg: #{$body-bg-dark};
147
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};
74
148
 
75
- @each $name, $value in $grid-breakpoints {
76
- --#{$prefix}breakpoint-#{$name}: #{$value};
77
- }
149
+ --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};
150
+ --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};
151
+
152
+ --#{$prefix}secondary-color: #{$body-secondary-color-dark};
153
+ --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
154
+ --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};
155
+ --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};
156
+
157
+ --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};
158
+ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
159
+ --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
160
+ --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
78
161
 
79
- --#{$prefix}-mobile-breakpoint: #{$mobile-breakpoint};
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
+ }
189
+
190
+ --#{$prefix}heading-color: #{$headings-color-dark};
191
+
192
+ --#{$prefix}link-color: #{$link-color-dark};
193
+ --#{$prefix}link-hover-color: #{$link-hover-color-dark};
194
+ --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};
195
+ --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
196
+
197
+ --#{$prefix}code-color: #{$code-color-dark};
198
+
199
+ --#{$prefix}border-color: #{$border-color-dark};
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};
206
+ // scss-docs-end root-dark-mode-vars
207
+ }
80
208
  }
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: ($table-border-width * 2) solid $table-group-separator-color;
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
 
@@ -143,10 +150,6 @@
143
150
  // Table variants set the table cell backgrounds, border colors
144
151
  // and the colors of the striped, hovered & active tables
145
152
 
146
- // @each $color, $value in $table-variants {
147
- // @include table-variant($color, $value);
148
- // }
149
-
150
153
  @each $color, $value in $table-variants {
151
154
  @include table-variant($color, $value);
152
155
  }
@@ -17,7 +17,6 @@
17
17
 
18
18
  z-index: var(--#{$prefix}tooltip-zindex);
19
19
  display: block;
20
- padding: var(--#{$prefix}tooltip-arrow-height);
21
20
  margin: var(--#{$prefix}tooltip-margin);
22
21
  @include deprecate("`$tooltip-margin`", "v5", "v5.x", true);
23
22
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
@@ -45,7 +44,7 @@
45
44
  }
46
45
 
47
46
  .bs-tooltip-top .tooltip-arrow {
48
- bottom: 0;
47
+ bottom: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
49
48
 
50
49
  &::before {
51
50
  top: -1px;
@@ -56,7 +55,7 @@
56
55
 
57
56
  /* rtl:begin:ignore */
58
57
  .bs-tooltip-end .tooltip-arrow {
59
- left: 0;
58
+ left: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
60
59
  width: var(--#{$prefix}tooltip-arrow-height);
61
60
  height: var(--#{$prefix}tooltip-arrow-width);
62
61
 
@@ -70,7 +69,7 @@
70
69
  /* rtl:end:ignore */
71
70
 
72
71
  .bs-tooltip-bottom .tooltip-arrow {
73
- top: 0;
72
+ top: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
74
73
 
75
74
  &::before {
76
75
  bottom: -1px;
@@ -81,7 +80,7 @@
81
80
 
82
81
  /* rtl:begin:ignore */
83
82
  .bs-tooltip-start .tooltip-arrow {
84
- right: 0;
83
+ right: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
85
84
  width: var(--#{$prefix}tooltip-arrow-height);
86
85
  height: var(--#{$prefix}tooltip-arrow-width);
87
86
 
@@ -116,5 +115,5 @@
116
115
  color: var(--#{$prefix}tooltip-color);
117
116
  text-align: center;
118
117
  background-color: var(--#{$prefix}tooltip-bg);
119
- border-radius: var(--#{$prefix}tooltip-border-radius, 0); // stylelint-disable-line property-disallowed-list
118
+ @include border-radius(var(--#{$prefix}tooltip-border-radius));
120
119
  }