@coreui/coreui 4.2.6 → 5.0.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 (205) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +1 -1
  3. package/dist/css/coreui-grid.css +133 -22
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +3 -5
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +216 -113
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +3 -11
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +151 -36
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +3 -5
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +159 -47
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +3 -11
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +1116 -104
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +3 -5
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +1261 -246
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +3 -11
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +2412 -1220
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +3 -5
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +2821 -1574
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +3 -11
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +80 -80
  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 +78 -78
  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 +80 -80
  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 +5 -5
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +6 -6
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +5 -5
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +5 -5
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +5 -5
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +6 -6
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +6 -6
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +7 -7
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +6 -6
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +7 -7
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +5 -5
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +5 -5
  70. package/js/dist/navigation.js.map +1 -1
  71. package/js/dist/offcanvas.js +6 -6
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +5 -5
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +12 -12
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +5 -5
  78. package/js/dist/sidebar.js.map +1 -1
  79. package/js/dist/tab.js +5 -5
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +5 -5
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +6 -6
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +6 -6
  86. package/js/dist/util/backdrop.js.map +1 -1
  87. package/js/dist/util/component-functions.js +6 -6
  88. package/js/dist/util/component-functions.js.map +1 -1
  89. package/js/dist/util/config.js +6 -6
  90. package/js/dist/util/config.js.map +1 -1
  91. package/js/dist/util/focustrap.js +6 -6
  92. package/js/dist/util/focustrap.js.map +1 -1
  93. package/js/dist/util/index.js +6 -6
  94. package/js/dist/util/index.js.map +1 -1
  95. package/js/dist/util/sanitizer.js +6 -6
  96. package/js/dist/util/sanitizer.js.map +1 -1
  97. package/js/dist/util/scrollbar.js +6 -6
  98. package/js/dist/util/scrollbar.js.map +1 -1
  99. package/js/dist/util/swipe.js +6 -6
  100. package/js/dist/util/swipe.js.map +1 -1
  101. package/js/dist/util/template-factory.js +6 -6
  102. package/js/dist/util/template-factory.js.map +1 -1
  103. package/js/src/alert.js +2 -2
  104. package/js/src/base-component.js +3 -3
  105. package/js/src/button.js +2 -3
  106. package/js/src/carousel.js +2 -2
  107. package/js/src/collapse.js +2 -2
  108. package/js/src/dom/data.js +3 -3
  109. package/js/src/dom/event-handler.js +3 -3
  110. package/js/src/dom/manipulator.js +4 -4
  111. package/js/src/dom/selector-engine.js +3 -3
  112. package/js/src/dropdown.js +4 -4
  113. package/js/src/modal.js +2 -2
  114. package/js/src/navigation.js +2 -2
  115. package/js/src/offcanvas.js +3 -3
  116. package/js/src/popover.js +2 -2
  117. package/js/src/scrollspy.js +6 -6
  118. package/js/src/sidebar.js +2 -2
  119. package/js/src/tab.js +2 -2
  120. package/js/src/toast.js +2 -2
  121. package/js/src/tooltip.js +3 -3
  122. package/js/src/util/backdrop.js +3 -3
  123. package/js/src/util/component-functions.js +3 -3
  124. package/js/src/util/config.js +3 -3
  125. package/js/src/util/focustrap.js +3 -3
  126. package/js/src/util/index.js +3 -3
  127. package/js/src/util/sanitizer.js +3 -3
  128. package/js/src/util/scrollbar.js +3 -3
  129. package/js/src/util/swipe.js +3 -3
  130. package/js/src/util/template-factory.js +4 -3
  131. package/package.json +9 -6
  132. package/scss/_accordion.scss +9 -1
  133. package/scss/_alert.scss +9 -13
  134. package/scss/_avatar.scss +4 -4
  135. package/scss/_badge.scss +1 -10
  136. package/scss/_breadcrumb.scss +4 -9
  137. package/scss/_button-group.scss +4 -4
  138. package/scss/_buttons.scss +70 -15
  139. package/scss/_callout.scss +2 -2
  140. package/scss/_card.scss +7 -3
  141. package/scss/_carousel.scss +17 -7
  142. package/scss/_close.scss +30 -9
  143. package/scss/_dropdown.scss +9 -9
  144. package/scss/_functions.scss +6 -81
  145. package/scss/_images.scss +3 -3
  146. package/scss/_list-group.scss +22 -6
  147. package/scss/_maps.scss +71 -0
  148. package/scss/_mixins.scss +4 -9
  149. package/scss/_modal.scss +2 -2
  150. package/scss/_nav.scss +41 -4
  151. package/scss/_navbar.scss +14 -3
  152. package/scss/_offcanvas.scss +12 -10
  153. package/scss/_pagination.scss +2 -2
  154. package/scss/_progress.scss +10 -44
  155. package/scss/_reboot.scss +22 -21
  156. package/scss/_root.scss +133 -6
  157. package/scss/_sidebar.scss +11 -0
  158. package/scss/_tables.scss +1 -5
  159. package/scss/_toasts.scss +2 -2
  160. package/scss/_tooltip.scss +10 -10
  161. package/scss/_type.scss +3 -1
  162. package/scss/_utilities.scss +160 -53
  163. package/scss/_variables-dark.scss +109 -0
  164. package/scss/_variables.scss +402 -538
  165. package/scss/coreui-grid.scss +4 -8
  166. package/scss/coreui-reboot.scss +4 -7
  167. package/scss/coreui-utilities.scss +3 -7
  168. package/scss/coreui.scss +5 -10
  169. package/scss/forms/_floating-labels.scss +16 -1
  170. package/scss/forms/_form-check.scss +30 -53
  171. package/scss/forms/_form-control.scss +18 -11
  172. package/scss/forms/_form-range.scss +8 -8
  173. package/scss/forms/_form-select.scss +24 -14
  174. package/scss/forms/_form-text.scss +1 -1
  175. package/scss/forms/_input-group.scss +5 -5
  176. package/scss/forms/_labels.scss +2 -2
  177. package/scss/helpers/_colored-links.scss +2 -2
  178. package/scss/helpers/_ratio.scss +1 -1
  179. package/scss/helpers/_vr.scss +0 -1
  180. package/scss/mixins/_alert.scss +4 -1
  181. package/scss/mixins/_banner.scss +7 -0
  182. package/scss/mixins/_border-radius.scss +7 -7
  183. package/scss/mixins/_breakpoints.scss +0 -13
  184. package/scss/mixins/_buttons.scss +49 -53
  185. package/scss/mixins/_caret.scss +31 -26
  186. package/scss/mixins/_color-mode.scss +21 -0
  187. package/scss/mixins/_forms.scss +15 -14
  188. package/scss/mixins/_grid.scss +2 -2
  189. package/scss/mixins/_list-group.scss +22 -11
  190. package/scss/mixins/_lists.scss +1 -1
  191. package/scss/mixins/_utilities.scss +29 -14
  192. package/scss/sidebar/_sidebar-narrow.scss +6 -6
  193. package/scss/sidebar/_sidebar-nav.scss +4 -4
  194. package/scss/sidebar/_sidebar.scss +20 -20
  195. package/scss/tests/mixins/_color-modes.test.scss +69 -0
  196. package/scss/tests/mixins/_utilities.test.scss +393 -0
  197. package/scss/tests/utilities/_api.test.scss +75 -0
  198. package/scss/_header.scss +0 -195
  199. package/scss/_subheader.scss +0 -72
  200. package/scss/coreui-grid.rtl.scss +0 -12
  201. package/scss/coreui-reboot.rtl.scss +0 -12
  202. package/scss/coreui-utilities.rtl.scss +0 -12
  203. package/scss/coreui.rtl.scss +0 -12
  204. package/scss/mixins/_css-vars.scss +0 -87
  205. package/scss/mixins/_ltr-rtl.scss +0 -87
