weg-shared-layout 0.0.38 → 0.0.40

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 (30) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/weg-footer_2.cjs.entry.js +9 -10
  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 -263
  8. package/dist/collection/components/weg-footer/weg-footer.js +2 -2
  9. package/dist/collection/components/weg-header/weg-header.css +483 -483
  10. package/dist/collection/components/weg-header/weg-header.js +9 -10
  11. package/dist/collection/styles/shared.css +103 -103
  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 +9 -10
  15. package/dist/weg-shared-layout/p-6f83b24a.entry.js +1 -0
  16. package/dist/weg-shared-layout/weg-shared-layout.esm.js +1 -1
  17. package/docs/README.md +49 -49
  18. package/docs/angular.md +400 -402
  19. package/docs/nextjs.md +302 -315
  20. package/docs/publishing.md +65 -65
  21. package/docs/react.md +257 -272
  22. package/docs/vanilla.md +124 -140
  23. package/package.json +81 -81
  24. package/readme.md +97 -96
  25. package/src/assets/dummy-data.json +1 -2
  26. package/src/constants/breakpoints.ts +7 -7
  27. package/src/styles/container.css +60 -60
  28. package/dist/weg-shared-layout/p-18d9facc.entry.js +0 -1
  29. /package/dist/types/Users/{rakin/Documents/WEG/repos → tan/Documents/code}/weg-shared-layout/.stencil/test-utils/axe.d.ts +0 -0
  30. /package/dist/types/Users/{rakin/Documents/WEG/repos → tan/Documents/code}/weg-shared-layout/.stencil/test-utils/viewport.d.ts +0 -0
