@coreui/coreui 4.1.5 → 4.2.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 (203) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +64 -11
  3. package/dist/css/coreui-grid.css +23 -949
  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 +25 -951
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +5 -5
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +35 -42
  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 +36 -44
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +5 -5
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +279 -951
  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 +275 -953
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +5 -5
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +2179 -2259
  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 +2166 -2253
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +5 -5
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +2095 -1906
  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 +2098 -1909
  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 +2099 -1910
  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 +10 -148
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +36 -122
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +9 -76
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +212 -507
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +64 -251
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +2 -4
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +82 -133
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +22 -26
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +16 -81
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +99 -338
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +106 -774
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +309 -0
  70. package/js/dist/navigation.js.map +1 -0
  71. package/js/dist/offcanvas.js +88 -680
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +35 -120
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +178 -264
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +347 -0
  78. package/js/dist/sidebar.js.map +1 -0
  79. package/js/dist/tab.js +226 -216
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +27 -216
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +271 -618
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +166 -0
  86. package/js/dist/util/backdrop.js.map +1 -0
  87. package/js/dist/util/component-functions.js +47 -0
  88. package/js/dist/util/component-functions.js.map +1 -0
  89. package/js/dist/util/config.js +80 -0
  90. package/js/dist/util/config.js.map +1 -0
  91. package/js/dist/util/focustrap.js +130 -0
  92. package/js/dist/util/focustrap.js.map +1 -0
  93. package/js/dist/util/index.js +354 -0
  94. package/js/dist/util/index.js.map +1 -0
  95. package/js/dist/util/sanitizer.js +126 -0
  96. package/js/dist/util/sanitizer.js.map +1 -0
  97. package/js/dist/util/scrollbar.js +139 -0
  98. package/js/dist/util/scrollbar.js.map +1 -0
  99. package/js/dist/util/swipe.js +156 -0
  100. package/js/dist/util/swipe.js.map +1 -0
  101. package/js/dist/util/template-factory.js +178 -0
  102. package/js/dist/util/template-factory.js.map +1 -0
  103. package/js/src/alert.js +3 -15
  104. package/js/src/base-component.js +28 -18
  105. package/js/src/button.js +3 -15
  106. package/js/src/carousel.js +203 -320
  107. package/js/src/collapse.js +61 -94
  108. package/js/src/dom/data.js +1 -3
  109. package/js/src/dom/event-handler.js +74 -107
  110. package/js/src/dom/manipulator.js +22 -31
  111. package/js/src/dom/selector-engine.js +10 -19
  112. package/js/src/dropdown.js +84 -138
  113. package/js/src/modal.js +94 -158
  114. package/js/src/navigation.js +12 -13
  115. package/js/src/offcanvas.js +71 -60
  116. package/js/src/popover.js +31 -62
  117. package/js/src/scrollspy.js +166 -171
  118. package/js/src/sidebar.js +5 -8
  119. package/js/src/tab.js +201 -110
  120. package/js/src/toast.js +19 -41
  121. package/js/src/tooltip.js +264 -374
  122. package/js/src/util/backdrop.js +55 -36
  123. package/js/src/util/component-functions.js +1 -1
  124. package/js/src/util/config.js +66 -0
  125. package/js/src/util/focustrap.js +38 -28
  126. package/js/src/util/index.js +41 -57
  127. package/js/src/util/sanitizer.js +9 -17
  128. package/js/src/util/scrollbar.js +47 -30
  129. package/js/src/util/swipe.js +146 -0
  130. package/js/src/util/template-factory.js +160 -0
  131. package/package.json +40 -40
  132. package/scss/_accordion.scss +53 -25
  133. package/scss/_alert.scss +29 -9
  134. package/scss/_badge.scss +15 -6
  135. package/scss/_breadcrumb.scss +23 -11
  136. package/scss/_button-group.scss +3 -0
  137. package/scss/_buttons.scss +77 -50
  138. package/scss/_callout.scss +18 -6
  139. package/scss/_card.scss +55 -37
  140. package/scss/_carousel.scss +6 -6
  141. package/scss/_close.scss +4 -4
  142. package/scss/_containers.scss +1 -1
  143. package/scss/_dropdown.scss +86 -64
  144. package/scss/_footer.scss +15 -5
  145. package/scss/_functions.scss +11 -24
  146. package/scss/_grid.scss +3 -3
  147. package/scss/_header.scss +59 -34
  148. package/scss/_helpers.scss +1 -0
  149. package/scss/_images.scss +3 -3
  150. package/scss/_list-group.scss +47 -29
  151. package/scss/_maps.scss +54 -0
  152. package/scss/_modal.scss +70 -43
  153. package/scss/_nav.scss +53 -20
  154. package/scss/_navbar.scss +84 -94
  155. package/scss/_offcanvas.scss +120 -60
  156. package/scss/_pagination.scss +66 -21
  157. package/scss/_popover.scss +90 -52
  158. package/scss/_progress.scss +20 -9
  159. package/scss/_reboot.scss +31 -58
  160. package/scss/_root.scss +41 -21
  161. package/scss/_spinners.scss +37 -21
  162. package/scss/_subheader.scss +9 -9
  163. package/scss/_tables.scss +34 -36
  164. package/scss/_toasts.scss +35 -19
  165. package/scss/_tooltip.scss +61 -56
  166. package/scss/_utilities.scss +42 -27
  167. package/scss/_variables.scss +169 -148
  168. package/scss/coreui-grid.rtl.scss +2 -2
  169. package/scss/coreui-grid.scss +3 -2
  170. package/scss/coreui-reboot.rtl.scss +2 -2
  171. package/scss/coreui-reboot.scss +2 -2
  172. package/scss/coreui-utilities.rtl.scss +2 -2
  173. package/scss/coreui-utilities.scss +3 -2
  174. package/scss/coreui.rtl.scss +2 -2
  175. package/scss/coreui.scss +3 -2
  176. package/scss/forms/_floating-labels.scss +14 -3
  177. package/scss/forms/_form-check.scss +42 -19
  178. package/scss/forms/_form-control.scss +25 -50
  179. package/scss/forms/_form-range.scss +8 -8
  180. package/scss/forms/_form-select.scss +8 -8
  181. package/scss/forms/_form-text.scss +1 -1
  182. package/scss/forms/_input-group.scss +3 -3
  183. package/scss/forms/_labels.scss +2 -2
  184. package/scss/helpers/_color-bg.scss +10 -0
  185. package/scss/helpers/_colored-links.scss +2 -2
  186. package/scss/helpers/_position.scss +7 -1
  187. package/scss/helpers/_ratio.scss +2 -2
  188. package/scss/helpers/_vr.scss +1 -0
  189. package/scss/mixins/_alert.scss +10 -10
  190. package/scss/mixins/_breakpoints.scss +8 -8
  191. package/scss/mixins/_buttons.scss +45 -47
  192. package/scss/mixins/_container.scss +4 -2
  193. package/scss/mixins/_css-vars.scss +47 -47
  194. package/scss/mixins/_forms.scss +8 -0
  195. package/scss/mixins/_gradients.scss +1 -1
  196. package/scss/mixins/_grid.scss +11 -11
  197. package/scss/mixins/_list-group.scss +7 -9
  198. package/scss/mixins/_pagination.scss +4 -25
  199. package/scss/mixins/_table-variants.scss +20 -12
  200. package/scss/mixins/_utilities.scss +8 -3
  201. package/scss/sidebar/_sidebar-narrow.scss +10 -10
  202. package/scss/sidebar/_sidebar-nav.scss +33 -32
  203. package/scss/sidebar/_sidebar.scss +110 -56
