vanilla-framework 2.36.0 → 3.0.0-beta.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 (140) hide show
  1. package/README.md +1 -1
  2. package/_index.scss +1 -0
  3. package/package.json +14 -12
  4. package/scss/_base_blockquotes.scss +2 -2
  5. package/scss/_base_button.scss +9 -27
  6. package/scss/_base_code.scss +8 -9
  7. package/scss/_base_details.scss +2 -2
  8. package/scss/_base_forms-range.scss +1 -45
  9. package/scss/_base_forms.scss +17 -22
  10. package/scss/_base_grid-definitions.scss +2 -23
  11. package/scss/_base_hr.scss +1 -1
  12. package/scss/_base_icon-definitions.scss +0 -24
  13. package/scss/_base_lists.scss +5 -5
  14. package/scss/_base_media.scss +1 -6
  15. package/scss/_base_placeholders.scss +15 -18
  16. package/scss/_base_tables.scss +6 -6
  17. package/scss/_base_typography-definitions.scss +16 -24
  18. package/scss/_base_typography.scss +7 -17
  19. package/scss/_global_functions.scss +3 -11
  20. package/scss/_layouts_application-panels.scss +1 -1
  21. package/scss/_layouts_application.scss +1 -1
  22. package/scss/_layouts_fluid-breakout.scss +40 -150
  23. package/scss/_patterns_accordion.scss +16 -71
  24. package/scss/_patterns_article-pagination.scss +3 -6
  25. package/scss/_patterns_breadcrumbs.scss +1 -1
  26. package/scss/_patterns_buttons.scss +1 -35
  27. package/scss/_patterns_card.scss +8 -8
  28. package/scss/_patterns_chip.scss +3 -7
  29. package/scss/_patterns_code-snippet.scss +7 -7
  30. package/scss/_patterns_contextual-menu.scss +1 -1
  31. package/scss/_patterns_divider.scss +4 -4
  32. package/scss/_patterns_form-help-text.scss +2 -2
  33. package/scss/_patterns_form-password-toggle.scss +0 -6
  34. package/scss/_patterns_form-tick-elements.scss +217 -27
  35. package/scss/_patterns_form-validation.scss +2 -2
  36. package/scss/_patterns_forms.scss +7 -7
  37. package/scss/_patterns_grid.scss +6 -20
  38. package/scss/_patterns_heading-icon.scss +5 -5
  39. package/scss/_patterns_headings.scss +0 -26
  40. package/scss/_patterns_icons.scss +0 -58
  41. package/scss/_patterns_label.scss +1 -1
  42. package/scss/_patterns_links.scss +4 -33
  43. package/scss/_patterns_list-tree.scss +0 -1
  44. package/scss/_patterns_lists.scss +17 -32
  45. package/scss/_patterns_logo-section.scss +7 -5
  46. package/scss/_patterns_matrix.scss +15 -17
  47. package/scss/_patterns_media-object.scss +4 -4
  48. package/scss/_patterns_modal.scss +14 -9
  49. package/scss/_patterns_navigation.scss +317 -312
  50. package/scss/_patterns_notifications.scss +15 -57
  51. package/scss/_patterns_pagination.scss +6 -6
  52. package/scss/_patterns_pull-quotes.scss +4 -4
  53. package/scss/_patterns_search-and-filter.scss +6 -6
  54. package/scss/_patterns_search-box.scss +2 -3
  55. package/scss/_patterns_separator.scss +4 -4
  56. package/scss/_patterns_side-navigation.scss +12 -15
  57. package/scss/_patterns_strip.scss +1 -1
  58. package/scss/_patterns_table-expanding.scss +0 -13
  59. package/scss/_patterns_table-icons.scss +2 -2
  60. package/scss/_patterns_table-mobile-card.scss +3 -10
  61. package/scss/_patterns_table-of-contents.scss +1 -1
  62. package/scss/_patterns_tabs.scss +2 -2
  63. package/scss/_patterns_tooltips.scss +5 -5
  64. package/scss/_settings_breakpoints.scss +2 -3
  65. package/scss/_settings_grid.scss +1 -4
  66. package/scss/_settings_spacing.scss +38 -60
  67. package/scss/_settings_system.scss +1 -7
  68. package/scss/_utilities_baseline-grid.scss +1 -1
  69. package/scss/_utilities_embedded-media.scss +2 -2
  70. package/scss/_utilities_equal-height.scss +1 -1
  71. package/scss/_utilities_floats.scss +4 -4
  72. package/scss/_utilities_hide.scss +8 -8
  73. package/scss/_utilities_image-position.scss +1 -1
  74. package/scss/_utilities_show.scss +2 -6
  75. package/scss/_utilities_vertical-spacing.scss +6 -12
  76. package/scss/_vanilla.scss +0 -11
  77. package/scss/_base_forms-tick-elements.scss +0 -607
  78. package/scss/_base_typography-max-widths.scss +0 -36
  79. package/scss/_patterns_code-copyable.scss +0 -43
  80. package/scss/_patterns_code-numbered.scss +0 -13
  81. package/scss/_patterns_inline-images.scss +0 -37
  82. package/scss/_patterns_subnav.scss +0 -210
  83. package/scss/standalone/base.scss +0 -2
  84. package/scss/standalone/custom.scss +0 -7
  85. package/scss/standalone/dark.scss +0 -11
  86. package/scss/standalone/example.scss +0 -15
  87. package/scss/standalone/import.scss +0 -2
  88. package/scss/standalone/layouts_fluid-breakout-full.scss +0 -8
  89. package/scss/standalone/layouts_fluid-breakout.scss +0 -8
  90. package/scss/standalone/patterns_accordion.scss +0 -6
  91. package/scss/standalone/patterns_article-pagination.scss +0 -4
  92. package/scss/standalone/patterns_breadcrumbs.scss +0 -4
  93. package/scss/standalone/patterns_buttons.scss +0 -9
  94. package/scss/standalone/patterns_card.scss +0 -9
  95. package/scss/standalone/patterns_chip.scss +0 -6
  96. package/scss/standalone/patterns_code-copyable.scss +0 -4
  97. package/scss/standalone/patterns_code-numbered.scss +0 -4
  98. package/scss/standalone/patterns_code-snippet.scss +0 -6
  99. package/scss/standalone/patterns_contextual-menu.scss +0 -9
  100. package/scss/standalone/patterns_divider.scss +0 -7
  101. package/scss/standalone/patterns_form-password-toggle.scss +0 -19
  102. package/scss/standalone/patterns_form-tick-elements.scss +0 -13
  103. package/scss/standalone/patterns_forms.scss +0 -17
  104. package/scss/standalone/patterns_grid.scss +0 -4
  105. package/scss/standalone/patterns_heading-icon.scss +0 -4
  106. package/scss/standalone/patterns_headings.scss +0 -4
  107. package/scss/standalone/patterns_icons-additional.scss +0 -104
  108. package/scss/standalone/patterns_icons.scss +0 -7
  109. package/scss/standalone/patterns_image.scss +0 -4
  110. package/scss/standalone/patterns_inline-images.scss +0 -4
  111. package/scss/standalone/patterns_label.scss +0 -4
  112. package/scss/standalone/patterns_links.scss +0 -4
  113. package/scss/standalone/patterns_list-tree.scss +0 -4
  114. package/scss/standalone/patterns_lists.scss +0 -4
  115. package/scss/standalone/patterns_logo-section.scss +0 -4
  116. package/scss/standalone/patterns_matrix.scss +0 -4
  117. package/scss/standalone/patterns_media-object.scss +0 -4
  118. package/scss/standalone/patterns_modal.scss +0 -9
  119. package/scss/standalone/patterns_muted-heading.scss +0 -4
  120. package/scss/standalone/patterns_navigation.scss +0 -4
  121. package/scss/standalone/patterns_notifications.scss +0 -11
  122. package/scss/standalone/patterns_pagination.scss +0 -7
  123. package/scss/standalone/patterns_pull-quotes.scss +0 -4
  124. package/scss/standalone/patterns_search-and-filter.scss +0 -8
  125. package/scss/standalone/patterns_search-box.scss +0 -15
  126. package/scss/standalone/patterns_separator.scss +0 -4
  127. package/scss/standalone/patterns_side-navigation.scss +0 -11
  128. package/scss/standalone/patterns_skip-link.scss +0 -8
  129. package/scss/standalone/patterns_slider.scss +0 -4
  130. package/scss/standalone/patterns_strip.scss +0 -10
  131. package/scss/standalone/patterns_subnav.scss +0 -9
  132. package/scss/standalone/patterns_switch.scss +0 -4
  133. package/scss/standalone/patterns_tab-buttons.scss +0 -7
  134. package/scss/standalone/patterns_table-expanding.scss +0 -10
  135. package/scss/standalone/patterns_table-mobile-card.scss +0 -10
  136. package/scss/standalone/patterns_table-of-contents.scss +0 -7
  137. package/scss/standalone/patterns_table-overflow.scss +0 -10
  138. package/scss/standalone/patterns_table-sortable.scss +0 -10
  139. package/scss/standalone/patterns_tabs.scss +0 -4
  140. package/scss/standalone/patterns_tooltips.scss +0 -6
