weg-shared-layout 0.0.27 → 0.0.28

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