@@ -33,8 +33,8 @@
33
33
 
34
34
  @mixin border-end-radius($radius: $border-radius) {
35
35
  @if $enable-rounded {
36
- @include ltr-rtl("border-top-right-radius", valid-radius($radius));
37
- @include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
36
+ border-top-right-radius: valid-radius($radius);
37
+ border-bottom-right-radius: valid-radius($radius);
38
38
  }
39
39
  }
40
40
 
@@ -47,8 +47,8 @@
47
47
 
48
48
  @mixin border-start-radius($radius: $border-radius) {
49
49
  @if $enable-rounded {
50
- @include ltr-rtl("border-top-left-radius", valid-radius($radius));
51
- @include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
50
+ border-top-left-radius: valid-radius($radius);
51
+ border-bottom-left-radius: valid-radius($radius);
52
52
  }
53
53
  }
54
54
 
@@ -60,19 +60,19 @@
60
60
 
61
61
  @mixin border-top-end-radius($radius: $border-radius) {
62
62
  @if $enable-rounded {
63
- @include ltr-rtl("border-top-right-radius", valid-radius($radius));
63
+ border-top-right-radius: valid-radius($radius);
64
64
  }
65
65
  }
66
66
 
67
67
  @mixin border-bottom-end-radius($radius: $border-radius) {
68
68
  @if $enable-rounded {
69
- @include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
69
+ border-bottom-right-radius: valid-radius($radius);
70
70
  }
71
71
  }
