@coreui/coreui 5.0.0-alpha.0 → 5.0.0-alpha.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 (205) hide show
  1. package/LICENSE +5 -5
  2. package/README.md +2 -2
  3. package/dist/css/coreui-grid.css +34 -192
  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 +123 -275
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +7 -3
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +151 -138
  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 +160 -146
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +7 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +633 -412
  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 +809 -688
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +7 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +1925 -1617
  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 +2238 -2091
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +7 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +302 -289
  36. package/dist/js/coreui.bundle.js.map +1 -1
  37. package/dist/js/coreui.bundle.min.js +2 -2
  38. package/dist/js/coreui.bundle.min.js.map +1 -1
  39. package/dist/js/coreui.esm.js +262 -243
  40. package/dist/js/coreui.esm.js.map +1 -1
  41. package/dist/js/coreui.esm.min.js +2 -2
  42. package/dist/js/coreui.esm.min.js.map +1 -1
  43. package/dist/js/coreui.js +265 -245
  44. package/dist/js/coreui.js.map +1 -1
  45. package/dist/js/coreui.min.js +2 -2
  46. package/dist/js/coreui.min.js.map +1 -1
  47. package/js/dist/alert.js +7 -6
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +8 -7
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +7 -6
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +8 -7
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +7 -6
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +3 -3
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +7 -7
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +4 -4
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +4 -3
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +10 -9
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +9 -10
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +7 -6
  70. package/js/dist/navigation.js.map +1 -1
  71. package/js/dist/offcanvas.js +11 -10
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +7 -6
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +9 -8
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +7 -6
  78. package/js/dist/sidebar.js.map +1 -1
  79. package/js/dist/tab.js +10 -9
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +7 -6
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +12 -11
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +8 -7
  86. package/js/dist/util/backdrop.js.map +1 -1
  87. package/js/dist/util/component-functions.js +8 -7
  88. package/js/dist/util/component-functions.js.map +1 -1
  89. package/js/dist/util/config.js +8 -7
  90. package/js/dist/util/config.js.map +1 -1
  91. package/js/dist/util/focustrap.js +4 -3
  92. package/js/dist/util/focustrap.js.map +1 -1
  93. package/js/dist/util/index.js +3 -3
  94. package/js/dist/util/index.js.map +1 -1
  95. package/js/dist/util/sanitizer.js +28 -30
  96. package/js/dist/util/sanitizer.js.map +1 -1
  97. package/js/dist/util/scrollbar.js +8 -7
  98. package/js/dist/util/scrollbar.js.map +1 -1
  99. package/js/dist/util/swipe.js +8 -7
  100. package/js/dist/util/swipe.js.map +1 -1
  101. package/js/dist/util/template-factory.js +8 -7
  102. package/js/dist/util/template-factory.js.map +1 -1
  103. package/js/index.esm.js +21 -0
  104. package/js/index.umd.js +38 -0
  105. package/js/src/alert.js +3 -3
  106. package/js/src/base-component.js +3 -3
  107. package/js/src/button.js +4 -3
  108. package/js/src/carousel.js +6 -6
  109. package/js/src/collapse.js +4 -4
  110. package/js/src/dom/data.js +2 -2
  111. package/js/src/dom/event-handler.js +4 -5
  112. package/js/src/dom/manipulator.js +3 -3
  113. package/js/src/dom/selector-engine.js +2 -2
  114. package/js/src/dropdown.js +8 -8
  115. package/js/src/modal.js +8 -9
  116. package/js/src/navigation.js +3 -3
  117. package/js/src/offcanvas.js +11 -11
  118. package/js/src/popover.js +2 -2
  119. package/js/src/scrollspy.js +5 -5
  120. package/js/src/sidebar.js +4 -4
  121. package/js/src/tab.js +6 -6
  122. package/js/src/toast.js +3 -3
  123. package/js/src/tooltip.js +9 -9
  124. package/js/src/util/backdrop.js +3 -3
  125. package/js/src/util/component-functions.js +3 -3
  126. package/js/src/util/config.js +3 -3
  127. package/js/src/util/focustrap.js +2 -2
  128. package/js/src/util/index.js +2 -2
  129. package/js/src/util/sanitizer.js +40 -43
  130. package/js/src/util/scrollbar.js +3 -3
  131. package/js/src/util/swipe.js +3 -3
  132. package/js/src/util/template-factory.js +4 -5
  133. package/package.json +51 -45
  134. package/scss/_alert.scss +5 -5
  135. package/scss/_avatar.scss +4 -4
  136. package/scss/_badge.scss +11 -1
  137. package/scss/_breadcrumb.scss +9 -4
  138. package/scss/_button-group.scss +2 -2
  139. package/scss/_buttons.scss +38 -71
  140. package/scss/_callout.scss +2 -2
  141. package/scss/_card.scss +1 -0
  142. package/scss/_carousel.scss +9 -3
  143. package/scss/_close.scss +2 -0
  144. package/scss/_dropdown.scss +10 -10
  145. package/scss/_functions.scss +59 -0
  146. package/scss/_grid.scss +8 -0
  147. package/scss/_header.scss +195 -0
  148. package/scss/_helpers.scss +2 -0
  149. package/scss/_images.scss +3 -3
  150. package/scss/_list-group.scss +12 -19
  151. package/scss/_maps.scss +75 -21
  152. package/scss/_mixins.scss +6 -4
  153. package/scss/_modal.scss +2 -2
  154. package/scss/_nav.scss +9 -39
  155. package/scss/_navbar.scss +11 -8
  156. package/scss/_offcanvas.scss +8 -8
  157. package/scss/_pagination.scss +2 -2
  158. package/scss/_progress.scss +43 -0
  159. package/scss/_reboot.scss +19 -21
  160. package/scss/_root.scss +65 -64
  161. package/scss/_sidebar.scss +0 -11
  162. package/scss/_subheader.scss +72 -0
  163. package/scss/_tables.scss +18 -11
  164. package/scss/_toasts.scss +2 -2
  165. package/scss/_tooltip.scss +13 -14
  166. package/scss/_utilities.scss +117 -65
  167. package/scss/_variables-dark.scss +115 -55
  168. package/scss/_variables.scss +400 -247
  169. package/scss/coreui-grid.rtl.scss +7 -0
  170. package/scss/coreui-grid.scss +2 -5
  171. package/scss/coreui-reboot.rtl.scss +7 -0
  172. package/scss/coreui-reboot.scss +1 -1
  173. package/scss/coreui-utilities.rtl.scss +7 -0
  174. package/scss/coreui-utilities.scss +1 -1
  175. package/scss/coreui.rtl.scss +7 -0
  176. package/scss/coreui.scss +4 -3
  177. package/scss/forms/_floating-labels.scss +19 -15
  178. package/scss/forms/_form-check.scss +29 -8
  179. package/scss/forms/_form-control.scss +17 -4
  180. package/scss/forms/_form-select.scss +6 -7
  181. package/scss/forms/_input-group.scss +5 -5
  182. package/scss/helpers/_color-bg.scss +12 -2
  183. package/scss/helpers/_colored-links.scss +20 -2
  184. package/scss/helpers/_focus-ring.scss +5 -0
  185. package/scss/helpers/_icon-link.scss +25 -0
  186. package/scss/helpers/_ratio.scss +1 -1
  187. package/scss/helpers/_vr.scss +1 -0
  188. package/scss/mixins/_alert.scss +1 -1
  189. package/scss/mixins/_banner.scss +3 -3
  190. package/scss/mixins/_border-radius.scss +7 -7
  191. package/scss/mixins/_buttons.scss +53 -49
  192. package/scss/mixins/_forms.scss +7 -7
  193. package/scss/mixins/_grid.scss +1 -1
  194. package/scss/mixins/_list-group.scss +12 -20
  195. package/scss/mixins/_lists.scss +1 -1
  196. package/scss/mixins/_ltr-rtl.scss +87 -0
  197. package/scss/mixins/_utilities.scss +6 -1
  198. package/scss/mixins/_visually-hidden.scss +5 -1
  199. package/scss/sidebar/_sidebar-narrow.scss +6 -6
  200. package/scss/sidebar/_sidebar-nav.scss +4 -4
  201. package/scss/sidebar/_sidebar.scss +30 -22
  202. package/scss/vendor/_rfs.scss +24 -30
  203. package/scss/tests/mixins/_color-modes.test.scss +0 -69
  204. package/scss/tests/mixins/_utilities.test.scss +0 -393
  205. package/scss/tests/utilities/_api.test.scss +0 -75