@@ -4,18 +4,9 @@ $lightness-threshold: 70;
4
4
 
5
5
  @mixin vf-p-navigation {
6
6
  // placeholders
7
- %navigation-row {
8
- display: flex;
9
- flex-direction: column;
10
-
11
- @media (min-width: $breakpoint-navigation-threshold) {
12
- flex-direction: row;
13
- }
14
- }
15
-
16
7
  %navigation-link-responsive-padding-vertical {
17
- padding-bottom: $spv-inner--large;
18
- padding-top: $spv-inner--large;
8
+ padding-bottom: $spv--large;
9
+ padding-top: $spv--large;
19
10
  }
20
11
 
21
12
  %navigation-link-responsive-padding-left {
@@ -27,7 +18,7 @@ $lightness-threshold: 70;
27
18
  }
28
19
 
29
20
  @media (min-width: $breakpoint-navigation-threshold) {
30
- padding-left: $sph-inner;
21
+ padding-left: $sph--large;
31
22
  }
32
23
  }
33
24
 
@@ -40,7 +31,7 @@ $lightness-threshold: 70;
40
31
  }
41
32
 
42
33
  @media (min-width: $breakpoint-navigation-threshold) {
43
- padding-right: $sph-inner;
34
+ padding-right: $sph--large;
44
35
  }
