@bytebrand/fe-ui-core-autobahn 1.0.60 → 1.0.62
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.
- package/cards/CarCard.tsx +55 -19
- package/cards/CarRow.tsx +62 -17
- package/cards/cardParts.tsx +273 -20
- package/cards/index.ts +4 -0
- package/cards/types.ts +7 -0
- package/data/toAutobahnCar.ts +13 -3
- package/locales/de/autobahn.json +32 -19
- package/locales/en/autobahn.json +31 -18
- package/package.json +1 -1
- package/theme/md3.css +554 -51
- package/vdp/FinanceCalculator.tsx +127 -96
- package/vdp/VdpModules.tsx +219 -44
package/theme/md3.css
CHANGED
|
@@ -3869,11 +3869,10 @@ line-height: 31px;
|
|
|
3869
3869
|
min-height: 230px;
|
|
3870
3870
|
}
|
|
3871
3871
|
|
|
3872
|
-
/* grid card media — fixed 4:3
|
|
3872
|
+
/* grid card media — fixed 4:3 */
|
|
3873
3873
|
.md3 .cc-media {
|
|
3874
3874
|
aspect-ratio: 4 / 3;
|
|
3875
3875
|
width: 100%;
|
|
3876
|
-
border-bottom: 1px solid var(--md-outline-variant);
|
|
3877
3876
|
}
|
|
3878
3877
|
.md3 .cc-media .cardcar {
|
|
3879
3878
|
height: 100%;
|
|
@@ -3933,6 +3932,69 @@ line-height: 31px;
|
|
|
3933
3932
|
font-weight: 600;
|
|
3934
3933
|
white-space: nowrap;
|
|
3935
3934
|
}
|
|
3935
|
+
/* desktop-only "mcard" (CarRow/SRP) photo-count / eye+heart chip (Figma "Vehicle Gallery / Photos
|
|
3936
|
+
Button" and "Push Chips / Likes") — lighter/more translucent than .gallery-pill (which stays
|
|
3937
|
+
mobile-only, used by .gallery-badges above), and can hold two icon+count pairs in one pill. */
|
|
3938
|
+
.md3 .mcard-photo-chip {
|
|
3939
|
+
display: inline-flex;
|
|
3940
|
+
align-items: center;
|
|
3941
|
+
gap: 6px;
|
|
3942
|
+
height: 30px;
|
|
3943
|
+
padding: 0 10px;
|
|
3944
|
+
border-radius: 16px;
|
|
3945
|
+
border: 1px solid #e5eaf0;
|
|
3946
|
+
background: rgba(245, 247, 250, 0.5);
|
|
3947
|
+
color: #111820;
|
|
3948
|
+
font-size: 12px;
|
|
3949
|
+
font-weight: 700;
|
|
3950
|
+
white-space: nowrap;
|
|
3951
|
+
}
|
|
3952
|
+
/* Car Card (grid) gallery overlay pills (Figma "Vehicle Gallery / Photos Button" node 281:1016
|
|
3953
|
+
and "Push Chips / Likes" node 297:1037) — light glass pill, distinct from the dark `.imglabel`
|
|
3954
|
+
used elsewhere (VDP main gallery) and from the older `.gallery-pill` iteration above. */
|
|
3955
|
+
.md3 .cc-photo-pill {
|
|
3956
|
+
display: inline-flex;
|
|
3957
|
+
align-items: center;
|
|
3958
|
+
gap: 3px;
|
|
3959
|
+
height: 30px;
|
|
3960
|
+
padding: 0 12px;
|
|
3961
|
+
border-radius: 16px;
|
|
3962
|
+
background: rgba(245, 247, 250, 0.5);
|
|
3963
|
+
border: 1px solid #E5EAF0;
|
|
3964
|
+
backdrop-filter: blur(2px);
|
|
3965
|
+
color: #111820;
|
|
3966
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
3967
|
+
font-weight: 700;
|
|
3968
|
+
font-size: 12px;
|
|
3969
|
+
white-space: nowrap;
|
|
3970
|
+
cursor: pointer;
|
|
3971
|
+
transition: background var(--dur-1) var(--ease-standard), border-color var(--dur-1) var(--ease-standard);
|
|
3972
|
+
}
|
|
3973
|
+
.md3 .cc-photo-pill:hover {
|
|
3974
|
+
background: rgba(245, 247, 250, 0.85);
|
|
3975
|
+
border-color: #d4dde7;
|
|
3976
|
+
}
|
|
3977
|
+
.md3 .cc-activity-pill {
|
|
3978
|
+
display: inline-flex;
|
|
3979
|
+
align-items: center;
|
|
3980
|
+
gap: 13px;
|
|
3981
|
+
height: 30px;
|
|
3982
|
+
padding: 0 12px;
|
|
3983
|
+
border-radius: 16px;
|
|
3984
|
+
background: rgba(245, 247, 250, 0.5);
|
|
3985
|
+
border: 1px solid #E5EAF0;
|
|
3986
|
+
backdrop-filter: blur(2px);
|
|
3987
|
+
white-space: nowrap;
|
|
3988
|
+
}
|
|
3989
|
+
.md3 .cc-activity-pill-item {
|
|
3990
|
+
display: inline-flex;
|
|
3991
|
+
align-items: center;
|
|
3992
|
+
gap: 2px;
|
|
3993
|
+
color: #1D2A38;
|
|
3994
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
3995
|
+
font-weight: 700;
|
|
3996
|
+
font-size: 12px;
|
|
3997
|
+
}
|
|
3936
3998
|
.md3 .listcard-info {
|
|
3937
3999
|
padding: 16px 18px;
|
|
3938
4000
|
display: flex;
|
|
@@ -4214,11 +4276,25 @@ line-height: 31px;
|
|
|
4214
4276
|
/* struck-through reference rate/price shown next to the tabbed hero price (Figma card) —
|
|
4215
4277
|
same red strike as .pp-old, sized for the hero context rather than the compact list row. */
|
|
4216
4278
|
.md3 .pp-hero-old { font-size: 15px; color: var(--md-error); text-decoration: line-through; white-space: nowrap; }
|
|
4217
|
-
.md3 .pp-hero-val sup, .md3 .pp-hero-old sup, .md3 .pp-hero-unit sup { font-size: .6em; }
|
|
4218
4279
|
.md3 .pp-hero-terms { margin-top: 9px; font-size: 11.5px; color: var(--md-on-surface-variant); }
|
|
4219
4280
|
/* "Details" link at the end of the financing/leasing terms lines (Figma "mcard") — quiet, same
|
|
4220
4281
|
color as the rest of the terms line but underlined so it still reads as tappable. */
|
|
4221
4282
|
.md3 .pp-details-link { color: var(--md-primary); text-decoration: underline; font-weight: 600; white-space: nowrap; }
|
|
4283
|
+
/* z.B./old-rate/unit column beside the CarCard hero figure — mirrors .fin-rate-unit
|
|
4284
|
+
(FinanceCalculator.tsx/md3.css) exactly; only used inside .cc-price's PriceHero. */
|
|
4285
|
+
.md3 .pp-hero-unit-group {
|
|
4286
|
+
display: flex;
|
|
4287
|
+
flex-direction: column;
|
|
4288
|
+
line-height: 1.25;
|
|
4289
|
+
font-size: 14px;
|
|
4290
|
+
font-weight: 600;
|
|
4291
|
+
color: var(--md-on-surface-variant);
|
|
4292
|
+
flex: none;
|
|
4293
|
+
}
|
|
4294
|
+
.md3 .cc-price .pp-hero-rate {
|
|
4295
|
+
align-items: center;
|
|
4296
|
+
flex-wrap: nowrap;
|
|
4297
|
+
}
|
|
4222
4298
|
/* separator line between the financing block and the leasing row (legacy-design parity) */
|
|
4223
4299
|
.md3 .pp-lease-row {
|
|
4224
4300
|
margin-top: 16px;
|
|
@@ -4360,14 +4436,362 @@ line-height: 31px;
|
|
|
4360
4436
|
/* grid Car Card price block (Figma "Component | Car Card | Desktop") — the hero price/tabs are
|
|
4361
4437
|
much larger here than the shared .pp-hero-* sizing used to give them (those classes are only
|
|
4362
4438
|
consumed inside .cc-price now, so bumping them here is safe). */
|
|
4439
|
+
.md3 .cc-card .md-title {
|
|
4440
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4441
|
+
font-style: normal;
|
|
4442
|
+
font-weight: 700;
|
|
4443
|
+
font-size: 24px;
|
|
4444
|
+
line-height: 27px;
|
|
4445
|
+
color: #0e2238;
|
|
4446
|
+
margin-bottom: 6px;
|
|
4447
|
+
}
|
|
4448
|
+
.md3 .cc-card .md-body-sm {
|
|
4449
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4450
|
+
font-style: normal;
|
|
4451
|
+
font-weight: 400;
|
|
4452
|
+
font-size: 13px;
|
|
4453
|
+
line-height: 17px;
|
|
4454
|
+
color: #0e2238;
|
|
4455
|
+
margin-bottom: 6px;
|
|
4456
|
+
}
|
|
4457
|
+
/* SpecLine is only ever used by CarCard (not CarRow) — safe to reach into its inline
|
|
4458
|
+
font-size/color with !important rather than plumbing a style-override prop through it. */
|
|
4459
|
+
.md3 .cc-card .cc-spec {
|
|
4460
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4461
|
+
font-weight: 400;
|
|
4462
|
+
font-size: 11px !important;
|
|
4463
|
+
line-height: 15px;
|
|
4464
|
+
color: #1d2a38 !important;
|
|
4465
|
+
margin-bottom: 10px;
|
|
4466
|
+
}
|
|
4467
|
+
/* deal chips (Ersparnis / -X% / 0€ Anzahlung) — Figma: 30px tall pill (15px radius = half the
|
|
4468
|
+
height), 14px bold, a tint of the icon/text color (~20% bg, ~5% border). Was previously gated
|
|
4469
|
+
to min-width:1025px (mobile fell back to the plain-JSX solid-fill/white-pill treatment);
|
|
4470
|
+
applied at every width now so mobile CarCard matches too. */
|
|
4471
|
+
.md3 .cc-card .cc-badges {
|
|
4472
|
+
gap: 8px !important;
|
|
4473
|
+
}
|
|
4474
|
+
.md3 .cc-card .deal-chip {
|
|
4475
|
+
height: 30px !important;
|
|
4476
|
+
padding: 0 10px !important;
|
|
4477
|
+
border-radius: 15px !important;
|
|
4478
|
+
font-size: 14px !important;
|
|
4479
|
+
font-weight: 700 !important;
|
|
4480
|
+
box-shadow: none !important;
|
|
4481
|
+
border: 1px solid transparent;
|
|
4482
|
+
}
|
|
4483
|
+
.md3 .cc-card .deal-chip--drop {
|
|
4484
|
+
background: rgba(17, 110, 57, 0.2) !important;
|
|
4485
|
+
border-color: rgba(17, 110, 57, 0.05);
|
|
4486
|
+
color: #116e39 !important;
|
|
4487
|
+
}
|
|
4488
|
+
.md3 .cc-card .deal-chip--percent {
|
|
4489
|
+
background: rgba(217, 45, 32, 0.2) !important;
|
|
4490
|
+
border-color: rgba(217, 45, 32, 0.05);
|
|
4491
|
+
color: #d92d20 !important;
|
|
4492
|
+
}
|
|
4493
|
+
.md3 .cc-card .deal-chip--zerodown {
|
|
4494
|
+
background: rgba(0, 92, 255, 0.2) !important;
|
|
4495
|
+
border-color: rgba(0, 92, 255, 0.05);
|
|
4496
|
+
color: #005cff !important;
|
|
4497
|
+
}
|
|
4498
|
+
/* NEU badge — Figma: amber tint pill, not the mobile solid-primary-blue pill */
|
|
4499
|
+
.md3 .cc-card .neu-badge {
|
|
4500
|
+
height: 30px;
|
|
4501
|
+
padding: 0 10px;
|
|
4502
|
+
background: rgba(255, 184, 0, 0.2);
|
|
4503
|
+
border: 1px solid rgba(255, 184, 0, 0.05);
|
|
4504
|
+
color: #ffb800;
|
|
4505
|
+
font-size: 13px;
|
|
4506
|
+
}
|
|
4507
|
+
/* "⚡ Angebot" badge — Figma: black-tinted ROUNDED RECT (10px radius, not a full pill), black
|
|
4508
|
+
text — bigger than and visually distinct from the mobile dark-solid pill. */
|
|
4509
|
+
.md3 .cc-card .offer-badge {
|
|
4510
|
+
height: 30px;
|
|
4511
|
+
padding: 0 10px;
|
|
4512
|
+
border-radius: 10px;
|
|
4513
|
+
background: rgba(0, 0, 0, 0.2);
|
|
4514
|
+
border: 1px solid rgba(0, 0, 0, 0.05);
|
|
4515
|
+
color: #000;
|
|
4516
|
+
font-size: 14px;
|
|
4517
|
+
}
|
|
4518
|
+
.md3 .cc-card .offer-badge .lucide {
|
|
4519
|
+
width: 15px;
|
|
4520
|
+
height: 15px;
|
|
4521
|
+
color: #000;
|
|
4522
|
+
}
|
|
4363
4523
|
.md3 .cc-price .fin-tabs { margin-bottom: 12px; }
|
|
4364
|
-
.md3 .cc-price .fin-tab { font-size: 17px; font-weight: 700; padding:
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
.md3 .cc-price .pp-
|
|
4370
|
-
.md3 .
|
|
4524
|
+
.md3 .cc-price .fin-tab { font-size: 17px; font-weight: 700; padding: 10px 5px; }
|
|
4525
|
+
/* Finanzierung tab price row (Figma "similar cars" card) — matches the VDP finance-calculator's
|
|
4526
|
+
MOBILE .fin-price-grid treatment one-to-one (same rate/old-price/pill typography and colors),
|
|
4527
|
+
by explicit spec. Previously gated to min-width:601px (left the pre-existing mobile .cc-card
|
|
4528
|
+
price row alone); now applied at every width on request, so mobile CarCard matches too. */
|
|
4529
|
+
.md3 .cc-price .pp-eyebrow,
|
|
4530
|
+
.md3 .fin-calc-card .pp-eyebrow {
|
|
4531
|
+
position: relative;
|
|
4532
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4533
|
+
font-style: normal;
|
|
4534
|
+
font-weight: 400;
|
|
4535
|
+
font-size: 8px;
|
|
4536
|
+
line-height: 9px;
|
|
4537
|
+
letter-spacing: normal;
|
|
4538
|
+
text-transform: none;
|
|
4539
|
+
color: #0e2238;
|
|
4540
|
+
margin-bottom: 2px;
|
|
4541
|
+
}
|
|
4542
|
+
/* footnote badge (small bordered circle, not a plain <sup>) pinned to the eyebrow's top-right
|
|
4543
|
+
corner — absolute against .pp-eyebrow's own position:relative above. Shared by the CarCard
|
|
4544
|
+
hero (.cc-price) and the VDP FinanceCalculator's own rate example (.fin-calc-card). */
|
|
4545
|
+
.md3 .cc-price .pp-eyebrow-badge,
|
|
4546
|
+
.md3 .fin-calc-card .pp-eyebrow-badge {
|
|
4547
|
+
display: inline-flex;
|
|
4548
|
+
align-items: center;
|
|
4549
|
+
justify-content: center;
|
|
4550
|
+
position: absolute;
|
|
4551
|
+
top: -5px;
|
|
4552
|
+
right: -8px;
|
|
4553
|
+
border-radius: 50%;
|
|
4554
|
+
width: 12px;
|
|
4555
|
+
height: 11px;
|
|
4556
|
+
background: rgba(255, 255, 255, 0.96);
|
|
4557
|
+
border: 0.5px solid #005cff;
|
|
4558
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4559
|
+
font-style: normal;
|
|
4560
|
+
font-weight: 400;
|
|
4561
|
+
font-size: 8px;
|
|
4562
|
+
line-height: 9px;
|
|
4563
|
+
text-align: center;
|
|
4564
|
+
color: #0e2238;
|
|
4565
|
+
cursor: pointer;
|
|
4566
|
+
}
|
|
4567
|
+
/* mobile-only nudge: same badge, tucked slightly closer to the eyebrow text on narrow cards. */
|
|
4568
|
+
@media (max-width: 1024px) {
|
|
4569
|
+
.md3 .cc-price .pp-eyebrow-badge {
|
|
4570
|
+
top: -5px;
|
|
4571
|
+
right: -5px;
|
|
4572
|
+
}
|
|
4573
|
+
}
|
|
4574
|
+
/* "2" badge (Kaufen, nested in .pp-hero-old instead of .pp-eyebrow) sits closer to the price
|
|
4575
|
+
figure than the "3" badge's own offsets above. */
|
|
4576
|
+
.md3 .cc-price .pp-hero-old .pp-eyebrow-badge,
|
|
4577
|
+
.md3 .fin-calc-card .pp-hero-old .pp-eyebrow-badge {
|
|
4578
|
+
top: -7px;
|
|
4579
|
+
right: -12px;
|
|
4580
|
+
}
|
|
4581
|
+
/* "3" footnote popover — click the badge above to open, the × or an outside click to close. */
|
|
4582
|
+
.md3 .cc-price .pp-uvp-tooltip,
|
|
4583
|
+
.md3 .fin-calc-card .pp-uvp-tooltip {
|
|
4584
|
+
position: absolute;
|
|
4585
|
+
top: 6px;
|
|
4586
|
+
right: -84px;
|
|
4587
|
+
z-index: 20;
|
|
4588
|
+
width: 281px;
|
|
4589
|
+
padding: 10px 12px;
|
|
4590
|
+
border-radius: 15px;
|
|
4591
|
+
background: #c5c6d2;
|
|
4592
|
+
box-shadow: var(--md-e2, 0 4px 12px rgba(0, 0, 0, 0.15));
|
|
4593
|
+
white-space: normal;
|
|
4594
|
+
cursor: default;
|
|
4595
|
+
}
|
|
4596
|
+
/* floating circular close button — overlaps the tooltip's top-right corner from outside,
|
|
4597
|
+
same "glass circle" convention as VdpViewer's close/back/next overlay buttons. */
|
|
4598
|
+
.md3 .cc-price .pp-uvp-tooltip-close,
|
|
4599
|
+
.md3 .fin-calc-card .pp-uvp-tooltip-close {
|
|
4600
|
+
position: absolute;
|
|
4601
|
+
top: -38px;
|
|
4602
|
+
right: -35px;
|
|
4603
|
+
display: flex;
|
|
4604
|
+
align-items: center;
|
|
4605
|
+
justify-content: center;
|
|
4606
|
+
width: 48px;
|
|
4607
|
+
height: 48px;
|
|
4608
|
+
border-radius: 50%;
|
|
4609
|
+
background: rgba(11, 19, 32, 0.35);
|
|
4610
|
+
border: 1.5px solid rgba(255, 255, 255, 0.25);
|
|
4611
|
+
padding: 0;
|
|
4612
|
+
cursor: pointer;
|
|
4613
|
+
}
|
|
4614
|
+
.md3 .cc-price .pp-uvp-tooltip-body,
|
|
4615
|
+
.md3 .fin-calc-card .pp-uvp-tooltip-body {
|
|
4616
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4617
|
+
font-weight: 400;
|
|
4618
|
+
font-size: 11px;
|
|
4619
|
+
line-height: 13px;
|
|
4620
|
+
color: #0e2238;
|
|
4621
|
+
}
|
|
4622
|
+
.md3 .cc-price .pp-hero-val {
|
|
4623
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4624
|
+
font-style: normal;
|
|
4625
|
+
font-weight: 700;
|
|
4626
|
+
font-size: 65px;
|
|
4627
|
+
line-height: 58px;
|
|
4628
|
+
letter-spacing: -2px;
|
|
4629
|
+
color: #005cff;
|
|
4630
|
+
}
|
|
4631
|
+
/* long rates shrink so the hero figure doesn't overflow the card. */
|
|
4632
|
+
.md3 .cc-price .pp-hero-val--len4 {
|
|
4633
|
+
font-size: 50px;
|
|
4634
|
+
line-height: 53px;
|
|
4635
|
+
}
|
|
4636
|
+
.md3 .cc-price .pp-hero-val--len5 {
|
|
4637
|
+
font-size: 43px;
|
|
4638
|
+
line-height: 45px;
|
|
4639
|
+
}
|
|
4640
|
+
.md3 .cc-price .pp-hero-val--len6 {
|
|
4641
|
+
font-size: 37px;
|
|
4642
|
+
line-height: 40px;
|
|
4643
|
+
}
|
|
4644
|
+
/* diagonal red strike (Figma), replacing the native horizontal line-through — shared by the
|
|
4645
|
+
CarCard hero (.cc-price) and the VDP FinanceCalculator's mobile Kaufen old price
|
|
4646
|
+
(.fin-calc-card, .fin-rate-old-list). */
|
|
4647
|
+
.md3 .cc-price .pp-hero-old,
|
|
4648
|
+
.md3 .fin-calc-card .pp-hero-old {
|
|
4649
|
+
position: relative;
|
|
4650
|
+
display: inline-block;
|
|
4651
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4652
|
+
font-style: normal;
|
|
4653
|
+
font-weight: 400;
|
|
4654
|
+
font-size: 17px;
|
|
4655
|
+
line-height: 20px;
|
|
4656
|
+
letter-spacing: 0;
|
|
4657
|
+
color: #0e2238;
|
|
4658
|
+
text-decoration: none;
|
|
4659
|
+
}
|
|
4660
|
+
.md3 .cc-price .pp-hero-old::after,
|
|
4661
|
+
.md3 .fin-calc-card .pp-hero-old::after {
|
|
4662
|
+
content: "";
|
|
4663
|
+
position: absolute;
|
|
4664
|
+
left: -2px;
|
|
4665
|
+
right: -2px;
|
|
4666
|
+
top: 50%;
|
|
4667
|
+
border-top: 2px solid #e60000;
|
|
4668
|
+
transform: rotate(12.53deg);
|
|
4669
|
+
transform-origin: center;
|
|
4670
|
+
}
|
|
4671
|
+
.md3 .cc-price .pp-hero-old--len4,
|
|
4672
|
+
.md3 .fin-calc-card .pp-hero-old--len4 {
|
|
4673
|
+
font-size: 13px;
|
|
4674
|
+
line-height: 17px;
|
|
4675
|
+
}
|
|
4676
|
+
.md3 .cc-price .pp-hero-old--len5,
|
|
4677
|
+
.md3 .fin-calc-card .pp-hero-old--len5 {
|
|
4678
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4679
|
+
font-weight: 400;
|
|
4680
|
+
font-size: 14px;
|
|
4681
|
+
line-height: 16px;
|
|
4682
|
+
color: #0e2238;
|
|
4683
|
+
}
|
|
4684
|
+
.md3 .cc-price .pp-hero-unit {
|
|
4685
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4686
|
+
font-style: normal;
|
|
4687
|
+
font-weight: 700;
|
|
4688
|
+
font-size: 18px;
|
|
4689
|
+
line-height: 21px;
|
|
4690
|
+
color: #5b6b7f;
|
|
4691
|
+
}
|
|
4692
|
+
/* Kaufen: the UVP/old-price group sits ABOVE the hero figure (Figma), not beside it like the
|
|
4693
|
+
Finanzierung/Leasing z.B. column — stack the row and pull the group first via order. */
|
|
4694
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-rate {
|
|
4695
|
+
flex-direction: column;
|
|
4696
|
+
align-items: flex-start;
|
|
4697
|
+
gap: 2px;
|
|
4698
|
+
}
|
|
4699
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-unit-group {
|
|
4700
|
+
order: -1;
|
|
4701
|
+
align-self: flex-end;
|
|
4702
|
+
}
|
|
4703
|
+
/* Preisbewertung pill + segmented tier bar, grouped in one column exactly like the VDP
|
|
4704
|
+
finance-calculator's MOBILE .fin-eval-col (FinanceCalculator.tsx) — replaces the old
|
|
4705
|
+
StatChip pill + full-width gradient .pp-bar (see PriceEvalCol in cardParts.tsx). No
|
|
4706
|
+
grid here (unlike .fin-price-grid), so the 112px column width is set directly instead
|
|
4707
|
+
of via grid-area/grid-template-columns. */
|
|
4708
|
+
.md3 .cc-price .fin-eval-col {
|
|
4709
|
+
display: flex;
|
|
4710
|
+
flex-direction: column;
|
|
4711
|
+
gap: 16px;
|
|
4712
|
+
width: 112px;
|
|
4713
|
+
flex: none;
|
|
4714
|
+
}
|
|
4715
|
+
.md3 .cc-price .fin-eval-pill {
|
|
4716
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4717
|
+
font-style: normal;
|
|
4718
|
+
font-weight: 700;
|
|
4719
|
+
font-size: 12px;
|
|
4720
|
+
line-height: 14px;
|
|
4721
|
+
text-align: center;
|
|
4722
|
+
}
|
|
4723
|
+
.md3 .cc-price .fin-eval-pill--good {
|
|
4724
|
+
background: #dff3e5 !important;
|
|
4725
|
+
border-radius: 11px !important;
|
|
4726
|
+
width: 100%;
|
|
4727
|
+
height: 27px;
|
|
4728
|
+
box-sizing: border-box;
|
|
4729
|
+
justify-content: center;
|
|
4730
|
+
}
|
|
4731
|
+
/* footnote 4 ("Top-Preis" claim) — .fin-eval-pill is a flex container, so vertical-align has
|
|
4732
|
+
no effect on the sup (it's a flex item, not inline content); position:relative/top raises
|
|
4733
|
+
it instead, same technique as the hero price's own 1/2/3 footnote markers. Shared by the
|
|
4734
|
+
CarCard hero (.cc-price) and the VDP FinanceCalculator's own pill (.fin-calc-card). */
|
|
4735
|
+
.md3 .cc-price .fin-eval-pill sup,
|
|
4736
|
+
.md3 .fin-calc-card .fin-eval-pill sup {
|
|
4737
|
+
position: relative;
|
|
4738
|
+
top: 0px;
|
|
4739
|
+
left: -4px;
|
|
4740
|
+
font-size: 9px;
|
|
4741
|
+
line-height: 9px;
|
|
4742
|
+
}
|
|
4743
|
+
.md3 .cc-price .fin-eval-bar {
|
|
4744
|
+
height: 7px;
|
|
4745
|
+
}
|
|
4746
|
+
.md3 .cc-price .fin-eval-seg:first-child {
|
|
4747
|
+
border-radius: 4px 0 0 4px;
|
|
4748
|
+
}
|
|
4749
|
+
.md3 .cc-price .fin-eval-seg:last-of-type {
|
|
4750
|
+
border-radius: 0 4px 4px 0;
|
|
4751
|
+
}
|
|
4752
|
+
.md3 .cc-price .fin-eval-thumb {
|
|
4753
|
+
width: 18px;
|
|
4754
|
+
height: 18px;
|
|
4755
|
+
border-width: 2px;
|
|
4756
|
+
border-radius: 9px;
|
|
4757
|
+
}
|
|
4758
|
+
.md3 .cc-price .fin-eval-thumb--good {
|
|
4759
|
+
border-color: #168a45 !important;
|
|
4760
|
+
}
|
|
4761
|
+
/* financing/leasing terms line + "Finanzierungsdetails"/"Leasingdetails" link (PriceTerms in
|
|
4762
|
+
cardParts.tsx), full-width under the price/rating row. Same quiet typography as .pp-hero-terms
|
|
4763
|
+
(PricePaths); the link resets button chrome and reuses the primary color so it reads as tappable. */
|
|
4764
|
+
.md3 .cc-terms {
|
|
4765
|
+
margin-top: 9px;
|
|
4766
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4767
|
+
font-style: normal;
|
|
4768
|
+
font-weight: 400;
|
|
4769
|
+
font-size: 13px;
|
|
4770
|
+
line-height: 15px;
|
|
4771
|
+
color: #0e2238;
|
|
4772
|
+
}
|
|
4773
|
+
.md3 .cc-terms-dot {
|
|
4774
|
+
display: inline-block;
|
|
4775
|
+
margin: 0 2px;
|
|
4776
|
+
color: #5b6b7f;
|
|
4777
|
+
font-size: 20px;
|
|
4778
|
+
line-height: 0;
|
|
4779
|
+
vertical-align: -2px;
|
|
4780
|
+
}
|
|
4781
|
+
.md3 .cc-terms-link {
|
|
4782
|
+
border: 0;
|
|
4783
|
+
background: none;
|
|
4784
|
+
padding: 0;
|
|
4785
|
+
margin: 0;
|
|
4786
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4787
|
+
font-style: normal;
|
|
4788
|
+
font-weight: 400;
|
|
4789
|
+
font-size: 13px;
|
|
4790
|
+
line-height: 15px;
|
|
4791
|
+
letter-spacing: -0.03em;
|
|
4792
|
+
color: #0e2238;
|
|
4793
|
+
cursor: pointer;
|
|
4794
|
+
}
|
|
4371
4795
|
/* card CTA row (Angebot anfragen / phone / Rate anpassen) — the shared .mbtn padding (0 24px)
|
|
4372
4796
|
and 14px font were sized for full-width VDP buttons; at a ~330-360px card/column width three
|
|
4373
4797
|
buttons with real text at that size overflow their flex share. Scoped-down here only. */
|
|
@@ -4652,6 +5076,14 @@ line-height: 31px;
|
|
|
4652
5076
|
gap: 12px;
|
|
4653
5077
|
flex-wrap: wrap;
|
|
4654
5078
|
}
|
|
5079
|
+
/* "Persönliche Beratung. Wir sind für Sie da!" — mobile .fin-info, icon + one line. */
|
|
5080
|
+
.md3 .fin-info-line {
|
|
5081
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
5082
|
+
font-weight: 400;
|
|
5083
|
+
font-size: 14px;
|
|
5084
|
+
line-height: 16px;
|
|
5085
|
+
color: #0e2238;
|
|
5086
|
+
}
|
|
4655
5087
|
.md3 .fin-id {
|
|
4656
5088
|
font-size: 12px;
|
|
4657
5089
|
color: var(--md-on-surface-variant);
|
|
@@ -6093,7 +6525,7 @@ line-height: 31px;
|
|
|
6093
6525
|
(14px) than the 14/24px desktop default set inline. */
|
|
6094
6526
|
@media (max-width: 600px) {
|
|
6095
6527
|
.md3 .vdp-main {
|
|
6096
|
-
padding:
|
|
6528
|
+
padding: 0 14px 48px !important;
|
|
6097
6529
|
}
|
|
6098
6530
|
.md3 .vdp-push-badges {
|
|
6099
6531
|
gap: 6px;
|
|
@@ -6144,7 +6576,7 @@ background: ;
|
|
|
6144
6576
|
*/
|
|
6145
6577
|
|
|
6146
6578
|
.md3 .push-badge--save {
|
|
6147
|
-
background:
|
|
6579
|
+
background: color-mix(in srgb, #116e39 20%, white);
|
|
6148
6580
|
color: #116e39;
|
|
6149
6581
|
border: 1px solid rgba(17, 110, 57, 0.05);
|
|
6150
6582
|
font-family: Arial, Helvetica, sans-serif;
|
|
@@ -6158,7 +6590,7 @@ background: ;
|
|
|
6158
6590
|
color: #116e39;
|
|
6159
6591
|
}
|
|
6160
6592
|
.md3 .push-badge--discount {
|
|
6161
|
-
background:
|
|
6593
|
+
background: color-mix(in srgb, #d92d20 20%, white);
|
|
6162
6594
|
border: 1px solid rgba(217, 45, 32, 0.05);
|
|
6163
6595
|
color: #D92D20;
|
|
6164
6596
|
font-weight: 700;
|
|
@@ -6169,7 +6601,7 @@ background: ;
|
|
|
6169
6601
|
font-weight: 700;
|
|
6170
6602
|
font-size: 13px;
|
|
6171
6603
|
line-height: 15px;
|
|
6172
|
-
background:
|
|
6604
|
+
background: color-mix(in srgb, #005cff 20%, white);
|
|
6173
6605
|
border: 1px solid rgba(0, 92, 255, 0.05);
|
|
6174
6606
|
border-radius: 15px;
|
|
6175
6607
|
color: #005CFF;
|
|
@@ -6177,7 +6609,7 @@ color: #005CFF;
|
|
|
6177
6609
|
/* NEU badge, as the trailing pill inside the vdp-push-badges row (VDP mobile mockup) —
|
|
6178
6610
|
scoped override, the base .neu-badge above still serves the car-card usage. */
|
|
6179
6611
|
.md3 .vdp-push-badges .neu-badge {
|
|
6180
|
-
background:
|
|
6612
|
+
background: color-mix(in srgb, #ffb800 20%, white);
|
|
6181
6613
|
border: 1px solid rgba(255, 184, 0, 0.05);
|
|
6182
6614
|
border-radius: 15px;
|
|
6183
6615
|
font-weight: 700;
|
|
@@ -6306,34 +6738,6 @@ color: #005CFF;
|
|
|
6306
6738
|
gap: 0;
|
|
6307
6739
|
justify-content: flex-start;
|
|
6308
6740
|
}
|
|
6309
|
-
.md3 .fin-info-main {
|
|
6310
|
-
flex: 0 0 53% !important;
|
|
6311
|
-
width: 53%;
|
|
6312
|
-
padding-left: 21px;
|
|
6313
|
-
box-sizing: border-box;
|
|
6314
|
-
}
|
|
6315
|
-
.md3 .fin-info-details-btn {
|
|
6316
|
-
flex: 0 0 37%;
|
|
6317
|
-
width: 30%;
|
|
6318
|
-
box-sizing: border-box;
|
|
6319
|
-
}
|
|
6320
|
-
.md3 .fin-info-sub {
|
|
6321
|
-
font-family: Arial, Helvetica, sans-serif;
|
|
6322
|
-
font-style: normal;
|
|
6323
|
-
font-weight: 400;
|
|
6324
|
-
font-size: 12px;
|
|
6325
|
-
line-height: 14px;
|
|
6326
|
-
color: #111820;
|
|
6327
|
-
}
|
|
6328
|
-
.md3 .fin-info-details-label {
|
|
6329
|
-
font-family: Arial, Helvetica, sans-serif;
|
|
6330
|
-
font-style: normal;
|
|
6331
|
-
font-weight: 400;
|
|
6332
|
-
font-size: 10px;
|
|
6333
|
-
line-height: 16px;
|
|
6334
|
-
color: #111820;
|
|
6335
|
-
width: 69px;
|
|
6336
|
-
}
|
|
6337
6741
|
.md3 .fin-adjust-btn-label {
|
|
6338
6742
|
font-family: Arial, Helvetica, sans-serif;
|
|
6339
6743
|
font-style: normal;
|
|
@@ -7336,6 +7740,24 @@ color: #005CFF;
|
|
|
7336
7740
|
line-height: 58px !important;
|
|
7337
7741
|
color: #005cff !important;
|
|
7338
7742
|
}
|
|
7743
|
+
/* mobile Kaufen UVP-strike text (.pp-hero-old, shared with CarCard) also carries .num for its
|
|
7744
|
+
tabular-nums digits, so the 65px blue hero rule above would otherwise win via !important —
|
|
7745
|
+
repeat with !important here, same technique as .fin-rate-cash-mobile below. */
|
|
7746
|
+
.md3 .fin-rate-main .num.pp-hero-old {
|
|
7747
|
+
font-family: Arial, Helvetica, sans-serif !important;
|
|
7748
|
+
font-weight: 400 !important;
|
|
7749
|
+
font-size: 17px !important;
|
|
7750
|
+
line-height: 20px !important;
|
|
7751
|
+
color: #0e2238 !important;
|
|
7752
|
+
}
|
|
7753
|
+
.md3 .fin-rate-main .num.pp-hero-old.pp-hero-old--len4 {
|
|
7754
|
+
font-size: 13px !important;
|
|
7755
|
+
line-height: 17px !important;
|
|
7756
|
+
}
|
|
7757
|
+
.md3 .fin-rate-main .num.pp-hero-old.pp-hero-old--len5 {
|
|
7758
|
+
font-size: 14px !important;
|
|
7759
|
+
line-height: 16px !important;
|
|
7760
|
+
}
|
|
7339
7761
|
/* Kaufen/Barzahlung tab hero price (mobile) — same family/weight/line-height/color as
|
|
7340
7762
|
the shared .num rule above, just a smaller size for this specific instance. */
|
|
7341
7763
|
.md3 .fin-rate-main .num.fin-rate-cash-mobile {
|
|
@@ -7382,14 +7804,6 @@ color: #005CFF;
|
|
|
7382
7804
|
.md3 .fin-rate-main .fin-rate-hero.fin-rate-hero--len6 {
|
|
7383
7805
|
font-size: 36px !important;
|
|
7384
7806
|
}
|
|
7385
|
-
/* "Finanzierung & Leasing möglich" note (mobile) */
|
|
7386
|
-
.md3 .fin-financing-leasing-note {
|
|
7387
|
-
font-family: Arial, Helvetica, sans-serif !important;
|
|
7388
|
-
font-weight: 400 !important;
|
|
7389
|
-
font-size: 10px !important;
|
|
7390
|
-
line-height: 16px !important;
|
|
7391
|
-
color: #111820 !important;
|
|
7392
|
-
}
|
|
7393
7807
|
/* the struck old figure must NOT inherit the new hero rate styling (font, weight,
|
|
7394
7808
|
color, line-height) — only the hero .num itself gets the 65px treatment */
|
|
7395
7809
|
.md3 .fin-rate-main .fin-rate-old {
|
|
@@ -7556,6 +7970,16 @@ color: #005CFF;
|
|
|
7556
7970
|
color: #111820;
|
|
7557
7971
|
margin-bottom: 12px;
|
|
7558
7972
|
}
|
|
7973
|
+
/* "Finanzierungsdetails"/"Leasing-Details" reads as a link here (unlike CarCard's quiet
|
|
7974
|
+
.cc-terms-link, which stays text-colored on purpose) — underlined. */
|
|
7975
|
+
.md3 .fin-cond .cc-terms-link {
|
|
7976
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
7977
|
+
font-weight: 400;
|
|
7978
|
+
font-size: 13px;
|
|
7979
|
+
line-height: 15px;
|
|
7980
|
+
color: #0e2238;
|
|
7981
|
+
text-decoration: underline;
|
|
7982
|
+
}
|
|
7559
7983
|
.md3 .fin-rate-main > div {
|
|
7560
7984
|
flex-wrap: wrap;
|
|
7561
7985
|
}
|
|
@@ -9278,3 +9702,82 @@ color: #005CFF;
|
|
|
9278
9702
|
grid-template-columns: repeat(4, 1fr);
|
|
9279
9703
|
}
|
|
9280
9704
|
}
|
|
9705
|
+
|
|
9706
|
+
/* ==========================================================================
|
|
9707
|
+
CarCard (libs/packages/fe-ui-core-autobahn/cards/CarCard.tsx) — the grid
|
|
9708
|
+
card reused on VDP's "Ähnliche Fahrzeuge" section (VehicleDetailedNextPage
|
|
9709
|
+
.vdp-similar / .cards-3) — desktop-only pixel-match to Figma "Component |
|
|
9710
|
+
Car Card | Desktop", file 2U6FNIz6STpwSBoqvLIKRV:
|
|
9711
|
+
- Finanzierung tab active → node 245:752
|
|
9712
|
+
- Leasing tab active → node 318:1366
|
|
9713
|
+
- Kaufen tab active → node 331:1891
|
|
9714
|
+
Confirmed with the user: only the price/rating block actually changes with
|
|
9715
|
+
the active tab — the image treatment/gallery-nav differences between the
|
|
9716
|
+
3 frames are just 3 different demo cars' own data, not a tab-driven
|
|
9717
|
+
restyle, so those are intentionally left alone here.
|
|
9718
|
+
Mobile AND tablet are untouched: `.cards-3` itself drops to 2 columns at
|
|
9719
|
+
<=1024px (existing rule above), so "desktop" here starts at 1025px — every
|
|
9720
|
+
rule below is inside that query, and every selector requires
|
|
9721
|
+
`.cc-card`/`.cc-price` so nothing here can leak into any other
|
|
9722
|
+
`.mcard`/`.statchip`/`.neu-badge`/etc. usage elsewhere on the site.
|
|
9723
|
+
========================================================================== */
|
|
9724
|
+
@media (min-width: 1025px) {
|
|
9725
|
+
/* card shell: 18px corners, #d4dde7 border, resting elevation (Figma shows this shadow at
|
|
9726
|
+
rest, not just on hover — the existing .mcard--interactive:hover elevation is untouched). */
|
|
9727
|
+
.md3 .cc-card {
|
|
9728
|
+
border-radius: 18px;
|
|
9729
|
+
border-color: #d4dde7;
|
|
9730
|
+
box-shadow: 0px 3px 14px 0px rgba(14, 34, 56, 0.09);
|
|
9731
|
+
}
|
|
9732
|
+
|
|
9733
|
+
/* favorite heart + top-left badge stack position (Figma: heart top15/right11 of a 362-wide
|
|
9734
|
+
card; badge stack starts top15, row gap 8 between the chip row and the Angebot badge). */
|
|
9735
|
+
.md3 .cc-card .cc-fav {
|
|
9736
|
+
top: 15px !important;
|
|
9737
|
+
right: 11px !important;
|
|
9738
|
+
}
|
|
9739
|
+
.md3 .cc-card .cc-badges {
|
|
9740
|
+
top: 15px !important;
|
|
9741
|
+
}
|
|
9742
|
+
|
|
9743
|
+
/* hero price — Figma's rate figure (Finanzierung/Leasing) is much larger than the shared
|
|
9744
|
+
.cc-price sizing; the flat purchase price (Kaufen, .pp-hero--buy) stays smaller since real
|
|
9745
|
+
purchase prices run 5-6 digits and would overflow the card at the rate-sized figure. */
|
|
9746
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-val {
|
|
9747
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
9748
|
+
font-weight: 700;
|
|
9749
|
+
font-size: 52px;
|
|
9750
|
+
line-height: 58px;
|
|
9751
|
+
color: #005cff;
|
|
9752
|
+
}
|
|
9753
|
+
/* 6-digit purchase price (e.g. 113.249 €) shrinks further so it still fits. */
|
|
9754
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-val.pp-hero-val--buy-len6 {
|
|
9755
|
+
font-size: 48px;
|
|
9756
|
+
line-height: 54px;
|
|
9757
|
+
}
|
|
9758
|
+
/* 7-digit purchase price (e.g. 1.553.249 €) shrinks even further. */
|
|
9759
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-val.pp-hero-val--buy-len7 {
|
|
9760
|
+
font-size: 43px;
|
|
9761
|
+
line-height: 47px;
|
|
9762
|
+
}
|
|
9763
|
+
|
|
9764
|
+
/* Finanzierung/Leasing/Kaufen tabs — Figma: only the ACTIVE tab is bold + Deep Navy #0e2238
|
|
9765
|
+
inactive text (the shared .fin-tab rule bolds both and uses #111820, since the VDP
|
|
9766
|
+
finance-calculator tabs it's shared with want both bold there); base divider and active
|
|
9767
|
+
underline are literal Figma tokens (#d4dde7 divider, #005cff underline with 2px-rounded
|
|
9768
|
+
ends), not the site-wide --md-outline-variant/--md-primary shades. */
|
|
9769
|
+
.md3 .cc-price .fin-tabs {
|
|
9770
|
+
border-bottom-color: #d4dde7;
|
|
9771
|
+
}
|
|
9772
|
+
.md3 .cc-price .fin-tab {
|
|
9773
|
+
font-weight: 400;
|
|
9774
|
+
color: #0e2238;
|
|
9775
|
+
}
|
|
9776
|
+
.md3 .cc-price .fin-tab.on {
|
|
9777
|
+
font-weight: 700;
|
|
9778
|
+
color: #005cff;
|
|
9779
|
+
border-bottom-width: 3px;
|
|
9780
|
+
border-bottom-left-radius: 2px;
|
|
9781
|
+
border-bottom-right-radius: 2px;
|
|
9782
|
+
}
|
|
9783
|
+
}
|