package/scss/_modal.scss CHANGED
@@ -1,3 +1,5 @@
1
+ // stylelint-disable function-disallowed-list
2
+
1
3
  // .modal-open - body class for killing the scroll
2
4
  // .modal - container to scroll within
3
5
  // .modal-dialog - positioning shell for the actual modal
@@ -6,10 +8,34 @@
6
8
 
7
9
  // Container that the modal scrolls within
8
10
  .modal {
11
+ // scss-docs-start modal-css-vars
12
+ --#{$prefix}modal-zindex: #{$zindex-modal};
13
+ --#{$prefix}modal-width: #{$modal-md};
14
+ --#{$prefix}modal-padding: #{$modal-inner-padding};
15
+ --#{$prefix}modal-margin: #{$modal-dialog-margin};
16
+ --#{$prefix}modal-color: #{$modal-content-color};
17
+ --#{$prefix}modal-bg: #{$modal-content-bg};
18
+ --#{$prefix}modal-border-color: #{$modal-content-border-color};
19
+ --#{$prefix}modal-border-width: #{$modal-content-border-width};
20
+ --#{$prefix}modal-border-radius: #{$modal-content-border-radius};
21
+ --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};
22
+ --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};
23
+ --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};
24
+ --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};
25
+ --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y
26
+ --#{$prefix}modal-header-border-color: #{$modal-header-border-color};
27
+ --#{$prefix}modal-header-border-width: #{$modal-header-border-width};
28
+ --#{$prefix}modal-title-line-height: #{$modal-title-line-height};
29
+ --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};
30
+ --#{$prefix}modal-footer-bg: #{$modal-footer-bg};
31
+ --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};
32
+ --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};
33
+ // scss-docs-end modal-css-vars
34
+
9
35
  position: fixed;