45
36
  }
46
37
 
@@ -78,7 +69,6 @@ $lightness-threshold: 70;
78
69
  }
79
70
  }
80
71
 
81
- &,
82
72
  &:visited,
83
73
  &:focus,
84
74
  &:hover {
@@ -86,37 +76,11 @@ $lightness-threshold: 70;
86
76
  }
87
77
  }
88
78
 
89
- %navigation-items {
90
- list-style: none;
91
- margin: -1px 0 0 0;
92
- padding: 0;
93
-
94
- @media (min-width: $breakpoint-navigation-threshold) {
95
- display: flex;
96
- flex-wrap: wrap;
97
- margin-top: 0; // prevents bottom border of nav from moving 1px
98
- }
99
- }
100
-
101
- %navigation-item {
102
- @media (min-width: $breakpoint-navigation-threshold) {
103
- $nav-link-max-width: 20em !default;
104
-
105
- max-width: $nav-link-max-width;
106
- }
107
- }
108
-
109
- %navigation-item-in-logo {
110
- @include vf-focus;
111
-
112
- display: flex;
113
- }
114
-
115
79
  %vf-reset-horizontal-padding {
116
80
  padding-left: 0;
117
81
  padding-right: 0;
118
82
  }
119
- // no colours
83
+
120
84
  .p-navigation {
121
85
  display: flex;
122
86
  flex-direction: column;
@@ -128,199 +92,334 @@ $lightness-threshold: 70;
128
92
  flex-direction: row;
129
93
  }
130
94
 