@@ -218,6 +218,65 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
218
218
  }
219
219
  // scss-docs-end color-functions
220
220
 
221
+ // scss-docs-start button-color-functions
222
+ @function btn-color($color, $shade, $tint) {
223
+ @return if(color-contrast($color) == $color-contrast-light, shade-color($color, $shade), tint-color($color, $tint));
224
+ }
225
+
226
+ @function btn-color-map($background, $border-color) {
227
+ @return (
228
+ "bg": $background,
229
+ "border-color": $border-color,
230
+ "color": color-contrast($background),
231
+ "hover-bg": btn-color($background, $btn-hover-bg-shade-amount, $btn-hover-bg-tint-amount),
232
+ "hover-border-color": btn-color($border-color, $btn-hover-border-shade-amount, $btn-hover-border-tint-amount),
233
+ "hover-color": color-contrast(btn-color($background, $btn-hover-bg-shade-amount, $btn-hover-bg-tint-amount)),
234
+ "active-bg": btn-color($background, $btn-active-bg-shade-amount, $btn-active-bg-tint-amount),
235
+ "active-border-color": btn-color($border-color, $btn-active-border-shade-amount, $btn-active-border-tint-amount),
236
+ "active-color": color-contrast(btn-color($border-color, $btn-active-border-shade-amount, $btn-active-border-tint-amount)),
237
+ "disabled-bg": $background,
238
+ "disabled-border-color": $border-color,
239
+ "disabled-color": color-contrast($background),
240
+ "shadow": rgba(mix($background, $border-color, 15%), .5)
241
+ );
242
+ }
243
+
244
+ @function btn-outline-color-map($background) {
245
+ @return (
246
+ "color": $background,
247
+ "hover-bg": btn-color($background, $btn-hover-bg-shade-amount, $btn-hover-bg-tint-amount),
248
+ "hover-border-color": btn-color($background, $btn-hover-border-shade-amount, $btn-hover-border-tint-amount),
249
+ "hover-color": color-contrast(btn-color($background, $btn-hover-bg-shade-amount, $btn-hover-bg-tint-amount)),
250
+ "active-bg": btn-color($background, $btn-active-bg-shade-amount, $btn-active-bg-tint-amount),
251
+ "active-border-color": btn-color($background, $btn-active-border-shade-amount, $btn-active-border-tint-amount),
252
+ "active-color": color-contrast(btn-color($background, $btn-active-border-shade-amount, $btn-active-border-tint-amount)),
253
+ "disabled-color": $background,
254
+ "shadow": rgba(mix($background, $background, 15%), .5)
255
+ );
256
+ }
257
+ // scss-docs-end button-color-functions
258
+
259
+ // scss-docs-start table-color-functions
260
+ @function table-color-map($background, $body-bg: $body-bg) {
261
+ $color: color-contrast(opaque($body-bg, $background));
262
+ $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
263
+ $active-bg: mix($color, $background, percentage($table-active-bg-factor));
264
+ $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
265
+
266
+ @return (
267
+ "bg": $background,
268
+ "color": $color,
269
+ "border-color": mix($color, $background, percentage($table-border-factor)),
270
+ "striped-bg": $striped-bg,
271
+ "striped-color": color-contrast($striped-bg),
272
+ "active-bg": $active-bg,
273
+ "active-color": color-contrast($active-bg),
274
+ "hover-bg": $hover-bg,
275
+ "hover-color": color-contrast($hover-bg)
276
+ );
277
+ }
278
+ // scss-docs-end table-color-functions
279
+
221
280
  // Return valid calc
