@uqds/header 0.0.5-alpha.0 → 0.0.8-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,391 +1,791 @@
1
- @use '@uqds/core/src/scss/global' as core;
2
- @use '@uqds/grid/src/scss/global' as grid;
3
- @use "@uqds/icon/src/scss/global" as icon-constants;
4
- @use '@uqds/form/src/scss/global' as form;
5
- @use 'global' as *;
6
-
7
- .uq-header {
8
- background: core.$uq-purple;
9
- background: core.$uq-purple-gradient;
10
- box-sizing: border-box;
11
- font-family: core.$font-body;
12
- font-weight: core.$font-weight-thin;
13
- line-height: core.$line-height;
14
-
15
- &__container {
16
- @include grid.layout-containment;
17
- position: relative;
18
- padding: core.$space core.$space-s 0;
19
- display: grid;
20
- grid-template-columns: auto auto;
21
- grid-template-areas:
22
- "logo toggle"
23
- "search search"
24
- "nav nav";
25
- justify-items: center;
26
-
27
- @media #{core.$screen-lg-up} {
28
- padding: core.$space-m core.$space 0;
29
- gap: core.$space-m;
30
- grid-template-columns: auto auto min-content;
31
- grid-template-areas:
32
- "logo nav toggle"
33
- "search search search";
34
- }
35
- }
36
-
37
- &__logo {
38
- grid-area: logo;
39
- justify-self: start;
40
-
41
- img {
42
- height: 2.625rem;
43
- vertical-align: middle;
44
- }
45
-
46
- &--large {
47
- display: none;
48
-
49
- @media only screen and (min-width: 78.5rem) {
50
- display: block;
51
- }
52
- }
53
-
54
- &--small {
55
- @media only screen and (min-width: 78.5rem) {
56
- display: none;
57
- }
58
- }
59
- }
60
-
61
- &__navigation {
62
- grid-area: nav;
63
-
64
- @media #{core.$screen-lg-up} {
65
- justify-self: end;
66
- display: flex;
67
- }
68
-
69
- &-container {
70
- -webkit-column-count: 3;
71
- -moz-column-count: 3;
72
- column-count: 3;
73
- list-style: none;
74
- margin-bottom: core.$space;
75
- padding: core.$space-none;
76
- height: 0;
77
- overflow: hidden;
78
- width: 100%;
79
-
80
- @media #{core.$screen-lg-up} {
81
- justify-self: end;
82
- display: flex;
83
- align-content: flex-end;
84
- align-items: center;
85
- justify-content: center;
86
- gap: core.$space-m;
87
- margin: core.$space-none;
88
- height: auto;
89
- visibility: visible;
90
- overflow: initial;
91
-
92
- li {
93
- margin: core.$space-none;
94
- }
95
- }
96
- }
97
-
98
- &--open {
99
- width: 100%;
100
-
101
- @media #{core.$screen-lg-up} {
102
- width: auto;
103
- }
104
-
105
- .uq-header__navigation-container {
106
- height: auto;
107
- visibility: visible;
108
- overflow: initial;
109
- }
110
- }
111
-
112
-
113
-
114
- &-link {
115
- color: core.$uq-white;
116
- font-size: core.$font-size-s;
117
- font-weight: core.$font-weight-thin;
118
- text-decoration: none;
119
-
120
- &:hover,
121
- &:focus {
122
- color: core.$uq-white;
123
- text-decoration: underline;
124
- }
125
- }
126
- }
127
-
128
- &__search {
129
- grid-area: search;
130
- height: 0;
131
- overflow: hidden;
132
- visibility: hidden;
133
- transition: height .25s, padding-top .25s, padding-bottom .25s;
134
-
135
- &--open {
136
- height: auto;
137
- visibility: visible;
138
- overflow: initial;
139
- padding-top: core.$space-m;
140
- padding-bottom: core.$space;
141
- width: 100%;
142
- }
143
-
144
- &-toggle {
145
- grid-area: toggle;
146
- justify-self: end;
147
-
148
- &-button {
149
- margin: core.$space-s core.$space-none core.$space-none core.$space-none;
150
- padding: core.$space-xs;
151
- border: 0;
152
- width: 1.5rem;
153
- height: 1.5rem;
154
- background-color: transparent;
155
- text-indent: -100vw;
156
- overflow: hidden;
157
- position: relative;
158
- cursor: pointer;
159
- background-position: center center;
160
-
161
- @media #{core.$screen-lg-up} {
162
- margin: .75rem core.$space-none core.$space-none core.$space-none;
163
- }
164
-
165
- &::before {
166
- content: "";
167
- position: absolute;
168
- display: block;
169
- top: 0;
170
- left: 0;
171
- width: 100%;
172
- height: 100%;
173
- background-size: 100%;
174
- background-image: url(icon-constants.get-icon('standard--search', core.$uq-white));
175
- }
176
-
177
- &--icon-close {
178
- &::before {
179
- background-image: url(icon-constants.get-icon('standard--close', core.$uq-white));
180
- }
181
- }
182
- }
183
- }
184
-
185
- &-title {
186
- color: core.$uq-white;
187
- font-family: core.$merriweather;
188
- font-size: core.$font-size;
189
- font-style: italic;
190
- font-weight: core.$font-weight-normal;
191
- margin-bottom: form.$form-spacing;
192
- line-height: core.$line-height-h;
193
- padding: 0;
194
-
195
- @media #{core.$screen-lg-up} {
196
- display: inline-block;
197
- float: left;
198
- vertical-align: baseline;
199
- }
200
-
201
- @media #{core.$screen-xl-up} {
202
- font-size: core.$font-size-l;
203
- }
204
- }
205
-
206
- fieldset {
207
- border: 0;
208
- padding: 0;
209
- margin: 0;
210
- }
211
-
212
- input[type="radio"] {
213
- color: core.$uq-white;
214
- border-radius: 50%;
215
- appearance: none;
216
- display: inline-block;
217
- border: form.$form-checkbox-border-width solid form.$form-border-color;
218
- cursor: pointer;
219
- height: form.$form-checkbox-size;
220
- width: form.$form-checkbox-size;
221
- vertical-align: top;
222
- position: absolute;
223
-
224
- &:focus {
225
- border-color: form.$form-focus-color;
226
- box-shadow: 0 0 0 1px form.$form-focus-color;
227
- outline: none;
228
- }
229
-
230
- + label {
231
- color: core.$uq-white;
232
- display: inline-block;
233
- font-size: core.$font-size-s;
234
- font-weight: core.$font-weight-normal;
235
- line-height: core.$line-height-h;
236
- margin-bottom: core.$space-none;
237
- margin-left: core.$space-s;
238
- margin-right: form.$form-spacing;
239
- padding-top: core.$space-xs;
240
- padding-left: core.$space-m;
241
- vertical-align: top;
242
- cursor: pointer;
243
- }
244
-
245
- &:checked {
246
- border-width: 0.125rem;
247
- border-color: core.$uq-white;
248
-
249
- &::after {
250
- border-radius: 50%;
251
- background-color: core.$uq-white;
252
- content: "";
253
- display: block;
254
- position: absolute;
255
- top: 3px;
256
- left: 3px;
257
- height: form.$form-checkbox-size - 10px;
258
- width: form.$form-checkbox-size - 10px;
259
- }
260
-
261
- &:focus {
262
- border-color: form.$form-focus-color;
263
- box-shadow: 0 0 0 1px form.$form-focus-color;
264
- }
265
- }
266
- }
267
-
268
- &-range {
269
- display: block;
270
- margin-bottom: core.$space;
271
-
272
- @media #{core.$screen-lg-up} {
273
- display: inline-block;
274
- margin-left: core.$space;
275
- line-height: 1.4;
276
- }
277
- }
278
-
279
- &-query {
280
- position: relative;
281
- display: inline-block;
282
- max-width: 100%;
283
- min-width: 100%;
284
- border-radius: 2px;
285
- background-color: core.$uq-white;
286
- background-position: 1rem;
287
- margin-bottom: core.$space-s;
288
-
289
- @media #{core.$screen-xl-up} {
290
- margin-bottom: core.$space-m;
291
- }
292
-
293
- &-input {
294
- background: transparent;
295
- margin: core.$space-none !important;
296
- width: 100%;
297
- padding: .75rem 1rem;
298
- border: 1px solid #e2e2e2;
299
- border-radius: 2px;
300
- box-shadow: none;
301
- font-family: sans-serif;
302
- font-size: core.$font-size;
303
- line-height: 1;
304
- color: core.$uq-neutral-dark80;
305
- height: auto;
306
- outline: none;
307
-
308
- &:focus {
309
- border-color: core.$link;
310
- outline: none;
311
- }
312
- }
313
-
314
- &-button {
315
- background-clip: padding-box;
316
- background-color: core.$uq-white;
317
- border-radius: 5px;
318
- border: 2px solid transparent;
319
- color: core.$uq-purple;
320
- display: inline-block;
321
- font-size: core.$font-size;
322
- height: 2.75rem;
323
- line-height: core.$line-height;
324
- margin-bottom: core.$space-none;
325
- margin-right: core.$space-none;
326
- overflow: hidden;
327
- position: absolute;
328
- right: 0;
329
- text-decoration: none;
330
- text-indent: 0;
331
- top: calc(50% - 1.375rem);
332
- transition: color .2s, background-color .2s, border-color .2s;
333
- width: 2.75rem;
334
-
335
- &:hover {
336
- background-color: core.$uq-white;
337
- border-color: core.$uq-purple;
338
- color: core.$uq-purple
339
- }
340
-
341
- &::before {
342
- content: "";
343
- position: absolute;
344
- display: block;
345
- width: 1.5rem;
346
- height: 1.5rem;
347
- top: .5rem;
348
- left: .5rem;
349
- background-size: 100%;
350
- background-image: url(icon-constants.get-icon('standard--search', core.$uq-purple));
351
- }
352
- }
353
-
354
- &-submit {
355
- color: transparent;
356
- position: relative;
357
- display: block;
358
- width: 100%;
359
- height: 100%;
360
- margin: core.$space-none;
361
- border: 0;
362
- background-color: transparent;
363
- z-index: 3;
364
- cursor: pointer;
365
- outline-offset: -2px;
366
- font-size: core.$font-size;
367
- }
368
- }
369
- }
370
-
371
- // Visibility utility classes
372
- .hidden {
373
- display: none;
374
- }
375
-
376
- .visually-hidden {
377
- position: absolute !important;
378
- overflow: hidden;
379
- clip: rect(1px,1px,1px,1px);
380
- width: 1px;
381
- height: 1px;
382
- word-wrap: normal;
383
- margin: core.$space-none;
384
- padding: core.$space-none;
385
- }
386
-
387
- // JS helpers:
388
- &__mq--desktop {
389
- font-family: "#{core.$screen-lg-up}";
390
- }
391
- }
1
+ @use '@uqds/core/src/scss/global' as core;
2
+ @use "@uqds/icon/src/scss/global" as icon-constants;
3
+ @use '@uqds/grid/src/scss/global' as grid;
4
+ @use 'global' as *;
5
+
6
+ .uq-header {
7
+
8
+ background: core.$uq-purple; //linear-gradient(90deg, $uq-purple 0%, 87%, #962A8B 100%);
9
+ display: grid;
10
+ align-items: center;
11
+ grid-template-columns: auto;
12
+ grid-template-areas:
13
+ "mainheader"
14
+ "secondarynav";
15
+ position: relative;
16
+
17
+ @media #{core.$screen-lg-up} {
18
+ grid-template-areas:
19
+ "secondarynav"
20
+ "mainheader";
21
+ }
22
+
23
+ &__container {
24
+
25
+ display: grid;
26
+ align-items: center;
27
+ grid-template-columns: 1fr 15fr 1fr;
28
+ grid-area: mainheader;
29
+ grid-template-areas:
30
+ "menutoggle logo searchtoggle"
31
+ "mainnav-mobile mainnav-mobile mainnav-mobile";
32
+
33
+ @media #{core.$screen-lg-up} {
34
+ max-width: 73.25rem;
35
+ margin-left: auto;
36
+ margin-right: auto;
37
+ grid-template-areas:
38
+ "logo mainnav searchtoggle";
39
+ padding-left: core.$space;
40
+ padding-right: core.$space;
41
+ }
42
+ }
43
+
44
+ &__menu-toggle {
45
+ grid-area: menutoggle;
46
+
47
+ @media #{core.$screen-lg-up} {
48
+ display: none;
49
+ }
50
+ }
51
+
52
+ &__search-toggle {
53
+ grid-area: searchtoggle;
54
+ height: 100%;
55
+ text-align: right;
56
+ color: core.$uq-white;
57
+
58
+ @media #{core.$screen-lg-up} {
59
+ height: auto;
60
+ }
61
+
62
+ .search-toggle__label {
63
+ display: none;
64
+
65
+ @media #{core.$screen-lg-up} {
66
+ display: block;
67
+ font-family: core.$roboto;
68
+ font-size: core.$font-size;
69
+ text-align: right;
70
+ width: 3.2rem;
71
+ }
72
+ }
73
+ }
74
+
75
+ & .nav-primary__toggle {
76
+ background: none;
77
+ border: none;
78
+ padding: 1.75rem core.$space-l;
79
+ height: 100%;
80
+
81
+ @media #{core.$screen-lg-up} {
82
+ padding: 1rem 0 1rem 1.5rem;
83
+ height: auto;
84
+ }
85
+ }
86
+
87
+ & .nav-primary__menu-toggle {
88
+ cursor: pointer;
89
+ color: core.$uq-white;
90
+ position: relative;
91
+ text-indent: -9999px;
92
+ white-space: nowrap;
93
+
94
+ &::before {
95
+ content: "";
96
+ background-image: url(icon-constants.get-icon("standard--navigation-menu", core.$uq-white));
97
+ background-repeat: no-repeat;
98
+ width: 1.5rem;
99
+ height: 1.5rem;
100
+ transform: translate(50%, 50%);
101
+ position: absolute;
102
+ top: .625rem;
103
+ right: core.$space-l;
104
+ }
105
+
106
+ &--is-open {
107
+ &::before {
108
+ background-image: url(icon-constants.get-icon("standard--x", core.$uq-white));
109
+ }
110
+ }
111
+ }
112
+
113
+ & .nav-primary__search-toggle {
114
+ cursor: pointer;
115
+ color: core.$uq-white;
116
+ position: relative;
117
+
118
+ &::before {
119
+ content: "";
120
+ background-image: url(icon-constants.get-icon("standard--search", core.$uq-white));
121
+ background-repeat: no-repeat;
122
+ width: 1.5rem;
123
+ height: 1.5rem;
124
+ transform: translate(50%, 50%);
125
+ position: absolute;
126
+ top: .625rem;
127
+ right: core.$space-l;
128
+
129
+ @media #{core.$screen-lg-up} {
130
+ top: 0.1rem;
131
+ left: -1rem;
132
+ }
133
+ }
134
+
135
+ @media #{core.$screen-lg-up} {
136
+ &:hover {
137
+ color: #d4c8de;
138
+ text-decoration: underline;
139
+ }
140
+ }
141
+
142
+ &--is-open {
143
+
144
+ &::before {
145
+ background-image: url(icon-constants.get-icon("standard--x", core.$uq-white));
146
+ }
147
+ }
148
+
149
+ }
150
+
151
+ &__logo {
152
+ grid-area: logo;
153
+
154
+
155
+ & a {
156
+ display: grid;
157
+ padding: 1rem 0;
158
+ }
159
+
160
+ & img {
161
+ height: 32px;
162
+
163
+ @media #{core.$screen-lg-up} {
164
+ height: 40px;
165
+ }
166
+ }
167
+ }
168
+
169
+ // __nav-primary
170
+
171
+ &__nav-primary {
172
+ grid-area: mainnav;
173
+ display: none;
174
+ width: 100%;
175
+ z-index: 99;
176
+
177
+ @media #{core.$screen-lg-up} {
178
+ display: block;
179
+ }
180
+ }
181
+
182
+ &__nav-primary-container {
183
+
184
+ @media #{core.$screen-lg-up} {
185
+ padding: 0 0 0 core.$space-xl;
186
+ }
187
+ }
188
+
189
+ &__nav-primary-list {
190
+ list-style-type: none;
191
+ margin: 0;
192
+ padding-left: 0;
193
+ display: flex;
194
+ justify-content: flex-start;
195
+ align-items: stretch;
196
+ flex-direction: column;
197
+
198
+ @media #{core.$screen-lg-up} {
199
+ align-items: center;
200
+ flex-direction: row;
201
+ }
202
+
203
+ & li {
204
+ margin: 0;
205
+ padding-right: 2rem;
206
+
207
+ &:hover {
208
+ & > .uq-header__megamenu {
209
+ height: auto;
210
+ visibility: visible;
211
+ }
212
+
213
+ & .uq-header__nav-primary-link {
214
+ border-bottom: 4px solid white;
215
+ }
216
+ }
217
+
218
+ & .uq-header__nav-primary-link--active {
219
+ border-bottom: 4px solid white;
220
+ }
221
+ }
222
+ }
223
+
224
+ &__nav-primary-link {
225
+ display: block;
226
+ color: core.$uq-white; //core.$uq-purple;
227
+ text-decoration: none;
228
+ padding: core.$space core.$space-m;
229
+ transition: background-color .25s,border-color .25s;
230
+ font-weight: 400;
231
+ position: relative;
232
+ border-bottom: 4px solid core.$uq-purple;
233
+
234
+ &:hover {
235
+ color: core.$uq-white;
236
+ text-decoration: none;
237
+ }
238
+
239
+
240
+ @media #{core.$screen-lg-up} {
241
+ padding: core.$space-l core.$space-s;
242
+ }
243
+ }
244
+
245
+ .nav-primary-link--has-dropdown {
246
+ padding: core.$space-l core.$space-m core.$space-l core.$space-s;
247
+
248
+ &::after {
249
+ content: "";
250
+ background-image: url(icon-constants.get-icon("standard--chevron-down-sml", core.$uq-white));
251
+ background-repeat: no-repeat;
252
+ width: core.$space;
253
+ height: core.$space;
254
+ transform: translateY(50%);
255
+ position: absolute;
256
+ top: 1.7rem;
257
+ right: 1.75rem;
258
+
259
+ @media #{core.$screen-lg-up} {
260
+ right: .25rem;
261
+ }
262
+ }
263
+ }
264
+
265
+ .mega-menu {
266
+ display: none;
267
+ background-color: core.$uq-white;
268
+ list-style-type: none;
269
+ margin: 0;
270
+ padding-left: 0;
271
+
272
+ & li {
273
+
274
+ & a {
275
+ padding-left: core.$space-xxl;
276
+ color: core.$uq-purple;
277
+ }
278
+ }
279
+
280
+ & ul {
281
+ list-style-type: none;
282
+ margin: 0;
283
+ padding-left: 0;
284
+
285
+ & li {
286
+ & a {
287
+ padding-left: core.$space-ul;
288
+ }
289
+ }
290
+ }
291
+ }
292
+
293
+ &__nav-secondary {
294
+ background-color: #48206c;
295
+ grid-area: secondarynav;
296
+ }
297
+
298
+ &__nav-secondary-container {
299
+ @media #{core.$screen-lg-up} {
300
+ text-align: right;
301
+ max-width: 73.25rem;
302
+ margin-left: auto;
303
+ margin-right: auto;
304
+ }
305
+ }
306
+
307
+ &__nav-secondary-list {
308
+ list-style-type: none;
309
+ margin: 0;
310
+ padding-left: 0;
311
+ display: flex;
312
+ justify-content: flex-start;
313
+ align-items: stretch;
314
+ flex-direction: column;
315
+
316
+ @media #{core.$screen-lg-up} {
317
+ justify-content: flex-end;
318
+ align-items: center;
319
+ flex-direction: row;
320
+ }
321
+ }
322
+
323
+ &__nav-secondary-item {
324
+ margin: 0;
325
+ }
326
+
327
+ &__nav-secondary-link {
328
+ display: block;
329
+ color: white;
330
+ padding: core.$space core.$space-m;
331
+
332
+ @media #{core.$screen-lg-up} {
333
+ font-size: core.$font-size-s;
334
+ padding: .625rem core.$space;
335
+ }
336
+
337
+ &:hover {
338
+ color: #d4c8de;
339
+ }
340
+ }
341
+
342
+ &__search {
343
+
344
+ background: core.$uq-purple;
345
+ position: absolute;
346
+ width: 100%;
347
+ top: 3.95rem;
348
+ z-index: 20;
349
+ box-shadow: 0 .75rem core.$space-m rgb(24 24 24 / 20%);
350
+ transition: max-height .2s ease-in-out, transform .2s ease-in-out;//, visibility .2s ease;
351
+ transform: translateY(-1rem);
352
+ max-height: 0;
353
+ overflow: hidden;
354
+ visibility: hidden;
355
+
356
+ @media #{core.$screen-lg-up} {
357
+ top: 8.3rem;
358
+ }
359
+
360
+ &--is-open {
361
+ transform: translateY(0);
362
+ max-height: 50vh;
363
+ visibility: visible;
364
+ }
365
+ }
366
+
367
+ &__search-container {
368
+
369
+ padding: 0 core.$space-m;
370
+
371
+ @media #{core.$screen-lg-up} {
372
+ padding-left: core.$space;
373
+ padding-right: core.$space;
374
+ max-width: 73.25rem;
375
+ margin-left: auto;
376
+ margin-right: auto;
377
+ padding-top: 0;
378
+ padding-bottom: 1rem;
379
+ }
380
+ }
381
+
382
+ &__search-query {
383
+ position: relative;
384
+ display: inline-block;
385
+ max-width: 100%;
386
+ min-width: 100%;
387
+ border-radius: 5px;
388
+ background-position: core.$space;
389
+ padding-top: core.$space;
390
+ padding-bottom: core.$space;
391
+ }
392
+
393
+ &__search-query-label {
394
+ color: core.$uq-white;
395
+ }
396
+
397
+ &__search-query-input {
398
+ margin: 0 !important;
399
+ padding: .75rem core.$space !important;
400
+ }
401
+
402
+ &__search-query-button {
403
+ background-clip: padding-box;
404
+ background-color: core.$uq-white;
405
+ border-radius: 5px;
406
+ border: 2px solid transparent;
407
+ color: core.$uq-purple;
408
+ display: inline-block;
409
+ font-size: core.$font-size;
410
+ height: 2.75rem;
411
+ line-height: 1.5;
412
+ margin-bottom: 0;
413
+ margin-right: 0;
414
+ overflow: hidden;
415
+ position: absolute;
416
+ right: core.$space-s;
417
+ text-decoration: none;
418
+ text-indent: 0;
419
+ top: calc(50% - 1.375rem);
420
+ transition: color .2s,background-color .2s,border-color .2s;
421
+ width: 2.75rem;
422
+
423
+ &::before {
424
+ content: "";
425
+ position: absolute;
426
+ display: block;
427
+ width: core.$space-m;
428
+ height: core.$space-m;
429
+ top: core.$space-s;
430
+ left: core.$space-s;
431
+ background-size: 100%;
432
+ background-image: url(icon-constants.get-icon("standard--search", core.$uq-purple));
433
+ }
434
+ }
435
+
436
+ &__search-query-submit {
437
+ color: transparent;
438
+ position: relative;
439
+ display: block;
440
+ width: 100%;
441
+ height: 100%;
442
+ margin: core.$space-none;
443
+ border: core.$space-none;
444
+ background-color: transparent;
445
+ z-index: 3;
446
+ cursor: pointer;
447
+ outline-offset: -2px;
448
+ font-size: core.$font-size;
449
+ }
450
+
451
+ &__search-range {
452
+
453
+ display: inline-block;
454
+
455
+ & label {
456
+ color: core.$uq-white;
457
+ }
458
+ }
459
+
460
+ .uq-header__search-radio {
461
+ &:checked {
462
+ border-color: core.$uq-white;
463
+
464
+ &:focus {
465
+ border-color: core.$uq-white;
466
+ }
467
+
468
+ &::after {
469
+ background-color: core.$uq-white;
470
+ }
471
+ }
472
+ }
473
+
474
+ &__search-label {
475
+ font-size: .8rem !important;
476
+ line-height: 1.7 !important;
477
+
478
+ @media #{core.$screen-lg-up} {
479
+ font-size: core.$font-size !important;
480
+ line-height: 1.4 !important;
481
+ }
482
+ }
483
+
484
+ &__nav-primary,
485
+ &__nav-secondary {
486
+ @media #{core.$screen-lg-down} {
487
+ display: none;
488
+ }
489
+ }
490
+
491
+ &__megamenu {
492
+ position: absolute;
493
+ top: 8.3rem;
494
+ left: 0;
495
+ width: 100%;
496
+ z-index: 30;
497
+ height: 0;
498
+ visibility: hidden;
499
+ }
500
+
501
+ &__megamenu-container {
502
+ max-width: 73.25rem;
503
+ margin-left: auto;
504
+ margin-right: auto;
505
+
506
+ padding: core.$space core.$space-xxl core.$space-xl core.$space-xxl;
507
+ background: core.$uq-white;
508
+ box-shadow: 0 0.75rem core.$space-m rgb(24 24 24 / 20%);
509
+ border-radius: 0 0 .25rem .25rem;
510
+
511
+ @media #{core.$screen-xl-up} {
512
+ max-width: 77.25rem;
513
+ }
514
+ }
515
+
516
+ .megamenu__row {
517
+ display: grid;
518
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
519
+ }
520
+
521
+ .megamenu__overview-link {
522
+ display: block;
523
+ padding: core.$space core.$space-none;
524
+ color: core.$uq-purple;
525
+ }
526
+
527
+ .megamenu__heading {
528
+ color: core.$uq-purple;
529
+ font-weight: 500;
530
+ padding-top: core.$space-xs;
531
+ padding-bottom: core.$space-xs;
532
+
533
+ &:nth-of-type(2) {
534
+ padding-top: core.$space-xl;
535
+ }
536
+ }
537
+
538
+ .megamenu__menu {
539
+ & ul {
540
+ list-style-type: none;
541
+ margin: core.$space-none;
542
+ padding-left: core.$space-none;
543
+
544
+ & li {
545
+ margin: core.$space-none;
546
+
547
+ & a {
548
+ display: inline-block;
549
+ padding-top: core.$space-s;
550
+ color: core.$uq-purple;
551
+ }
552
+ }
553
+ }
554
+ }
555
+ }
556
+
557
+ :root {
558
+ --app-height: 100%;
559
+ }
560
+
561
+ body.no-scroll {
562
+ position: fixed;
563
+ @media #{core.$screen-lg-up} {
564
+ position: relative;
565
+ }
566
+ }
567
+
568
+ // Slide mobile menu
569
+
570
+ .slide-menu {
571
+ width:100%;
572
+ max-width:100%;
573
+ background-color:#FFFFFF;
574
+ height: calc(var(--app-height) - 4.3rem);
575
+ display:none;
576
+ box-sizing:border-box;
577
+ transition:transform .3s ease-in-out;
578
+ transform:translateX(100%);
579
+ will-change:transform;
580
+ z-index:1000;
581
+ grid-area: mainnav-mobile;
582
+ position:fixed;
583
+ top: 4.3rem;
584
+ right:core.$space-none;
585
+ overflow-y:auto;
586
+ overflow-x:hidden;
587
+ font-size: core.$font-size;
588
+ color:core.$uq-purple;
589
+
590
+ @media #{core.$screen-lg-up} {
591
+ display: none !important;
592
+ }
593
+
594
+ .slide-menu__slider {
595
+ width:100%;
596
+ transform:translateX(0);
597
+ transition:transform .3s ease-in-out;
598
+ will-change:transform;
599
+ }
600
+
601
+ ul {
602
+ position:relative;
603
+ width:100%;
604
+ margin:core.$space-none;
605
+ padding-left:core.$space-none;
606
+ list-style:none;
607
+ background-color: core.$uq-white;
608
+
609
+ ul {
610
+ position:absolute;
611
+ top:core.$space-none;
612
+ left:100%;
613
+ display:none;
614
+
615
+ a {
616
+ padding: .75rem core.$space-m .75rem core.$space-xxl;
617
+ }
618
+ }
619
+
620
+ a {
621
+ display:block;
622
+ }
623
+ }
624
+
625
+ li {
626
+ margin-bottom: core.$space-none;
627
+
628
+ &:hover {
629
+ background-color:#f1f1f1;
630
+ }
631
+
632
+ }
633
+
634
+ .slide-menu__control {
635
+ padding-top: 1rem;
636
+ padding-bottom: 1rem;
637
+ }
638
+
639
+ a {
640
+ cursor:pointer;
641
+ padding: .75rem core.$space-m;
642
+ text-decoration:none;
643
+ font-size: core.$font-size;
644
+ color:core.$uq-purple;
645
+ position: relative;
646
+
647
+ &:hover {
648
+ color:core.$uq-purple;
649
+ background-color:#f1f1f1;
650
+ }
651
+ }
652
+
653
+ & .slide-menu__backlink {
654
+ font-weight: 500;
655
+ padding-left: core.$space-xxl;
656
+
657
+ &::before {
658
+ content: "";
659
+ background-image: url(icon-constants.get-icon("standard--chevron-left-sml", core.$uq-purple));
660
+ background-repeat: no-repeat;
661
+ width: 1.5rem;
662
+ height: 1.5rem;
663
+ transform: translateY(50%);
664
+ position: absolute;
665
+ left: 1.25rem;
666
+ top: core.$space-xs;
667
+ }
668
+ }
669
+
670
+ &__decorator {
671
+
672
+ &::before {
673
+ content: "";
674
+ background-image: url(icon-constants.get-icon("standard--chevron-right-sml", core.$uq-purple));
675
+ background-repeat: no-repeat;
676
+ width: 1.5rem;
677
+ height: 1.5rem;
678
+ transform: translateY(50%);
679
+ position: absolute;
680
+ right: 1.5rem;
681
+ top: core.$space-xs;
682
+ }
683
+ }
684
+
685
+ /* Controls */
686
+ .controls {
687
+ display:flex;
688
+ margin-bottom:core.$space;
689
+ }
690
+
691
+ .btn {
692
+ padding:.75rem core.$space-m;
693
+ flex:1 0 auto;
694
+ font-size:90%;
695
+ color:core.$uq-purple;
696
+ background-color:core.$uq-white;
697
+ text-transform:uppercase;
698
+
699
+ border:none;
700
+ cursor:pointer;
701
+ font-family:inherit;
702
+ line-height:1;
703
+
704
+ &:first-of-type {
705
+ text-align:left;
706
+
707
+ &:before {
708
+ content:"⮜ this";
709
+ margin-right:.5rem;
710
+ }
711
+ }
712
+
713
+ &:last-of-type {
714
+ text-align:right;
715
+
716
+ &:before {content:"✕";
717
+ margin-right:.5rem;
718
+ }
719
+ }
720
+ }
721
+
722
+ .uq-header__nav-secondary-item {
723
+ background-color:#48206C;
724
+
725
+ &:hover {
726
+ background-color:#48206C;
727
+ }
728
+ }
729
+
730
+ .uq-header__nav-secondary-link {
731
+ color:core.$uq-white;
732
+
733
+ &:hover {
734
+ color:core.$uq-white;
735
+ background-color:#48206C;
736
+ }
737
+ }
738
+
739
+ .uq-header__newglobal-nav-parent {
740
+ font-weight: 500;
741
+ }
742
+
743
+ .uq-header__newglobal-nav-item {
744
+ background-color:core.$uq-purple;
745
+ }
746
+
747
+ .uq-header__newglobal-nav-link {
748
+ color:core.$uq-white;
749
+ background-color:core.$uq-purple;
750
+
751
+ &:hover {
752
+ color:core.$uq-white;
753
+ background-color:core.$uq-purple;
754
+ }
755
+ }
756
+
757
+ .uq-header__newglobal-nav-link .slide-menu__decorator::before {
758
+ content: "";
759
+ background-image: url(icon-constants.get-icon("standard--chevron-right-sml", core.$uq-white));
760
+ }
761
+ }
762
+
763
+ /* LOCAL SITE NAVIGATION MODIFIERS */
764
+
765
+ .global-mobile-nav {
766
+
767
+ .uq-site-header__title-container {
768
+ margin: 0;
769
+ padding-left: 0rem;
770
+ padding-right: 0rem;
771
+ }
772
+
773
+ .uq-site-header__title {
774
+ padding: 1rem 1.5rem;
775
+ font-size: 1rem;
776
+ font-weight: 500;
777
+
778
+ &:hover {
779
+ background: none;
780
+ }
781
+ }
782
+
783
+ &__audience-link {
784
+ font-weight: 500;
785
+ }
786
+
787
+ }
788
+
789
+ .uq-site-header__navigation-toggle {
790
+ display: none;
791
+ }