131
- // navigation row
132
- &__row {
133
- @extend %fixed-width-container;
134
- @extend %navigation-row;
135
- @extend %vf-reset-horizontal-padding;
95
+ // p-search-box overrides
96
+ .p-search-box {
97
+ flex: 1 0 auto;
98
+ margin-left: map-get($grid-margin-widths, small);
99
+ margin-right: map-get($grid-margin-widths, small);
100
+ margin-top: -1px;
101
+ min-width: 10em;
102
+ order: -1;
103
+
104
+ @media (min-width: $threshold-4-6-col) {
105
+ margin-left: map-get($grid-margin-widths, medium);
106
+ margin-right: map-get($grid-margin-widths, medium);
107
+ }
136
108
 
137
- &--full-width {
138
- @extend %navigation-row;
109
+ @media (min-width: $breakpoint-navigation-threshold) {
110
+ // align baselines of menu items and input text
111
+ $input-gap-top: $spv--large - $spv-nudge;
139
112
 
140
- width: 100%;
113
+ display: flex;
114
+ flex: 1 1 auto;
115
+ margin: $input-gap-top 0 auto auto;
116
+ max-width: 20rem;
117
+ min-width: initial;
118
+ order: 1;
141
119
  }
142
120
  }
143
121
 
144
- @include deprecate('3.0.0', 'Use .p-navigation__row / .p-navigation__row--full-width instead') {
145
- &.row {
146
- @extend %navigation-row;
147
- }
122
+ .u-image-position .u-image-position--right {
123
+ order: 2; // ensure it is to the right of search
124
+ // XXX: patch - override utility, as it positions absolutely, which leads to overlap on smaller screens.
125
+ // Should use flex instead; But that will require changing the markup
126
+ position: relative;
127
+ right: initial;
148
128
  }
129
+ }
149
130
 
150
- &__item,
151
- &__item--dropdown-toggle {
152
- @extend %navigation-item;
131
+ // navigation row
132
+ .p-navigation__row,
133
+ .p-navigation__row--full-width {
134
+ display: flex;
135
+ flex-direction: column;
153
136
 
154
- // this needs to be nested in __item until in 3.0 we remove deprecated __link styles
155
- .p-navigation__link {
156
- @extend %navigation-link;
157
- }
137
+ @media (min-width: $breakpoint-navigation-threshold) {
138
+ flex-direction: row;
158
139
  }
140
+ }
159
141
 
160
- // navigation logo
161
- &__banner {
162
- @extend %navigation-link-responsive-padding-left;
142
+ .p-navigation__row {
143
+ @extend %fixed-width-container;
144
+ @extend %vf-reset-horizontal-padding;
145
+ }
163
146
 
164
- display: flex;
165
- flex: 0 0 auto;
166
- justify-content: space-between;
167
- padding-right: 0;
147
+ .p-navigation__row--full-width {
148
+ width: 100%;
149
+ }
168
150
 
169
- @media (min-width: $threshold-4-6-col) {
170
- padding-right: 0;
171
- }
151
+ .p-navigation__item,
152
+ .p-navigation__item--dropdown-toggle {
153
+ @media (min-width: $breakpoint-navigation-threshold) {
154
+ $nav-link-max-width: 20em !default;
172
155
 
173
- @media (min-width: $breakpoint-navigation-threshold) {
174
- padding-left: map-get($grid-margin-widths, small);
175
- }
156
+ max-width: $nav-link-max-width;
157
+ }
158
+ }
159
+
160
+ .p-navigation__link {
161
+ @extend %navigation-link;
162
+ }
163
+
164
+ // navigation logo
165
+ .p-navigation__banner {
166
+ @extend %navigation-link-responsive-padding-left;
167
+
168
+ display: flex;
169
+ flex: 0 0 auto;
170
+ justify-content: space-between;
171
+ padding-right: 0;
172
+
173
+ @media (min-width: $threshold-4-6-col) {
174
+ padding-right: 0;
175
+ }
176
+
177
+ @media (min-width: $breakpoint-navigation-threshold) {
178
+ padding-left: map-get($grid-margin-widths, small);
176
179
  }
180
+ }
181
+
182
+ .p-navigation__logo {
183
+ display: flex;
184
+ flex: 0 0 auto;
185
+ height: 3.5rem;
186
+ margin: 0 $sph--large 0 0;
187
+
188
+ .p-navigation__item {
189
+ @include vf-focus;
177
190
 
178
- &__logo {
179
191
  display: flex;
180
- flex: 0 0 auto;
181
- height: 3.5rem;
182
- margin: 0 $sph-inner 0 0;
192
+ }
193
+ }
183
194
 
184
- .p-navigation__item {
185
- @extend %navigation-item-in-logo;
186
- }
195
+ .p-navigation__image {
196
+ align-self: center;
197
+ max-height: 2rem;
198
+ min-height: 1.5rem;
199
+ }
187
200
 
188
- @include deprecate('3.0.0', 'Use .p-navigation__items, .p-navigation__item, .p-navigation__link instead.') {
189
- .p-navigation__link {
190
- @extend %navigation-item-in-logo;
191
- }
192
- }
201
+ // navigation items
202
+ .p-navigation__nav {
203
+ display: none;
204
+ flex-direction: column;
205
+
206
+ @media (min-width: $breakpoint-navigation-threshold) {
207
+ display: flex;
208
+ flex-direction: row;
209
+ justify-content: space-between;
210
+ margin-right: map-get($grid-margin-widths, large);
211
+ width: 100%;
193
212
  }
213
+ }
214
+
215
+ .p-navigation__items {
216
+ list-style: none;
217
+ margin: -1px 0 0 0;
218
+ padding: 0;
194
219
 
195
- &__image {
196
- align-self: center;
197
- max-height: 2rem;
198
- min-height: 1.5rem;
220
+ @media (min-width: $breakpoint-navigation-threshold) {
221
+ display: flex;
222
+ flex-wrap: wrap;
223
+ margin-top: 0; // prevents bottom border of nav from moving 1px
199
224
  }
225
+ }
226
+
227
+ // small screen navigation toggles
228
+ .p-navigation__toggle--close {
229
+ display: none;
230
+ }
231
+
232
+ .p-navigation__toggle--open {
233
+ display: block;
200
234
 
201
- // navigation items
202
- &__nav {
235
+ @media (min-width: $breakpoint-navigation-threshold) {
203
236
  display: none;
204
- flex-direction: column;
237
+ }
238
+ }
205
239
 
206
- @media (min-width: $breakpoint-navigation-threshold) {
207
- display: flex;
208
- flex-direction: row;
209
- justify-content: space-between;
210
- margin-right: map-get($grid-margin-widths, large);
211
- width: 100%;
212
- }
240
+ .p-navigation__toggle--open,
241
+ .p-navigation__toggle--close {
242
+ @extend %navigation-link-responsive-padding-horizontal;
243
+ @extend %navigation-link-responsive-padding-vertical;
244
+ @include vf-focus;
245
+
246
+ margin: 0 0 auto 0;
247
+
248
+ &,
249
+ &:visited,
250
+ &:focus,
251
+ &:hover {
252
+ text-decoration: none;
213
253
  }
254
+ }
214
255
 
215
- &__items {
216
- @extend %navigation-items;
256
+ .p-navigation:target {
257
+ &::after {
258
+ display: none;
217
259
  }
218
260
 
219
- @include deprecate('3.0.0', 'Use .p-navigation__items, .p-navigation__item, .p-navigation__link classes instead.') {
220
- &__link {
221
- @extend %navigation-item;
261
+ .p-navigation__nav {
262
+ display: flex;
263
+ }
222
264
 
223
- // stylelint-disable-next-line selector-max-type -- this is deprecated use, will be removed
224
- & > a {
225
- @extend %navigation-link;
226
- }
227
- }
265
+ .p-navigation__toggle--open {
266
+ display: none;
267
+ }
268
+
269
+ .p-navigation__toggle--close {
270
+ display: block;
228
271
 
229
- &__links {
230
- @extend %navigation-items;
272
+ @media (min-width: $breakpoint-navigation-threshold) {
273
+ display: none;
231
274
  }
232
275
  }
276
+ }
233
277
 
234
- // p-search-box overrides
278
+ // SEARCH
279
+
280
+ // on mobile screens search box is visible inside of the mobile navigation dropdown
281
+ .p-navigation__search {
282
+ padding-top: $spv--large;
283
+
284
+ // allow search box to take full width
235
285
  .p-search-box {
236
- flex: 1 0 auto;
237
- margin-left: map-get($grid-margin-widths, small);
238
- margin-right: map-get($grid-margin-widths, small);
239
- margin-top: -1px;
240
- min-width: 10em;
241
- order: -1;
286
+ max-width: none;
287
+ }
288
+ }
242
289
 
243
- @media (min-width: $threshold-4-6-col) {
244
- margin-left: map-get($grid-margin-widths, medium);
245
- margin-right: map-get($grid-margin-widths, medium);
246
- }
290
+ // on mobile screens both search toggle and overlay are not used and hidden from view
291
+ .p-navigation__link--search-toggle {
292
+ @extend %navigation-link;
247
293
 
248
- @media (min-width: $breakpoint-navigation-threshold) {
249
- // align baselines of menu items and input text
250
- $input-gap-top: $spv-inner--large - $spv-nudge;
294
+ display: none;
295
+ height: 100%; // keep the height of the navigation when 'Search' label is hidden
296
+ padding-left: 0; // on small screens label is hidden, so we remove left padding as well
297
+ padding-right: 2 * $sph--small + map-get($icon-sizes, default);
298
+ position: relative;
299
+ }
251
300
 
252
- display: flex;
253
- flex: 1 1 auto;
254
- margin: $input-gap-top 0 auto auto;
255
- max-width: 20rem;
256
- min-width: initial;
257
- order: 1;
258
- }
259
- }
301
+ .p-navigation__search-overlay {
302
+ display: none;
303
+ }
260
304
 
261
- &__toggle {
262
- &--close {
305
+ // the expanding search box is only visible on large screens in navigation bar
306
+ @media (min-width: $breakpoint-navigation-threshold) {
307
+ .p-navigation__link--search-toggle {
308
+ display: block;
309
+
310
+ // hide "search" label on small screens (only show the icon)
311
+ .p-navigation__search-label {
263
312
  display: none;
264
313
  }
265
314
 
266
- &--open {
315
+ // show both label and icon on large screens
316
+ @media (min-width: $breakpoint-large) {
317
+ padding-left: $sph--large;
318
+
319
+ .p-navigation__search-label {
320
+ display: initial;
321
+ }
322
+ }
323
+
324
+ &::after {
325
+ background-position: center;
326
+ background-repeat: no-repeat;
327
+ background-size: contain;
328
+ content: '';
267
329
  display: block;
330
+ height: $spv--large;
331
+ pointer-events: none;
332
+ position: absolute;
333
+ right: map-get($grid-margin-widths, small);
334
+ text-indent: calc(100% + 10rem);
335
+ top: calc(#{$spv--large} + #{map-get($nudges, nudge--x-small)});
336
+ width: map-get($icon-sizes, default);
337
+
338
+ @media (min-width: $threshold-4-6-col) {
339
+ right: map-get($grid-margin-widths, medium);
340
+ }
268
341
 
269
342
  @media (min-width: $breakpoint-navigation-threshold) {
270
- display: none;
343
+ right: calc(#{$sph--small} + 1px); // 1px for the border on selects. this aligns it with any selects underneath
271
344
  }
272
345
  }
346
+ }
273
347
 
274
- &--open,
275
- &--close {
276
- @extend %navigation-link-responsive-padding-horizontal;
277
- @extend %navigation-link-responsive-padding-vertical;
278
- @include vf-focus;
348
+ .p-navigation__search {
349
+ align-items: center;
350
+ display: none;
351
+ flex-grow: 1;
352
+ padding: 0;
353
+ }
279
354
 
280
- margin: 0 0 auto 0;
355
+ .p-navigation__search-overlay {
356
+ @include vf-animation(opacity, snap);
281
357
 
282
- &,
283
- &:visited,
284
- &:focus,
285
- &:hover {
286
- text-decoration: none;
287
- }
288
- }
358
+ background-color: $colors--light-theme--background-overlay;
359
+ bottom: 0;
360
+ display: block;
361
+ height: 100%;
362
+ left: 0;
363
+ opacity: 0;
364
+ pointer-events: none;
365
+ position: fixed;
366
+ right: 0;
367
+ top: 0;
368
+ width: 100%;
369
+ z-index: 59;
289
370
  }
290
371
 
291
- // small screen navigation toggles
292
- &:target {
293
- &::after {
372
+ // when navigation search is expanded
373
+ .p-navigation.has-search-open {
374
+ // hide all navigation items (including search toggle)
375
+ .p-navigation__items {
294
376
  display: none;
295
377
  }
296
378
 
297
- .p-navigation__nav {
379
+ // show expanded search box
380
+ .p-navigation__search {
298
381
  display: flex;
299
382
  }
300
383
 
301
- .p-navigation__toggle--open {
302
- display: none;
384
+ // fade in search overlay
385
+ .p-navigation__search-overlay {
386
+ opacity: 0.5;
387
+ pointer-events: all;
303
388
  }
304
389
 
305
- .p-navigation__toggle--close {
306
- display: block;
307
-
308
- @media (min-width: $breakpoint-navigation-threshold) {
309
- display: none;
310
- }
390
+ // make sure search in navigation renders on top of the overlay
391
+ .p-navigation__nav {
392
+ z-index: 60;
311
393
  }
312
394
  }
395
+ }
313
396
 
314
- .u-image-position .u-image-position--right {
315
- order: 2; // ensure it is to the right of search
316
- // XXX: patch - override utility, as it positions absolutely, which leads to overlap on smaller screens.
317
- // Should use flex instead; But that will require changing the markup
318
- position: relative;
319
- right: initial;
397
+ // DROPDOWNS
398
+ .p-navigation__dropdown,
399
+ .p-navigation__dropdown--right {
400
+ @extend %vf-has-box-shadow;
401
+ @extend %vf-has-round-corners;
402
+
403
+ display: none;
404
+ margin: 0;
405
+ min-width: 100%;
406
+ padding: 0;
407
+ z-index: 5;
408
+
409
+ @media (min-width: $breakpoint-navigation-threshold) {
410
+ position: absolute;
411
+ // padding applied to .p-navigation__link + line-heigh of the anchor text inside
412
+ top: $spv--large * 2 + map-get($line-heights, default-text);
413
+ }
414
+
415
+ @media (max-width: $breakpoint-navigation-threshold - 1) {
416
+ box-shadow: none;
320
417
  }
321
418
  }
322
419
 
323
- // DROPDOWNS
420
+ .p-navigation__dropdown--right {
421
+ right: 0;
422
+ }
324
423
 
325
424
  .p-navigation__item--dropdown-toggle {
326
425
  position: relative;
@@ -331,12 +430,12 @@ $lightness-threshold: 70;
331
430
  background-size: contain;
332
431
  content: '';
333
432
  display: block;
334
- height: $spv-inner--large;
433
+ height: $spv--large;
335
434
  pointer-events: none;
336
435
  position: absolute;
337
436
  right: map-get($grid-margin-widths, small);
338
437
  text-indent: calc(100% + 10rem);
339
- top: calc(#{$spv-inner--large} + #{map-get($nudges, nudge--x-small)});
438
+ top: calc(#{$spv--large} + #{map-get($nudges, nudge--x-small)});
340
439
  width: map-get($icon-sizes, default);
341
440
 
342
441
  @media (min-width: $threshold-4-6-col) {
@@ -344,7 +443,7 @@ $lightness-threshold: 70;
344
443
  }
345
444
 
346
445
  @media (min-width: $breakpoint-navigation-threshold) {
347
- right: calc(#{$sph-inner--small} + 1px); // 1px for the border on selects. this aligns it with any selects underneath
446
+ right: calc(#{$sph--small} + 1px); // 1px for the border on selects. this aligns it with any selects underneath
348
447
  }
349
448
  }
350
449
 
@@ -361,47 +460,21 @@ $lightness-threshold: 70;
361
460
 
362
461
  .p-navigation__link {
363
462
  // add padding to accommodate icon
364
- padding-right: 2 * $sph-inner--small + map-get($icon-sizes, default);
463
+ padding-right: 2 * $sph--small + map-get($icon-sizes, default);
365
464
  }
366
465
  }
367
466
 
368
- .p-navigation__dropdown,
369
- .p-navigation__dropdown--right {
370
- @extend %vf-has-box-shadow;
371
- @extend %vf-has-round-corners;
372
-
373
- display: none;
374
- margin: 0;
375
- min-width: 100%;
376
- padding: 0;
377
- z-index: 5;
378
-
379
- @media (min-width: $breakpoint-navigation-threshold) {
380
- position: absolute;
381
- // padding applied to .p-navigation__link + line-heigh of the anchor text inside
382
- top: $spv-inner--large * 2 + map-get($line-heights, default-text);
383
- }
384
-
385
- @media (max-width: $breakpoint-navigation-threshold - 1) {
386
- box-shadow: none;
387
- }
388
- }
389
-
390
- .p-navigation__dropdown--right {
391
- right: 0;
392
- }
393
-
394
467
  .p-navigation__dropdown-item {
395
468
  @extend %navigation-link-responsive-padding-horizontal;
396
469
 
397
470
  display: block;
398
- padding-bottom: $spv-inner--small;
399
- padding-top: $spv-inner--small;
471
+ padding-bottom: $spv--small;
472
+ padding-top: $spv--small;
400
473
  white-space: nowrap;
401
474
 
402
475
  @media (min-width: $breakpoint-navigation-threshold) {
403
- padding-bottom: $spv-inner--medium;
404
- padding-top: $spv-inner--medium;
476
+ padding-bottom: $spv--medium;
477
+ padding-top: $spv--medium;
405
478
  }
406
479
 
407
480
  &,
@@ -420,7 +493,7 @@ $lightness-threshold: 70;
420
493
  }
421
494
 
422
495
  .p-navigation.is-light {
423
- @include vf-navigation-light-theme(true);
496
+ @include vf-navigation-light-theme;
424
497
  }
425
498
  } @else {
426
499
  .p-navigation {
@@ -428,7 +501,7 @@ $lightness-threshold: 70;
428
501
  }
429
502
 
430
503
  .p-navigation.is-dark {
431
- @include vf-navigation-dark-theme(true);
504
+ @include vf-navigation-dark-theme;
432
505
  }
433
506
  }
434
507
  }
@@ -448,20 +521,11 @@ $lightness-threshold: 70;
448
521
  ) {
449
522
  background-color: $color-navigation-background;
450
523
 
451
- %navigation-link-before {
452
- // separator color on small screens
453
- background: $color-navigation-separator;
454
- }
455
-
456
- %navigation-link-hover {
457
- background-color: $color-navigation-background--hover;
458
- }
459
-
460
- %navigation-link-active {
461
- background-color: $color-navigation-background--active;
462
- }
463
-
464
- %navigation-link-theme {
524
+ .p-navigation__link,
525
+ .p-navigation__link--search-toggle,
526
+ .p-navigation__toggle--close,
527
+ .p-navigation__toggle--open,
528
+ .p-navigation__dropdown-item {
465
529
  &,
466
530
  &:hover,
467
531
  &:visited,
@@ -470,127 +534,68 @@ $lightness-threshold: 70;
470
534
  }
471
535
 
472
536
  &:hover {
473
- @extend %navigation-link-hover;
537
+ background-color: $color-navigation-background--hover;
474
538
  }
475
539
 
476
540
  &:active {
477
- @extend %navigation-link-active;
478
- }
479
- }
480
-
481
- %navigation-link-selected {
482
- @extend %navigation-link-hover;
483
-
484
- @include vf-highlight-bar($color-navigation-highlight, left, true);
485
-
486
- @media (min-width: $breakpoint-navigation-threshold) {
487
- @include vf-highlight-bar($color-navigation-highlight, bottom, false);
541
+ background-color: $color-navigation-background--active;
488
542
  }
489
543
  }
490
544
 
491
- [class*="p-navigation__item"] > .p-navigation__link, // remove nesting in 3.0 when deprecated __link styles are removed
492
- .p-navigation__toggle--close,
493
- .p-navigation__toggle--open {
494
- @extend %navigation-link-theme;
495
- }
496
-
497
545
  .p-navigation__item--dropdown-toggle {
498
546
  &::after {
499
547
  @include vf-icon-chevron($color-navigation-icon);
500
548
  }
501
549
 
502
550
  &.is-active > .p-navigation__link {
503
- @extend %navigation-link-active;
551
+ background-color: $color-navigation-background--active;
504
552
  }
505
553
  }
506
554
 
555
+ .p-navigation__item .p-navigation__link--search-toggle::after {
556
+ @include vf-icon-search($color-navigation-icon);
557
+ }
558
+
507
559
  .p-navigation__dropdown,
508
560
  .p-navigation__dropdown--right {
509
561
  background-color: $color-navigation-background;
510
562
  }
511
563
 
512
- .p-navigation__dropdown-item {
513
- @extend %navigation-link-theme;
514
- }
515
-
516
564
  [class*='p-navigation__item'].is-selected > .p-navigation__link {
517
- @extend %navigation-link-selected;
518
- }
519
-
520
- [class*='p-navigation__item'] > .p-navigation__link::before {
521
- // remove nesting in 3.0 when deprecated __link styles are removed
522
- @extend %navigation-link-before;
523
- }
565
+ background-color: $color-navigation-background--hover;
524
566
 
525
- @include deprecate('3.0.0', 'Use .p-navigation__items, .p-navigation__item, .p-navigation__link classes instead.') {
526
- // stylelint-disable selector-max-type -- this is deprecated use, will be removed
527
- .p-navigation__link > a {
528
- @extend %navigation-link-theme;
529
- }
567
+ @include vf-highlight-bar($color-navigation-highlight, left, true);
530
568
 
531
- .p-navigation__link.is-selected > a {
532
- @extend %navigation-link-selected;
569
+ @media (min-width: $breakpoint-navigation-threshold) {
570
+ @include vf-highlight-bar($color-navigation-highlight, bottom, false);
533
571
  }
572
+ }
534
573
 
535
- .p-navigation__link > a::before {
536
- @extend %navigation-link-before;
537
- }
538
- // stylelint-enable selector-max-type
574
+ .p-navigation__link::before {
575
+ background: $color-navigation-separator;
539
576
  }
540
577
  }
541
578
 
542
- @mixin vf-navigation-light-theme($override-default: false) {
543
- @if ($override-default) {
544
- @include vf-navigation-theme(
545
- $color-navigation-text: $colors--light-theme--text-default,
546
- $color-navigation-background: $colors--light-theme--background-default,
547
- $color-navigation-background--hover: $colors--light-theme--background-alt,
548
- $color-navigation-background--active: $colors--light-theme--background-active,
549
- $color-navigation-highlight: $color-accent,
550
- $color-navigation-separator: $colors--light-theme--border-low-contrast,
551
- $color-navigation-icon: $colors--light-theme--text-muted
552
- );
553
- } @else {
554
- // take $color-navigation-background (that can be overridden) into account
555
- $color-navigation-background: $colors--light-theme--background-default !default;
556
- $color-navigation-text: if(lightness($color-navigation-background) > $lightness-threshold, $colors--light-theme--text-default, $colors--dark-theme--text-default) !default;
557
-
558
- @include vf-navigation-theme(
559
- $color-navigation-text: $color-navigation-text,
560
- $color-navigation-background: $color-navigation-background,
561
- $color-navigation-background--hover: $colors--light-theme--background-alt,
562
- $color-navigation-background--active: $colors--light-theme--background-active,
563
- $color-navigation-highlight: $color-accent,
564
- $color-navigation-separator: $colors--light-theme--border-low-contrast,
565
- $color-navigation-icon: $colors--light-theme--text-muted
566
- );
567
- }
579
+ @mixin vf-navigation-light-theme {
580
+ @include vf-navigation-theme(
581
+ $color-navigation-text: $colors--light-theme--text-default,
582
+ $color-navigation-background: $colors--light-theme--background-default,
583
+ $color-navigation-background--hover: $colors--light-theme--background-alt,
584
+ $color-navigation-background--active: $colors--light-theme--background-active,
585
+ $color-navigation-highlight: $color-accent,
586
+ $color-navigation-separator: $colors--light-theme--border-low-contrast,
587
+ $color-navigation-icon: $colors--light-theme--text-muted
588
+ );
568
589
  }
569
590
 
570
- @mixin vf-navigation-dark-theme($override-default: false) {
571
- @if ($override-default) {
572
- @include vf-navigation-theme(
573
- $color-navigation-text: $colors--dark-theme--text-default,
574
- $color-navigation-background: $colors--dark-theme--background-default,
575
- $color-navigation-background--hover: $colors--dark-theme--background-hover,
576
- $color-navigation-background--active: $colors--dark-theme--background-active,
577
- $color-navigation-highlight: $color-accent,
578
- $color-navigation-separator: $colors--dark-theme--border-low-contrast,
579
- $color-navigation-icon: $colors--dark-theme--text-muted
580
- );
581
- } @else {
582
- // take $color-navigation-background (that can be overridden) into account
583
- $color-navigation-background: $colors--dark-theme--background-default !default;
584
- $color-navigation-text: if(lightness($color-navigation-background) > $lightness-threshold, $colors--light-theme--text-default, $colors--dark-theme--text-default) !default;
585
-
586
- @include vf-navigation-theme(
587
- $color-navigation-text: $color-navigation-text,
588
- $color-navigation-background: $color-navigation-background,
589
- $color-navigation-background--hover: $colors--dark-theme--background-hover,
590
- $color-navigation-background--active: $colors--dark-theme--background-active,
591
- $color-navigation-highlight: $color-accent,
592
- $color-navigation-separator: $colors--dark-theme--border-low-contrast,
593
- $color-navigation-icon: #999
594
- );
595
- }
591
+ @mixin vf-navigation-dark-theme {
592
+ @include vf-navigation-theme(
593
+ $color-navigation-text: $colors--dark-theme--text-default,
594
+ $color-navigation-background: $colors--dark-theme--background-default,
595
+ $color-navigation-background--hover: $colors--dark-theme--background-hover,
596
+ $color-navigation-background--active: $colors--dark-theme--background-active,
597
+ $color-navigation-highlight: $color-accent,
598
+ $color-navigation-separator: $colors--dark-theme--border-low-contrast,
599
+ $color-navigation-icon: $colors--dark-theme--text-muted
600
+ );
596
601
  }