weg-shared-layout 0.0.27 → 0.0.29

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 (31) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/weg-footer_2.cjs.entry.js +7 -7
  3. package/dist/collection/components/weg-footer/icons/instagram.svg +5 -5
  4. package/dist/collection/components/weg-footer/icons/linkedin.svg +3 -3
  5. package/dist/collection/components/weg-footer/icons/tiktok.svg +3 -3
  6. package/dist/collection/components/weg-footer/icons/youtube.svg +4 -4
  7. package/dist/collection/components/weg-footer/weg-footer.css +263 -270
  8. package/dist/collection/components/weg-footer/weg-footer.js +2 -2
  9. package/dist/collection/components/weg-header/weg-header.css +491 -474
  10. package/dist/collection/components/weg-header/weg-header.js +4 -4
  11. package/dist/collection/styles/shared.css +96 -72
  12. package/dist/components/weg-footer.js +1 -1
  13. package/dist/components/weg-header.js +1 -1
  14. package/dist/esm/weg-footer_2.entry.js +7 -7
  15. package/dist/weg-shared-layout/p-ded6ae1c.entry.js +1 -0
  16. package/dist/weg-shared-layout/weg-shared-layout.esm.js +1 -1
  17. package/docs/README.md +51 -51
  18. package/docs/angular-16-compatibility.md +250 -250
  19. package/docs/angular-integration-guide.md +1035 -1035
  20. package/docs/angular.md +258 -258
  21. package/docs/nextjs.md +314 -314
  22. package/docs/publishing.md +65 -65
  23. package/docs/react.md +272 -272
  24. package/docs/vanilla.md +139 -139
  25. package/package.json +81 -79
  26. package/readme.md +97 -96
  27. package/src/constants/breakpoints.ts +7 -7
  28. package/src/styles/container.css +53 -0
  29. package/dist/weg-shared-layout/p-e6eadfa1.entry.js +0 -1
  30. /package/dist/types/Users/{tan/Documents/code → rakin/Documents/WEG/repos}/weg-shared-layout/.stencil/test-utils/axe.d.ts +0 -0
  31. /package/dist/types/Users/{tan/Documents/code → rakin/Documents/WEG/repos}/weg-shared-layout/.stencil/test-utils/viewport.d.ts +0 -0
