@coreui/coreui 4.2.6 → 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 +2293 -900
  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 +16 -3
  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 +354 -337
  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
  //
@@ -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
  }