222
281
  @function add($value1, $value2, $return-calc: true) {
223
282
  @if $value1 == null {
package/scss/_grid.scss CHANGED
@@ -2,6 +2,14 @@
2
2
  //
3
3
  // Rows contain your columns.
4
4
 
5
+ :root {
6
+ @each $name, $value in $grid-breakpoints {
7
+ --#{$prefix}breakpoint-#{$name}: #{$value};
8
+ }
9
+
10
+ --#{$prefix}mobile-breakpoint: #{$mobile-breakpoint};
11
+ }
12
+
5
13
  @if $enable-grid-classes {
6
14
  .row {
7
15
  @include make-row();
@@ -0,0 +1,195 @@
1
+ .header {
2
+ // scss-docs-start header-css-vars
3
+ --#{$prefix}header-min-height: #{$header-min-height};
4
+ --#{$prefix}header-padding-x: #{$header-padding-x};
5
+ --#{$prefix}header-padding-y: #{$header-padding-y};
6
+ --#{$prefix}header-bg: #{$header-bg};
7
+ --#{$prefix}header-color: #{$header-color};
8
+ --#{$prefix}header-border-color: #{$header-border-color};
9
+ --#{$prefix}header-border: #{$header-border-width} solid var(--#{$prefix}header-border-color);
10
+ --#{$prefix}header-hover-color: #{$header-hover-color};
11
+ --#{$prefix}header-disabled-color: #{$header-disabled-color};
12
+ --#{$prefix}header-active-color: #{$header-active-color};
13
+ --#{$prefix}header-brand-padding-y: #{$header-brand-padding-y};
14
+ --#{$prefix}header-brand-color: #{$header-brand-color};
15
+ --#{$prefix}header-brand-hover-color: #{$header-brand-hover-color};
16
+ --#{$prefix}header-toggler-padding-x: #{$header-toggler-padding-x};
17
+ --#{$prefix}header-toggler-padding-y: #{$header-toggler-padding-y};
18
+ --#{$prefix}header-toggler-bg: #{$header-toggler-bg};
19
+ --#{$prefix}header-toggler-color: #{$header-toggler-color};
20
+ --#{$prefix}header-toggler-border-radius: #{$header-toggler-border-radius};
21
+ --#{$prefix}header-toggler-hover-color: #{$header-toggler-hover-color};
22
+ --#{$prefix}header-toggler-icon-bg: #{escape-svg($header-toggler-icon-bg)};
23
+ --#{$prefix}header-toggler-hover-icon-bg: #{escape-svg($header-toggler-hover-icon-bg)};
24
+ --#{$prefix}header-nav-link-padding-x: #{$header-nav-link-padding-x};
25
+ --#{$prefix}header-nav-link-padding-y: #{$header-nav-link-padding-y};
26
+ --#{$prefix}header-divider-border-color: #{$header-divider-border-color};
27
+ --#{$prefix}header-divider-border: #{$header-divider-border-width} solid var(--#{$prefix}header-divider-border-color);
28
+ --#{$prefix}subheader-min-height: #{$subheader-min-height};
29
+ // scss-docs-end header-css-vars
30
+
31
+ position: relative;
32
+ display: flex;
33
+ flex-wrap: wrap; // allow us to do the line break for collapsing content
34
+ align-items: center;
35
+ justify-content: space-between; // space out brand from logo
36
+ min-height: var(--#{$prefix}header-min-height);
37
+ padding: var(--#{$prefix}header-padding-y) var(--#{$prefix}header-padding-x);
38
+ background: var(--#{$prefix}header-bg);
39
+ border-bottom: var(--#{$prefix}header-border);
40
+
41
+ // Because flex properties aren't inherited, we need to redeclare these first
42
+ // few properties so that content nested within behave properly.
43
+ // The `flex-wrap` property is inherited to simplify the expanded navbars
44
+ %container-flex-properties {
45
+ display: flex;
46
+ flex-wrap: inherit;
47
+ align-items: center;
48
+ justify-content: space-between;
49
+ }
50
+
51
+ > .container,
52
+ > .container-fluid {
53
+ @extend %container-flex-properties;
54
+ }
55
+
56
+ @each $breakpoint, $container-max-width in $container-max-widths {
57
+ > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
58
+ @extend %container-flex-properties;
59
+ }
60
+ }
61
+
62
+ .container:first-child,
63
+ .container-fluid:first-child {
64
+ min-height: calc(var(--#{$prefix}header-min-height) - (2 * var(--#{$prefix}header-padding-y))); // stylelint-disable-line function-disallowed-list
65
+ }
66
+
67
+ .container:nth-child(n+2),
68
+ .container-fluid:nth-child(n+2) {
69
+ min-height: calc(var(--#{$prefix}subheader-min-height) - (2 * var(--#{$prefix}header-padding-y))); // stylelint-disable-line function-disallowed-list
70
+ }
71
+
72
+ &.header-sticky {
73
+ position: sticky;
74
+ top: 0;
75
+ z-index: $zindex-fixed - 1;
76
+ }
77
+ }
78
+
79
+ .header-divider {
80
+ flex-basis: calc(100% + (2 * var(--#{$prefix}header-padding-x))); // stylelint-disable-line function-disallowed-list
81
+ height: 0;
82
+ margin: var(--#{$prefix}header-padding-y) calc(var(--#{$prefix}header-padding-x) * -1); // stylelint-disable-line function-disallowed-list
83
+ border-top: var(--#{$prefix}header-divider-border);
84
+ }
85
+
86
+ // Header brand
87
+ //
88
+ // Used for brand, project, or site names.
89
+
90
+ .header-brand {
91
+ padding-top: var(--#{$prefix}header-brand-padding-y);
92
+ padding-bottom: var(--#{$prefix}header-brand-padding-y);
93
+ @include ltr-rtl("margin-right", $header-brand-margin-end);
94
+ @include font-size($header-brand-font-size);
95
+ color: var(--#{$prefix}header-brand-color);
96
+ text-decoration: if($link-decoration == none, null, none);
97
+ white-space: nowrap;
98
+
99
+ &:hover,
100
+ &:focus {
101
+ color: var(--#{$prefix}header-brand-hover-color);
102
+ text-decoration: if($link-hover-decoration == underline, none, null);
103
+ }
104
+ }
105
+
106
+ // Header nav
107
+ //
108
+ // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
109
+
110
+ .header-nav {
111
+ display: flex;
112
+ flex-direction: row; // cannot use `inherit` to get the `.header`s value
113
+ @include ltr-rtl("padding-left", 0);
114
+ margin-bottom: 0;
115
+ list-style: none;
116
+
117
+ .nav-link {
118
+ padding: var(--#{$prefix}header-nav-link-padding-y) var(--#{$prefix}header-nav-link-padding-x);
119
+ color: var(--#{$prefix}header-color);
120
+
121
+ &:hover,
122
+ &:focus {
123
+ color: var(--#{$prefix}header-hover-color);
124
+ }
125
+
126
+ &.disabled {
127
+ color: var(--#{$prefix}header-disabled-color);
128
+ }
129
+ }
130
+
131
+ .show > .nav-link,
132
+ .nav-link.active {
133
+ color: var(--#{$prefix}header-active-color);
134
+ }
135
+
136
+ .dropdown-menu {
137
+ position: absolute;
138
+ }
139
+ }
140
+
141
+
142
+ // Header text
143
+ //
144
+ //
145
+
146
+ .header-text {
147
+ padding-top: var(--#{$prefix}header-nav-link-padding-y);
148
+ padding-bottom: var(--#{$prefix}header-nav-link-padding-y);
149
+ color: var(--#{$prefix}header-color);
150
+
151
+ a {
152
+ color: var(--#{$prefix}header-active-color);
153
+
154
+ &:hover,
155
+ &:focus {
156
+ color: var(--#{$prefix}header-active-color);
157
+ }
158
+ }
159
+ }
160
+
161
+ .header-toggler {
162
+ padding: var(--#{$prefix}header-toggler-padding-y) var(--#{$prefix}header-toggler-padding-x);
163
+ @include font-size($header-toggler-font-size);
164
+ color: var(--#{$prefix}header-toggler-color);
165
+ background-color: var(--#{$prefix}header-toggler-bg);
166
+ border: 0; // remove default button style
167
+ @include border-radius(var(--#{$prefix}header-toggler-border-radius));
168
+
169
+ &:hover {
170
+ color: var(--#{$prefix}header-toggler-hover-color);
171
+ text-decoration: none;
172
+ }
173
+
174
+ &:focus {
175
+ outline: 0;
176
+ }
177
+
178
+ // Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
179
+ &:not(:disabled) {
180
+ cursor: pointer;
181
+ }
182
+ }
183
+
184
+ .header-toggler-icon {
185
+ display: block;
186
+ height: $header-toggler-font-size * 1.25;
187
+ background-image: var(--#{$prefix}header-toggler-icon-bg);
188
+ background-repeat: no-repeat;
189
+ background-position: center center;
190
+ background-size: 100% 100%;
191
+
192
+ &:hover {
193
+ background-image: var(--#{$prefix}header-toggler-hover-icon-bg);
194
+ }
195
+ }
@@ -1,6 +1,8 @@
1
1
  @import "helpers/clearfix";
2
2
  @import "helpers/color-bg";
3
3
  @import "helpers/colored-links";
4
+ @import "helpers/focus-ring";
5
+ @import "helpers/icon-link";
4
6
  @import "helpers/ratio";
5
7
  @import "helpers/position";
6
8
  @import "helpers/stacks";
package/scss/_images.scss CHANGED
@@ -13,8 +13,8 @@
13
13
  // Image thumbnails
14
14
  .img-thumbnail {
15
15
  padding: $thumbnail-padding;
16
- background-color: $thumbnail-bg;
17
- border: $thumbnail-border-width solid $thumbnail-border-color;
16
+ background-color: var(--#{$prefix}thumbnail-bg, $thumbnail-bg);
17
+ border: $thumbnail-border-width solid var(--#{$prefix}thumbnail-border-color, $thumbnail-border-color);
18
18
  @include border-radius($thumbnail-border-radius);
19
19
  @include box-shadow($thumbnail-box-shadow);
20
20
 
@@ -38,5 +38,5 @@
38
38
 
39
39
  .figure-caption {
40
40
  @include font-size($figure-caption-font-size);
41
- color: $figure-caption-color;
41
+ color: var(--#{$prefix}figure-caption-color, $figure-caption-color);
42
42
  }
@@ -27,7 +27,7 @@
27
27
  flex-direction: column;
28
28
 
29
29
  // No need to set list-style: none; since .list-group-item is block level
30
- padding-left: 0; // reset padding because ul and ol
30
+ @include ltr-rtl("padding-left", 0); // reset padding because ul and ol
31
31
  margin-bottom: 0;
32
32
  @include border-radius(var(--#{$prefix}list-group-border-radius));
33
33
  }
@@ -143,11 +143,11 @@
143
143
 
144
144
  + .list-group-item {
145
145
  border-top-width: var(--#{$prefix}list-group-border-width);
146
- border-left-width: 0;
146
+ @include ltr-rtl("border-left-width", 0);
147
147
 
148
148
  &.active {
149
- margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
150
- border-left-width: var(--#{$prefix}list-group-border-width);
149
+ @include ltr-rtl("margin-left", calc(-1 * var(--#{$prefix}list-group-border-width)));
150
+ @include ltr-rtl("border-left-width", var(--#{$prefix}list-group-border-width));
151
151
  }
152
152
  }
153
153
  }
@@ -182,23 +182,16 @@
182
182
 
183
183
  @each $state in map-keys($theme-colors) {
184
184
  .list-group-item-#{$state} {
185
- --#{$prefix}list-group-color: var(--#{$prefix}#{$state}-text);
185
+ --#{$prefix}list-group-color: var(--#{$prefix}#{$state}-text-emphasis);
186
186
  --#{$prefix}list-group-bg: var(--#{$prefix}#{$state}-bg-subtle);
187
187
  --#{$prefix}list-group-border-color: var(--#{$prefix}#{$state}-border-subtle);
188
-
189
- &.list-group-item-action {
190
- &:hover,
191
- &:focus {
192
- --#{$prefix}list-group-action-hover-color: var(--#{$prefix}emphasis-color);
193
- --#{$prefix}list-group-action-hover-bg: var(--#{$prefix}#{$state}-border-subtle);
194
- }
195
-
196
- &:active {
197
- --#{$prefix}list-group-active-color: var(--#{$prefix}emphasis-color);
198
- --#{$prefix}list-group-active-bg: var(--#{$prefix}#{$state}-text);
199
- --#{$prefix}list-group-active-border-color: var(--#{$prefix}#{$state}-text);
200
- }
201
- }
188
+ --#{$prefix}list-group-action-hover-color: var(--#{$prefix}emphasis-color);
189
+ --#{$prefix}list-group-action-hover-bg: var(--#{$prefix}#{$state}-border-subtle);
190
+ --#{$prefix}list-group-action-active-color: var(--#{$prefix}emphasis-color);
191
+ --#{$prefix}list-group-action-active-bg: var(--#{$prefix}#{$state}-border-subtle);
192
+ --#{$prefix}list-group-active-color: var(--#{$prefix}#{$state}-bg-subtle);
193
+ --#{$prefix}list-group-active-bg: var(--#{$prefix}#{$state}-text-emphasis);
194
+ --#{$prefix}list-group-active-border-color: var(--#{$prefix}#{$state}-text-emphasis);
202
195
  }
203
196
  }
204
197
  // scss-docs-end list-group-modifiers
package/scss/_maps.scss CHANGED
@@ -6,21 +6,20 @@
6
6
  $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
7
7
  // scss-docs-end theme-colors-rgb
8
8
 
9
- // scss-docs-start theme-colors-dark-rgb
10
- $theme-colors-dark-rgb: map-loop($theme-colors-dark, to-rgb, "$value") !default;
11
- // scss-docs-end theme-colors-dark-rgb
12
-
9
+ // scss-docs-start theme-text-map
13
10
  $theme-colors-text: (
14
- "primary": $primary-text,
15
- "secondary": $secondary-text,
16
- "success": $success-text,
17
- "info": $info-text,
18
- "warning": $warning-text,
19
- "danger": $danger-text,
20
- "light": $light-text,
21
- "dark": $dark-text,
11
+ "primary": $primary-text-emphasis,
12
+ "secondary": $secondary-text-emphasis,
13
+ "success": $success-text-emphasis,
14
+ "info": $info-text-emphasis,
15
+ "warning": $warning-text-emphasis,
16
+ "danger": $danger-text-emphasis,
17
+ "light": $light-text-emphasis,
18
+ "dark": $dark-text-emphasis,
22
19
  ) !default;
20
+ // scss-docs-end theme-text-map
23
21
 
22
+ // scss-docs-start theme-bg-subtle-map
24
23
  $theme-colors-bg-subtle: (
25
24
  "primary": $primary-bg-subtle,
26
25
  "secondary": $secondary-bg-subtle,
@@ -31,7 +30,9 @@ $theme-colors-bg-subtle: (
31
30
  "light": $light-bg-subtle,
32
31
  "dark": $dark-bg-subtle,
33
32
  ) !default;
33
+ // scss-docs-end theme-bg-subtle-map
34
34
 
35
+ // scss-docs-start theme-border-subtle-map
35
36
  $theme-colors-border-subtle: (
36
37
  "primary": $primary-border-subtle,
37
38
  "secondary": $secondary-border-subtle,
@@ -42,6 +43,57 @@ $theme-colors-border-subtle: (
42
43
  "light": $light-border-subtle,
43
44
  "dark": $dark-border-subtle,
44
45
  ) !default;
46
+ // scss-docs-end theme-border-subtle-map
47
+
48
+ $theme-colors-rgb-dark: null !default;
49
+ $theme-colors-text-dark: null !default;
50
+ $theme-colors-bg-subtle-dark: null !default;
51
+ $theme-colors-border-subtle-dark: null !default;
52
+
53
+ @if $enable-dark-mode {
54
+ // scss-docs-start theme-colors-rgb-dark
55
+ $theme-colors-rgb-dark: map-loop($theme-colors-dark, to-rgb, "$value") !default;
56
+ // scss-docs-end theme-colors-rgb-dark
57
+
58
+ // scss-docs-start theme-text-dark-map
59
+ $theme-colors-text-dark: (
60
+ "primary": $primary-text-emphasis-dark,
61
+ "secondary": $secondary-text-emphasis-dark,
62
+ "success": $success-text-emphasis-dark,
63
+ "info": $info-text-emphasis-dark,
64
+ "warning": $warning-text-emphasis-dark,
65
+ "danger": $danger-text-emphasis-dark,
66
+ "light": $light-text-emphasis-dark,
67
+ "dark": $dark-text-emphasis-dark,
68
+ ) !default;
69
+ // scss-docs-end theme-text-dark-map
70
+
71
+ // scss-docs-start theme-bg-subtle-dark-map
72
+ $theme-colors-bg-subtle-dark: (
73
+ "primary": $primary-bg-subtle-dark,
74
+ "secondary": $secondary-bg-subtle-dark,
75
+ "success": $success-bg-subtle-dark,
76
+ "info": $info-bg-subtle-dark,
77
+ "warning": $warning-bg-subtle-dark,
78
+ "danger": $danger-bg-subtle-dark,
79
+ "light": $light-bg-subtle-dark,
80
+ "dark": $dark-bg-subtle-dark,
81
+ ) !default;
82
+ // scss-docs-end theme-bg-subtle-dark-map
83
+
84
+ // scss-docs-start theme-border-subtle-dark-map
85
+ $theme-colors-border-subtle-dark: (
86
+ "primary": $primary-border-subtle-dark,
87
+ "secondary": $secondary-border-subtle-dark,
88
+ "success": $success-border-subtle-dark,
89
+ "info": $info-border-subtle-dark,
90
+ "warning": $warning-border-subtle-dark,
91
+ "danger": $danger-border-subtle-dark,
92
+ "light": $light-border-subtle-dark,
93
+ "dark": $dark-border-subtle-dark,
94
+ ) !default;
95
+ // scss-docs-end theme-border-subtle-dark-map
96
+ }
45
97
 
46
98
  // Utilities maps
47
99
  //
@@ -64,14 +116,14 @@ $utilities-text: map-merge(
64
116
  $utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
65
117
 
66
118
  $utilities-text-emphasis-colors: (
67
- "primary-emphasis": var(--#{$prefix}primary-text),
68
- "secondary-emphasis": var(--#{$prefix}secondary-text),
69
- "success-emphasis": var(--#{$prefix}success-text),
70
- "info-emphasis": var(--#{$prefix}info-text),
71
- "warning-emphasis": var(--#{$prefix}warning-text),
72
- "danger-emphasis": var(--#{$prefix}danger-text),
73
- "light-emphasis": var(--#{$prefix}light-text),
74
- "dark-emphasis": var(--#{$prefix}dark-text)
119
+ "primary-emphasis": var(--#{$prefix}primary-text-emphasis),
120
+ "secondary-emphasis": var(--#{$prefix}secondary-text-emphasis),
121
+ "success-emphasis": var(--#{$prefix}success-text-emphasis),
122
+ "info-emphasis": var(--#{$prefix}info-text-emphasis),
123
+ "warning-emphasis": var(--#{$prefix}warning-text-emphasis),
124
+ "danger-emphasis": var(--#{$prefix}danger-text-emphasis),
125
+ "light-emphasis": var(--#{$prefix}light-text-emphasis),
126
+ "dark-emphasis": var(--#{$prefix}dark-text-emphasis)
75
127
  ) !default;
76
128
  // scss-docs-end utilities-text-colors
77
129
 
@@ -96,13 +148,13 @@ $utilities-bg-subtle: (
96
148
  "light-subtle": var(--#{$prefix}light-bg-subtle),
97
149
  "dark-subtle": var(--#{$prefix}dark-bg-subtle)
98
150
  ) !default;
99
- // $utilities-bg-subtle-colors: map-loop($utilities-bg-subtle, rgba-css-var, "$key", "bg") !default;
100
151
  // scss-docs-end utilities-bg-colors
101
152
 
102
153
  // scss-docs-start utilities-border-colors
103
154
  $utilities-border: map-merge(
104
155
  $utilities-colors,
105
156
  (
157
+ "black": to-rgb($black),
106
158
  "white": to-rgb($white)
107
159
  )
108
160
  ) !default;
@@ -120,6 +172,8 @@ $utilities-border-subtle: (
120
172
  ) !default;
121
173
  // scss-docs-end utilities-border-colors
122
174
 
175
+ $utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "link-underline") !default;
176
+
123
177
  $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
124
178
 
125
179
  $gutters: $spacers !default;
package/scss/_mixins.scss CHANGED
@@ -2,6 +2,9 @@
2
2
  //
3
3
  // Used in conjunction with global variables to enable certain theme features.
4
4
 
5
+ // LTR & RTL
6
+ @import "mixins/ltr-rtl";
7
+
5
8
  // Vendor
6
9
  @import "vendor/rfs";
7
10
 
@@ -22,6 +25,8 @@
22
25
  @import "mixins/utilities";
23
26
 
24
27
  // Components
28
+ @import "mixins/alert";
29
+ @import "mixins/avatar";
25
30
  @import "mixins/backdrop";
26
31
  @import "mixins/buttons";
27
32
  @import "mixins/caret";
@@ -29,6 +34,7 @@
29
34
  @import "mixins/lists";
30
35
  @import "mixins/forms";
31
36
  @import "mixins/table-variants";
37
+ @import "mixins/icon";
32
38
 
33
39
  // Skins
34
40
  @import "mixins/border-radius";
@@ -40,7 +46,3 @@
40
46
  @import "mixins/clearfix";
41
47
  @import "mixins/container";
42
48
  @import "mixins/grid";
43
-
44
- // CoreUI Components
45
- @import "mixins/avatar";
46
- @import "mixins/icon";
package/scss/_modal.scss CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
  position: fixed;
36
36
  top: 0;
37
- left: 0;
37
+ @include ltr-rtl("left", 0);
38
38
  z-index: var(--#{$prefix}modal-zindex);
39
39
  display: none;
40
40
  width: 100%;
@@ -133,7 +133,7 @@
133
133
 
134
134
  .btn-close {
135
135
  padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);
136
- margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;
136
+ @include ltr-rtl-value-only("margin", calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto, calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)));
137
137
  }
138
138
  }
139
139
 
package/scss/_nav.scss CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  display: flex;
18
18
  flex-wrap: wrap;
19
- padding-left: 0;
19
+ @include ltr-rtl("padding-left", 0);
20
20
  margin-bottom: 0;
21
21
  list-style: none;
22
22
  }
@@ -38,6 +38,11 @@
38
38
  text-decoration: if($link-hover-decoration == underline, none, null);
39
39
  }
40
40
 
41
+ &:focus-visible {
42
+ outline: 0;
43
+ box-shadow: $nav-link-focus-box-shadow;
44
+ }
45
+
41
46
  // Disabled state lightens text
42
47
  &.disabled {
43
48
  color: var(--#{$prefix}nav-link-disabled-color);
@@ -65,6 +70,7 @@
65
70
 
66
71
  .nav-link {
67
72
  margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
73
+ background: none;
68
74
  border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
69
75
  @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
70
76
 
@@ -111,6 +117,8 @@
111
117
  // scss-docs-end nav-pills-css-vars
112
118
 
113
119
  .nav-link {
120
+ background: none;
121
+ border: 0;
114
122
  @include border-radius(var(--#{$prefix}nav-pills-border-radius));
115
123
 
116
124
  &:disabled {
@@ -128,44 +136,6 @@
128
136
  }
129
137
 
130
138
 
131
- //
132
- // Underline
133
- //
134
-
135
- .nav-underline {
136
- // scss-docs-start nav-underline-css-vars
137
- --#{$prefix}nav-underline-gap: #{$nav-underline-gap};
138
- --#{$prefix}nav-underline-border-width: #{$nav-underline-border-width};
139
- --#{$prefix}nav-underline-link-active-color: #{$nav-underline-link-active-color};
140
- // scss-docs-end nav-underline-css-vars
141
-
142
- gap: var(--#{$prefix}nav-underline-gap);
143
-
144
- // .nav-item + .nav-item,
145
- // .nav-link + .nav-link {
146
- // margin-left: $nav-link-padding-x;
147
- // }
148
-
149
- .nav-link {
150
- padding-right: 0;
151
- padding-left: 0;
152
- border-bottom: var(--#{$prefix}nav-underline-border-width) solid transparent;
153
-
154
- &:hover,
155
- &:focus {
156
- border-bottom-color: currentcolor;
157
- }
158
- }
159
-
160
- .nav-link.active,
161
- .show > .nav-link {
162
- font-weight: $font-weight-bold;
163
- color: var(--#{$prefix}nav-underline-link-active-color);
164
- border-bottom-color: currentcolor;
165
- }
166
- }
167
-
168
-
169
139
  //
170
140
  // Justified variants
171
141
  //