@coreui/coreui 5.2.0 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -4
  3. package/dist/css/coreui-grid.css +456 -229
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +3 -3
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +229 -229
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +3 -3
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +56 -49
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +3 -3
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +54 -49
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +3 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +531 -371
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +3 -3
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +353 -353
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +1457 -1020
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +3 -3
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +1115 -1002
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +3 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/css/themes/bootstrap/bootstrap.css +5195 -4350
  36. package/dist/css/themes/bootstrap/bootstrap.css.map +1 -1
  37. package/dist/css/themes/bootstrap/bootstrap.min.css +3 -7
  38. package/dist/css/themes/bootstrap/bootstrap.min.css.map +1 -1
  39. package/dist/css/themes/bootstrap/bootstrap.rtl.css +4971 -4625
  40. package/dist/css/themes/bootstrap/bootstrap.rtl.css.map +1 -1
  41. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css +3 -7
  42. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css.map +1 -1
  43. package/dist/js/bootstrap.bundle.js +4 -7
  44. package/dist/js/bootstrap.bundle.js.map +1 -1
  45. package/dist/js/bootstrap.bundle.min.js +3 -3
  46. package/dist/js/bootstrap.bundle.min.js.map +1 -1
  47. package/dist/js/bootstrap.esm.js +4 -5
  48. package/dist/js/bootstrap.esm.js.map +1 -1
  49. package/dist/js/bootstrap.esm.min.js +3 -3
  50. package/dist/js/bootstrap.esm.min.js.map +1 -1
  51. package/dist/js/bootstrap.js +4 -5
  52. package/dist/js/bootstrap.js.map +1 -1
  53. package/dist/js/bootstrap.min.js +3 -3
  54. package/dist/js/bootstrap.min.js.map +1 -1
  55. package/dist/js/coreui.bundle.js +4 -7
  56. package/dist/js/coreui.bundle.js.map +1 -1
  57. package/dist/js/coreui.bundle.min.js +3 -3
  58. package/dist/js/coreui.bundle.min.js.map +1 -1
  59. package/dist/js/coreui.esm.js +4 -5
  60. package/dist/js/coreui.esm.js.map +1 -1
  61. package/dist/js/coreui.esm.min.js +3 -3
  62. package/dist/js/coreui.esm.min.js.map +1 -1
  63. package/dist/js/coreui.js +4 -5
  64. package/dist/js/coreui.js.map +1 -1
  65. package/dist/js/coreui.min.js +3 -3
  66. package/dist/js/coreui.min.js.map +1 -1
  67. package/js/dist/alert.js +2 -2
  68. package/js/dist/base-component.js +3 -3
  69. package/js/dist/base-component.js.map +1 -1
  70. package/js/dist/button.js +2 -2
  71. package/js/dist/carousel.js +2 -2
  72. package/js/dist/collapse.js +2 -2
  73. package/js/dist/dom/data.js +2 -2
  74. package/js/dist/dom/event-handler.js +2 -2
  75. package/js/dist/dom/manipulator.js +2 -2
  76. package/js/dist/dom/selector-engine.js +2 -2
  77. package/js/dist/dropdown.js +2 -2
  78. package/js/dist/modal.js +2 -2
  79. package/js/dist/navigation.js +3 -3
  80. package/js/dist/navigation.js.map +1 -1
  81. package/js/dist/offcanvas.js +2 -2
  82. package/js/dist/popover.js +2 -2
  83. package/js/dist/scrollspy.js +2 -2
  84. package/js/dist/sidebar.js +2 -2
  85. package/js/dist/tab.js +2 -2
  86. package/js/dist/toast.js +2 -2
  87. package/js/dist/tooltip.js +2 -2
  88. package/js/dist/util/backdrop.js +2 -2
  89. package/js/dist/util/component-functions.js +2 -2
  90. package/js/dist/util/config.js +2 -2
  91. package/js/dist/util/focustrap.js +2 -2
  92. package/js/dist/util/index.js +2 -2
  93. package/js/dist/util/index.js.map +1 -1
  94. package/js/dist/util/sanitizer.js +2 -3
  95. package/js/dist/util/sanitizer.js.map +1 -1
  96. package/js/dist/util/scrollbar.js +2 -2
  97. package/js/dist/util/swipe.js +2 -2
  98. package/js/dist/util/template-factory.js +2 -2
  99. package/js/src/base-component.js +1 -1
  100. package/js/src/navigation.js +1 -1
  101. package/js/src/util/sanitizer.js +0 -1
  102. package/package.json +26 -29
  103. package/scss/_accordion.import.scss +1 -0
  104. package/scss/_accordion.scss +10 -2
  105. package/scss/_alert.import.scss +1 -0
  106. package/scss/_alert.scss +7 -3
  107. package/scss/_avatar.import.scss +1 -0
  108. package/scss/_avatar.scss +13 -8
  109. package/scss/_badge.import.scss +1 -0
  110. package/scss/_badge.scss +4 -0
  111. package/scss/_banner.scss +7 -0
  112. package/scss/_breadcrumb.import.scss +1 -0
  113. package/scss/_breadcrumb.scss +9 -3
  114. package/scss/_button-group.import.scss +1 -0
  115. package/scss/_button-group.scss +7 -3
  116. package/scss/_buttons.import.scss +1 -0
  117. package/scss/_buttons.scss +49 -18
  118. package/scss/_callout.import.scss +1 -0
  119. package/scss/_callout.scss +5 -2
  120. package/scss/_card.import.scss +1 -0
  121. package/scss/_card.scss +8 -3
  122. package/scss/_carousel.import.scss +1 -0
  123. package/scss/_carousel.scss +9 -3
  124. package/scss/_close.import.scss +1 -0
  125. package/scss/_close.scss +6 -1
  126. package/scss/_containers.import.scss +1 -0
  127. package/scss/_containers.scss +4 -0
  128. package/scss/_dropdown.import.scss +1 -0
  129. package/scss/_dropdown.scss +30 -21
  130. package/scss/_footer.import.scss +1 -0
  131. package/scss/_footer.scss +2 -0
  132. package/scss/_forms.import.scss +9 -0
  133. package/scss/_forms.scss +9 -9
  134. package/scss/_functions.import.scss +1 -0
  135. package/scss/_functions.scss +12 -366
  136. package/scss/_grid.import.scss +1 -0
  137. package/scss/_grid.scss +23 -1
  138. package/scss/_header.import.scss +1 -0
  139. package/scss/_header.scss +9 -2
  140. package/scss/_helpers.import.scss +1 -0
  141. package/scss/_helpers.scss +12 -12
  142. package/scss/_icon.import.scss +1 -0
  143. package/scss/_icon.scss +3 -0
  144. package/scss/_images.import.scss +1 -0
  145. package/scss/_images.scss +6 -0
  146. package/scss/_list-group.import.scss +1 -0
  147. package/scss/_list-group.scss +11 -6
  148. package/scss/_maps.import.scss +1 -0
  149. package/scss/_maps.scss +14 -7
  150. package/scss/_mixins.import.scss +1 -0
  151. package/scss/_mixins.scss +29 -29
  152. package/scss/_modal.import.scss +1 -0
  153. package/scss/_modal.scss +12 -3
  154. package/scss/_nav.import.scss +1 -0
  155. package/scss/_nav.scss +7 -1
  156. package/scss/_navbar.import.scss +1 -0
  157. package/scss/_navbar.scss +16 -4
  158. package/scss/_offcanvas.import.scss +1 -0
  159. package/scss/_offcanvas.scss +14 -7
  160. package/scss/_pagination.import.scss +1 -0
  161. package/scss/_pagination.scss +9 -1
  162. package/scss/_placeholders.import.scss +1 -0
  163. package/scss/_placeholders.scss +2 -0
  164. package/scss/_popover.import.scss +1 -0
  165. package/scss/_popover.scss +6 -0
  166. package/scss/_progress.import.scss +1 -0
  167. package/scss/_progress.scss +7 -0
  168. package/scss/_reboot.import.scss +1 -0
  169. package/scss/_reboot.scss +11 -7
  170. package/scss/_root.import.scss +1 -0
  171. package/scss/_root.scss +14 -5
  172. package/scss/_sidebar.import.scss +3 -0
  173. package/scss/_sidebar.scss +3 -3
  174. package/scss/_spinners.import.scss +1 -0
  175. package/scss/_spinners.scss +2 -0
  176. package/scss/_tables.import.scss +1 -0
  177. package/scss/_tables.scss +6 -1
  178. package/scss/_toasts.import.scss +1 -0
  179. package/scss/_toasts.scss +5 -2
  180. package/scss/_tooltip.import.scss +1 -0
  181. package/scss/_tooltip.scss +6 -0
  182. package/scss/_transitions.import.scss +1 -0
  183. package/scss/_transitions.scss +3 -0
  184. package/scss/_type.import.scss +1 -0
  185. package/scss/_type.scss +6 -1
  186. package/scss/_utilities.import.scss +1 -0
  187. package/scss/_utilities.scss +50 -63
  188. package/scss/_variables-dark.import.scss +1 -0
  189. package/scss/_variables-dark.scss +17 -36
  190. package/scss/_variables.import.scss +1 -0
  191. package/scss/_variables.scss +36 -34
  192. package/scss/coreui-grid.rtl.scss +4 -4
  193. package/scss/coreui-grid.scss +12 -21
  194. package/scss/coreui-reboot.rtl.scss +4 -4
  195. package/scss/coreui-reboot.scss +8 -9
  196. package/scss/coreui-utilities.rtl.scss +4 -4
  197. package/scss/coreui-utilities.scss +8 -11
  198. package/scss/coreui.rtl.scss +4 -4
  199. package/scss/coreui.scss +44 -47
  200. package/scss/forms/_floating-labels.import.scss +1 -0
  201. package/scss/forms/_floating-labels.scss +5 -1
  202. package/scss/forms/_form-check.import.scss +1 -0
  203. package/scss/forms/_form-check.scss +24 -20
  204. package/scss/forms/_form-control.import.scss +1 -0
  205. package/scss/forms/_form-control.scss +9 -1
  206. package/scss/forms/_form-range.import.scss +1 -0
  207. package/scss/forms/_form-range.scss +7 -0
  208. package/scss/forms/_form-select.import.scss +1 -0
  209. package/scss/forms/_form-select.scss +18 -5
  210. package/scss/forms/_form-text.import.scss +1 -0
  211. package/scss/forms/_form-text.scss +3 -0
  212. package/scss/forms/_input-group.import.scss +1 -0
  213. package/scss/forms/_input-group.scss +10 -4
  214. package/scss/forms/_labels.import.scss +1 -0
  215. package/scss/forms/_labels.scss +4 -0
  216. package/scss/forms/_validation.import.scss +1 -0
  217. package/scss/forms/_validation.scss +3 -0
  218. package/scss/functions/_assert-ascending.scss +19 -0
  219. package/scss/functions/_assert-starts-at-zero.scss +14 -0
  220. package/scss/functions/_color-contrast-variables.scss +23 -0
  221. package/scss/functions/_color-contrast.scss +27 -0
  222. package/scss/functions/_color.scss +18 -0
  223. package/scss/functions/_contrast-ratio.scss +35 -0
  224. package/scss/functions/_escape-svg.scss +22 -0
  225. package/scss/functions/_maps.scss +57 -0
  226. package/scss/functions/_math.scss +87 -0
  227. package/scss/functions/_rgba-css-var.scss +9 -0
  228. package/scss/functions/_str-replace.scss +19 -0
  229. package/scss/functions/_to-rgb.scss +5 -0
  230. package/scss/helpers/_clearfix.scss +2 -0
  231. package/scss/helpers/_color-bg.scss +9 -3
  232. package/scss/helpers/_colored-links.scss +13 -9
  233. package/scss/helpers/_focus-ring.scss +2 -0
  234. package/scss/helpers/_icon-link.scss +3 -0
  235. package/scss/helpers/_position.scss +5 -1
  236. package/scss/helpers/_ratio.scss +3 -1
  237. package/scss/helpers/_stretched-link.scss +2 -0
  238. package/scss/helpers/_text-truncation.scss +2 -0
  239. package/scss/helpers/_visually-hidden.scss +2 -0
  240. package/scss/helpers/_vr.scss +2 -0
  241. package/scss/mixins/_alert.scss +3 -0
  242. package/scss/mixins/_avatar.scss +3 -0
  243. package/scss/mixins/_backdrop.scss +2 -0
  244. package/scss/mixins/_border-radius.scss +15 -11
  245. package/scss/mixins/_box-shadow.scss +5 -2
  246. package/scss/mixins/_breakpoints.scss +82 -5
  247. package/scss/mixins/_buttons.scss +54 -50
  248. package/scss/mixins/_caret.scss +5 -3
  249. package/scss/mixins/_color-mode.scss +3 -1
  250. package/scss/mixins/_container.scss +2 -0
  251. package/scss/mixins/_deprecate.scss +2 -0
  252. package/scss/mixins/_forms.scss +12 -5
  253. package/scss/mixins/_gradients.scss +2 -0
  254. package/scss/mixins/_grid.scss +76 -7
  255. package/scss/mixins/_list-group.scss +6 -3
  256. package/scss/mixins/_lists.scss +1 -1
  257. package/scss/mixins/_ltr-rtl.scss +48 -17
  258. package/scss/mixins/_pagination.scss +3 -0
  259. package/scss/mixins/_reset-text.scss +2 -1
  260. package/scss/mixins/_table-variants.scss +10 -4
  261. package/scss/mixins/_transition.scss +7 -4
  262. package/scss/mixins/_utilities.import.scss +1 -0
  263. package/scss/mixins/_utilities.scss +30 -17
  264. package/scss/sidebar/_sidebar-narrow.scss +5 -0
  265. package/scss/sidebar/_sidebar-nav.scss +8 -4
  266. package/scss/sidebar/_sidebar.scss +24 -15
  267. package/scss/themes/bootstrap/bootstrap.rtl.scss +4 -22
  268. package/scss/themes/bootstrap/bootstrap.scss +121 -15
  269. package/scss/utilities/_api.import.scss +1 -0
  270. package/scss/utilities/_api.scss +14 -6
  271. package/scss/vendor/_rfs.scss +33 -27
  272. package/scss/mixins/_banner.scss +0 -7
  273. package/scss/themes/bootstrap/mixins/_banner.scss +0 -7
