weg-shared-layout 0.0.25 → 0.0.26

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 (29) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/weg-footer_2.cjs.entry.js +5 -5
  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 +270 -270
  8. package/dist/collection/components/weg-footer/weg-footer.js +2 -2
  9. package/dist/collection/components/weg-header/weg-header.css +474 -474
  10. package/dist/collection/components/weg-header/weg-header.js +4 -4
  11. package/dist/collection/styles/shared.css +72 -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 +5 -5
  15. package/dist/weg-shared-layout/p-e6eadfa1.entry.js +1 -0
  16. package/dist/weg-shared-layout/weg-shared-layout.esm.js +1 -1
  17. package/docs/angular-16-compatibility.md +235 -0
  18. package/docs/angular-integration-guide.md +1008 -1004
  19. package/docs/angular.md +232 -229
  20. package/docs/nextjs.md +306 -306
  21. package/docs/publishing.md +48 -48
  22. package/docs/react.md +261 -261
  23. package/docs/vanilla.md +138 -138
  24. package/package.json +5 -2
  25. package/readme.md +83 -82
  26. package/src/constants/breakpoints.ts +7 -7
  27. package/dist/weg-shared-layout/p-d74a58cf.entry.js +0 -1
  28. /package/dist/types/Users/{rakin/Documents/WEG/repos → tan/Documents/code}/weg-shared-layout/.stencil/test-utils/axe.d.ts +0 -0
  29. /package/dist/types/Users/{rakin/Documents/WEG/repos → tan/Documents/code}/weg-shared-layout/.stencil/test-utils/viewport.d.ts +0 -0
@@ -1,474 +1,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
- 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
+ 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
+ }