@repobit/dex-system-design 0.18.1 → 0.19.1

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.
@@ -10,6 +10,11 @@ export default css`
10
10
  line-height: var(--typography-lineHeight-normal);
11
11
  }
12
12
 
13
+ .footer-secondary-nav {
14
+ padding-top: var(--spacing-12);
15
+ padding-bottom: var(--spacing-12);
16
+ }
17
+
13
18
  bd-divider-vertical {
14
19
  display: inline-block;
15
20
  width: var(--form-input-default-borderWidth);
@@ -21,6 +26,7 @@ export default css`
21
26
  display: block;
22
27
  background-color: var(--color-neutral-0);
23
28
  opacity: 0.25;
29
+ margin: var(--spacing-16) 0;
24
30
  }
25
31
 
26
32
  footer {
@@ -34,168 +40,15 @@ export default css`
34
40
  justify-content: space-between;
35
41
  align-items: center;
36
42
  background-color: var(--color-blue-500);
43
+ padding: var(--spacing-24) 0;
37
44
  }
38
45
 
39
- .footer-nav-main {
40
- display: flex;
41
- align-items: center;
42
- justify-content: flex-start;
43
- gap: var(--spacing-16);
44
- flex-wrap: wrap;
45
- padding-top: var(--spacing-24);
46
- padding-bottom: var(--spacing-24);
47
- font-size: var(--typography-body-regular-fontSize);
48
- font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans');
49
- }
50
-
51
- bd-footer-nav.second-nav {
52
- font-weight: var(--typography-fontWeight-medium);
53
- }
54
-
55
- .footer-links {
56
- display: flex;
57
- justify-content: space-between;
58
- align-items: flex-start;
59
- gap: var(--spacing-32);
60
- margin-bottom: var(--spacing-24);
61
- flex-wrap: nowrap;
62
- }
63
-
64
- .footer-middle-line-lp {
65
- display: flex;
66
- justify-content: space-between;
67
- align-items: baseline;
68
- gap: (--spacing-16);
69
- padding-top: var(--spacing-24);
70
- padding-bottom: var(--spacing-24);
71
-
72
- }
73
-
74
- .footer-middle-line-lp > :last-child {
75
- flex: 1;
76
- display: flex;
77
- justify-content: flex-end;
78
- align-items: baseline;
79
- margin: 0;
80
- font-size: var(--typography-body-small-fontSize);
81
- font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans');
82
- font-weight: var(--typography-fontWeight-normal);
83
- color: white;
84
- }
85
-
86
- .footer-middle-line-lp > * {
87
- line-height: var(--typography-lineHeight-normal);
46
+ .footer-main-content {
47
+ padding: var(--spacing-24) 0;
88
48
  }
89
49
 
90
- .second-nav {
91
- flex-shrink: 0;
92
- max-width: 60%;
93
- }
94
-
95
- .footer-address {
96
- flex-grow: 1;
97
- text-align: right;
98
- margin-bottom: var(--spacing-16);
99
- }
100
-
101
- .footer-links-left {
102
- flex: 1;
103
- display: flex;
104
- flex-wrap: wrap;
105
- gap: var(--spacing-32);
106
- }
107
-
108
- .footer-links-right {
109
- display: flex;
110
- align-items: center;
111
- gap: var(--spacing-16);
112
- min-width: 200px
113
- }
114
-
115
- .quick-links-section {
116
- flex: 1 1 auto;
117
- min-width: 200px;
118
- }
119
-
120
- .quick-links-title {
121
- font-weight: var(--typography-fontWeight-semibold);
122
- margin-bottom: var(--spacing-8);
123
- }
124
-
125
- .quick-links-columns {
126
- display: grid;
127
- gap: var(--spacing-8) var(--spacing-16);
128
- }
129
-
130
- .quick-links-column {
131
- display: flex;
132
- flex-direction: column;
133
- gap: var(--spacing-4);
134
- }
135
-
136
- .footer-social-legal {
137
- display: flex;
138
- justify-content: space-between;
139
- flex-wrap: wrap;
140
- gap: var(--spacing-16);
141
- border-top: var(--form-input-default-borderWidth) solid rgba(255,255,255,0.2);
142
- padding-top: var(--spacing-16);
143
- margin-bottom: var(--spacing-16);
144
- }
145
-
146
- .legal-links {
147
- display: flex;
148
- flex-wrap: wrap;
149
- gap: var(--spacing-16);
150
- }
151
-
152
- .social-icons {
153
- display: flex;
154
- gap: var(--spacing-16);
155
- }
156
-
157
- .footer-bottom {
158
- display: flex;
159
- justify-content: space-between;
160
- align-items: center;
161
- flex-wrap: wrap;
162
- gap: var(--spacing-16);
163
- border-top: var(--form-input-default-borderWidth) solid rgba(255,255,255,0.2);
164
- padding-top: var(--spacing-16);
165
- }
166
-
167
- .locale-select {
168
- display: flex;
169
- align-items: center;
170
- gap: var(--spacing-8);
171
- }
172
-
173
- a {
174
- color: var(--color-neutral-0);
175
- text-decoration: none;
176
- }
177
-
178
- a:hover {
179
- text-decoration: underline;
180
- }
181
-
182
- ::slotted(a[slot="social-top"]) {
183
- display: inline-flex;
184
- align-items: center;
185
- justify-content: center;
186
- width: var(--dimension-32px);
187
- height: var(--dimension-32px);
188
- }
189
-
190
- ::slotted(a[slot="social-top"] svg) {
191
- width: 100%;
192
- height: 100%;
193
- fill: white;
194
- color: white !important;
195
- }
196
-
197
- .footer-links-right.social-icons {
198
- margin-top: var(--spacing-16);
50
+ .footer-secondary-nav {
51
+ padding: var(--spacing-24) 0;
199
52
  }
200
53
 
201
54
  .footer-extra {
@@ -204,107 +57,7 @@ export default css`
204
57
  align-items: center;
205
58
  gap: var(--spacing-16);
206
59
  padding-top: var(--spacing-24);
207
- padding-bottom: var(--spacing-24);
208
- flex-wrap: wrap;
209
- }
210
-
211
- .footer-anpc-lp {
212
- flex: 1;
213
- text-align: center;
214
- }
215
-
216
- .footer-locale {
217
- text-align: right;
218
- }
219
-
220
- .footer-countries {
221
- text-align: right;
222
- position: relative;
223
- display: inline-block;
224
- }
225
-
226
- .dropdown-btn {
227
- cursor: pointer;
228
- padding: var(--spacing-8) var(--spacing-16);
229
- background: transparent;
230
- border: var(--form-input-default-borderWidth) solid #ccc;
231
- border-radius: var(--radius-sm);
232
- font-size: var(--typography-body-small-fontSize);
233
- color: white;
234
- }
235
-
236
- .dropdown-list {
237
- position: absolute;
238
- top: 100%;
239
- right: 0;
240
- background: white;
241
- border: var(--form-input-default-borderWidth) solid #ccc;
242
- border-radius: var(--radius-sm);
243
- display: none;
244
- min-width: 160px;
245
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
246
- z-index: 1000;
247
- }
248
-
249
- .dropdown-list.open {
250
- display: block;
251
- }
252
-
253
- .dropdown-list ::slotted(a) {
254
- display: block;
255
- padding: var(--spacing-8) var(--spacing-16);
256
- color: #333;
257
- text-decoration: none;
258
- }
259
-
260
- .dropdown-list ::slotted(a:hover) {
261
- background: #f2f2f2;
262
- }
263
-
264
- .countries-dropdown {
265
- position: absolute;
266
- top: 100%;
267
- left: 0;
268
- background: white;
269
- color: black;
270
- padding: var(--spacing-8);
271
- border: var(--form-input-default-borderWidth) solid #ccc;
272
- z-index: 10;
273
- }
274
-
275
- .country-toggle {
276
- background: none;
277
- border: var(--form-input-default-borderWidth) solid white;
278
- color: white;
279
- padding: var(--spacing-8) var(--spacing-16);
280
- cursor: pointer;
281
- border-radius: var(--form-input-large-borderRadius);
282
- font-family: 'IBM Plex Sans', sans-serif;
283
- font-size: var(--typography-body-small-fontSize);
284
- display: inline-flex;
285
- align-items: center;
286
- gap: var(--spacing-8);
287
- }
288
-
289
- .country-toggle img {
290
- width: var(--dimension-20px);
291
- height: var(--dimension-20px);
292
- object-fit: contain;
293
- }
294
-
295
- .country-toggle .arrow {
296
- margin-left: var(--spacing-4);
297
- }
298
-
299
- .arrow img {
300
- display: inline-block;
301
- width: var(--dimension-20px);
302
- height: auto;
303
- vertical-align: middle;
304
- }
305
-
306
- .countries-container {
307
- margin-top: var(--spacing-4);
60
+ flex-wrap: wrap;
308
61
  }