@@ -1,90 +1,94 @@
1
+ @use "sass:color";
2
+ @use "../functions/color" as *;
3
+ @use "../functions/color-contrast" as *;
4
+ @use "../functions/to-rgb" as *;
5
+ @use "../vendor/rfs" as *;
6
+ @use "../variables" as *;
7
+
1
8
  // Button variants
2
9
  //
3
10
  // Easily pump out default styles, as well as :hover, :focus, :active,
4
11
  // and disabled options for all buttons
5
12
 
6
13
  // 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
-
14
+ @mixin button-variant(
15
+ $background,
16
+ $border,
17
+ $color: color-contrast($background),
18
+ $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
19
+ $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
20
+ $hover-color: color-contrast($hover-background),
21
+ $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
22
+ $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
23
+ $active-color: color-contrast($active-background),
24
+ $disabled-background: $background,
25
+ $disabled-border: $border,
26
+ $disabled-color: color-contrast($disabled-background)
27
+ ) {
22
28
  --#{$prefix}btn-color: #{$color};
23
29
  --#{$prefix}btn-bg: #{$background};
24
- --#{$prefix}btn-border-color: #{$border-color};
30
+ --#{$prefix}btn-border-color: #{$border};
25
31
  --#{$prefix}btn-hover-color: #{$hover-color};
26
32
  --#{$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%))};
33
+ --#{$prefix}btn-hover-border-color: #{$hover-border};
34
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(color.mix($color, $border, 15%))};
29
35
  --#{$prefix}btn-active-color: #{$active-color};