72
72
 
73
73
  @mixin border-bottom-start-radius($radius: $border-radius) {
74
74
  @if $enable-rounded {
75
- @include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
75
+ border-bottom-left-radius: valid-radius($radius);
76
76
  }
77
77
  }
78
78
  // scss-docs-end border-radius-mixins
@@ -22,19 +22,6 @@
22
22
  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
23
23
  }
24
24
 
25
- // Name of the previous breakpoint, or null for the first breakpoint.
26
- //
27
- // >> breakpoint-before(lg)
28
- // md
29
- // >> breakpoint-next(lg, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
30
- // md
31
- // >> breakpoint-next(lg, $breakpoint-names: (xs sm md lg xl))
32
- // md
33
- @function breakpoint-before($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
34
- $n: index($breakpoint-names, $name);
35
- @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n - 1), null);
36
- }
37
-
38
25
  // Minimum breakpoint width. Null for the smallest (first) breakpoint.
39
26
  //
40
27
  // >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
@@ -4,91 +4,87 @@
4
4
  // and disabled options for all buttons
5
5
 
6
6
  // scss-docs-start btn-variant-mixin
7
- @mixin button-variant($variant) {
8
- $background: map-get($variant, "bg");
9
- $border-color: map-get($variant, "border-color");
10
- $color: map-get($variant, "color");
11
- $hover-background: map-get($variant, "hover-bg");
12
- $hover-border-color: map-get($variant, "hover-border-color");
13
- $hover-color: map-get($variant, "hover-color");
14
- $active-background: map-get($variant, "active-bg");
15
- $active-border-color: map-get($variant, "active-border-color");
16
- $active-color: map-get($variant, "active-color");
17
- $disabled-background: map-get($variant, "disabled-bg");
18
- $disabled-border-color: map-get($variant, "disabled-border-color");
19
- $disabled-color: map-get($variant, "disabled-color");
20
- $shadow: map-get($variant, "shadow");
21
-
7
+ @mixin button-variant(
8
+ $background,
9
+ $border,
10
+ $color: color-contrast($background),
11
+ $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
12
+ $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
13
+ $hover-color: color-contrast($hover-background),
14
+ $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
15
+ $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
16
+ $active-color: color-contrast($active-background),
17
+ $disabled-background: $background,
18
+ $disabled-border: $border,
19
+ $disabled-color: color-contrast($disabled-background)
20
+ ) {
22
21
  --#{$prefix}btn-color: #{$color};
23
22
  --#{$prefix}btn-bg: #{$background};
24
- --#{$prefix}btn-border-color: #{$border-color};
23
+ --#{$prefix}btn-border-color: #{$border};
25
24
  --#{$prefix}btn-hover-color: #{$hover-color};
26
25
  --#{$prefix}btn-hover-bg: #{$hover-background};
27
- --#{$prefix}btn-hover-border-color: #{$hover-border-color};
28
- --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border-color, 15%))};
26
+ --#{$prefix}btn-hover-border-color: #{$hover-border};
27
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};
29
28
  --#{$prefix}btn-active-color: #{$active-color};
30
29
  --#{$prefix}btn-active-bg: #{$active-background};
31
- --#{$prefix}btn-active-border-color: #{$active-border-color};
30
+ --#{$prefix}btn-active-border-color: #{$active-border};
32
31
  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
33
32
  --#{$prefix}btn-disabled-color: #{$disabled-color};
34
33
  --#{$prefix}btn-disabled-bg: #{$disabled-background};
35
- --#{$prefix}btn-disabled-border-color: #{$disabled-border-color};
34
+ --#{$prefix}btn-disabled-border-color: #{$disabled-border};
36
35
  }
37
36
  // scss-docs-end btn-variant-mixin
