@coreui/coreui 5.1.2 → 5.3.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 (298) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -4
  3. package/dist/css/coreui-grid.css +462 -235
  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 +235 -235
  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 +1554 -1199
  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 +1212 -1180
  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 +6027 -5264
  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 +5651 -5388
  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 +37 -40
  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 +53 -54
  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 +53 -54
  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/alert.js.map +1 -1
  69. package/js/dist/base-component.js +3 -3
  70. package/js/dist/base-component.js.map +1 -1
  71. package/js/dist/button.js +2 -2
  72. package/js/dist/button.js.map +1 -1
  73. package/js/dist/carousel.js +2 -2
  74. package/js/dist/carousel.js.map +1 -1
  75. package/js/dist/collapse.js +2 -2
  76. package/js/dist/collapse.js.map +1 -1
  77. package/js/dist/dom/data.js +2 -2
  78. package/js/dist/dom/data.js.map +1 -1
  79. package/js/dist/dom/event-handler.js +2 -2
  80. package/js/dist/dom/event-handler.js.map +1 -1
  81. package/js/dist/dom/manipulator.js +2 -2
  82. package/js/dist/dom/manipulator.js.map +1 -1
  83. package/js/dist/dom/selector-engine.js +2 -2
  84. package/js/dist/dom/selector-engine.js.map +1 -1
  85. package/js/dist/dropdown.js +2 -2
  86. package/js/dist/dropdown.js.map +1 -1
  87. package/js/dist/modal.js +2 -2
  88. package/js/dist/modal.js.map +1 -1
  89. package/js/dist/navigation.js +3 -3
  90. package/js/dist/navigation.js.map +1 -1
  91. package/js/dist/offcanvas.js +2 -2
  92. package/js/dist/offcanvas.js.map +1 -1
  93. package/js/dist/popover.js +2 -2
  94. package/js/dist/popover.js.map +1 -1
  95. package/js/dist/scrollspy.js +2 -2
  96. package/js/dist/scrollspy.js.map +1 -1
  97. package/js/dist/sidebar.js +2 -2
  98. package/js/dist/sidebar.js.map +1 -1
  99. package/js/dist/tab.js +2 -2
  100. package/js/dist/tab.js.map +1 -1
  101. package/js/dist/toast.js +2 -2
  102. package/js/dist/toast.js.map +1 -1
  103. package/js/dist/tooltip.js +2 -2
  104. package/js/dist/tooltip.js.map +1 -1
  105. package/js/dist/util/backdrop.js +2 -2
  106. package/js/dist/util/backdrop.js.map +1 -1
  107. package/js/dist/util/component-functions.js +2 -2
  108. package/js/dist/util/component-functions.js.map +1 -1
  109. package/js/dist/util/config.js +2 -2
  110. package/js/dist/util/config.js.map +1 -1
  111. package/js/dist/util/focustrap.js +2 -2
  112. package/js/dist/util/focustrap.js.map +1 -1
  113. package/js/dist/util/index.js +2 -2
  114. package/js/dist/util/index.js.map +1 -1
  115. package/js/dist/util/sanitizer.js +2 -3
  116. package/js/dist/util/sanitizer.js.map +1 -1
  117. package/js/dist/util/scrollbar.js +2 -2
  118. package/js/dist/util/scrollbar.js.map +1 -1
  119. package/js/dist/util/swipe.js +2 -2
  120. package/js/dist/util/swipe.js.map +1 -1
  121. package/js/dist/util/template-factory.js +2 -2
  122. package/js/dist/util/template-factory.js.map +1 -1
  123. package/js/src/base-component.js +1 -1
  124. package/js/src/navigation.js +1 -1
  125. package/js/src/util/sanitizer.js +0 -1
  126. package/package.json +31 -34
  127. package/scss/_accordion.import.scss +1 -0
  128. package/scss/_accordion.scss +10 -2
  129. package/scss/_alert.import.scss +1 -0
  130. package/scss/_alert.scss +7 -3
  131. package/scss/_avatar.import.scss +1 -0
  132. package/scss/_avatar.scss +13 -8
  133. package/scss/_badge.import.scss +1 -0
  134. package/scss/_badge.scss +4 -0
  135. package/scss/_banner.scss +7 -0
  136. package/scss/_breadcrumb.import.scss +1 -0
  137. package/scss/_breadcrumb.scss +9 -3
  138. package/scss/_button-group.import.scss +1 -0
  139. package/scss/_button-group.scss +7 -3
  140. package/scss/_buttons.import.scss +1 -0
  141. package/scss/_buttons.scss +49 -18
  142. package/scss/_callout.import.scss +1 -0
  143. package/scss/_callout.scss +5 -2
  144. package/scss/_card.import.scss +1 -0
  145. package/scss/_card.scss +9 -5
  146. package/scss/_carousel.import.scss +1 -0
  147. package/scss/_carousel.scss +9 -3
  148. package/scss/_close.import.scss +1 -0
  149. package/scss/_close.scss +6 -1
  150. package/scss/_containers.import.scss +1 -0
  151. package/scss/_containers.scss +4 -0
  152. package/scss/_dropdown.import.scss +1 -0
  153. package/scss/_dropdown.scss +30 -21
  154. package/scss/_footer.import.scss +1 -0
  155. package/scss/_footer.scss +2 -0
  156. package/scss/_forms.import.scss +9 -0
  157. package/scss/_forms.scss +9 -9
  158. package/scss/_functions.import.scss +1 -0
  159. package/scss/_functions.scss +11 -366
  160. package/scss/_grid.import.scss +1 -0
  161. package/scss/_grid.scss +23 -1
  162. package/scss/_header.import.scss +1 -0
  163. package/scss/_header.scss +9 -2
  164. package/scss/_helpers.import.scss +1 -0
  165. package/scss/_helpers.scss +12 -12
  166. package/scss/_icon.import.scss +1 -0
  167. package/scss/_icon.scss +3 -0
  168. package/scss/_images.import.scss +1 -0
  169. package/scss/_images.scss +6 -0
  170. package/scss/_list-group.import.scss +1 -0
  171. package/scss/_list-group.scss +11 -6
  172. package/scss/_maps.import.scss +1 -0
  173. package/scss/_maps.scss +14 -7
  174. package/scss/_mixins.import.scss +1 -0
  175. package/scss/_mixins.scss +29 -29
  176. package/scss/_modal.import.scss +1 -0
  177. package/scss/_modal.scss +12 -3
  178. package/scss/_nav.import.scss +1 -0
  179. package/scss/_nav.scss +8 -2
  180. package/scss/_navbar.import.scss +1 -0
  181. package/scss/_navbar.scss +17 -5
  182. package/scss/_offcanvas.import.scss +1 -0
  183. package/scss/_offcanvas.scss +14 -7
  184. package/scss/_pagination.import.scss +1 -0
  185. package/scss/_pagination.scss +9 -1
  186. package/scss/_placeholders.import.scss +1 -0
  187. package/scss/_placeholders.scss +2 -0
  188. package/scss/_popover.import.scss +1 -0
  189. package/scss/_popover.scss +6 -0
  190. package/scss/_progress.import.scss +1 -0
  191. package/scss/_progress.scss +7 -0
  192. package/scss/_reboot.import.scss +1 -0
  193. package/scss/_reboot.scss +11 -7
  194. package/scss/_root.import.scss +1 -0
  195. package/scss/_root.scss +14 -5
  196. package/scss/_sidebar.import.scss +3 -0
  197. package/scss/_sidebar.scss +3 -3
  198. package/scss/_spinners.import.scss +1 -0
  199. package/scss/_spinners.scss +2 -0
  200. package/scss/_tables.import.scss +1 -0
  201. package/scss/_tables.scss +6 -1
  202. package/scss/_toasts.import.scss +1 -0
  203. package/scss/_toasts.scss +5 -2
  204. package/scss/_tooltip.import.scss +1 -0
  205. package/scss/_tooltip.scss +6 -0
  206. package/scss/_transitions.import.scss +1 -0
  207. package/scss/_transitions.scss +3 -0
  208. package/scss/_type.import.scss +1 -0
  209. package/scss/_type.scss +6 -1
  210. package/scss/_utilities.import.scss +1 -0
  211. package/scss/_utilities.scss +50 -63
  212. package/scss/_variables-dark.import.scss +1 -0
  213. package/scss/_variables-dark.scss +17 -36
  214. package/scss/_variables.import.scss +1 -0
  215. package/scss/_variables.scss +39 -35
  216. package/scss/coreui-grid.rtl.scss +4 -4
  217. package/scss/coreui-grid.scss +12 -21
  218. package/scss/coreui-reboot.rtl.scss +4 -4
  219. package/scss/coreui-reboot.scss +8 -9
  220. package/scss/coreui-utilities.rtl.scss +4 -4
  221. package/scss/coreui-utilities.scss +8 -11
  222. package/scss/coreui.rtl.scss +4 -4
  223. package/scss/coreui.scss +44 -47
  224. package/scss/forms/_floating-labels.import.scss +1 -0
  225. package/scss/forms/_floating-labels.scss +5 -1
  226. package/scss/forms/_form-check.import.scss +1 -0
  227. package/scss/forms/_form-check.scss +24 -20
  228. package/scss/forms/_form-control.import.scss +1 -0
  229. package/scss/forms/_form-control.scss +9 -1
  230. package/scss/forms/_form-range.import.scss +1 -0
  231. package/scss/forms/_form-range.scss +7 -0
  232. package/scss/forms/_form-select.import.scss +1 -0
  233. package/scss/forms/_form-select.scss +18 -5
  234. package/scss/forms/_form-text.import.scss +1 -0
  235. package/scss/forms/_form-text.scss +3 -0
  236. package/scss/forms/_input-group.import.scss +1 -0
  237. package/scss/forms/_input-group.scss +10 -4
  238. package/scss/forms/_labels.import.scss +1 -0
  239. package/scss/forms/_labels.scss +4 -0
  240. package/scss/forms/_validation.import.scss +1 -0
  241. package/scss/forms/_validation.scss +3 -0
  242. package/scss/functions/_assert-ascending.scss +19 -0
  243. package/scss/functions/_assert-starts-at-zero.scss +14 -0
  244. package/scss/functions/_color-contrast-variables.scss +24 -0
  245. package/scss/functions/_color-contrast.scss +27 -0
  246. package/scss/functions/_color.scss +18 -0
  247. package/scss/functions/_contrast-ratio.scss +35 -0
  248. package/scss/functions/_escape-svg.scss +22 -0
  249. package/scss/functions/_maps.scss +57 -0
  250. package/scss/functions/_math.scss +87 -0
  251. package/scss/functions/_rgba-css-var.scss +9 -0
  252. package/scss/functions/_str-replace.scss +19 -0
  253. package/scss/functions/_to-rgb.scss +5 -0
  254. package/scss/helpers/_clearfix.scss +2 -0
  255. package/scss/helpers/_color-bg.scss +9 -3
  256. package/scss/helpers/_colored-links.scss +13 -9
  257. package/scss/helpers/_focus-ring.scss +2 -0
  258. package/scss/helpers/_icon-link.scss +3 -0
  259. package/scss/helpers/_position.scss +5 -1
  260. package/scss/helpers/_ratio.scss +3 -1
  261. package/scss/helpers/_stretched-link.scss +2 -0
  262. package/scss/helpers/_text-truncation.scss +2 -0
  263. package/scss/helpers/_visually-hidden.scss +2 -0
  264. package/scss/helpers/_vr.scss +2 -0
  265. package/scss/mixins/_alert.scss +3 -0
  266. package/scss/mixins/_avatar.scss +3 -0
  267. package/scss/mixins/_backdrop.scss +2 -0
  268. package/scss/mixins/_border-radius.scss +15 -11
  269. package/scss/mixins/_box-shadow.scss +5 -2
  270. package/scss/mixins/_breakpoints.scss +82 -5
  271. package/scss/mixins/_buttons.scss +54 -50
  272. package/scss/mixins/_caret.scss +5 -3
  273. package/scss/mixins/_color-mode.scss +3 -1
  274. package/scss/mixins/_container.scss +2 -0
  275. package/scss/mixins/_deprecate.scss +2 -0
  276. package/scss/mixins/_forms.scss +12 -5
  277. package/scss/mixins/_gradients.scss +2 -0
  278. package/scss/mixins/_grid.scss +77 -8
  279. package/scss/mixins/_list-group.scss +6 -3
  280. package/scss/mixins/_lists.scss +1 -1
  281. package/scss/mixins/_ltr-rtl.scss +48 -17
  282. package/scss/mixins/_pagination.scss +3 -0
  283. package/scss/mixins/_reset-text.scss +2 -1
  284. package/scss/mixins/_table-variants.scss +10 -4
  285. package/scss/mixins/_transition.scss +7 -4
  286. package/scss/mixins/_utilities.import.scss +1 -0
  287. package/scss/mixins/_utilities.scss +30 -17
  288. package/scss/sidebar/_sidebar-narrow.scss +24 -45
  289. package/scss/sidebar/_sidebar-nav.scss +11 -6
  290. package/scss/sidebar/_sidebar.scss +80 -106
  291. package/scss/themes/bootstrap/bootstrap.rtl.scss +4 -24
  292. package/scss/themes/bootstrap/bootstrap.scss +120 -16
  293. package/scss/utilities/_api.import.scss +1 -0
  294. package/scss/utilities/_api.scss +14 -6
  295. package/scss/vendor/_rfs.scss +33 -27
  296. package/scss/mixins/_banner.scss +0 -7
  297. package/scss/themes/bootstrap/_variables.scss +0 -2
  298. 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,13 +74,13 @@
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) {
73
81
  // Provide basic `.col-{bp}` classes for equal-width flexbox columns
74
82
  .col#{$infix} {
75
- flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
83
+ flex: 1 0 0;
76
84
  }
77
85
 
78
86
  .row-cols#{$infix}-auto > * {
@@ -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";