30
36
  --#{$prefix}btn-active-bg: #{$active-background};
31
- --#{$prefix}btn-active-border-color: #{$active-border-color};
37
+ --#{$prefix}btn-active-border-color: #{$active-border};
32
38
  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
33
39
  --#{$prefix}btn-disabled-color: #{$disabled-color};
34
40
  --#{$prefix}btn-disabled-bg: #{$disabled-background};
35
- --#{$prefix}btn-disabled-border-color: #{$disabled-border-color};
41
+ --#{$prefix}btn-disabled-border-color: #{$disabled-border};
36
42
  }
37
43
  // scss-docs-end btn-variant-mixin
38
44
 
39
45
  // 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
-
46
+ @mixin button-outline-variant(
47
+ $color,
48
+ $color-hover: color-contrast($color),
49
+ $active-background: $color,
50
+ $active-border: $color,
51
+ $active-color: color-contrast($active-background)
52
+ ) {
51
53
  --#{$prefix}btn-color: #{$color};
52
54
  --#{$prefix}btn-border-color: #{$color};
53
- --#{$prefix}btn-hover-color: #{$hover-color};
55
+ --#{$prefix}btn-hover-color: #{$color-hover};
54
56
  --#{$prefix}btn-hover-bg: #{$active-background};
55
- --#{$prefix}btn-hover-border-color: #{$active-border-color};
57
+ --#{$prefix}btn-hover-border-color: #{$active-border};
56
58
  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
57
59
  --#{$prefix}btn-active-color: #{$active-color};
58
60
  --#{$prefix}btn-active-bg: #{$active-background};
59
- --#{$prefix}btn-active-border-color: #{$active-border-color};
61
+ --#{$prefix}btn-active-border-color: #{$active-border};
60
62
  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
61
63
  --#{$prefix}btn-disabled-color: #{$color};
62
64
  --#{$prefix}btn-disabled-bg: transparent;
65
+ --#{$prefix}btn-disabled-border-color: #{$color};
63
66
  --#{$prefix}gradient: none;
64
67
  }