309
62
 
310
63
  .footer-copy {
@@ -312,26 +65,9 @@ export default css`
312
65
  color: var(--color-gray-400);
313
66
  }
314
67
 
315
- .footer-countries-container {
316
- display: inline-flex;
317
- gap: 10rem;
318
- }
319
-
320
- bd-footer-links-group a.selected {
321
- font-weight: var(--typography-fontWeight-bold);
322
- position: relative;
323
- padding-left: var(--spacing-12);
324
- }
325
-
326
- bd-footer-links-group a.selected::before {
327
- content: '•';
328
- position: absolute;
329
- left: 0;
330
- color: white;
331
- }
332
-
333
- .footer-top-bleed {
334
- background: var(--color-blue-500);
68
+ .footer-anpc-lp {
69
+ flex: 1;
70
+ text-align: center;
335
71
  }
336
72
 
337
73
  .container {
@@ -340,286 +76,66 @@ export default css`
340
76
  padding: 0 var(--spacing-16);
341
77
  }
342
78
 
343
- .footer-top {
344
- padding-top: var(--spacing-24);
345
- padding-bottom: var(--spacing-24);
79
+ .footer-top-bleed {
80
+ background: var(--color-blue-500);
346
81
  }
347
82
 
348
- a.impressum {
349
- display: none;
350
- color: white;
83
+ /* Stiluri pentru link-uri */
84
+ a {
85
+ color: var(--color-neutral-0);
351
86
  text-decoration: none;
352
87
  }
353
88
 
354
- a.impressum.visible {
355
- display: inline;
356
- }
357
-
358
- .country-selected {
359
- font-weight: var(--typography-fontWeight-bold);
360
- position: relative;
361
- padding-left: var(--spacing-24);
362
- }
363
-
364
- .country-selected .bullet {
365
- position: absolute;
366
- left: 0;
367
- color: white;
368
- }
369
-
370
- slot[name="countries"]::slotted(a) {
371
- color: black;
372
- text-decoration: none;
373
- padding: var(--spacing-4) var(--spacing-8);
374
- display: inline-block;
89
+ a:hover {
90
+ text-decoration: underline;
375
91
  }
376
92
 
377
- slot[name="countries"]::slotted(a.selected) {
378
- background-color: #007bff;
379
- color: white;
380
- border-radius: var(--radius-sm);
93
+ /* Stiluri de accesibilitate */
94
+ a:focus {
95
+ outline: none;
96
+ border: 2px solid var(--color-blue-500);
97
+ box-shadow: var(--focus-outline-primary, 0 0 0 2px rgba(0, 109, 255, 0.3));
98
+ border-radius: 4px;
381
99
  }
382
100
 
383
- .footer-countries-container a.selected {
384
- font-weight: var(--typography-fontWeight-bold);
385
- color: var(--color-primary);
386
- }
387
- .footer-countries-container {
388
- margin-top: var(--spacing-16);
389
- padding: var(--spacing-24);
390
- border-radius: var(--radius-lg);
391
- transition: all 0.3s ease;
392
- width: 90%;
101
+ /* Stiluri pentru navigație */
102
+ .footer-nav-main {
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: flex-start;
106
+ gap: var(--spacing-16);
107
+ flex-wrap: wrap;
108
+ font-size: var(--typography-body-regular-fontSize);
109
+ font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans');
393
110
  }
394
- .footer-countries-container {
395
- position: relative;
396
- padding-top: 40px;
397
- }
398
-
399
- .close-countries-button {
400
- position: absolute;
401
- top: 10px;
402
- right: 10px;
403
- background: none;
404
- border: none;
405
- cursor: pointer;
406
- padding: var(--spacing-6);
407
- z-index: 10;
408
- }
409
-
410
- .close-countries-button img {
411
- width: var(--dimension-20px);
412
- height: var(--dimension-20px);
413
- display: block;
414
- }
415
-
416
- @media (max-width: 768px) {
417
- :host {
418
- // background-color: var(--color-neutral-0) !important;
419
- // color: #151719 !important;
420
- // --nav-link-color: #151719 !important;
421
- }
422
111
 
423
- .footer-nav-main {
112
+ /* Responsive styles */
113
+ @media (max-width: 768px) {
114
+ .footer-top {
424
115
  flex-direction: column;
425
- align-items: flex-start;
426
- gap: var(--spacing-8);
427
- }
428
-
429
- .footer-nav-main bd-divider-vertical {
430
- display: none !important;
431
- }
432
-
433
- // .footer-nav-main a {
434
- // color: #151719 !important;
435
- // padding: 0.25rem 0;
436
- // }
437
-
438
- // bd-footer a[slot="nav"] svg {
439
- // fill: #151719 !important;
440
- // }
441
-
442
- // * {
443
- // color: #151719 !important;
444
- // }
445
-
446
- // bd-divider-vertical,
447
- // bd-divider-horizontal {
448
- // background-color: #151719 !important;
449
- // }
450
-
451
- // a {
452
- // color: #151719 !important;
453
- // }
454
-
455
- // a:hover {
456
- // color: #151719 !important;
457
- // }
458
-
459
- // ::slotted(a[slot="social-top"] svg) {
460
- // fill: #151719 !important;
461
- // color: #151719 !important;
462
- // }
463
-
464
- // nav.footer-nav-main ::slotted(a[slot="nav"]) {
465
- // color: #151719 !important;
466
- // }
467
-
468
- // .country-toggle {
469
- // color: #151719 !important;
470
- // border-color: #151719 !important;
471
- // }
472
-
473
- // .footer-top {
474
- // flex-direction: row;
475
- // align-items: flex-start;
476
- // gap: var(--spacing-16);
477
- // background-color: var(--color-neutral-0) !important;
478
- // padding: var(--spacing-32) 0 0;
479
- // }
480
-
481
- .footer-links {
482
- flex-direction: column;
483
- gap: var(--spacing-32);
484
- }
485
-
486
- .footer-middle-line-lp {
487
- flex-direction: column;
488
- align-items: flex-start;
489
- gap: var(--spacing-16);
490
- }
491
-
492
- .footer-middle-line-lp > :last-child {
493
- justify-content: flex-start;
494
- text-align: left;
495
- }
496
-
497
- .footer-social-legal,
498
- .footer-bottom {
499
- flex-direction: column;
500
- align-items: flex-start;
501
116
  gap: var(--spacing-16);
502
- }
503
-
504
- .footer-address {
505
- text-align: left;
117
+ text-align: center;
506
118
  }
507
119
 
508
120
  .footer-extra {
509
121
  flex-direction: column;
510
- align-items: flex-start;
511
- }
512
-
513
- .footer-anpc-lp,
514
- .footer-locale,
515
- .footer-countries {
516
- text-align: left;
517
- width: 100%;
518
- }
519
-
520
- .footer-nav-main a[slot="nav"] {
521
- color: #151719 !important;
122
+ align-items: center;
123
+ text-align: center;
522
124
  }
523
125
 
524
- bd-footer-links-group {
525
- margin-bottom: 10px;
126
+ .footer-anpc-lp {
127
+ order: -1;
128
+ margin-bottom: var(--spacing-16);
526
129
  }
527
130
 
528
- .second-nav .footer-nav-main {
131
+ .footer-nav-main {
529
132
  flex-direction: column;
530
133
  align-items: flex-start;
531
- gap: var(--spacing-14);
134
+ gap: var(--spacing-8);
532
135
  }
533
136
 
534
- .second-nav .footer-nav-main bd-divider-vertical {
137
+ .footer-nav-main bd-divider-vertical {
535
138
  display: none !important;
536
139
  }
537
-
538
- .second-nav .footer-nav-main a {
539
- color: #151719 !important;
540
- padding: var(--spacing-4) 0;
541
- display: block;
542
- }
543
-
544
- .footer-links-right.social-icons a svg {
545
- fill: #151719 !important;
546
- color: #151719 !important;
547
- }
548
- // .footer-top-bleed {
549
- // background: transparent;
550
- // }
551
- .social-icons {
552
- gap: var(--spacing-40);
553
- align-items: center;
554
- margin:auto;
555
- }
556
- .second-nav {
557
- flex-direction: column;
558
- align-items: flex-start;
559
- gap: var(--spacing-8);
560
- }
561
- .second-nav.footer-nav-main{
562
- display: inline-grid;}
563
- .second-nav bd-divider-vertical {
564
- display: none !important;
565
- }
566
-
567
- .second-nav a {
568
- color: #151719 !important;
569
- padding: var(--spacing-4) 0;
570
- display: block;
571
- }
572
- .footer-countries-toggle{
573
- display: flex;
574
- justify-content: center;
575
- align-items: center;
576
- width: 100%;
577
- margin: var(--spacing-16) 0;
578
- }
579
- .country-toggle{
580
- width: 270px;
581
- height: 40px;
582
- display: flex;
583
- align-items: center;
584
- justify-content: center;
585
- margin: 0 auto;
586
- }
587
- .footer-countries-container {
588
- display: block !important;
589
- }
590
- }
591
-
592
- .footer-countries-container {
593
- display: flex;
594
- gap: var(--spacing-32);
595
- flex-wrap: wrap;
596
- justify-content: space-between;
597
- }
598
-
599
- /* Pentru desktop - 3 coloane */
600
- .footer-countries-container bd-footer-links-group {
601
- flex: 1;
602
- min-width: calc(33.33% - var(--spacing-32));
603
- }
604
-
605
- /* Pentru tableta - 2 coloane */
606
- @media (max-width: 1024px) and (min-width: 769px) {
607
- .footer-countries-container bd-footer-links-group {
608
- flex: 0 0 calc(50% - var(--spacing-16));
609
- min-width: calc(50% - var(--spacing-16));
610
140
  }
611
- }
612
-
613
- /* Pentru mobil - 1 coloană */
614
- @media (max-width: 768px) {
615
- .footer-countries-container {
616
- flex-direction: column;
617
- gap: var(--spacing-16);
618
- }
619
-
620
- .footer-countries-container bd-footer-links-group {
621
- flex: 0 0 100%;
622
- width: 100%;
623
- }
624
- }
625
141
  `;