@@ -1,474 +1,491 @@
1
- /**
2
- * Breakpoint tokens (mobile-first min-width).
3
- *
4
- * - `@custom-media` names: e.g. `@media (--weg-md)` applies from 960px up.
5
- * Compiled by PostCSS in stencil.config.ts.
6
- * - `--weg-breakpoint-*` variables: use in property values, e.g. `max-width: var(--weg-breakpoint-md)`.
7
- *
8
- * Import this file in component stylesheets, or rely on shared.css which already imports it.
9
- */
10
-
11
- :host {
12
- --weg-breakpoint-sm: 640px;
13
- --weg-breakpoint-md: 960px;
14
- --weg-breakpoint-lg: 1280px;
15
- --weg-breakpoint-xl: 1440px;
16
- }
17
-
18
-
19
- .header {
20
- width: 100%;
21
- border-bottom: 2px solid var(--weg-color-accent);
22
- background: #ffffff;
23
- color: #0f172a;
24
- font-family: var(--weg-font-family);
25
- }
26
-
27
- @media (width >= 960px) {
28
- .header {
29
- border-bottom-width: 0.25rem;
30
- }
31
- }
32
-
33
- :host {
34
- position: relative;
35
- z-index: 20;
36
- }
37
-
38
- .header--menu-open {
39
- position: fixed;
40
- inset: 0;
41
- z-index: 1000;
42
- display: flex;
43
- flex-direction: column;
44
- overflow: hidden;
45
- }
46
-
47
- .header--menu-open .header-inner {
48
- flex: 1 1 auto;
49
- flex-wrap: wrap;
50
- align-content: flex-start;
51
- min-height: 0;
52
- }
53
-
54
- .header--menu-open .main-nav-panel {
55
- display: block;
56
- flex: 1 1 100%;
57
- width: 100%;
58
- min-height: 0;
59
- overflow-y: auto;
60
- border-top: 1px solid #d8d4f7;
61
- }
62
-
63
- @media (width >= 960px) {
64
- .header--menu-open {
65
- position: static;
66
- inset: auto;
67
- z-index: auto;
68
- display: block;
69
- overflow: visible;
70
- }
71
-
72
- .header--menu-open .header-inner {
73
- flex: unset;
74
- flex-wrap: nowrap;
75
- align-content: unset;
76
- min-height: unset;
77
- }
78
- }
79
-
80
- .logo-link {
81
- display: inline-flex;
82
- align-items: center;
83
- text-decoration: none;
84
- outline: none;
85
- }
86
-
87
- .logo-link:focus-visible {
88
- outline: 2px solid var(--weg-color-accent);
89
- outline-offset: 4px;
90
- border-radius: 4px;
91
- }
92
-
93
- .logo {
94
- height: 2.5rem;
95
- width: auto;
96
- }
97
-
98
- @media (width >= 960px) {
99
- .logo {
100
- height: 3rem;
101
- }
102
- }
103
-
104
- @media (width >= 1280px) {
105
- .logo {
106
- height: 5rem;
107
- }
108
- }
109
-
110
- .header-inner {
111
- display: flex;
112
- width: 100%;
113
- min-width: 0;
114
- align-items: center;
115
- justify-content: space-between;
116
- gap: 0.75rem;
117
- }
118
-
119
- @media (width >= 960px) {
120
- .header-inner {
121
- flex-wrap: nowrap;
122
- gap: 1.5rem;
123
- }
124
- }
125
-
126
- .header-inner .logo-link {
127
- flex: 1 1 auto;
128
- min-width: 0;
129
- justify-content: center;
130
- }
131
-
132
- @media (width >= 960px) {
133
- .header-inner .logo-link {
134
- flex: 0 0 auto;
135
- justify-content: flex-start;
136
- }
137
- }
138
-
139
- .header-inner .logo {
140
- max-width: 100%;
141
- }
142
-
143
- .header-actions {
144
- display: flex;
145
- align-items: center;
146
- flex-shrink: 0;
147
- }
148
-
149
- @media (width >= 960px) {
150
- .header-actions {
151
- display: none;
152
- }
153
- }
154
-
155
- .main-nav-panel {
156
- display: none;
157
- margin-inline: -0.5rem;
158
- }
159
-
160
- @media (width >= 960px) {
161
- .main-nav-panel {
162
- display: flex;
163
- flex: 1 1 auto;
164
- width: auto;
165
- min-width: 0;
166
- justify-content: flex-end;
167
- overflow: visible;
168
- border-top: none;
169
- }
170
- }
171
-
172
- .main-nav {
173
- padding: 0 1rem 1.5rem;
174
- }
175
-
176
- @media (width >= 960px) {
177
- .main-nav {
178
- display: flex;
179
- align-items: center;
180
- justify-content: flex-end;
181
- flex-wrap: wrap;
182
- gap: 1rem;
183
- padding: 0;
184
- }
185
- }
186
-
187
- .main-nav__list {
188
- list-style: none;
189
- margin: 0;
190
- padding: 0;
191
- }
192
-
193
- @media (width >= 960px) {
194
- .main-nav__list {
195
- display: flex;
196
- align-items: center;
197
- flex-wrap: wrap;
198
- gap: 1rem;
199
- }
200
- }
201
-
202
- @media (width >= 1280px) {
203
- .main-nav__list {
204
- gap: 2rem;
205
- }
206
- }
207
-
208
- .main-nav__item {
209
- border-bottom: 1px solid #d8d4f7;
210
- }
211
-
212
- @media (width >= 960px) {
213
- .main-nav__item {
214
- border-bottom: none;
215
- }
216
- }
217
-
218
- .main-nav__item--dropdown {
219
- position: static;
220
- }
221
-
222
- .nav-dropdown {
223
- position: relative;
224
- }
225
-
226
- .nav-link {
227
- display: block;
228
- width: 100%;
229
- padding: 1rem 0;
230
- font-weight: 600;
231
- color: inherit;
232
- text-decoration: none;
233
- outline: none;
234
- }
235
-
236
- .nav-link:hover {
237
- opacity: 0.85;
238
- }
239
-
240
- .nav-link:focus-visible {
241
- outline: 2px solid var(--weg-color-accent);
242
- outline-offset: 2px;
243
- border-radius: 4px;
244
- }
245
-
246
- .nav-dropdown__trigger {
247
- display: flex;
248
- align-items: center;
249
- justify-content: space-between;
250
- gap: 0.75rem;
251
- width: 100%;
252
- padding: 1rem 0;
253
- border: none;
254
- background: transparent;
255
- font: inherit;
256
- font-weight: 600;
257
- color: inherit;
258
- text-align: left;
259
- cursor: pointer;
260
- outline: none;
261
- }
262
-
263
- .nav-dropdown__trigger:hover {
264
- opacity: 0.85;
265
- }
266
-
267
- .nav-dropdown__trigger:focus-visible {
268
- outline: 2px solid var(--weg-color-accent);
269
- outline-offset: 2px;
270
- border-radius: 4px;
271
- }
272
-
273
- .nav-dropdown__trigger--open {
274
- background: transparent;
275
- }
276
-
277
- .toggle-icon {
278
- display: inline-flex;
279
- align-items: center;
280
- justify-content: center;
281
- width: 1.5rem;
282
- height: 1.5rem;
283
- border-radius: 999rem;
284
- background: #312e81;
285
- color: #ffffff;
286
- flex-shrink: 0;
287
- }
288
-
289
- .nav-dropdown__panel {
290
- padding: 0 0 0.75rem;
291
- }
292
-
293
- @media (width >= 960px) {
294
- .nav-dropdown__panel {
295
- position: absolute;
296
- top: calc(100% + 0.5rem);
297
- left: 0;
298
- z-index: 500;
299
- min-width: 17.5rem;
300
- padding: 0.75rem 0 0.75rem 0.75rem;
301
- border: 1px solid #e2e8f0;
302
- border-radius: 0.5rem;
303
- background: #f8fafc;
304
- box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
305
- }
306
-
307
- .nav-dropdown__panel::before {
308
- content: '';
309
- position: absolute;
310
- top: -0.5rem;
311
- left: 0;
312
- right: 0;
313
- height: 0.5rem;
314
- }
315
- }
316
-
317
- .nav-dropdown__accent {
318
- border-left: 0.25rem solid var(--weg-color-accent);
319
- padding-left: 0.75rem;
320
- }
321
-
322
- .nav-dropdown__links {
323
- display: flex;
324
- flex-direction: column;
325
- gap: 0.25rem;
326
- }
327
-
328
- .nav-dropdown__link {
329
- display: block;
330
- padding: 0.625rem 0;
331
- font-weight: 400;
332
- color: inherit;
333
- text-decoration: none;
334
- outline: none;
335
- }
336
-
337
- .nav-dropdown__link:hover {
338
- opacity: 0.85;
339
- }
340
-
341
- .nav-dropdown__link:focus-visible {
342
- outline: 0.125rem solid var(--weg-color-accent);
343
- outline-offset: 0.125rem;
344
- border-radius: 0.25rem;
345
- }
346
-
347
- @media (width >= 960px) {
348
- .nav-dropdown__link {
349
- padding: 0.5rem;
350
- margin-right: 0.75rem;
351
- border-radius: 0.5rem;
352
- font-weight: 600;
353
- }
354
-
355
- .nav-dropdown__link:hover,
356
- .nav-dropdown__link:focus-visible {
357
- background: #cdcff8;
358
- opacity: 1;
359
- }
360
- }
361
-
362
- @media (width >= 1280px) {
363
- .nav-dropdown__link {
364
- padding: 0.5rem 0.75rem;
365
- }
366
- }
367
-
368
- .main-nav__item--auth > a {
369
- display: flex;
370
- align-items: center;
371
- gap: 0.5rem;
372
- width: 100%;
373
- padding: 1rem 0;
374
- }
375
-
376
- @media (width >= 960px) {
377
- .nav-link,
378
- .nav-dropdown__trigger,
379
- .main-nav__item--auth > a {
380
- display: inline-flex;
381
- align-items: center;
382
- width: auto;
383
- padding: 0.5rem;
384
- border-radius: 0.5rem;
385
- }
386
-
387
- .nav-dropdown__trigger {
388
- gap: 0.5rem;
389
- cursor: pointer;
390
- }
391
-
392
- .nav-dropdown__trigger--open {
393
- background: #f1f5f9;
394
- }
395
- }
396
-
397
- @media (width >= 1280px) {
398
- .main-nav {
399
- font-size: 1.25rem;
400
- }
401
-
402
- .main-nav__item--auth > a {
403
- padding: 0.5rem 0.75rem;
404
- }
405
- }
406
-
407
- .sign-in-link,
408
- .sign-out-link,
409
- .auth-button {
410
- display: inline-flex;
411
- align-items: center;
412
- gap: 0.5rem;
413
- font-weight: 600;
414
- color: inherit;
415
- text-decoration: none;
416
- outline: none;
417
- }
418
-
419
- .auth-button {
420
- padding: 0;
421
- border: none;
422
- background: transparent;
423
- font: inherit;
424
- cursor: pointer;
425
- }
426
-
427
- .sign-in-link:hover,
428
- .sign-out-link:hover,
429
- .auth-button:hover {
430
- opacity: 0.85;
431
- }
432
-
433
- .sign-in-link:focus-visible,
434
- .sign-out-link:focus-visible,
435
- .auth-button:focus-visible {
436
- outline: 2px solid var(--weg-color-accent);
437
- outline-offset: 4px;
438
- border-radius: 4px;
439
- }
440
-
441
- .icon-button {
442
- display: inline-flex;
443
- align-items: center;
444
- justify-content: center;
445
- width: 2.5rem;
446
- height: 2.5rem;
447
- padding: 0;
448
- border: none;
449
- border-radius: 0.5rem;
450
- background: transparent;
451
- color: inherit;
452
- cursor: pointer;
453
- text-decoration: none;
454
- outline: none;
455
- }
456
-
457
- .icon-button:hover {
458
- background: #f1f5f9;
459
- }
460
-
461
- .icon-button:focus-visible {
462
- outline: 2px solid var(--weg-color-accent);
463
- outline-offset: 2px;
464
- }
465
-
466
- .menu-toggle {
467
- flex-shrink: 0;
468
- }
469
-
470
- @media (width >= 960px) {
471
- .menu-toggle {
472
- display: none;
473
- }
474
- }
1
+ /**
2
+ * Breakpoint tokens (mobile-first min-width).
3
+ *
4
+ * - `@custom-media` names: e.g. `@media (--weg-md)` applies from 960px up.
5
+ * Compiled by PostCSS in stencil.config.ts.
6
+ * - `--weg-breakpoint-*` variables: use in property values, e.g. `max-width: var(--weg-breakpoint-md)`.
7
+ *
8
+ * Import this file in component stylesheets, or rely on shared.css which already imports it.
9
+ */
10
+
11
+ :host {
12
+ --weg-breakpoint-sm: 640px;
13
+ --weg-breakpoint-md: 960px;
14
+ --weg-breakpoint-lg: 1280px;
15
+ --weg-breakpoint-xl: 1440px;
16
+ }
17
+
18
+
19
+ .header {
20
+ width: 100%;
21
+ border-bottom: 2px solid var(--weg-color-accent);
22
+ background: #ffffff;
23
+ color: #0f172a;
24
+ font-family: var(--weg-font-family);
25
+ }
26
+
27
+ @media (width >= 960px) {
28
+ .header {
29
+ border-bottom-width: 0.25rem;
30
+ }
31
+ }
32
+
33
+ :host {
34
+ position: relative;
35
+ z-index: 20;
36
+ }
37
+
38
+ .header--menu-open {
39
+ position: fixed;
40
+ inset: 0;
41
+ z-index: 1000;
42
+ display: flex;
43
+ flex-direction: column;
44
+ overflow: hidden;
45
+ }
46
+
47
+ .header--menu-open .header-inner {
48
+ flex: 1 1 auto;
49
+ flex-wrap: wrap;
50
+ align-content: flex-start;
51
+ min-height: 0;
52
+ }
53
+
54
+ .header--menu-open .main-nav-panel {
55
+ display: block;
56
+ flex: 1 1 100%;
57
+ width: 100%;
58
+ min-height: 0;
59
+ overflow-y: auto;
60
+ border-top: 1px solid #d8d4f7;
61
+ }
62
+
63
+ @media (width >= 960px) {
64
+ .header--menu-open {
65
+ position: static;
66
+ inset: auto;
67
+ z-index: auto;
68
+ display: block;
69
+ overflow: visible;
70
+ }
71
+
72
+ .header--menu-open .header-inner {
73
+ flex: unset;
74
+ flex-wrap: nowrap;
75
+ align-content: unset;
76
+ min-height: unset;
77
+ }
78
+ }
79
+
80
+ .logo-link {
81
+ display: inline-flex;
82
+ align-items: center;
83
+ text-decoration: none;
84
+ outline: none;
85
+ }
86
+
87
+ .logo-link:focus-visible {
88
+ outline: 2px solid var(--weg-color-accent);
89
+ outline-offset: 4px;
90
+ border-radius: 4px;
91
+ }
92
+
93
+ .logo {
94
+ height: 2.5rem;
95
+ width: auto;
96
+ }
97
+
98
+ @media (width >= 960px) {
99
+ .logo {
100
+ height: 3rem;
101
+ }
102
+ }
103
+
104
+ @media (width >= 1280px) {
105
+ .logo {
106
+ height: 5rem;
107
+ }
108
+ }
109
+
110
+ .header-inner {
111
+ display: flex;
112
+ width: 100%;
113
+ max-width: var(--weg-container-max-vw);
114
+ min-width: 0;
115
+ margin-inline: auto;
116
+ align-items: center;
117
+ justify-content: space-between;
118
+ gap: 0.75rem;
119
+ padding-block: 0.75rem;
120
+ padding-inline: 1rem;
121
+ }
122
+
123
+ @media (width >= 48rem) {
124
+ .header-inner {
125
+ padding-inline: 2rem;
126
+ }
127
+ }
128
+
129
+ @media (width >= 960px) {
130
+ .header-inner {
131
+ flex-wrap: nowrap;
132
+ gap: 1.5rem;
133
+ padding-block: 1.25rem;
134
+ }
135
+ }
136
+
137
+ @media (width >= 1440px) {
138
+ .header-inner {
139
+ padding-block: 1.75rem;
140
+ }
141
+ }
142
+
143
+ .header-inner .logo-link {
144
+ flex: 1 1 auto;
145
+ min-width: 0;
146
+ justify-content: center;
147
+ }
148
+
149
+ @media (width >= 960px) {
150
+ .header-inner .logo-link {
151
+ flex: 0 0 auto;
152
+ justify-content: flex-start;
153
+ }
154
+ }
155
+
156
+ .header-inner .logo {
157
+ max-width: 100%;
158
+ }
159
+
160
+ .header-actions {
161
+ display: flex;
162
+ align-items: center;
163
+ flex-shrink: 0;
164
+ }
165
+
166
+ @media (width >= 960px) {
167
+ .header-actions {
168
+ display: none;
169
+ }
170
+ }
171
+
172
+ .main-nav-panel {
173
+ display: none;
174
+ margin-inline: -0.5rem;
175
+ }
176
+
177
+ @media (width >= 960px) {
178
+ .main-nav-panel {
179
+ display: flex;
180
+ flex: 1 1 auto;
181
+ width: auto;
182
+ min-width: 0;
183
+ justify-content: flex-end;
184
+ overflow: visible;
185
+ border-top: none;
186
+ }
187
+ }
188
+
189
+ .main-nav {
190
+ padding: 0 1rem 1.5rem;
191
+ }
192
+
193
+ @media (width >= 960px) {
194
+ .main-nav {
195
+ display: flex;
196
+ align-items: center;
197
+ justify-content: flex-end;
198
+ flex-wrap: wrap;
199
+ gap: 1rem;
200
+ padding: 0;
201
+ }
202
+ }
203
+
204
+ .main-nav__list {
205
+ list-style: none;
206
+ margin: 0;
207
+ padding: 0;
208
+ }
209
+
210
+ @media (width >= 960px) {
211
+ .main-nav__list {
212
+ display: flex;
213
+ align-items: center;
214
+ flex-wrap: wrap;
215
+ gap: 1rem;
216
+ }
217
+ }
218
+
219
+ @media (width >= 1280px) {
220
+ .main-nav__list {
221
+ gap: 2rem;
222
+ }
223
+ }
224
+
225
+ .main-nav__item {
226
+ border-bottom: 1px solid #d8d4f7;
227
+ }
228
+
229
+ @media (width >= 960px) {
230
+ .main-nav__item {
231
+ border-bottom: none;
232
+ }
233
+ }
234
+
235
+ .main-nav__item--dropdown {
236
+ position: static;
237
+ }
238
+
239
+ .nav-dropdown {
240
+ position: relative;
241
+ }
242
+
243
+ .nav-link {
244
+ display: block;
245
+ width: 100%;
246
+ padding: 1rem 0;
247
+ font-weight: 600;
248
+ color: inherit;
249
+ text-decoration: none;
250
+ outline: none;
251
+ }
252
+
253
+ .nav-link:hover {
254
+ opacity: 0.85;
255
+ }
256
+
257
+ .nav-link:focus-visible {
258
+ outline: 2px solid var(--weg-color-accent);
259
+ outline-offset: 2px;
260
+ border-radius: 4px;
261
+ }
262
+
263
+ .nav-dropdown__trigger {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: space-between;
267
+ gap: 0.75rem;
268
+ width: 100%;
269
+ padding: 1rem 0;
270
+ border: none;
271
+ background: transparent;
272
+ font: inherit;
273
+ font-weight: 600;
274
+ color: inherit;
275
+ text-align: left;
276
+ cursor: pointer;
277
+ outline: none;
278
+ }
279
+
280
+ .nav-dropdown__trigger:hover {
281
+ opacity: 0.85;
282
+ }
283
+
284
+ .nav-dropdown__trigger:focus-visible {
285
+ outline: 2px solid var(--weg-color-accent);
286
+ outline-offset: 2px;
287
+ border-radius: 4px;
288
+ }
289
+
290
+ .nav-dropdown__trigger--open {
291
+ background: transparent;
292
+ }
293
+
294
+ .toggle-icon {
295
+ display: inline-flex;
296
+ align-items: center;
297
+ justify-content: center;
298
+ width: 1.5rem;
299
+ height: 1.5rem;
300
+ border-radius: 999rem;
301
+ background: #312e81;
302
+ color: #ffffff;
303
+ flex-shrink: 0;
304
+ }
305
+
306
+ .nav-dropdown__panel {
307
+ padding: 0 0 0.75rem;
308
+ }
309
+
310
+ @media (width >= 960px) {
311
+ .nav-dropdown__panel {
312
+ position: absolute;
313
+ top: calc(100% + 0.5rem);
314
+ left: 0;
315
+ z-index: 500;
316
+ min-width: 17.5rem;
317
+ padding: 0.75rem 0 0.75rem 0.75rem;
318
+ border: 1px solid #e2e8f0;
319
+ border-radius: 0.5rem;
320
+ background: #f8fafc;
321
+ box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
322
+ }
323
+
324
+ .nav-dropdown__panel::before {
325
+ content: '';
326
+ position: absolute;
327
+ top: -0.5rem;
328
+ left: 0;
329
+ right: 0;
330
+ height: 0.5rem;
331
+ }
332
+ }
333
+
334
+ .nav-dropdown__accent {
335
+ border-left: 0.25rem solid var(--weg-color-accent);
336
+ padding-left: 0.75rem;
337
+ }
338
+
339
+ .nav-dropdown__links {
340
+ display: flex;
341
+ flex-direction: column;
342
+ gap: 0.25rem;
343
+ }
344
+
345
+ .nav-dropdown__link {
346
+ display: block;
347
+ padding: 0.625rem 0;
348
+ font-weight: 400;
349
+ color: inherit;
350
+ text-decoration: none;
351
+ outline: none;
352
+ }
353
+
354
+ .nav-dropdown__link:hover {
355
+ opacity: 0.85;
356
+ }
357
+
358
+ .nav-dropdown__link:focus-visible {
359
+ outline: 0.125rem solid var(--weg-color-accent);
360
+ outline-offset: 0.125rem;
361
+ border-radius: 0.25rem;
362
+ }
363
+
364
+ @media (width >= 960px) {
365
+ .nav-dropdown__link {
366
+ padding: 0.5rem;
367
+ margin-right: 0.75rem;
368
+ border-radius: 0.5rem;
369
+ font-weight: 600;
370
+ }
371
+
372
+ .nav-dropdown__link:hover,
373
+ .nav-dropdown__link:focus-visible {
374
+ background: #cdcff8;
375
+ opacity: 1;
376
+ }
377
+ }
378
+
379
+ @media (width >= 1280px) {
380
+ .nav-dropdown__link {
381
+ padding: 0.5rem 0.75rem;
382
+ }
383
+ }
384
+
385
+ .main-nav__item--auth > a {
386
+ display: flex;
387
+ align-items: center;
388
+ gap: 0.5rem;
389
+ width: 100%;
390
+ padding: 1rem 0;
391
+ }
392
+
393
+ @media (width >= 960px) {
394
+ .nav-link,
395
+ .nav-dropdown__trigger,
396
+ .main-nav__item--auth > a {
397
+ display: inline-flex;
398
+ align-items: center;
399
+ width: auto;
400
+ padding: 0.5rem;
401
+ border-radius: 0.5rem;
402
+ }
403
+
404
+ .nav-dropdown__trigger {
405
+ gap: 0.5rem;
406
+ cursor: pointer;
407
+ }
408
+
409
+ .nav-dropdown__trigger--open {
410
+ background: #f1f5f9;
411
+ }
412
+ }
413
+
414
+ @media (width >= 1280px) {
415
+ .main-nav {
416
+ font-size: 1.25rem;
417
+ }
418
+
419
+ .main-nav__item--auth > a {
420
+ padding: 0.5rem 0.75rem;
421
+ }
422
+ }
423
+
424
+ .sign-in-link,
425
+ .sign-out-link,
426
+ .auth-button {
427
+ display: inline-flex;
428
+ align-items: center;
429
+ gap: 0.5rem;
430
+ font-weight: 600;
431
+ color: inherit;
432
+ text-decoration: none;
433
+ outline: none;
434
+ }
435
+
436
+ .auth-button {
437
+ padding: 0;
438
+ border: none;
439
+ background: transparent;
440
+ font: inherit;
441
+ cursor: pointer;
442
+ }
443
+
444
+ .sign-in-link:hover,
445
+ .sign-out-link:hover,
446
+ .auth-button:hover {
447
+ opacity: 0.85;
448
+ }
449
+
450
+ .sign-in-link:focus-visible,
451
+ .sign-out-link:focus-visible,
452
+ .auth-button:focus-visible {
453
+ outline: 2px solid var(--weg-color-accent);
454
+ outline-offset: 4px;
455
+ border-radius: 4px;
456
+ }
457
+
458
+ .icon-button {
459
+ display: inline-flex;
460
+ align-items: center;
461
+ justify-content: center;
462
+ width: 2.5rem;
463
+ height: 2.5rem;
464
+ padding: 0;
465
+ border: none;
466
+ border-radius: 0.5rem;
467
+ background: transparent;
468
+ color: inherit;
469
+ cursor: pointer;
470
+ text-decoration: none;
471
+ outline: none;
472
+ }
473
+
474
+ .icon-button:hover {
475
+ background: #f1f5f9;
476
+ }
477
+
478
+ .icon-button:focus-visible {
479
+ outline: 2px solid var(--weg-color-accent);
480
+ outline-offset: 2px;
481
+ }
482
+
483
+ .menu-toggle {
484
+ flex-shrink: 0;
485
+ }
486
+
487
+ @media (width >= 960px) {
488
+ .menu-toggle {
489
+ display: none;
490
+ }
491
+ }