65
68
  // scss-docs-end btn-outline-variant-mixin
66
69
 
67
70
  // 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
-
71
+ @mixin button-ghost-variant(
72
+ $color,
73
+ $color-hover: color-contrast($color),
74
+ $hover-background: $color,
75
+ $hover-border: $color,
76
+ $hover-color: color-contrast($color),
77
+ $active-background: $color,
78
+ $active-border: $color,
79
+ $active-color: color-contrast($color)
80
+ ) {
79
81
  --#{$prefix}btn-color: #{$color};
82
+ --#{$prefix}btn-border-color: transparent;
80
83
  --#{$prefix}btn-hover-bg: #{$hover-background};
81
- --#{$prefix}btn-hover-border-color: #{$hover-border-color};
82
- --#{$prefix}btn-hover-color: #{$hover-color};
84
+ --#{$prefix}btn-hover-border-color: #{$hover-border};
85
+ --#{$prefix}btn-hover-color: #{$color-hover};
83
86
  --#{$prefix}btn-active-bg: #{$active-background};
84
- --#{$prefix}btn-active-border-color: #{$active-border-color};
87
+ --#{$prefix}btn-active-border-color: #{$active-border};
85
88
  --#{$prefix}btn-active-color: #{$active-color};
86
- --#{$prefix}btn-disabled-color: #{$disabled-color};
87
- --#{$prefix}btn-shadow: #{$shadow};
89
+ --#{$prefix}btn-disabled-color: #{$color};
90
+ --#{$prefix}btn-disabled-bg: transparent;
91
+ --#{$prefix}btn-disabled-border-color: transparent;
88
92
  }