@@ -1,483 +1,483 @@
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
- padding-block: 0.75rem;
118
- padding-inline: var(--weg-container-padding-inline);
119
- }
120
-
121
- @media (width >= 960px) {
122
- .header-inner {
123
- flex-wrap: nowrap;
124
- gap: 1.5rem;
125
- padding-block: 1.25rem;
126
- }
127
- }
128
-
129
- @media (width >= 1440px) {
130
- .header-inner {
131
- padding-block: 1.75rem;
132
- }
133
- }
134
-
135
- .header-inner .logo-link {
136
- flex: 1 1 auto;
137
- min-width: 0;
138
- justify-content: center;
139
- }
140
-
141
- @media (width >= 960px) {
142
- .header-inner .logo-link {
143
- flex: 0 0 auto;
144
- justify-content: flex-start;
145
- }
146
- }
147
-
148
- .header-inner .logo {
149
- max-width: 100%;
150
- }
151
-
152
- .header-actions {
153
- display: flex;
154
- align-items: center;
155
- flex-shrink: 0;
156
- }
157
-
158
- @media (width >= 960px) {
159
- .header-actions {
160
- display: none;
161
- }
162
- }
163
-
164
- .main-nav-panel {
165
- display: none;
166
- margin-inline: -0.5rem;
167
- }
168
-
169
- @media (width >= 960px) {
170
- .main-nav-panel {
171
- display: flex;
172
- flex: 1 1 auto;
173
- width: auto;
174
- min-width: 0;
175
- justify-content: flex-end;
176
- overflow: visible;
177
- border-top: none;
178
- }
179
- }
180
-
181
- .main-nav {
182
- padding: 0 1rem 1.5rem;
183
- }
184
-
185
- @media (width >= 960px) {
186
- .main-nav {
187
- display: flex;
188
- align-items: center;
189
- justify-content: flex-end;
190
- flex-wrap: wrap;
191
- gap: 1rem;
192
- padding: 0;
193
- }
194
- }
195
-
196
- .main-nav__list {
197
- list-style: none;
198
- margin: 0;
199
- padding: 0;
200
- }
201
-
202
- @media (width >= 960px) {
203
- .main-nav__list {
204
- display: flex;
205
- align-items: center;
206
- flex-wrap: wrap;
207
- gap: 0.5rem;
208
- }
209
- }
210
-
211
- @media (width >= 1280px) {
212
- .main-nav__list {
213
- gap: 1.5rem;
214
- }
215
- }
216
-
217
- .main-nav__item {
218
- border-bottom: 1px solid #d8d4f7;
219
- }
220
-
221
- @media (width >= 960px) {
222
- .main-nav__item {
223
- border-bottom: none;
224
- }
225
- }
226
-
227
- .main-nav__item--dropdown {
228
- position: static;
229
- }
230
-
231
- .nav-dropdown {
232
- position: relative;
233
- }
234
-
235
- .nav-link {
236
- display: block;
237
- width: 100%;
238
- padding: 1rem 0;
239
- font-weight: 600;
240
- color: inherit;
241
- text-decoration: none;
242
- outline: none;
243
- }
244
-
245
- .nav-link:hover {
246
- opacity: 0.85;
247
- }
248
-
249
- .nav-link:focus-visible {
250
- outline: 2px solid var(--weg-color-accent);
251
- outline-offset: 2px;
252
- border-radius: 4px;
253
- }
254
-
255
- .nav-dropdown__trigger {
256
- display: flex;
257
- align-items: center;
258
- justify-content: space-between;
259
- gap: 0.75rem;
260
- width: 100%;
261
- padding: 1rem 0;
262
- border: none;
263
- background: transparent;
264
- font: inherit;
265
- font-weight: 600;
266
- color: inherit;
267
- text-align: left;
268
- cursor: pointer;
269
- outline: none;
270
- }
271
-
272
- .nav-dropdown__trigger:hover {
273
- opacity: 0.85;
274
- }
275
-
276
- .nav-dropdown__trigger:focus-visible {
277
- outline: 2px solid var(--weg-color-accent);
278
- outline-offset: 2px;
279
- border-radius: 4px;
280
- }
281
-
282
- .nav-dropdown__trigger--open {
283
- background: transparent;
284
- }
285
-
286
- .toggle-icon {
287
- display: inline-flex;
288
- align-items: center;
289
- justify-content: center;
290
- width: 1.5rem;
291
- height: 1.5rem;
292
- border-radius: 999rem;
293
- background: #312e81;
294
- color: #ffffff;
295
- flex-shrink: 0;
296
- }
297
-
298
- .nav-dropdown__panel {
299
- padding: 0 0 0.75rem;
300
- }
301
-
302
- @media (width >= 960px) {
303
- .nav-dropdown__panel {
304
- position: absolute;
305
- top: calc(100% + 0.5rem);
306
- left: 0;
307
- z-index: 500;
308
- min-width: 17.5rem;
309
- padding: 0.75rem 0 0.75rem 0.75rem;
310
- border: 1px solid #e2e8f0;
311
- border-radius: 0.5rem;
312
- background: #f8fafc;
313
- box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
314
- }
315
-
316
- .nav-dropdown__panel::before {
317
- content: '';
318
- position: absolute;
319
- top: -0.5rem;
320
- left: 0;
321
- right: 0;
322
- height: 0.5rem;
323
- }
324
- }
325
-
326
- .nav-dropdown__accent {
327
- border-left: 0.25rem solid var(--weg-color-accent);
328
- padding-left: 0.75rem;
329
- }
330
-
331
- .nav-dropdown__links {
332
- display: flex;
333
- flex-direction: column;
334
- gap: 0.25rem;
335
- }
336
-
337
- .nav-dropdown__link {
338
- display: block;
339
- padding: 0.625rem 0;
340
- font-weight: 400;
341
- color: inherit;
342
- text-decoration: none;
343
- outline: none;
344
- }
345
-
346
- .nav-dropdown__link:hover {
347
- opacity: 0.85;
348
- }
349
-
350
- .nav-dropdown__link:focus-visible {
351
- outline: 0.125rem solid var(--weg-color-accent);
352
- outline-offset: 0.125rem;
353
- border-radius: 0.25rem;
354
- }
355
-
356
- @media (width >= 960px) {
357
- .nav-dropdown__link {
358
- padding: 0.5rem;
359
- margin-right: 0.75rem;
360
- border-radius: 0.5rem;
361
- font-weight: 600;
362
- }
363
-
364
- .nav-dropdown__link:hover,
365
- .nav-dropdown__link:focus-visible {
366
- background: #cdcff8;
367
- opacity: 1;
368
- }
369
- }
370
-
371
- @media (width >= 1280px) {
372
- .nav-dropdown__link {
373
- padding: 0.5rem 0.75rem;
374
- }
375
- }
376
-
377
- .main-nav__item--auth > a {
378
- display: flex;
379
- align-items: center;
380
- gap: 0.5rem;
381
- width: 100%;
382
- padding: 1rem 0;
383
- }
384
-
385
- @media (width >= 960px) {
386
- .nav-link,
387
- .nav-dropdown__trigger,
388
- .main-nav__item--auth > a {
389
- display: inline-flex;
390
- align-items: center;
391
- width: auto;
392
- padding: 0.5rem;
393
- border-radius: 0.5rem;
394
- }
395
-
396
- .nav-dropdown__trigger {
397
- gap: 0.5rem;
398
- cursor: pointer;
399
- }
400
-
401
- .nav-dropdown__trigger--open {
402
- background: #f1f5f9;
403
- }
404
- }
405
-
406
- @media (width >= 1280px) {
407
- .main-nav {
408
- font-size: 1.25rem;
409
- }
410
-
411
- .main-nav__item--auth > a {
412
- padding: 0.5rem 0.75rem;
413
- }
414
- }
415
-
416
- .sign-in-link,
417
- .sign-out-link,
418
- .auth-button {
419
- display: inline-flex;
420
- align-items: center;
421
- gap: 0.5rem;
422
- font-weight: 600;
423
- color: inherit;
424
- text-decoration: none;
425
- outline: none;
426
- }
427
-
428
- .auth-button {
429
- padding: 0;
430
- border: none;
431
- background: transparent;
432
- font: inherit;
433
- cursor: pointer;
434
- }
435
-
436
- .sign-in-link:hover,
437
- .sign-out-link:hover,
438
- .auth-button:hover {
439
- opacity: 0.85;
440
- }
441
-
442
- .sign-in-link:focus-visible,
443
- .sign-out-link:focus-visible,
444
- .auth-button:focus-visible {
445
- outline: 2px solid var(--weg-color-accent);
446
- outline-offset: 4px;
447
- border-radius: 4px;
448
- }
449
-
450
- .icon-button {
451
- display: inline-flex;
452
- align-items: center;
453
- justify-content: center;
454
- width: 2.5rem;
455
- height: 2.5rem;
456
- padding: 0;
457
- border: none;
458
- border-radius: 0.5rem;
459
- background: transparent;
460
- color: inherit;
461
- cursor: pointer;
462
- text-decoration: none;
463
- outline: none;
464
- }
465
-
466
- .icon-button:hover {
467
- background: #f1f5f9;
468
- }
469
-
470
- .icon-button:focus-visible {
471
- outline: 2px solid var(--weg-color-accent);
472
- outline-offset: 2px;
473
- }
474
-
475
- .menu-toggle {
476
- flex-shrink: 0;
477
- }
478
-
479
- @media (width >= 960px) {
480
- .menu-toggle {
481
- display: none;
482
- }
483
- }
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
+ padding-block: 0.75rem;
118
+ padding-inline: var(--weg-container-padding-inline);
119
+ }
120
+
121
+ @media (width >= 960px) {
122
+ .header-inner {
123
+ flex-wrap: nowrap;
124
+ gap: 1.5rem;
125
+ padding-block: 1.25rem;
126
+ }
127
+ }
128
+
129
+ @media (width >= 1440px) {
130
+ .header-inner {
131
+ padding-block: 1.75rem;
132
+ }
133
+ }
134
+
135
+ .header-inner .logo-link {
136
+ flex: 1 1 auto;
137
+ min-width: 0;
138
+ justify-content: center;
139
+ }
140
+
141
+ @media (width >= 960px) {
142
+ .header-inner .logo-link {
143
+ flex: 0 0 auto;
144
+ justify-content: flex-start;
145
+ }
146
+ }
147
+
148
+ .header-inner .logo {
149
+ max-width: 100%;
150
+ }
151
+
152
+ .header-actions {
153
+ display: flex;
154
+ align-items: center;
155
+ flex-shrink: 0;
156
+ }
157
+
158
+ @media (width >= 960px) {
159
+ .header-actions {
160
+ display: none;
161
+ }
162
+ }
163
+
164
+ .main-nav-panel {
165
+ display: none;
166
+ margin-inline: -0.5rem;
167
+ }
168
+
169
+ @media (width >= 960px) {
170
+ .main-nav-panel {
171
+ display: flex;
172
+ flex: 1 1 auto;
173
+ width: auto;
174
+ min-width: 0;
175
+ justify-content: flex-end;
176
+ overflow: visible;
177
+ border-top: none;
178
+ }
179
+ }
180
+
181
+ .main-nav {
182
+ padding: 0 1rem 1.5rem;
183
+ }
184
+
185
+ @media (width >= 960px) {
186
+ .main-nav {
187
+ display: flex;
188
+ align-items: center;
189
+ justify-content: flex-end;
190
+ flex-wrap: wrap;
191
+ gap: 1rem;
192
+ padding: 0;
193
+ }
194
+ }
195
+
196
+ .main-nav__list {
197
+ list-style: none;
198
+ margin: 0;
199
+ padding: 0;
200
+ }
201
+
202
+ @media (width >= 960px) {
203
+ .main-nav__list {
204
+ display: flex;
205
+ align-items: center;
206
+ flex-wrap: wrap;
207
+ gap: 0.5rem;
208
+ }
209
+ }
210
+
211
+ @media (width >= 1280px) {
212
+ .main-nav__list {
213
+ gap: 1.5rem;
214
+ }
215
+ }
216
+
217
+ .main-nav__item {
218
+ border-bottom: 1px solid #d8d4f7;
219
+ }
220
+
221
+ @media (width >= 960px) {
222
+ .main-nav__item {
223
+ border-bottom: none;
224
+ }
225
+ }
226
+
227
+ .main-nav__item--dropdown {
228
+ position: static;
229
+ }
230
+
231
+ .nav-dropdown {
232
+ position: relative;
233
+ }
234
+
235
+ .nav-link {
236
+ display: block;
237
+ width: 100%;
238
+ padding: 1rem 0;
239
+ font-weight: 600;
240
+ color: inherit;
241
+ text-decoration: none;
242
+ outline: none;
243
+ }
244
+
245
+ .nav-link:hover {
246
+ opacity: 0.85;
247
+ }
248
+
249
+ .nav-link:focus-visible {
250
+ outline: 2px solid var(--weg-color-accent);
251
+ outline-offset: 2px;
252
+ border-radius: 4px;
253
+ }
254
+
255
+ .nav-dropdown__trigger {
256
+ display: flex;
257
+ align-items: center;
258
+ justify-content: space-between;
259
+ gap: 0.75rem;
260
+ width: 100%;
261
+ padding: 1rem 0;
262
+ border: none;
263
+ background: transparent;
264
+ font: inherit;
265
+ font-weight: 600;
266
+ color: inherit;
267
+ text-align: left;
268
+ cursor: pointer;
269
+ outline: none;
270
+ }
271
+
272
+ .nav-dropdown__trigger:hover {
273
+ opacity: 0.85;
274
+ }
275
+
276
+ .nav-dropdown__trigger:focus-visible {
277
+ outline: 2px solid var(--weg-color-accent);
278
+ outline-offset: 2px;
279
+ border-radius: 4px;
280
+ }
281
+
282
+ .nav-dropdown__trigger--open {
283
+ background: transparent;
284
+ }
285
+
286
+ .toggle-icon {
287
+ display: inline-flex;
288
+ align-items: center;
289
+ justify-content: center;
290
+ width: 1.5rem;
291
+ height: 1.5rem;
292
+ border-radius: 999rem;
293
+ background: #312e81;
294
+ color: #ffffff;
295
+ flex-shrink: 0;
296
+ }
297
+
298
+ .nav-dropdown__panel {
299
+ padding: 0 0 0.75rem;
300
+ }
301
+
302
+ @media (width >= 960px) {
303
+ .nav-dropdown__panel {
304
+ position: absolute;
305
+ top: calc(100% + 0.5rem);
306
+ left: 0;
307
+ z-index: 500;
308
+ min-width: 17.5rem;
309
+ padding: 0.75rem 0 0.75rem 0.75rem;
310
+ border: 1px solid #e2e8f0;
311
+ border-radius: 0.5rem;
312
+ background: #f8fafc;
313
+ box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
314
+ }
315
+
316
+ .nav-dropdown__panel::before {
317
+ content: '';
318
+ position: absolute;
319
+ top: -0.5rem;
320
+ left: 0;
321
+ right: 0;
322
+ height: 0.5rem;
323
+ }
324
+ }
325
+
326
+ .nav-dropdown__accent {
327
+ border-left: 0.25rem solid var(--weg-color-accent);
328
+ padding-left: 0.75rem;
329
+ }
330
+
331
+ .nav-dropdown__links {
332
+ display: flex;
333
+ flex-direction: column;
334
+ gap: 0.25rem;
335
+ }
336
+
337
+ .nav-dropdown__link {
338
+ display: block;
339
+ padding: 0.625rem 0;
340
+ font-weight: 400;
341
+ color: inherit;
342
+ text-decoration: none;
343
+ outline: none;
344
+ }
345
+
346
+ .nav-dropdown__link:hover {
347
+ opacity: 0.85;
348
+ }
349
+
350
+ .nav-dropdown__link:focus-visible {
351
+ outline: 0.125rem solid var(--weg-color-accent);
352
+ outline-offset: 0.125rem;
353
+ border-radius: 0.25rem;
354
+ }
355
+
356
+ @media (width >= 960px) {
357
+ .nav-dropdown__link {
358
+ padding: 0.5rem;
359
+ margin-right: 0.75rem;
360
+ border-radius: 0.5rem;
361
+ font-weight: 600;
362
+ }
363
+
364
+ .nav-dropdown__link:hover,
365
+ .nav-dropdown__link:focus-visible {
366
+ background: #cdcff8;
367
+ opacity: 1;
368
+ }
369
+ }
370
+
371
+ @media (width >= 1280px) {
372
+ .nav-dropdown__link {
373
+ padding: 0.5rem 0.75rem;
374
+ }
375
+ }
376
+
377
+ .main-nav__item--auth > a {
378
+ display: flex;
379
+ align-items: center;
380
+ gap: 0.5rem;
381
+ width: 100%;
382
+ padding: 1rem 0;
383
+ }
384
+
385
+ @media (width >= 960px) {
386
+ .nav-link,
387
+ .nav-dropdown__trigger,
388
+ .main-nav__item--auth > a {
389
+ display: inline-flex;
390
+ align-items: center;
391
+ width: auto;
392
+ padding: 0.5rem;
393
+ border-radius: 0.5rem;
394
+ }
395
+
396
+ .nav-dropdown__trigger {
397
+ gap: 0.5rem;
398
+ cursor: pointer;
399
+ }
400
+
401
+ .nav-dropdown__trigger--open {
402
+ background: #f1f5f9;
403
+ }
404
+ }
405
+
406
+ @media (width >= 1280px) {
407
+ .main-nav {
408
+ font-size: 1.25rem;
409
+ }
410
+
411
+ .main-nav__item--auth > a {
412
+ padding: 0.5rem 0.75rem;
413
+ }
414
+ }
415
+
416
+ .sign-in-link,
417
+ .sign-out-link,
418
+ .auth-button {
419
+ display: inline-flex;
420
+ align-items: center;
421
+ gap: 0.5rem;
422
+ font-weight: 600;
423
+ color: inherit;
424
+ text-decoration: none;
425
+ outline: none;
426
+ }
427
+
428
+ .auth-button {
429
+ padding: 0;
430
+ border: none;
431
+ background: transparent;
432
+ font: inherit;
433
+ cursor: pointer;
434
+ }
435
+
436
+ .sign-in-link:hover,
437
+ .sign-out-link:hover,
438
+ .auth-button:hover {
439
+ opacity: 0.85;
440
+ }
441
+
442
+ .sign-in-link:focus-visible,
443
+ .sign-out-link:focus-visible,
444
+ .auth-button:focus-visible {
445
+ outline: 2px solid var(--weg-color-accent);
446
+ outline-offset: 4px;
447
+ border-radius: 4px;
448
+ }
449
+
450
+ .icon-button {
451
+ display: inline-flex;
452
+ align-items: center;
453
+ justify-content: center;
454
+ width: 2.5rem;
455
+ height: 2.5rem;
456
+ padding: 0;
457
+ border: none;
458
+ border-radius: 0.5rem;
459
+ background: transparent;
460
+ color: inherit;
461
+ cursor: pointer;
462
+ text-decoration: none;
463
+ outline: none;
464
+ }
465
+
466
+ .icon-button:hover {
467
+ background: #f1f5f9;
468
+ }
469
+
470
+ .icon-button:focus-visible {
471
+ outline: 2px solid var(--weg-color-accent);
472
+ outline-offset: 2px;
473
+ }
474
+
475
+ .menu-toggle {
476
+ flex-shrink: 0;
477
+ }
478
+
479
+ @media (width >= 960px) {
480
+ .menu-toggle {
481
+ display: none;
482
+ }
483
+ }