38
37
 
39
38
  // scss-docs-start btn-outline-variant-mixin
40
- @mixin button-outline-variant($variant) {
41
- $color: map-get($variant, "color");
42
- $hover-background: map-get($variant, "hover-bg");
43
- $hover-border-color: map-get($variant, "hover-border-color");
44
- $hover-color: map-get($variant, "hover-color");
45
- $active-background: map-get($variant, "active-bg");
46
- $active-border-color: map-get($variant, "active-border-color");
47
- $active-color: map-get($variant, "active-color");
48
- $disabled-color: map-get($variant, "disabled-color");
49
- $shadow: map-get($variant, "shadow");
50
-
39
+ @mixin button-outline-variant(
40
+ $color,
41
+ $color-hover: color-contrast($color),
42
+ $active-background: $color,
43
+ $active-border: $color,
44
+ $active-color: color-contrast($active-background)
45
+ ) {
51
46
  --#{$prefix}btn-color: #{$color};
52
47
  --#{$prefix}btn-border-color: #{$color};
53
- --#{$prefix}btn-hover-color: #{$hover-color};
48
+ --#{$prefix}btn-hover-color: #{$color-hover};
54
49
  --#{$prefix}btn-hover-bg: #{$active-background};
55
- --#{$prefix}btn-hover-border-color: #{$active-border-color};
50
+ --#{$prefix}btn-hover-border-color: #{$active-border};
56
51
  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
57
52
  --#{$prefix}btn-active-color: #{$active-color};
58
53
  --#{$prefix}btn-active-bg: #{$active-background};
59
- --#{$prefix}btn-active-border-color: #{$active-border-color};
54
+ --#{$prefix}btn-active-border-color: #{$active-border};
60
55
  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
61
56
  --#{$prefix}btn-disabled-color: #{$color};
62
57
  --#{$prefix}btn-disabled-bg: transparent;
58
+ --#{$prefix}btn-disabled-border-color: #{$color};
63
59
  --#{$prefix}gradient: none;
64
60
  }
65
61
  // scss-docs-end btn-outline-variant-mixin
66
62
 
67
63
  // scss-docs-start btn-ghost-variant-mixin
68
- @mixin button-ghost-variant($variant) {
69
- $color: map-get($variant, "color");
70
- $hover-background: map-get($variant, "hover-bg");
71
- $hover-border-color: map-get($variant, "hover-border-color");
72
- $hover-color: map-get($variant, "hover-color");
73
- $active-background: map-get($variant, "active-bg");
74
- $active-border-color: map-get($variant, "active-border-color");
75
- $active-color: map-get($variant, "active-color");
76
- $disabled-color: map-get($variant, "disabled-color");
77
- $shadow: map-get($variant, "shadow");
78
-
64
+ @mixin button-ghost-variant(
65
+ $color,
66
+ $color-hover: color-contrast($color),
67
+ $active-background: $color,
68
+ $active-border: $color,
69
+ $active-color: color-contrast($active-background)
70
+ ) {
79
71
  --#{$prefix}btn-color: #{$color};
80
- --#{$prefix}btn-hover-bg: #{$hover-background};
81
- --#{$prefix}btn-hover-border-color: #{$hover-border-color};
82
- --#{$prefix}btn-hover-color: #{$hover-color};
83
- --#{$prefix}btn-active-bg: #{$active-background};
84
- --#{$prefix}btn-active-border-color: #{$active-border-color};
72
+ --#{$prefix}btn-hover-color: #{$color-hover};
73
+ --#{$prefix}btn-hover-bg: #{$active-background};
74
+ --#{$prefix}btn-hover-border-color: #{$active-border};
75
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
85
76
  --#{$prefix}btn-active-color: #{$active-color};
86
- --#{$prefix}btn-disabled-color: #{$disabled-color};
87
- --#{$prefix}btn-shadow: #{$shadow};
77
+ --#{$prefix}btn-active-bg: #{$active-background};
78
+ --#{$prefix}btn-active-border-color: #{$active-border};
79
+ --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
80
+ --#{$prefix}btn-disabled-color: #{$color};
81
+ --#{$prefix}btn-disabled-bg: transparent;
82
+ --#{$prefix}btn-disabled-border-color: #{$color};
83
+ --#{$prefix}gradient: none;
88
84
  }
89
85
  // scss-docs-end btn-ghost-variant-mixin
90
86
 
91
- // Button sizes
87
+
92
88
  // scss-docs-start btn-size-mixin
93
89
  @mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
94
90
  --#{$prefix}btn-padding-y: #{$padding-y};
@@ -1,44 +1,49 @@
1
1
  // scss-docs-start caret-mixins
2
- @mixin caret-down {
3
- border-top: $caret-width solid;
4
- border-right: $caret-width solid transparent;
2
+ @mixin caret-down($width: $caret-width) {
3
+ border-top: $width solid;
4
+ border-right: $width solid transparent;
5
5
  border-bottom: 0;
6
- border-left: $caret-width solid transparent;
6
+ border-left: $width solid transparent;
7
7
  }
8
8
 
9
- @mixin caret-up {
9
+ @mixin caret-up($width: $caret-width) {
10
10
  border-top: 0;
11
- border-right: $caret-width solid transparent;
12
- border-bottom: $caret-width solid;
13
- border-left: $caret-width solid transparent;
11
+ border-right: $width solid transparent;
12
+ border-bottom: $width solid;
13
+ border-left: $width solid transparent;
14
14
  }
15
15
 
16
- @mixin caret-end {
17
- border-top: $caret-width solid transparent;
16
+ @mixin caret-end($width: $caret-width) {
17
+ border-top: $width solid transparent;
18
18
  border-right: 0;
19
- border-bottom: $caret-width solid transparent;
20
- border-left: $caret-width solid;
19
+ border-bottom: $width solid transparent;
20
+ border-left: $width solid;
21
21
  }
22
22
 
23
- @mixin caret-start {
24
- border-top: $caret-width solid transparent;
25
- border-right: $caret-width solid;
26
- border-bottom: $caret-width solid transparent;
23
+ @mixin caret-start($width: $caret-width) {
24
+ border-top: $width solid transparent;
25
+ border-right: $width solid;
26
+ border-bottom: $width solid transparent;
27
27
  }
28
28
 
29
- @mixin caret($direction: down) {
29
+ @mixin caret(
30
+ $direction: down,
31
+ $width: $caret-width,
32
+ $spacing: $caret-spacing,
33
+ $vertical-align: $caret-vertical-align
34
+ ) {
30
35
  @if $enable-caret {
31
36
  &::after {
32
37
  display: inline-block;
33
- @include ltr-rtl("margin-left", $caret-spacing);
34
- vertical-align: $caret-vertical-align;
38
+ margin-left: $spacing;
39
+ vertical-align: $vertical-align;
35
40
  content: "";
36
41
  @if $direction == down {
37
- @include caret-down();
42
+ @include caret-down($width);
38
43
  } @else if $direction == up {
39
- @include caret-up();
44
+ @include caret-up($width);
40
45
  } @else if $direction == end {
41
- @include caret-end();
46
+ @include caret-end($width);
42
47
  }
43
48
  }
44
49
 
@@ -49,15 +54,15 @@
49
54
 
50
55
  &::before {
51
56
  display: inline-block;
52
- @include ltr-rtl("margin-right", $caret-spacing);
53
- vertical-align: $caret-vertical-align;
57
+ margin-right: $spacing;
58
+ vertical-align: $vertical-align;
54
59
  content: "";
55
- @include caret-start();
60
+ @include caret-start($width);
56
61
  }
57
62
  }
58
63
 
59
64
  &:empty::after {
60
- @include ltr-rtl("margin-left", 0);
65
+ margin-left: 0;
61
66
  }
62
67
  }
63
68
  }
@@ -0,0 +1,21 @@
1
+ // scss-docs-start color-mode-mixin
2
+ @mixin color-mode($mode: light, $root: false) {
3
+ @if $color-mode-type == "media-query" {
4
+ @if $root == true {
5
+ @media (prefers-color-scheme: $mode) {
6
+ :root {
7
+ @content;
8
+ }
9
+ }
10
+ } @else {
11
+ @media (prefers-color-scheme: $mode) {
12
+ @content;
13
+ }
14
+ }
15
+ } @else {
16
+ [data-coreui-theme="#{$mode}"] {
17
+ @content;
18
+ }
19
+ }
20
+ }
21
+ // scss-docs-end color-mode-mixin
@@ -21,7 +21,8 @@
21
21
  $icon,
22
22
  $tooltip-color: color-contrast($color),
23
23
  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
24
- $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
24
+ $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity),
25
+ $border-color: $color
25
26
  ) {
26
27
  .#{$state}-feedback {
27
28
  display: none;
@@ -56,18 +57,18 @@
56
57
 
57
58
  .form-control {
58
59
  @include form-validation-state-selector($state) {
59
- border-color: $color;
60
+ border-color: $border-color;
60
61
 
61
62
  @if $enable-validation-icons {
62
- @include ltr-rtl("padding-right", $input-height-inner);
63
+ padding-right: $input-height-inner;
63
64
  background-image: escape-svg($icon);
64
65
  background-repeat: no-repeat;
65
- @include ltr-rtl-value-only("background-position", right $input-height-inner-quarter center, left $input-height-inner-quarter center);
66
+ background-position: right $input-height-inner-quarter center;
66
67
  background-size: $input-height-inner-half $input-height-inner-half;
67
68
  }
68
69
 
69
70
  &:focus {
70
- border-color: $color;
71
+ border-color: $border-color;
71
72
  box-shadow: $focus-box-shadow;
72
73
  }
73
74
  }
@@ -77,28 +78,28 @@
77
78
  textarea.form-control {
78
79
  @include form-validation-state-selector($state) {
79
80
  @if $enable-validation-icons {
80
- @include ltr-rtl("padding-right", $input-height-inner);
81
- @include ltr-rtl-value-only("background-position", top $input-height-inner-quarter right $input-height-inner-quarter, top $input-height-inner-quarter left $input-height-inner-quarter);
81
+ padding-right: $input-height-inner;
82
+ background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
82
83
  }
83
84
  }
84
85
  }
85
86
 
86
87
  .form-select {
87
88
  @include form-validation-state-selector($state) {
88
- border-color: $color;
89
+ border-color: $border-color;
89
90
 
90
91
  @if $enable-validation-icons {
91
92
  &:not([multiple]):not([size]),
92
93
  &:not([multiple])[size="1"] {
93
- @include ltr-rtl("padding-right", $form-select-feedback-icon-padding-end);
94
- background-image: escape-svg($form-select-indicator), escape-svg($icon);
95
- @include ltr-rtl-value-only("background-position", #{$form-select-bg-position, $form-select-feedback-icon-position});
94
+ --#{$prefix}form-select-bg-icon: #{escape-svg($icon)};
95
+ padding-right: $form-select-feedback-icon-padding-end;
96
+ background-position: $form-select-bg-position, $form-select-feedback-icon-position;
96
97
  background-size: $form-select-bg-size, $form-select-feedback-icon-size;
97
98
  }
98
99
  }
99
100
 
100
101
  &:focus {
101
- border-color: $color;
102
+ border-color: $border-color;
102
103
  box-shadow: $focus-box-shadow;
103
104
  }
104
105
  }
@@ -114,7 +115,7 @@
114
115
 
115
116
  .form-check-input {
116
117
  @include form-validation-state-selector($state) {
117
- border-color: $color;
118
+ border-color: $border-color;
118
119
 
119
120
  &:checked {
120
121
  background-color: $color;
@@ -131,7 +132,7 @@
131
132
  }
132
133
  .form-check-inline .form-check-input {
133
134
  ~ .#{$state}-feedback {
134
- @include ltr-rtl("margin-left", .5em);
135
+ margin-left: .5em;
135
136
  }
136
137
  }
137
138
 
@@ -45,13 +45,13 @@
45
45
 
46
46
  @mixin make-col-offset($size, $columns: $grid-columns) {
47
47
  $num: divide($size, $columns);
48
- @include ltr-rtl("margin-left", if($num == 0, 0, percentage($num)));
48
+ margin-left: if($num == 0, 0, percentage($num));
49
49
  }
50
50
 
51
51
  // Row columns
52
52
  //
53
53
  // Specify on a parent element(e.g., .row) to force immediate children into NN
54
- // numberof columns. Supports wrapping to new lines, but does not do a Masonry
54
+ // number of columns. Supports wrapping to new lines, but does not do a Masonry
55
55
  // style grid.
56
56
  @mixin row-cols($count) {
57
57
  > * {
@@ -1,16 +1,27 @@
1
+ @include deprecate("`list-group-item-variant()`", "v5.0.0", "v6.0.0");
2
+
3
+
1
4
  // List Groups
5
+
2
6
  // scss-docs-start list-group-mixin
3
- @mixin list-group-item-variant($state, $variant) {
4
- $background: map-get($variant, "bg");
5
- $background-hover: map-get($variant, "bg-hover");
6
- $color: contrast-ratio-correction(map-get($variant, "color"), map-get($variant, "bg"), abs($alert-color-scale), $state);
7
+ @mixin list-group-item-variant($state, $background, $color) {
8
+ .list-group-item-#{$state} {
9
+ color: $color;
10
+ background-color: $background;
11
+
12
+ &.list-group-item-action {
13
+ &:hover,
14
+ &:focus {
15
+ color: $color;
16
+ background-color: shade-color($background, 10%);
17
+ }
7
18
 
8
- --#{$prefix}list-group-color: #{$color};
9
- --#{$prefix}list-group-bg: #{$background};
10
- --#{$prefix}list-group-hover-bg: #{$background-hover};
11
- --#{$prefix}list-group-action-hover-color: #{$color};
12
- --#{$prefix}list-group-action-active-color: #{$white};
13
- --#{$prefix}list-group-action-active-bg: #{$color};
14
- --#{$prefix}list-group-action-active-border-color: #{$color};
19
+ &.active {
20
+ color: $white;
21
+ background-color: $color;
22
+ border-color: $color;
23
+ }
24
+ }
25
+ }
15
26
  }
16
27
  // scss-docs-end list-group-mixin
@@ -2,6 +2,6 @@
2
2
 
3
3
  // Unstyled keeps list items block level, just removes default browser padding and list-style
4
4
  @mixin list-unstyled {
5
- @include ltr-rtl("padding-left", 0);
5
+ padding-left: 0;
6
6
  list-style: none;
7
7
  }
@@ -1,6 +1,6 @@
1
1
  // Utility generator
2
2
  // Used to generate utilities & print utilities
3
- @mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
3
+ @mixin generate-utility($utility, $infix: "", $is-rfs-media-query: false) {
4
4
  $values: map-get($utility, values);
5
5
 
6
6
  // If the values are a list or string, convert it into a map
@@ -31,9 +31,6 @@
31
31
  // Don't prefix if value key is null (e.g. with shadow class)
32
32
  $property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");
33
33
 
34
- // Generate RTL version
35
- $generate-rtl: if(map-has-key($utility, rtl), map-get($utility, rtl), false);
36
-
37
34
  @if map-get($utility, rfs) {
38
35
  // Inside the media query
39
36
  @if $is-rfs-media-query {
@@ -48,6 +45,7 @@
48
45
  }
49
46
 
50
47
  $is-css-var: map-get($utility, css-var);
48
+ $is-dark-mode: map-get($utility, dark-mode);
51
49
  $is-local-vars: map-get($utility, local-vars);
52
50
  $is-rtl: map-get($utility, rtl);
53
51
 
@@ -57,8 +55,15 @@
57
55
  }
58
56
 
59
57
  @if $is-css-var {
60
- .#{$property-class + $infix + $property-class-modifier} {
61
- --#{$prefix}#{$css-variable-name}: #{$value};
58
+ @if $enable-dark-mode and $is-dark-mode {
59
+ #{theme-prefix("dark", "#{$property-class + $infix + $property-class-modifier}")},
60
+ .#{$property-class + $infix + $property-class-modifier} {
61
+ --#{$prefix}#{$css-variable-name}: #{$value};
62
+ }
63
+ } @else {
64
+ .#{$property-class + $infix + $property-class-modifier} {
65
+ --#{$prefix}#{$css-variable-name}: #{$value};
66
+ }
62
67
  }
63
68
 
64
69
  @each $pseudo in $state {
@@ -67,16 +72,26 @@
67
72
  }
68
73
  }
69
74
  } @else {
70
- .#{$property-class + $infix + $property-class-modifier} {
71
- @each $property in $properties {
72
- @if $is-local-vars {
73
- @each $local-var, $variable in $is-local-vars {
74
- --#{$prefix}#{$local-var}: #{$variable};
75
+ @if $enable-dark-mode and $is-dark-mode {
76
+ #{theme-prefix("dark", "#{$property-class + $infix + $property-class-modifier}")},
77
+ .#{$property-class + $infix + $property-class-modifier} {
78
+ @each $property in $properties {
79
+ @if $is-local-vars {
80
+ @each $local-var, $variable in $is-local-vars {
81
+ --#{$prefix}#{$local-var}: #{$variable};
82
+ }
75
83
  }
84
+ #{$property}: $value if($enable-important-utilities, !important, null);
76
85
  }
77
- @if $generate-rtl == true {
78
- @include ltr-rtl($property, $value, null, null, if($enable-important-utilities, !important, null));
79
- } @else {
86
+ }
87
+ } @else {
88
+ .#{$property-class + $infix + $property-class-modifier} {
89
+ @each $property in $properties {
90
+ @if $is-local-vars {
91
+ @each $local-var, $variable in $is-local-vars {
92
+ --#{$prefix}#{$local-var}: #{$variable};
93
+ }
94
+ }
80
95
  #{$property}: $value if($enable-important-utilities, !important, null);
81
96
  }
82
97
  }
@@ -39,12 +39,12 @@
39
39
  bottom: 0;
40
40
 
41
41
  &::before {
42
- @include ltr-rtl("transform", rotate(-180deg), null, rotate(0deg));
42
+ transform: rotate(180deg) #{"/* rtl:rotate(0deg) */"};
43
43
  }
44
44
  }
45
45
 
46
46
  &.sidebar-end .sidebar-toggler::before {
47
- transform: rotate(0deg);
47
+ transform: rotate(0deg) #{"/* rtl:rotate(180deg) */"};
48
48
  }
49
49
  }
50
50
  }
@@ -77,12 +77,12 @@
77
77
  &:hover {
78
78
  .sidebar-toggler {
79
79
  &::before {
80
- @include ltr-rtl("transform", rotate(-180deg), null, rotate(0deg));
80
+ transform: rotate(-180deg) #{"/* rtl:rotate(0deg) */"};
81
81
  }
82
82
  }
83
83
 
84
84
  &.sidebar-end .sidebar-toggler::before {
85
- transform: rotate(0deg);
85
+ transform: rotate(0deg) #{"/* rtl:rotate(180deg) */"};
86
86
  }
87
87
  }
88
88
  }
@@ -95,10 +95,10 @@
95
95
  &.sidebar-narrow,
96
96
  &.sidebar-narrow-unfoldable {
97
97
  &:not(.sidebar-end) {
98
- @include ltr-rtl("margin-left", calc(var(--#{$prefix}sidebar-narrow-width) * -1));
98
+ margin-left: calc(var(--#{$prefix}sidebar-narrow-width) * -1); // stylelint-disable-line function-disallowed-list
99
99
  }
100
100
  &.sidebar-end {
101
- @include ltr-rtl("margin-right", calc(var(--#{$prefix}sidebar-narrow-width) * -1));
101
+ margin-right: calc(var(--#{$prefix}sidebar-narrow-width) * -1); // stylelint-disable-line function-disallowed-list
102
102
  }
103
103
  }
104
104
  }
@@ -94,7 +94,7 @@
94
94
  @include transition(inherit);
95
95
 
96
96
  &:first-child {
97
- @include ltr-rtl("margin-left", calc(var(--#{$prefix}sidebar-nav-link-padding-x) * -1));
97
+ margin-left: calc(var(--#{$prefix}sidebar-nav-link-padding-x) * -1); // stylelint-disable-line function-disallowed-list
98
98
  }
99
99
  }
100
100
  // stylelint-disable-next-line selector-no-qualifying-type
@@ -140,7 +140,7 @@
140
140
  display: block;
141
141
  flex: 0 12px;
142
142
  height: 12px;
143
- @include ltr-rtl("margin-left", auto);
143
+ margin-left: auto;
144
144
  content: "";
145
145
  background-image: var(--#{$prefix}sidebar-nav-group-indicator);
146
146
  background-repeat: no-repeat;
@@ -154,10 +154,10 @@
154
154
  list-style: none;
155
155
 
156
156
  .nav-link {
157
- @include ltr-rtl("padding-left", var(--#{$prefix}sidebar-nav-icon-width));
157
+ padding-left: var(--#{$prefix}sidebar-nav-icon-width);
158
158
 
159
159
  .nav-icon {
160
- @include ltr-rtl("margin-left", calc(var(--#{$prefix}sidebar-nav-icon-width) * -1));
160
+ margin-left: calc(var(--#{$prefix}sidebar-nav-icon-width) * -1); // stylelint-disable-line function-disallowed-list
161
161
  }
162
162
  }
163
163
  }