89
93
  // scss-docs-end btn-ghost-variant-mixin
90
94
 
@@ -1,3 +1,5 @@
1
+ @use "../variables" as *;
2
+
1
3
  // scss-docs-start caret-mixins
2
4
  @mixin caret-down($width: $caret-width) {
3
5
  border-top: $width solid;
@@ -35,7 +37,7 @@
35
37
  @if $enable-caret {
36
38
  &::after {
37
39
  display: inline-block;
38
- @include ltr-rtl("margin-left", $spacing);
40
+ margin-inline-start: $spacing;
39
41
  vertical-align: $vertical-align;
40
42
  content: "";
41
43
  @if $direction == down {
@@ -54,7 +56,7 @@
54
56
 
55
57
  &::before {
56
58
  display: inline-block;
57
- @include ltr-rtl("margin-right", $spacing);
59
+ margin-inline-end: $spacing;
58
60
  vertical-align: $vertical-align;
59
61
  content: "";
60
62
  @include caret-start($width);
@@ -62,7 +64,7 @@
62
64
  }
63
65
 
64
66
  &:empty::after {
65
- @include ltr-rtl("margin-left", 0);
67
+ margin-inline-start: 0;
66
68
  }
67
69
  }
68
70
  }
@@ -1,3 +1,5 @@
1
+ @use "../variables" as *;
2
+
1
3
  // scss-docs-start color-mode-mixin
2
4
  @mixin color-mode($mode: light, $root: false) {
3
5
  @if $color-mode-type == "media-query" {
@@ -13,7 +15,7 @@
13
15
  }
14
16
  }
15
17
  } @else {
16
- [data-coreui-theme="#{$mode}"] {
18
+ [data#{$data-infix}theme="#{$mode}"] {
17
19
  @content;
18
20
  }
19
21
  }
@@ -1,3 +1,5 @@
1
+ @use "../variables" as *;
2
+
1
3
  // Container mixins
2
4
 
3
5
  @mixin make-container($gutter: $container-padding-x) {
@@ -1,3 +1,5 @@
1
+ @use "../variables" as *;
2
+
1
3
  // Deprecate mixin
2
4
  //
3
5
  // This mixin can be used to deprecate mixins or functions.
@@ -1,3 +1,10 @@
1
+ @use "../functions/escape-svg" as *;
2
+ @use "../functions/math" as *;
3
+ @use "../mixins/border-radius" as *;
4
+ @use "../mixins/ltr-rtl" as *;
5
+ @use "../vendor/rfs" as *;
6
+ @use "../variables" as *;
7
+
1
8
  // This mixin uses an `if()` technique to be compatible with Dart Sass
2
9
  // See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details
3
10
 
@@ -19,7 +26,7 @@
19
26
  $state,
20
27
  $color,
21
28
  $icon,
22
- $tooltip-color: color-contrast($color),
29
+ $tooltip-color: color-contrast($color, $color-contrast-dark, $color-contrast-light, $white, $black, $min-contrast-ratio),
23
30
  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
24
31
  $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity),
25
32
  $border-color: $color
@@ -60,7 +67,7 @@
60
67
  border-color: $border-color;
61
68
 
62
69
  @if $enable-validation-icons {
63
- @include ltr-rtl("padding-right", $input-height-inner);
70
+ padding-inline-end: $input-height-inner;
64
71
  background-image: escape-svg($icon);
65
72
  background-repeat: no-repeat;
66
73
  @include ltr-rtl-value-only("background-position", right $input-height-inner-quarter center, left $input-height-inner-quarter center);
@@ -83,7 +90,7 @@
83
90
  textarea.form-control {
84
91
  @include form-validation-state-selector($state) {
85
92
  @if $enable-validation-icons {
86
- @include ltr-rtl("padding-right", $input-height-inner);
93
+ padding-inline-end: $input-height-inner;
87
94
  @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);
88
95
  }
89
96
  }
@@ -97,7 +104,7 @@
97
104
  &:not([multiple]):not([size]),
98
105
  &:not([multiple])[size="1"] {
99
106
  --#{$prefix}form-select-bg-icon: #{escape-svg($icon)};
100
- @include ltr-rtl("padding-right", $form-select-feedback-icon-padding-end);
107
+ padding-inline-end: $form-select-feedback-icon-padding-end;
101
108
  @include ltr-rtl-value-only("background-position", #{$form-select-bg-position, $form-select-feedback-icon-position});
102
109
  background-size: $form-select-bg-size, $form-select-feedback-icon-size;
103
110
  }
@@ -142,7 +149,7 @@
142
149
  }
143
150
  .form-check-inline .form-check-input {
144
151
  ~ .#{$state}-feedback {
145
- @include ltr-rtl("margin-left", .5em);
152
+ margin-inline-start: .5em;
146
153
  }
147
154
  }
148
155
 
@@ -1,3 +1,5 @@
1
+ @use "../variables" as *;
2
+
1
3
  // Gradients
2
4
 
3
5
  // scss-docs-start gradient-bg-mixin
@@ -1,3 +1,11 @@
1
+ @use "sass:map";
2
+ @use "sass:math";
3
+ @use "sass:meta";
4
+ @use "breakpoints" as *;
5
+ @use "../functions/math" as *;
6
+ @use "../maps" as *;
7
+ @use "../variables" as *;
8
+
1
9
  // Grid system
2
10
  //
3
11
  // Generate semantic grid columns with these mixins.
@@ -13,9 +21,9 @@
13
21
  margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
14
22
  }
15
23
 
16
- @mixin make-col-ready() {
24
+ @mixin make-col-ready($include-column-box-sizing: false) {
17
25
  // Add box sizing if only the grid is loaded
18
- box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);
26
+ box-sizing: if(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);
19
27
  // Prevent columns from becoming too narrow when at smaller grid tiers by
20
28
  // always setting `width: 100%;`. This works because we set the width
21
29
  // later on to override this initial width.
@@ -30,7 +38,7 @@
30
38
  @mixin make-col($size: false, $columns: $grid-columns) {
31
39
  @if $size {
32
40
  flex: 0 0 auto;
33
- width: percentage(divide($size, $columns));
41
+ width: math.percentage(divide($size, $columns));
34
42
 
35
43
  } @else {
36
44
  flex: 1 1 0;
@@ -45,7 +53,7 @@
45
53
 
46
54
  @mixin make-col-offset($size, $columns: $grid-columns) {
47
55
  $num: divide($size, $columns);
48
- @include ltr-rtl("margin-left", if($num == 0, 0, percentage($num)));
56
+ margin-inline-start: if($num == 0, 0, math.percentage($num));
49
57
  }
50
58
 
51
59
  // Row columns
@@ -56,7 +64,7 @@
56
64
  @mixin row-cols($count) {
57
65
  > * {
58
66
  flex: 0 0 auto;
59
- width: percentage(divide(1, $count));
67
+ width: math.percentage(divide(1, $count));
60
68
  }
61
69
  }
62
70
 
@@ -66,7 +74,7 @@
66
74
  // any value of `$grid-columns`.
67
75
 
68
76
  @mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
69
- @each $breakpoint in map-keys($breakpoints) {
77
+ @each $breakpoint in map.keys($breakpoints) {
70
78
  $infix: breakpoint-infix($breakpoint, $breakpoints);
71
79
 
72
80
  @include media-breakpoint-up($breakpoint, $breakpoints) {
@@ -127,7 +135,7 @@
127
135
  }
128
136
 
129
137
  @mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
130
- @each $breakpoint in map-keys($breakpoints) {
138
+ @each $breakpoint in map.keys($breakpoints) {
131
139
  $infix: breakpoint-infix($breakpoint, $breakpoints);
132
140
 
133
141
  @include media-breakpoint-up($breakpoint, $breakpoints) {
@@ -149,3 +157,64 @@
149
157
  }
150
158
  }
151
159
  }
160
+
161
+ @mixin make-c-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
162
+ @each $breakpoint in map.keys($breakpoints) {
163
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
164
+
165
+ @include container-breakpoint-up($breakpoint, $breakpoints) {
166
+ // Provide basic `.cq-col-{bp}` classes for equal-width flexbox columns
167
+ .cq-col#{$infix} {
168
+ flex: 1 0 0;
169
+ }
170
+
171
+ .cq-row-cols#{$infix}-auto > * {
172
+ @include make-col-auto();
173
+ }
174
+
175
+ @if $grid-row-columns > 0 {
176
+ @for $i from 1 through $grid-row-columns {
177
+ .cq-row-cols#{$infix}-#{$i} {
178
+ @include row-cols($i);
179
+ }
180
+ }
181
+ }
182
+
183
+ .cq-col#{$infix}-auto {
184
+ @include make-col-auto();
185
+ }
186
+
187
+ @if $columns > 0 {
188
+ @for $i from 1 through $columns {
189
+ .cq-col#{$infix}-#{$i} {
190
+ @include make-col($i, $columns);
191
+ }
192
+ }
193
+
194
+ // `$columns - 1` because offsetting by the width of an entire row isn't possible
195
+ @for $i from 0 through ($columns - 1) {
196
+ @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
197
+ .cq-offset#{$infix}-#{$i} {
198
+ @include make-col-offset($i, $columns);
199
+ }
200
+ }
201
+ }
202
+ }
203
+
204
+ // Gutters
205
+ //
206
+ // Make use of `.cq-g-*`, `.cq-gx-*` or `.cq-gy-*` utilities to change spacing between the columns.
207
+ @each $key, $value in $gutters {
208
+ .cq-g#{$infix}-#{$key},
209
+ .cq-gx#{$infix}-#{$key} {
210
+ --#{$prefix}gutter-x: #{$value};
211
+ }
212
+
213
+ .cq-g#{$infix}-#{$key},
214
+ .cq-gy#{$infix}-#{$key} {
215
+ --#{$prefix}gutter-y: #{$value};
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
@@ -1,12 +1,15 @@
1
+ @use "sass:map";
2
+ @use "../mixins/deprecate" as *;
3
+
1
4
  @include deprecate("`list-group-item-variant()`", "v4.3.0", "v6.0.0");
2
5
 
3
6
  // List Groups
4
7
 
5
8
  // scss-docs-start list-group-mixin
6
9
  @mixin list-group-item-variant($state, $variant) {
7
- $background: map-get($variant, "bg");
8
- $background-hover: map-get($variant, "bg-hover");
9
- $color: contrast-ratio-correction(map-get($variant, "color"), map-get($variant, "bg"), $alert-color-scale, $state);
10
+ $background: map.get($variant, "bg");
11
+ $background-hover: map.get($variant, "bg-hover");
12
+ $color: contrast-ratio-correction(map.get($variant, "color"), map.get($variant, "bg"), $alert-color-scale, $state);
10
13
 
11
14
  --#{$prefix}list-group-color: #{$color};
12
15
  --#{$prefix}list-group-bg: #{$background};
@@ -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-inline-start: 0;
6
6
  list-style: none;
7
7
  }
@@ -1,3 +1,10 @@
1
+ @use "sass:string";
2
+ @use "../functions/str-replace" as *;
3
+ @use "../variables" as *;
4
+
5
+ // Applies styles only when LTR is enabled and the HTML does NOT have the "rtl"
6
+ // attribute (i.e., left-to-right contexts).
7
+
1
8
  @mixin ltr {
2
9
  @if $enable-ltr {
3
10
  html:not([dir="rtl"]) & {
@@ -6,6 +13,9 @@
6
13
  }
7
14
  }
8
15
 
16
+ // Applies styles only when RTL is enabled and the element is within an RTL
17
+ // context (i.e., the element is a descendant of an element with dir="rtl").
18
+
9
19
  @mixin rtl {
10
20
  @if $enable-rtl {
11
21
  *[dir="rtl"] & {
@@ -14,74 +24,95 @@
14
24
  }
15
25
  }
16
26
 
27
+ // This function takes an element (or string) and returns its "mirrored" version.
28
+ // For example, it will replace "left" with "right" and vice versa.
29
+
17
30
  @function reflect($element) {
18
31
  $string: #{$element};
19
- @if str-index($string, "left") {
32
+ @if string.index($string, "left") {
20
33
  @return str-replace($string, "left", "right");
21
34
  }
22
- @if str-index($string, "right") {
35
+ @if string.index($string, "right") {
23
36
  @return str-replace($string, "right", "left");
24
37
  }
25
38
 
26
- @return unquote($string);
39
+ @return string.unquote($string);
27
40
  }
28
41
 
29
- @mixin ltr-rtl($property, $value, $property-rtl: null, $value-rtl: null, $important: null) {
42
+ // Generates CSS for a given property with different values for LTR and RTL
43
+ // contexts. Allows an optional custom property name and value for RTL.
44
+ //
45
+ // @param {String} $property - The CSS property for LTR context (e.g., margin-left).
46
+ // @param {String} $value - The value for the property in LTR context.
47
+ // @param {String} $property-rtl - Optional custom property name for RTL context.
48
+ // @param {String} $value-rtl - Optional custom value for RTL context.
49
+ // @param {Boolean} $important - Optional "!important" flag.
50
+
51
+ @mixin ltr-rtl($property, $value, $property-rtl: null, $value-rtl: null, $important: false) {
30
52
  $property-reflected: reflect($property);
31
53
  $value-reflected: reflect($value);
32
54
 
33
55
  @if $enable-ltr and $enable-rtl {
34
56
  @include ltr() {
35
- #{$property}: $value $important;
57
+ #{$property}: $value if($important, !important, null);
36
58
  }
37
59
  @include rtl() {
38
60
  @if $value-rtl {
39
- #{$property-reflected}: $value-rtl $important;
61
+ #{$property-reflected}: $value-rtl if($important, !important, null);
40
62
  }
41
63
  @else {
42
- #{$property-reflected}: $value-reflected $important;
64
+ #{$property-reflected}: $value-reflected if($important, !important, null);
43
65
  }
44
66
  }
45
67
  }
46
68
  @else {
47
69
  @if $enable-rtl {
48
70
  @if $value-rtl {
49
- #{$property-reflected}: $value-rtl $important;
71
+ #{$property-reflected}: $value-rtl if($important, !important, null);
50
72
  }
51
73
  @else {
52
- #{$property-reflected}: $value-reflected $important;
74
+ #{$property-reflected}: $value-reflected if($important, !important, null);
53
75
  }
54
76
  }
55
77
  @else {
56
- #{$property}: $value $important;
78
+ #{$property}: $value if($important, !important, null);
57
79
  }
58
80
  }
59
81
  }
60
82
 
61
- @mixin ltr-rtl-value-only($property, $value, $value-rtl: null, $important: null) {
83
+ // Similar to ltr-rtl but assumes the property name is the same for both
84
+ // contexts. It only mirrors the value for RTL if a custom RTL value is not
85
+ // provided.
86
+ //
87
+ // @param {String} $property - The CSS property to apply.
88
+ // @param {String} $value - The value for the property in LTR context.
89
+ // @param {String} $value-rtl - Optional custom value for RTL context.
90
+ // @param {Boolean} $important - Optional "!important" flag.
91
+
92
+ @mixin ltr-rtl-value-only($property, $value, $value-rtl: null, $important: false) {
62
93
  $value-reflected: reflect($value);
63
94
 
64
95
  @if $enable-ltr and $enable-rtl {
65
96
  @include ltr() {
66
- #{$property}: $value $important;
97
+ #{$property}: $value if($important, !important, null);
67
98
  }
68
99
  @include rtl() {
69
100
  @if $value-rtl {
70
- #{$property}: $value-rtl $important;
101
+ #{$property}: $value-rtl if($important, !important, null);
71
102
  } @else {
72
- #{$property}: $value-reflected $important;
103
+ #{$property}: $value-reflected if($important, !important, null);
73
104
  }
74
105
  }
75
106
  }
76
107
  @else {
77
108
  @if $enable-rtl {
78
109
  @if $value-rtl {
79
- #{$property}: $value-rtl $important;
110
+ #{$property}: $value-rtl if($important, !important, null);
80
111
  } @else {
81
- #{$property}: $value-reflected $important;
112
+ #{$property}: $value-reflected if($important, !important, null);
82
113
  }
83
114
  } @else {
84
- #{$property}: $value $important;
115
+ #{$property}: $value if($important, !important, null);
85
116
  }
86
117
  }
87
118
  }
@@ -1,3 +1,6 @@
1
+ @use "../vendor/rfs" as *;
2
+ @use "../variables" as *;
3
+
1
4
  // Pagination
2
5
 
3
6
  // scss-docs-start pagination-mixin
@@ -1,10 +1,11 @@
1
+ @use "../variables" as *;
2
+
1
3
  @mixin reset-text {
2
4
  font-family: $font-family-base;
3
5
  // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.
4
6
  font-style: normal;
5
7
  font-weight: $font-weight-normal;
6
8
  line-height: $line-height-base;
7
- @include ltr-rtl("text-align", left); // Fallback for where `start` is not supported
8
9
  text-align: start;
9
10
  text-decoration: none;
10
11
  text-shadow: none;
@@ -1,11 +1,17 @@
1
+ @use "sass:color";
2
+ @use "sass:math";
3
+ @use "../functions/color-contrast" as *;
4
+ @use "../functions/contrast-ratio" as *;
5
+ @use "../variables" as *;
6
+
1
7
  // scss-docs-start table-variant
2
8
  @mixin table-variant($state, $background) {
3
9
  .table-#{$state} {
4
10
  $color: color-contrast(opaque($body-bg, $background));
5
- $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
6
- $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
7
- $active-bg: mix($color, $background, percentage($table-active-bg-factor));
8
- $table-border-color: mix($color, $background, percentage($table-border-factor));
11
+ $hover-bg: color.mix($color, $background, math.percentage($table-hover-bg-factor));
12
+ $striped-bg: color.mix($color, $background, math.percentage($table-striped-bg-factor));
13
+ $active-bg: color.mix($color, $background, math.percentage($table-active-bg-factor));
14
+ $table-border-color: color.mix($color, $background, math.percentage($table-border-factor));
9
15
 
10
16
  --#{$prefix}table-color: #{$color};
11
17
  --#{$prefix}table-bg: #{$background};
@@ -1,10 +1,13 @@
1
1
  // stylelint-disable property-disallowed-list
2
+ @use "sass:list";
3
+ @use "../variables" as *;
4
+
2
5
  @mixin transition($transition...) {
3
- @if length($transition) == 0 {
6
+ @if list.length($transition) == 0 {
4
7
  $transition: $transition-base;
5
8
  }
6
9
 
7
- @if length($transition) > 1 {
10
+ @if list.length($transition) > 1 {
8
11
  @each $value in $transition {
9
12
  @if $value == null or $value == none {
10
13
  @warn "The keyword 'none' or 'null' must be used as a single argument.";
@@ -13,11 +16,11 @@
13
16
  }
14
17
 
15
18
  @if $enable-transitions {
16
- @if nth($transition, 1) != null {
19
+ @if list.nth($transition, 1) != null {
17
20
  transition: $transition;
18
21
  }
19
22
 
20
- @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {
23
+ @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {
21
24
  @media (prefers-reduced-motion: reduce) {
22
25
  transition: none;
23
26
  }
@@ -0,0 +1 @@
1
+ @forward "utilities";