10
36
  top: 0;
11
37
  @include ltr-rtl("left", 0);
12
- z-index: $zindex-modal;
38
+ z-index: var(--#{$prefix}modal-zindex);
13
39
  display: none;
14
40
  width: 100%;
15
41
  height: 100%;
@@ -27,7 +53,7 @@
27
53
  .modal-dialog {
28
54
  position: relative;
29
55
  width: auto;
30
- margin: $modal-dialog-margin;
56
+ margin: var(--#{$prefix}modal-margin);
31
57
  // allow clicks to pass through for custom click handling to close modal
32
58
  pointer-events: none;
33
59
 
@@ -47,7 +73,7 @@
47
73
  }
48
74
 
49
75
  .modal-dialog-scrollable {
50
- height: subtract(100%, $modal-dialog-margin * 2);
76
+ height: calc(100% - var(--#{$prefix}modal-margin) * 2);
51
77
 
52
78
  .modal-content {
53
79
  max-height: 100%;
@@ -62,7 +88,7 @@
62
88
  .modal-dialog-centered {
63
89
  display: flex;
64
90
  align-items: center;
65
- min-height: subtract(100%, $modal-dialog-margin * 2);
91
+ min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);
66
92
  }
67
93
 
68
94
  // Actual modal
@@ -72,20 +98,26 @@
72
98
  flex-direction: column;
73
99
  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
74
100
  // counteract the pointer-events: none; in the .modal-dialog
75
- color: var(--#{$variable-prefix}modal-content-color, $modal-content-color);
101
+ color: var(--#{$prefix}modal-color);
76
102
  pointer-events: auto;
77
- background-color: var(--#{$variable-prefix}modal-content-bg, $modal-content-bg);
103
+ background-color: var(--#{$prefix}modal-bg);
78
104
  background-clip: padding-box;
79
- border: $modal-content-border-width solid var(--#{$variable-prefix}modal-content-border-color, $modal-content-border-color);
80
- @include border-radius($modal-content-border-radius);
81
- @include box-shadow($modal-content-box-shadow-xs);
105
+ border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);
106
+ @include border-radius(var(--#{$prefix}modal-border-radius));
107
+ @include box-shadow(var(--#{$prefix}modal-box-shadow));
82
108
  // Remove focus outline from opened modal
83
109
  outline: 0;
84
110
  }
85
111
 
86
112
  // Modal background
87
113
  .modal-backdrop {
88
- @include overlay-backdrop($zindex-modal-backdrop, var(--#{$variable-prefix}modal-backdrop-bg, $modal-backdrop-bg), $modal-backdrop-opacity);
114
+ // scss-docs-start modal-backdrop-css-vars
115
+ --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};
116
+ --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};
117
+ --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};
118
+ // scss-docs-end modal-backdrop-css-vars
119
+
120
+ @include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));
89
121
  }
90
122
 
91
123
  // Modal header
@@ -95,21 +127,20 @@
95
127
  flex-shrink: 0;
96
128
  align-items: center;
97
129
  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
98
- padding: $modal-header-padding;
99
- border-bottom: $modal-header-border-width solid var(--#{$variable-prefix}modal-header-border-color, $modal-header-border-color);
100
- @include border-top-radius($modal-content-inner-border-radius);
130
+ padding: var(--#{$prefix}modal-header-padding);
131
+ border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);
132
+ @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));
101
133
 
102
134
  .btn-close {
103
- padding: ($modal-header-padding-y * .5) ($modal-header-padding-x * .5);
104
- @include ltr-rtl-value-only("margin", ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto, ($modal-header-padding-y * -.5) auto ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5));
105
- // margin: ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto;
135
+ padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);
136
+ @include ltr-rtl-value-only("margin", calc(var(--#{$prefix}modal-header-padding-y) * -.5) calc(var(--#{$prefix}modal-header-padding-x) * -.5) calc(var(--#{$prefix}modal-header-padding-y) * -.5) auto, calc(var(--#{$prefix}modal-header-padding-y) * -.5) auto calc(var(--#{$prefix}modal-header-padding-y) * -.5) calc(var(--#{$prefix}modal-header-padding-x) * -.5));
106
137
  }
107
138
  }
108
139
 
109
140
  // Title text within header
110
141
  .modal-title {
111
142
  margin-bottom: 0;
112
- line-height: $modal-title-line-height;
143
+ line-height: var(--#{$prefix}modal-title-line-height);
113
144
  }
114
145
 
115
146
  // Modal body
@@ -119,7 +150,7 @@
119
150
  // Enable `flex-grow: 1` so that the body take up as much space as possible
120
151
  // when there should be a fixed height on `.modal-dialog`.
121
152
  flex: 1 1 auto;
122
- padding: $modal-inner-padding;
153
+ padding: var(--#{$prefix}modal-padding);
123
154
  }
124
155
 
125
156
  // Footer (for actions)
@@ -129,50 +160,49 @@
129
160
  flex-wrap: wrap;
130
161
  align-items: center; // vertically center
131
162
  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
132
- padding: $modal-inner-padding - $modal-footer-margin-between * .5;
133
- border-top: $modal-footer-border-width solid var(--#{$variable-prefix}modal-footer-border-color, $modal-footer-border-color);
134
- @include border-bottom-radius($modal-content-inner-border-radius);
163
+ padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * .5);
164
+ background-color: var(--#{$prefix}modal-footer-bg);
165
+ border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);
166
+ @include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));
135
167
 
136
168
  // Place margin between footer elements
137
169
  // This solution is far from ideal because of the universal selector usage,
138
170
  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
139
171
  > * {
140
- margin: $modal-footer-margin-between * .5;
172
+ margin: calc(var(--#{$prefix}modal-footer-gap) * .5); // Todo in v6: replace with gap on parent class
141
173
  }
142
174
  }
143
175
 
144
176
  // Scale up the modal
145
177
  @include media-breakpoint-up(sm) {
146
- // Automatically set modal's width for larger viewports
147
- .modal-dialog {
148
- max-width: $modal-md;
149
- margin: $modal-dialog-margin-y-sm-up auto;
178
+ .modal {
179
+ --#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};
180
+ --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};
150
181
  }
151
182
 
152
- .modal-dialog-scrollable {
153
- height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
154
- }
155
-
156
- .modal-dialog-centered {
157
- min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
183
+ // Automatically set modal's width for larger viewports
184
+ .modal-dialog {
185
+ max-width: var(--#{$prefix}modal-width);
186
+ margin-right: auto;
187
+ margin-left: auto;
158
188
  }
159
189
 
160
- .modal-content {
161
- @include box-shadow($modal-content-box-shadow-sm-up);
190
+ .modal-sm {
191
+ --#{$prefix}modal-width: #{$modal-sm};
162
192
  }
163
-
164
- .modal-sm { max-width: $modal-sm; }
165
193
  }
166
194
 
167
195
  @include media-breakpoint-up(lg) {
168
196
  .modal-lg,
169
197
  .modal-xl {
170
- max-width: $modal-lg;
198
+ --#{$prefix}modal-width: #{$modal-lg};
171
199
  }
172
200
  }
173
201
 
174
202
  @include media-breakpoint-up(xl) {
175
- .modal-xl { max-width: $modal-xl; }
203
+ .modal-xl {
204
+ --#{$prefix}modal-width: #{$modal-xl};
205
+ }
176
206
  }
177
207
 
178
208
  // scss-docs-start modal-fullscreen-loop
@@ -193,17 +223,14 @@
193
223
  @include border-radius(0);
194
224
  }
195
225
 
196
- .modal-header {
226
+ .modal-header,
227
+ .modal-footer {
197
228
  @include border-radius(0);
198
229
  }
199
230
 
200
231
  .modal-body {
201
232
  overflow-y: auto;
202
233
  }
203
-
204
- .modal-footer {
205
- @include border-radius(0);
206
- }
207
234
  }
208
235
  }
209
236
  }
package/scss/_nav.scss CHANGED
@@ -4,6 +4,16 @@
4
4
  // `<nav>`s, `<ul>`s or `<ol>`s.
5
5
 
6
6
  .nav {
7
+ // scss-docs-start nav-css-vars
8
+ --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
9
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
10
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
11
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
12
+ --#{$prefix}nav-link-color: #{$nav-link-color};
13
+ --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
14
+ --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
15
+ // scss-docs-end nav-css-vars
16
+
7
17
  display: flex;
8
18
  flex-wrap: wrap;
9
19
  @include ltr-rtl("padding-left", 0);
@@ -13,22 +23,22 @@
13
23
 
14
24
  .nav-link {
15
25
  display: block;
16
- padding: $nav-link-padding-y $nav-link-padding-x;
17
- @include font-size($nav-link-font-size);
18
- font-weight: $nav-link-font-weight;
19
- color: var(--#{$variable-prefix}nav-link-color, $nav-link-color);
26
+ padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
27
+ @include font-size(var(--#{$prefix}nav-link-font-size));
28
+ font-weight: var(--#{$prefix}nav-link-font-weight);
29
+ color: var(--#{$prefix}nav-link-color);
20
30
  text-decoration: if($link-decoration == none, null, none);
21
31
  @include transition($nav-link-transition);
22
32
 
23
33
  &:hover,
24
34
  &:focus {
25
- color: var(--#{$variable-prefix}nav-link-hover-color, $nav-link-hover-color);
35
+ color: var(--#{$prefix}nav-link-hover-color);
26
36
  text-decoration: if($link-hover-decoration == underline, none, null);
27
37
  }
28
38
 
29
39
  // Disabled state lightens text
30
40
  &.disabled {
31
- color: var(--#{$variable-prefix}nav-link-disabled-color, $nav-link-disabled-color);
41
+ color: var(--#{$prefix}nav-link-disabled-color);
32
42
  pointer-events: none;
33
43
  cursor: default;
34
44
  }
@@ -39,23 +49,34 @@
39
49
  //
40
50
 
41
51
  .nav-tabs {
42
- border-bottom: $nav-tabs-border-width solid var(--#{$variable-prefix}nav-tabs-border-color, $nav-tabs-border-color);
52
+ // scss-docs-start nav-tabs-css-vars
53
+ --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
54
+ --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
55
+ --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
56
+ --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
57
+ --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
58
+ --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
59
+ --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
60
+ // scss-docs-end nav-tabs-css-vars
61
+
62
+ border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
43
63
 
44
64
  .nav-link {
45
- margin-bottom: -$nav-tabs-border-width;
65
+ margin-bottom: calc(var(--#{$prefix}nav-tabs-border-width) * -1); // stylelint-disable-line function-disallowed-list
46
66
  background: none;
47
- border: $nav-tabs-border-width solid transparent;
48
- @include border-top-radius($nav-tabs-border-radius);
67
+ border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
68
+ @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
49
69
 
50
70
  &:hover,
51
71
  &:focus {
52
72
  // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
53
73
  isolation: isolate;
54
- border-color: var(--#{$variable-prefix}nav-tabs-link-hover-border-color, $nav-tabs-link-hover-border-color);
74
+ border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
55
75
  }
56
76
 
57
- &.disabled {
58
- color: var(--#{$variable-prefix}nav-link-disabled-color, $nav-link-disabled-color);
77
+ &.disabled,
78
+ &:disabled {
79
+ color: var(--#{$prefix}nav-link-disabled-color);
59
80
  background-color: transparent;
60
81
  border-color: transparent;
61
82
  }
@@ -63,14 +84,14 @@
63
84
 
64
85
  .nav-link.active,
65
86
  .nav-item.show .nav-link {
66
- color: var(--#{$variable-prefix}nav-tabs-link-active-color, $nav-tabs-link-active-color);
67
- background-color: var(--#{$variable-prefix}nav-tabs-link-active-bg, $nav-tabs-link-active-bg);
68
- border-color: var(--#{$variable-prefix}nav-tabs-link-active-border-color, $nav-tabs-link-active-border-color);
87
+ color: var(--#{$prefix}nav-tabs-link-active-color);
88
+ background-color: var(--#{$prefix}nav-tabs-link-active-bg);
89
+ border-color: var(--#{$prefix}nav-tabs-link-active-border-color);
69
90
  }
70
91
 
71
92
  .dropdown-menu {
72
93
  // Make dropdown border overlap tab border
73
- margin-top: -$nav-tabs-border-width;
94
+ margin-top: calc(var(--#{$prefix}nav-tabs-border-width) * -1); // stylelint-disable-line function-disallowed-list
74
95
  // Remove the top rounded corners here since there is a hard edge above the menu
75
96
  @include border-top-radius(0);
76
97
  }
@@ -82,16 +103,28 @@
82
103
  //
83
104
 
84
105
  .nav-pills {
106
+ // scss-docs-start nav-pills-css-vars
107
+ --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
108
+ --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
109
+ --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
110
+ // scss-docs-end nav-pills-css-vars
111
+
85
112
  .nav-link {
86
113
  background: none;
87
114
  border: 0;
88
- @include border-radius($nav-pills-border-radius);
115
+ @include border-radius(var(--#{$prefix}nav-pills-border-radius));
116
+
117
+ &:disabled {
118
+ color: var(--#{$prefix}nav-link-disabled-color);
119
+ background-color: transparent;
120
+ border-color: transparent;
121
+ }
89
122
  }
90
123
 
91
124
  .nav-link.active,
92
125
  .show > .nav-link {
93
- color: var(--#{$variable-prefix}nav-pills-link-active-color, $nav-pills-link-active-color);
94
- @include gradient-bg(var(--#{$variable-prefix}nav-pills-link-active-bg, $nav-pills-link-active-bg));
126
+ color: var(--#{$prefix}nav-pills-link-active-color);
127
+ @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));
95
128
  }
96
129
  }
97
130
 
package/scss/_navbar.scss CHANGED
@@ -1,29 +1,38 @@
1
- // Contents
2
- //
3
- // Navbar
4
- // Navbar brand
5
- // Navbar nav
6
- // Navbar text
7
- // Responsive navbar
8
- // Navbar position
9
- // Navbar themes
10
-
11
-
12
1
  // Navbar
13
2
  //
14
3
  // Provide a static navbar from which we expand to create full-width, fixed, and
15
4
  // other navbar variations.
16
5
 
17
6
  .navbar {
7
+ // scss-docs-start navbar-css-vars
8
+ --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
9
+ --#{$prefix}navbar-padding-y: #{$navbar-padding-y};
10
+ --#{$prefix}navbar-color: #{$navbar-light-color};
11
+ --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
12
+ --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
13
+ --#{$prefix}navbar-active-color: #{$navbar-light-active-color};
14
+ --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
15
+ --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
16
+ --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
17
+ --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
18
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
19
+ --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
20
+ --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
21
+ --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
22
+ --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
23
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
24
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
25
+ --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
26
+ --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
27
+ --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
28
+ // scss-docs-end navbar-css-vars
29
+
18
30
  position: relative;
19
31
  display: flex;
20
32
  flex-wrap: wrap; // allow us to do the line break for collapsing content
21
33
  align-items: center;
22
34
  justify-content: space-between; // space out brand from logo
23
- padding-top: $navbar-padding-y;
24
- padding-right: $navbar-padding-x; // default: null
25
- padding-bottom: $navbar-padding-y;
26
- padding-left: $navbar-padding-x; // default: null
35
+ padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);
27
36
  @include gradient-bg();
28
37
 
29
38
  // Because flex properties aren't inherited, we need to redeclare these first
@@ -54,17 +63,17 @@
54
63
  // Used for brand, project, or site names.
55
64
 
56
65
  .navbar-brand {
57
- padding-top: $navbar-brand-padding-y;
58
- padding-bottom: $navbar-brand-padding-y;
59
- @include ltr-rtl("margin-right", $navbar-brand-margin-end);
60
- color: var(--#{$variable-prefix}navbar-brand-color);
61
- @include font-size($navbar-brand-font-size);
66
+ padding-top: var(--#{$prefix}navbar-brand-padding-y);
67
+ padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
68
+ @include ltr-rtl("margin-right", var(--#{$prefix}navbar-brand-margin-end));
69
+ @include font-size(var(--#{$prefix}navbar-brand-font-size));
70
+ color: var(--#{$prefix}navbar-brand-color);
62
71
  text-decoration: if($link-decoration == none, null, none);
63
72
  white-space: nowrap;
64
73
 
65
74
  &:hover,
66
75
  &:focus {
67
- color: var(--#{$variable-prefix}navbar-brand-hover-color);
76
+ color: var(--#{$prefix}navbar-brand-hover-color);
68
77
  text-decoration: if($link-hover-decoration == underline, none, null);
69
78
  }
70
79
  }
@@ -75,35 +84,28 @@
75
84
  // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
76
85
 
77
86
  .navbar-nav {
87
+ // scss-docs-start navbar-nav-css-vars
88
+ --#{$prefix}nav-link-padding-x: 0;
89
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
90
+ --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
91
+ --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
92
+ --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
93
+ // scss-docs-end navbar-nav-css-vars
94
+
78
95
  display: flex;
79
96
  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
80
97
  @include ltr-rtl("padding-left", 0);
81
98
  margin-bottom: 0;
82
99
  list-style: none;
83
100
 
84
- .nav-link {
85
- padding-right: 0;
86
- padding-left: 0;
87
- color: var(--#{$variable-prefix}navbar-color);
88
-
89
- &:hover,
90
- &:focus {
91
- color: var(--#{$variable-prefix}navbar-hover-color);
92
- }
93
-
94
- &.disabled {
95
- color: var(--#{$variable-prefix}navbar-disabled-color);
96
- }
101
+ .show > .nav-link,
102
+ .nav-link.active {
103
+ color: var(--#{$prefix}navbar-active-color);
97
104
  }
98
105
 
99
106
  .dropdown-menu {
100
107
  position: static;
101
108
  }
102
-
103
- .show > .nav-link,
104
- .nav-link.active {
105
- color: var(--#{$variable-prefix}navbar-active-color);
106
- }
107
109
  }
108
110
 
109
111
  // Navbar text
@@ -113,12 +115,12 @@
113
115
  .navbar-text {
114
116
  padding-top: $nav-link-padding-y;
115
117
  padding-bottom: $nav-link-padding-y;
116
- color: var(--#{$variable-prefix}navbar-color);
118
+ color: var(--#{$prefix}navbar-color);
117
119
 
118
120
  a,
119
121
  a:hover,
120
122
  a:focus {
121
- color: var(--#{$variable-prefix}navbar-active-color);
123
+ color: var(--#{$prefix}navbar-active-color);
122
124
  }
123
125
  }
124
126
 
@@ -141,14 +143,14 @@
141
143
 
142
144
  // Button for toggling the navbar when in its collapsed state
143
145
  .navbar-toggler {
144
- padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
145
- @include font-size($navbar-toggler-font-size);
146
+ padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);
147
+ @include font-size(var(--#{$prefix}navbar-toggler-font-size));
146
148
  line-height: 1;
147
- color: var(--#{$variable-prefix}navbar-color);
149
+ color: var(--#{$prefix}navbar-color);
148
150
  background-color: transparent; // remove default button style
149
- border: $border-width solid var(--#{$variable-prefix}navbar-toggler-border-color, transparent); // remove default button style
150
- @include border-radius($navbar-toggler-border-radius);
151
- @include transition($navbar-toggler-transition);
151
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
152
+ @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));
153
+ @include transition(var(--#{$prefix}navbar-toggler-transition));
152
154
 
153
155
  &:hover {
154
156
  text-decoration: none;
@@ -157,7 +159,7 @@
157
159
  &:focus {
158
160
  text-decoration: none;
159
161
  outline: 0;
160
- box-shadow: 0 0 0 $navbar-toggler-focus-width;
162
+ box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);
161
163
  }
162
164
  }
163
165
 
@@ -168,14 +170,14 @@
168
170
  width: 1.5em;
169
171
  height: 1.5em;
170
172
  vertical-align: middle;
171
- background-image: var(--#{$variable-prefix}navbar-toggler-icon);
173
+ background-image: var(--#{$prefix}navbar-toggler-icon-bg);
172
174
  background-repeat: no-repeat;
173
175
  background-position: center;
174
176
  background-size: 100%;
175
177
  }
176
178
 
177
179
  .navbar-nav-scroll {
178
- max-height: var(--#{$variable-prefix}scroll-height, 75vh);
180
+ max-height: var(--#{$prefix}scroll-height, 75vh);
179
181
  overflow-y: auto;
180
182
  }
181
183
 
@@ -201,8 +203,8 @@
201
203
  }
202
204
 
203
205
  .nav-link {
204
- padding-right: $navbar-nav-link-padding-x;
205
- padding-left: $navbar-nav-link-padding-x;
206
+ padding-right: var(--#{$prefix}navbar-nav-link-padding-x);
207
+ padding-left: var(--#{$prefix}navbar-nav-link-padding-x);
206
208
  }
207
209
  }
208
210
 
@@ -219,34 +221,31 @@
219
221
  display: none;
220
222
  }
221
223
 
222
- .offcanvas-header {
223
- display: none;
224
- }
225
-
226
224
  .offcanvas {
227
- position: inherit;
228
- bottom: 0;
229
- z-index: 1000;
225
+ // stylelint-disable declaration-no-important
226
+ position: static;
227
+ z-index: auto;
230
228
  flex-grow: 1;
231
- visibility: visible !important; // stylelint-disable-line declaration-no-important
232
- background-color: transparent;
233
- border-right: 0;
234
- border-left: 0;
229
+ width: auto !important;
230
+ height: auto !important;
231
+ visibility: visible !important;
232
+ background-color: transparent !important;
233
+ border: 0 !important;
234
+ transform: none !important;
235
+ @include box-shadow(none);
235
236
  @include transition(none);
236
- transform: none;
237
- }
238
- .offcanvas-top,
239
- .offcanvas-bottom {
240
- height: auto;
241
- border-top: 0;
242
- border-bottom: 0;
243
- }
237
+ // stylelint-enable declaration-no-important
244
238
 
245
- .offcanvas-body {
246
- display: flex;
247
- flex-grow: 0;
248
- padding: 0;
249
- overflow-y: visible;
239
+ .offcanvas-header {
240
+ display: none;
241
+ }
242
+
243
+ .offcanvas-body {
244
+ display: flex;
245
+ flex-grow: 0;
246
+ padding: 0;
247
+ overflow-y: visible;
248
+ }
250
249
  }
251
250
  }
252
251
  }
@@ -258,26 +257,17 @@
258
257
  //
259
258
  // Styles for switching between navbars with light or dark background.
260
259
 
261
- // Dark links against a light background
262
260
  .navbar-light {
263
- --#{$variable-prefix}navbar-brand-color: #{$navbar-light-brand-color};
264
- --#{$variable-prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
265
- --#{$variable-prefix}navbar-color: #{$navbar-light-color};
266
- --#{$variable-prefix}navbar-hover-color: #{$navbar-light-hover-color};
267
- --#{$variable-prefix}navbar-active-color: #{$navbar-light-active-color};
268
- --#{$variable-prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
269
- --#{$variable-prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
270
- --#{$variable-prefix}navbar-toggler-icon: #{escape-svg($navbar-light-toggler-icon-bg)};
261
+ @include deprecate("`.navbar-light`", "v4.2.1", "v6.0.0", true);
271
262
  }
272
263
 
273
- // White links against a dark background
274
264
  .navbar-dark {
275
- --#{$variable-prefix}navbar-brand-color: #{$navbar-dark-brand-color};
276
- --#{$variable-prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
277
- --#{$variable-prefix}navbar-color: #{$navbar-dark-color};
278
- --#{$variable-prefix}navbar-hover-color: #{$navbar-dark-hover-color};
279
- --#{$variable-prefix}navbar-active-color: #{$navbar-dark-active-color};
280
- --#{$variable-prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
281
- --#{$variable-prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
282
- --#{$variable-prefix}navbar-toggler-icon: #{escape-svg($navbar-dark-toggler-icon-bg)};
265
+ --#{$prefix}navbar-color: #{$navbar-dark-color};
266
+ --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
267
+ --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
268
+ --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
269
+ --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
270
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
271
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
272
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
283
273
  }