@bytebrand/fe-ui-core-autobahn 1.0.60 → 1.0.61
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/cardParts.tsx +268 -19
- package/cards/index.ts +4 -0
- package/cards/types.ts +7 -0
- package/constants.ts +31 -31
- 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 +537 -51
- package/utils/financeFormat.ts +62 -62
- package/utils/priceRating.ts +58 -58
- 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,52 @@ line-height: 31px;
|
|
|
3933
3932
|
font-weight: 600;
|
|
3934
3933
|
white-space: nowrap;
|
|
3935
3934
|
}
|
|
3935
|
+
/* Car Card gallery overlay pills (Figma "Vehicle Gallery / Photos Button" node 281:1016 and
|
|
3936
|
+
"Push Chips / Likes" node 297:1037) — light glass pill, distinct from the dark `.imglabel`
|
|
3937
|
+
used elsewhere (VDP main gallery) and from the older `.gallery-pill` iteration above. */
|
|
3938
|
+
.md3 .cc-photo-pill {
|
|
3939
|
+
display: inline-flex;
|
|
3940
|
+
align-items: center;
|
|
3941
|
+
gap: 3px;
|
|
3942
|
+
height: 30px;
|
|
3943
|
+
padding: 0 12px;
|
|
3944
|
+
border-radius: 16px;
|
|
3945
|
+
background: rgba(245, 247, 250, 0.5);
|
|
3946
|
+
border: 1px solid #E5EAF0;
|
|
3947
|
+
backdrop-filter: blur(2px);
|
|
3948
|
+
color: #111820;
|
|
3949
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
3950
|
+
font-weight: 700;
|
|
3951
|
+
font-size: 12px;
|
|
3952
|
+
white-space: nowrap;
|
|
3953
|
+
cursor: pointer;
|
|
3954
|
+
transition: background var(--dur-1) var(--ease-standard), border-color var(--dur-1) var(--ease-standard);
|
|
3955
|
+
}
|
|
3956
|
+
.md3 .cc-photo-pill:hover {
|
|
3957
|
+
background: rgba(245, 247, 250, 0.85);
|
|
3958
|
+
border-color: #d4dde7;
|
|
3959
|
+
}
|
|
3960
|
+
.md3 .cc-activity-pill {
|
|
3961
|
+
display: inline-flex;
|
|
3962
|
+
align-items: center;
|
|
3963
|
+
gap: 13px;
|
|
3964
|
+
height: 30px;
|
|
3965
|
+
padding: 0 12px;
|
|
3966
|
+
border-radius: 16px;
|
|
3967
|
+
background: rgba(245, 247, 250, 0.5);
|
|
3968
|
+
border: 1px solid #E5EAF0;
|
|
3969
|
+
backdrop-filter: blur(2px);
|
|
3970
|
+
white-space: nowrap;
|
|
3971
|
+
}
|
|
3972
|
+
.md3 .cc-activity-pill-item {
|
|
3973
|
+
display: inline-flex;
|
|
3974
|
+
align-items: center;
|
|
3975
|
+
gap: 2px;
|
|
3976
|
+
color: #1D2A38;
|
|
3977
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
3978
|
+
font-weight: 700;
|
|
3979
|
+
font-size: 12px;
|
|
3980
|
+
}
|
|
3936
3981
|
.md3 .listcard-info {
|
|
3937
3982
|
padding: 16px 18px;
|
|
3938
3983
|
display: flex;
|
|
@@ -4214,11 +4259,25 @@ line-height: 31px;
|
|
|
4214
4259
|
/* struck-through reference rate/price shown next to the tabbed hero price (Figma card) —
|
|
4215
4260
|
same red strike as .pp-old, sized for the hero context rather than the compact list row. */
|
|
4216
4261
|
.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
4262
|
.md3 .pp-hero-terms { margin-top: 9px; font-size: 11.5px; color: var(--md-on-surface-variant); }
|
|
4219
4263
|
/* "Details" link at the end of the financing/leasing terms lines (Figma "mcard") — quiet, same
|
|
4220
4264
|
color as the rest of the terms line but underlined so it still reads as tappable. */
|
|
4221
4265
|
.md3 .pp-details-link { color: var(--md-primary); text-decoration: underline; font-weight: 600; white-space: nowrap; }
|
|
4266
|
+
/* z.B./old-rate/unit column beside the CarCard hero figure — mirrors .fin-rate-unit
|
|
4267
|
+
(FinanceCalculator.tsx/md3.css) exactly; only used inside .cc-price's PriceHero. */
|
|
4268
|
+
.md3 .pp-hero-unit-group {
|
|
4269
|
+
display: flex;
|
|
4270
|
+
flex-direction: column;
|
|
4271
|
+
line-height: 1.25;
|
|
4272
|
+
font-size: 14px;
|
|
4273
|
+
font-weight: 600;
|
|
4274
|
+
color: var(--md-on-surface-variant);
|
|
4275
|
+
flex: none;
|
|
4276
|
+
}
|
|
4277
|
+
.md3 .cc-price .pp-hero-rate {
|
|
4278
|
+
align-items: center;
|
|
4279
|
+
flex-wrap: nowrap;
|
|
4280
|
+
}
|
|
4222
4281
|
/* separator line between the financing block and the leasing row (legacy-design parity) */
|
|
4223
4282
|
.md3 .pp-lease-row {
|
|
4224
4283
|
margin-top: 16px;
|
|
@@ -4360,14 +4419,362 @@ line-height: 31px;
|
|
|
4360
4419
|
/* grid Car Card price block (Figma "Component | Car Card | Desktop") — the hero price/tabs are
|
|
4361
4420
|
much larger here than the shared .pp-hero-* sizing used to give them (those classes are only
|
|
4362
4421
|
consumed inside .cc-price now, so bumping them here is safe). */
|
|
4422
|
+
.md3 .cc-card .md-title {
|
|
4423
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4424
|
+
font-style: normal;
|
|
4425
|
+
font-weight: 700;
|
|
4426
|
+
font-size: 24px;
|
|
4427
|
+
line-height: 27px;
|
|
4428
|
+
color: #0e2238;
|
|
4429
|
+
margin-bottom: 6px;
|
|
4430
|
+
}
|
|
4431
|
+
.md3 .cc-card .md-body-sm {
|
|
4432
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4433
|
+
font-style: normal;
|
|
4434
|
+
font-weight: 400;
|
|
4435
|
+
font-size: 13px;
|
|
4436
|
+
line-height: 17px;
|
|
4437
|
+
color: #0e2238;
|
|
4438
|
+
margin-bottom: 6px;
|
|
4439
|
+
}
|
|
4440
|
+
/* SpecLine is only ever used by CarCard (not CarRow) — safe to reach into its inline
|
|
4441
|
+
font-size/color with !important rather than plumbing a style-override prop through it. */
|
|
4442
|
+
.md3 .cc-card .cc-spec {
|
|
4443
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4444
|
+
font-weight: 400;
|
|
4445
|
+
font-size: 11px !important;
|
|
4446
|
+
line-height: 15px;
|
|
4447
|
+
color: #1d2a38 !important;
|
|
4448
|
+
margin-bottom: 10px;
|
|
4449
|
+
}
|
|
4450
|
+
/* deal chips (Ersparnis / -X% / 0€ Anzahlung) — Figma: 30px tall pill (15px radius = half the
|
|
4451
|
+
height), 14px bold, a tint of the icon/text color (~20% bg, ~5% border). Was previously gated
|
|
4452
|
+
to min-width:1025px (mobile fell back to the plain-JSX solid-fill/white-pill treatment);
|
|
4453
|
+
applied at every width now so mobile CarCard matches too. */
|
|
4454
|
+
.md3 .cc-card .cc-badges {
|
|
4455
|
+
gap: 8px !important;
|
|
4456
|
+
}
|
|
4457
|
+
.md3 .cc-card .deal-chip {
|
|
4458
|
+
height: 30px !important;
|
|
4459
|
+
padding: 0 10px !important;
|
|
4460
|
+
border-radius: 15px !important;
|
|
4461
|
+
font-size: 14px !important;
|
|
4462
|
+
font-weight: 700 !important;
|
|
4463
|
+
box-shadow: none !important;
|
|
4464
|
+
border: 1px solid transparent;
|
|
4465
|
+
}
|
|
4466
|
+
.md3 .cc-card .deal-chip--drop {
|
|
4467
|
+
background: rgba(17, 110, 57, 0.2) !important;
|
|
4468
|
+
border-color: rgba(17, 110, 57, 0.05);
|
|
4469
|
+
color: #116e39 !important;
|
|
4470
|
+
}
|
|
4471
|
+
.md3 .cc-card .deal-chip--percent {
|
|
4472
|
+
background: rgba(217, 45, 32, 0.2) !important;
|
|
4473
|
+
border-color: rgba(217, 45, 32, 0.05);
|
|
4474
|
+
color: #d92d20 !important;
|
|
4475
|
+
}
|
|
4476
|
+
.md3 .cc-card .deal-chip--zerodown {
|
|
4477
|
+
background: rgba(0, 92, 255, 0.2) !important;
|
|
4478
|
+
border-color: rgba(0, 92, 255, 0.05);
|
|
4479
|
+
color: #005cff !important;
|
|
4480
|
+
}
|
|
4481
|
+
/* NEU badge — Figma: amber tint pill, not the mobile solid-primary-blue pill */
|
|
4482
|
+
.md3 .cc-card .neu-badge {
|
|
4483
|
+
height: 30px;
|
|
4484
|
+
padding: 0 10px;
|
|
4485
|
+
background: rgba(255, 184, 0, 0.2);
|
|
4486
|
+
border: 1px solid rgba(255, 184, 0, 0.05);
|
|
4487
|
+
color: #ffb800;
|
|
4488
|
+
font-size: 13px;
|
|
4489
|
+
}
|
|
4490
|
+
/* "⚡ Angebot" badge — Figma: black-tinted ROUNDED RECT (10px radius, not a full pill), black
|
|
4491
|
+
text — bigger than and visually distinct from the mobile dark-solid pill. */
|
|
4492
|
+
.md3 .cc-card .offer-badge {
|
|
4493
|
+
height: 30px;
|
|
4494
|
+
padding: 0 10px;
|
|
4495
|
+
border-radius: 10px;
|
|
4496
|
+
background: rgba(0, 0, 0, 0.2);
|
|
4497
|
+
border: 1px solid rgba(0, 0, 0, 0.05);
|
|
4498
|
+
color: #000;
|
|
4499
|
+
font-size: 14px;
|
|
4500
|
+
}
|
|
4501
|
+
.md3 .cc-card .offer-badge .lucide {
|
|
4502
|
+
width: 15px;
|
|
4503
|
+
height: 15px;
|
|
4504
|
+
color: #000;
|
|
4505
|
+
}
|
|
4363
4506
|
.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 .
|
|
4507
|
+
.md3 .cc-price .fin-tab { font-size: 17px; font-weight: 700; padding: 10px 5px; }
|
|
4508
|
+
/* Finanzierung tab price row (Figma "similar cars" card) — matches the VDP finance-calculator's
|
|
4509
|
+
MOBILE .fin-price-grid treatment one-to-one (same rate/old-price/pill typography and colors),
|
|
4510
|
+
by explicit spec. Previously gated to min-width:601px (left the pre-existing mobile .cc-card
|
|
4511
|
+
price row alone); now applied at every width on request, so mobile CarCard matches too. */
|
|
4512
|
+
.md3 .cc-price .pp-eyebrow,
|
|
4513
|
+
.md3 .fin-calc-card .pp-eyebrow {
|
|
4514
|
+
position: relative;
|
|
4515
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4516
|
+
font-style: normal;
|
|
4517
|
+
font-weight: 400;
|
|
4518
|
+
font-size: 8px;
|
|
4519
|
+
line-height: 9px;
|
|
4520
|
+
letter-spacing: normal;
|
|
4521
|
+
text-transform: none;
|
|
4522
|
+
color: #0e2238;
|
|
4523
|
+
margin-bottom: 2px;
|
|
4524
|
+
}
|
|
4525
|
+
/* footnote badge (small bordered circle, not a plain <sup>) pinned to the eyebrow's top-right
|
|
4526
|
+
corner — absolute against .pp-eyebrow's own position:relative above. Shared by the CarCard
|
|
4527
|
+
hero (.cc-price) and the VDP FinanceCalculator's own rate example (.fin-calc-card). */
|
|
4528
|
+
.md3 .cc-price .pp-eyebrow-badge,
|
|
4529
|
+
.md3 .fin-calc-card .pp-eyebrow-badge {
|
|
4530
|
+
display: inline-flex;
|
|
4531
|
+
align-items: center;
|
|
4532
|
+
justify-content: center;
|
|
4533
|
+
position: absolute;
|
|
4534
|
+
top: -5px;
|
|
4535
|
+
right: -8px;
|
|
4536
|
+
border-radius: 50%;
|
|
4537
|
+
width: 12px;
|
|
4538
|
+
height: 11px;
|
|
4539
|
+
background: rgba(255, 255, 255, 0.96);
|
|
4540
|
+
border: 0.5px solid #005cff;
|
|
4541
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4542
|
+
font-style: normal;
|
|
4543
|
+
font-weight: 400;
|
|
4544
|
+
font-size: 8px;
|
|
4545
|
+
line-height: 9px;
|
|
4546
|
+
text-align: center;
|
|
4547
|
+
color: #0e2238;
|
|
4548
|
+
cursor: pointer;
|
|
4549
|
+
}
|
|
4550
|
+
/* mobile-only nudge: same badge, tucked slightly closer to the eyebrow text on narrow cards. */
|
|
4551
|
+
@media (max-width: 1024px) {
|
|
4552
|
+
.md3 .cc-price .pp-eyebrow-badge {
|
|
4553
|
+
top: -5px;
|
|
4554
|
+
right: -5px;
|
|
4555
|
+
}
|
|
4556
|
+
}
|
|
4557
|
+
/* "2" badge (Kaufen, nested in .pp-hero-old instead of .pp-eyebrow) sits closer to the price
|
|
4558
|
+
figure than the "3" badge's own offsets above. */
|
|
4559
|
+
.md3 .cc-price .pp-hero-old .pp-eyebrow-badge,
|
|
4560
|
+
.md3 .fin-calc-card .pp-hero-old .pp-eyebrow-badge {
|
|
4561
|
+
top: -7px;
|
|
4562
|
+
right: -12px;
|
|
4563
|
+
}
|
|
4564
|
+
/* "3" footnote popover — click the badge above to open, the × or an outside click to close. */
|
|
4565
|
+
.md3 .cc-price .pp-uvp-tooltip,
|
|
4566
|
+
.md3 .fin-calc-card .pp-uvp-tooltip {
|
|
4567
|
+
position: absolute;
|
|
4568
|
+
top: 6px;
|
|
4569
|
+
right: -84px;
|
|
4570
|
+
z-index: 20;
|
|
4571
|
+
width: 281px;
|
|
4572
|
+
padding: 10px 12px;
|
|
4573
|
+
border-radius: 15px;
|
|
4574
|
+
background: #c5c6d2;
|
|
4575
|
+
box-shadow: var(--md-e2, 0 4px 12px rgba(0, 0, 0, 0.15));
|
|
4576
|
+
white-space: normal;
|
|
4577
|
+
cursor: default;
|
|
4578
|
+
}
|
|
4579
|
+
/* floating circular close button — overlaps the tooltip's top-right corner from outside,
|
|
4580
|
+
same "glass circle" convention as VdpViewer's close/back/next overlay buttons. */
|
|
4581
|
+
.md3 .cc-price .pp-uvp-tooltip-close,
|
|
4582
|
+
.md3 .fin-calc-card .pp-uvp-tooltip-close {
|
|
4583
|
+
position: absolute;
|
|
4584
|
+
top: -38px;
|
|
4585
|
+
right: -35px;
|
|
4586
|
+
display: flex;
|
|
4587
|
+
align-items: center;
|
|
4588
|
+
justify-content: center;
|
|
4589
|
+
width: 48px;
|
|
4590
|
+
height: 48px;
|
|
4591
|
+
border-radius: 50%;
|
|
4592
|
+
background: rgba(11, 19, 32, 0.35);
|
|
4593
|
+
border: 1.5px solid rgba(255, 255, 255, 0.25);
|
|
4594
|
+
padding: 0;
|
|
4595
|
+
cursor: pointer;
|
|
4596
|
+
}
|
|
4597
|
+
.md3 .cc-price .pp-uvp-tooltip-body,
|
|
4598
|
+
.md3 .fin-calc-card .pp-uvp-tooltip-body {
|
|
4599
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4600
|
+
font-weight: 400;
|
|
4601
|
+
font-size: 11px;
|
|
4602
|
+
line-height: 13px;
|
|
4603
|
+
color: #0e2238;
|
|
4604
|
+
}
|
|
4605
|
+
.md3 .cc-price .pp-hero-val {
|
|
4606
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4607
|
+
font-style: normal;
|
|
4608
|
+
font-weight: 700;
|
|
4609
|
+
font-size: 65px;
|
|
4610
|
+
line-height: 58px;
|
|
4611
|
+
letter-spacing: -2px;
|
|
4612
|
+
color: #005cff;
|
|
4613
|
+
}
|
|
4614
|
+
/* long rates shrink so the hero figure doesn't overflow the card. */
|
|
4615
|
+
.md3 .cc-price .pp-hero-val--len4 {
|
|
4616
|
+
font-size: 50px;
|
|
4617
|
+
line-height: 53px;
|
|
4618
|
+
}
|
|
4619
|
+
.md3 .cc-price .pp-hero-val--len5 {
|
|
4620
|
+
font-size: 43px;
|
|
4621
|
+
line-height: 45px;
|
|
4622
|
+
}
|
|
4623
|
+
.md3 .cc-price .pp-hero-val--len6 {
|
|
4624
|
+
font-size: 37px;
|
|
4625
|
+
line-height: 40px;
|
|
4626
|
+
}
|
|
4627
|
+
/* diagonal red strike (Figma), replacing the native horizontal line-through — shared by the
|
|
4628
|
+
CarCard hero (.cc-price) and the VDP FinanceCalculator's mobile Kaufen old price
|
|
4629
|
+
(.fin-calc-card, .fin-rate-old-list). */
|
|
4630
|
+
.md3 .cc-price .pp-hero-old,
|
|
4631
|
+
.md3 .fin-calc-card .pp-hero-old {
|
|
4632
|
+
position: relative;
|
|
4633
|
+
display: inline-block;
|
|
4634
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4635
|
+
font-style: normal;
|
|
4636
|
+
font-weight: 400;
|
|
4637
|
+
font-size: 17px;
|
|
4638
|
+
line-height: 20px;
|
|
4639
|
+
letter-spacing: 0;
|
|
4640
|
+
color: #0e2238;
|
|
4641
|
+
text-decoration: none;
|
|
4642
|
+
}
|
|
4643
|
+
.md3 .cc-price .pp-hero-old::after,
|
|
4644
|
+
.md3 .fin-calc-card .pp-hero-old::after {
|
|
4645
|
+
content: "";
|
|
4646
|
+
position: absolute;
|
|
4647
|
+
left: -2px;
|
|
4648
|
+
right: -2px;
|
|
4649
|
+
top: 50%;
|
|
4650
|
+
border-top: 2px solid #e60000;
|
|
4651
|
+
transform: rotate(12.53deg);
|
|
4652
|
+
transform-origin: center;
|
|
4653
|
+
}
|
|
4654
|
+
.md3 .cc-price .pp-hero-old--len4,
|
|
4655
|
+
.md3 .fin-calc-card .pp-hero-old--len4 {
|
|
4656
|
+
font-size: 13px;
|
|
4657
|
+
line-height: 17px;
|
|
4658
|
+
}
|
|
4659
|
+
.md3 .cc-price .pp-hero-old--len5,
|
|
4660
|
+
.md3 .fin-calc-card .pp-hero-old--len5 {
|
|
4661
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4662
|
+
font-weight: 400;
|
|
4663
|
+
font-size: 14px;
|
|
4664
|
+
line-height: 16px;
|
|
4665
|
+
color: #0e2238;
|
|
4666
|
+
}
|
|
4667
|
+
.md3 .cc-price .pp-hero-unit {
|
|
4668
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4669
|
+
font-style: normal;
|
|
4670
|
+
font-weight: 700;
|
|
4671
|
+
font-size: 18px;
|
|
4672
|
+
line-height: 21px;
|
|
4673
|
+
color: #5b6b7f;
|
|
4674
|
+
}
|
|
4675
|
+
/* Kaufen: the UVP/old-price group sits ABOVE the hero figure (Figma), not beside it like the
|
|
4676
|
+
Finanzierung/Leasing z.B. column — stack the row and pull the group first via order. */
|
|
4677
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-rate {
|
|
4678
|
+
flex-direction: column;
|
|
4679
|
+
align-items: flex-start;
|
|
4680
|
+
gap: 2px;
|
|
4681
|
+
}
|
|
4682
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-unit-group {
|
|
4683
|
+
order: -1;
|
|
4684
|
+
align-self: flex-end;
|
|
4685
|
+
}
|
|
4686
|
+
/* Preisbewertung pill + segmented tier bar, grouped in one column exactly like the VDP
|
|
4687
|
+
finance-calculator's MOBILE .fin-eval-col (FinanceCalculator.tsx) — replaces the old
|
|
4688
|
+
StatChip pill + full-width gradient .pp-bar (see PriceEvalCol in cardParts.tsx). No
|
|
4689
|
+
grid here (unlike .fin-price-grid), so the 112px column width is set directly instead
|
|
4690
|
+
of via grid-area/grid-template-columns. */
|
|
4691
|
+
.md3 .cc-price .fin-eval-col {
|
|
4692
|
+
display: flex;
|
|
4693
|
+
flex-direction: column;
|
|
4694
|
+
gap: 16px;
|
|
4695
|
+
width: 112px;
|
|
4696
|
+
flex: none;
|
|
4697
|
+
}
|
|
4698
|
+
.md3 .cc-price .fin-eval-pill {
|
|
4699
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4700
|
+
font-style: normal;
|
|
4701
|
+
font-weight: 700;
|
|
4702
|
+
font-size: 12px;
|
|
4703
|
+
line-height: 14px;
|
|
4704
|
+
text-align: center;
|
|
4705
|
+
}
|
|
4706
|
+
.md3 .cc-price .fin-eval-pill--good {
|
|
4707
|
+
background: #dff3e5 !important;
|
|
4708
|
+
border-radius: 11px !important;
|
|
4709
|
+
width: 100%;
|
|
4710
|
+
height: 27px;
|
|
4711
|
+
box-sizing: border-box;
|
|
4712
|
+
justify-content: center;
|
|
4713
|
+
}
|
|
4714
|
+
/* footnote 4 ("Top-Preis" claim) — .fin-eval-pill is a flex container, so vertical-align has
|
|
4715
|
+
no effect on the sup (it's a flex item, not inline content); position:relative/top raises
|
|
4716
|
+
it instead, same technique as the hero price's own 1/2/3 footnote markers. Shared by the
|
|
4717
|
+
CarCard hero (.cc-price) and the VDP FinanceCalculator's own pill (.fin-calc-card). */
|
|
4718
|
+
.md3 .cc-price .fin-eval-pill sup,
|
|
4719
|
+
.md3 .fin-calc-card .fin-eval-pill sup {
|
|
4720
|
+
position: relative;
|
|
4721
|
+
top: 0px;
|
|
4722
|
+
left: -4px;
|
|
4723
|
+
font-size: 9px;
|
|
4724
|
+
line-height: 9px;
|
|
4725
|
+
}
|
|
4726
|
+
.md3 .cc-price .fin-eval-bar {
|
|
4727
|
+
height: 7px;
|
|
4728
|
+
}
|
|
4729
|
+
.md3 .cc-price .fin-eval-seg:first-child {
|
|
4730
|
+
border-radius: 4px 0 0 4px;
|
|
4731
|
+
}
|
|
4732
|
+
.md3 .cc-price .fin-eval-seg:last-of-type {
|
|
4733
|
+
border-radius: 0 4px 4px 0;
|
|
4734
|
+
}
|
|
4735
|
+
.md3 .cc-price .fin-eval-thumb {
|
|
4736
|
+
width: 18px;
|
|
4737
|
+
height: 18px;
|
|
4738
|
+
border-width: 2px;
|
|
4739
|
+
border-radius: 9px;
|
|
4740
|
+
}
|
|
4741
|
+
.md3 .cc-price .fin-eval-thumb--good {
|
|
4742
|
+
border-color: #168a45 !important;
|
|
4743
|
+
}
|
|
4744
|
+
/* financing/leasing terms line + "Finanzierungsdetails"/"Leasingdetails" link (PriceTerms in
|
|
4745
|
+
cardParts.tsx), full-width under the price/rating row. Same quiet typography as .pp-hero-terms
|
|
4746
|
+
(PricePaths); the link resets button chrome and reuses the primary color so it reads as tappable. */
|
|
4747
|
+
.md3 .cc-terms {
|
|
4748
|
+
margin-top: 9px;
|
|
4749
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4750
|
+
font-style: normal;
|
|
4751
|
+
font-weight: 400;
|
|
4752
|
+
font-size: 13px;
|
|
4753
|
+
line-height: 15px;
|
|
4754
|
+
color: #0e2238;
|
|
4755
|
+
}
|
|
4756
|
+
.md3 .cc-terms-dot {
|
|
4757
|
+
display: inline-block;
|
|
4758
|
+
margin: 0 2px;
|
|
4759
|
+
color: #5b6b7f;
|
|
4760
|
+
font-size: 20px;
|
|
4761
|
+
line-height: 0;
|
|
4762
|
+
vertical-align: -2px;
|
|
4763
|
+
}
|
|
4764
|
+
.md3 .cc-terms-link {
|
|
4765
|
+
border: 0;
|
|
4766
|
+
background: none;
|
|
4767
|
+
padding: 0;
|
|
4768
|
+
margin: 0;
|
|
4769
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4770
|
+
font-style: normal;
|
|
4771
|
+
font-weight: 400;
|
|
4772
|
+
font-size: 13px;
|
|
4773
|
+
line-height: 15px;
|
|
4774
|
+
letter-spacing: -0.03em;
|
|
4775
|
+
color: #0e2238;
|
|
4776
|
+
cursor: pointer;
|
|
4777
|
+
}
|
|
4371
4778
|
/* card CTA row (Angebot anfragen / phone / Rate anpassen) — the shared .mbtn padding (0 24px)
|
|
4372
4779
|
and 14px font were sized for full-width VDP buttons; at a ~330-360px card/column width three
|
|
4373
4780
|
buttons with real text at that size overflow their flex share. Scoped-down here only. */
|
|
@@ -4652,6 +5059,14 @@ line-height: 31px;
|
|
|
4652
5059
|
gap: 12px;
|
|
4653
5060
|
flex-wrap: wrap;
|
|
4654
5061
|
}
|
|
5062
|
+
/* "Persönliche Beratung. Wir sind für Sie da!" — mobile .fin-info, icon + one line. */
|
|
5063
|
+
.md3 .fin-info-line {
|
|
5064
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
5065
|
+
font-weight: 400;
|
|
5066
|
+
font-size: 14px;
|
|
5067
|
+
line-height: 16px;
|
|
5068
|
+
color: #0e2238;
|
|
5069
|
+
}
|
|
4655
5070
|
.md3 .fin-id {
|
|
4656
5071
|
font-size: 12px;
|
|
4657
5072
|
color: var(--md-on-surface-variant);
|
|
@@ -6093,7 +6508,7 @@ line-height: 31px;
|
|
|
6093
6508
|
(14px) than the 14/24px desktop default set inline. */
|
|
6094
6509
|
@media (max-width: 600px) {
|
|
6095
6510
|
.md3 .vdp-main {
|
|
6096
|
-
padding:
|
|
6511
|
+
padding: 0 14px 48px !important;
|
|
6097
6512
|
}
|
|
6098
6513
|
.md3 .vdp-push-badges {
|
|
6099
6514
|
gap: 6px;
|
|
@@ -6144,7 +6559,7 @@ background: ;
|
|
|
6144
6559
|
*/
|
|
6145
6560
|
|
|
6146
6561
|
.md3 .push-badge--save {
|
|
6147
|
-
background:
|
|
6562
|
+
background: color-mix(in srgb, #116e39 20%, white);
|
|
6148
6563
|
color: #116e39;
|
|
6149
6564
|
border: 1px solid rgba(17, 110, 57, 0.05);
|
|
6150
6565
|
font-family: Arial, Helvetica, sans-serif;
|
|
@@ -6158,7 +6573,7 @@ background: ;
|
|
|
6158
6573
|
color: #116e39;
|
|
6159
6574
|
}
|
|
6160
6575
|
.md3 .push-badge--discount {
|
|
6161
|
-
background:
|
|
6576
|
+
background: color-mix(in srgb, #d92d20 20%, white);
|
|
6162
6577
|
border: 1px solid rgba(217, 45, 32, 0.05);
|
|
6163
6578
|
color: #D92D20;
|
|
6164
6579
|
font-weight: 700;
|
|
@@ -6169,7 +6584,7 @@ background: ;
|
|
|
6169
6584
|
font-weight: 700;
|
|
6170
6585
|
font-size: 13px;
|
|
6171
6586
|
line-height: 15px;
|
|
6172
|
-
background:
|
|
6587
|
+
background: color-mix(in srgb, #005cff 20%, white);
|
|
6173
6588
|
border: 1px solid rgba(0, 92, 255, 0.05);
|
|
6174
6589
|
border-radius: 15px;
|
|
6175
6590
|
color: #005CFF;
|
|
@@ -6177,7 +6592,7 @@ color: #005CFF;
|
|
|
6177
6592
|
/* NEU badge, as the trailing pill inside the vdp-push-badges row (VDP mobile mockup) —
|
|
6178
6593
|
scoped override, the base .neu-badge above still serves the car-card usage. */
|
|
6179
6594
|
.md3 .vdp-push-badges .neu-badge {
|
|
6180
|
-
background:
|
|
6595
|
+
background: color-mix(in srgb, #ffb800 20%, white);
|
|
6181
6596
|
border: 1px solid rgba(255, 184, 0, 0.05);
|
|
6182
6597
|
border-radius: 15px;
|
|
6183
6598
|
font-weight: 700;
|
|
@@ -6306,34 +6721,6 @@ color: #005CFF;
|
|
|
6306
6721
|
gap: 0;
|
|
6307
6722
|
justify-content: flex-start;
|
|
6308
6723
|
}
|
|
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
6724
|
.md3 .fin-adjust-btn-label {
|
|
6338
6725
|
font-family: Arial, Helvetica, sans-serif;
|
|
6339
6726
|
font-style: normal;
|
|
@@ -7336,6 +7723,24 @@ color: #005CFF;
|
|
|
7336
7723
|
line-height: 58px !important;
|
|
7337
7724
|
color: #005cff !important;
|
|
7338
7725
|
}
|
|
7726
|
+
/* mobile Kaufen UVP-strike text (.pp-hero-old, shared with CarCard) also carries .num for its
|
|
7727
|
+
tabular-nums digits, so the 65px blue hero rule above would otherwise win via !important —
|
|
7728
|
+
repeat with !important here, same technique as .fin-rate-cash-mobile below. */
|
|
7729
|
+
.md3 .fin-rate-main .num.pp-hero-old {
|
|
7730
|
+
font-family: Arial, Helvetica, sans-serif !important;
|
|
7731
|
+
font-weight: 400 !important;
|
|
7732
|
+
font-size: 17px !important;
|
|
7733
|
+
line-height: 20px !important;
|
|
7734
|
+
color: #0e2238 !important;
|
|
7735
|
+
}
|
|
7736
|
+
.md3 .fin-rate-main .num.pp-hero-old.pp-hero-old--len4 {
|
|
7737
|
+
font-size: 13px !important;
|
|
7738
|
+
line-height: 17px !important;
|
|
7739
|
+
}
|
|
7740
|
+
.md3 .fin-rate-main .num.pp-hero-old.pp-hero-old--len5 {
|
|
7741
|
+
font-size: 14px !important;
|
|
7742
|
+
line-height: 16px !important;
|
|
7743
|
+
}
|
|
7339
7744
|
/* Kaufen/Barzahlung tab hero price (mobile) — same family/weight/line-height/color as
|
|
7340
7745
|
the shared .num rule above, just a smaller size for this specific instance. */
|
|
7341
7746
|
.md3 .fin-rate-main .num.fin-rate-cash-mobile {
|
|
@@ -7382,14 +7787,6 @@ color: #005CFF;
|
|
|
7382
7787
|
.md3 .fin-rate-main .fin-rate-hero.fin-rate-hero--len6 {
|
|
7383
7788
|
font-size: 36px !important;
|
|
7384
7789
|
}
|
|
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
7790
|
/* the struck old figure must NOT inherit the new hero rate styling (font, weight,
|
|
7394
7791
|
color, line-height) — only the hero .num itself gets the 65px treatment */
|
|
7395
7792
|
.md3 .fin-rate-main .fin-rate-old {
|
|
@@ -7556,6 +7953,16 @@ color: #005CFF;
|
|
|
7556
7953
|
color: #111820;
|
|
7557
7954
|
margin-bottom: 12px;
|
|
7558
7955
|
}
|
|
7956
|
+
/* "Finanzierungsdetails"/"Leasing-Details" reads as a link here (unlike CarCard's quiet
|
|
7957
|
+
.cc-terms-link, which stays text-colored on purpose) — underlined. */
|
|
7958
|
+
.md3 .fin-cond .cc-terms-link {
|
|
7959
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
7960
|
+
font-weight: 400;
|
|
7961
|
+
font-size: 13px;
|
|
7962
|
+
line-height: 15px;
|
|
7963
|
+
color: #0e2238;
|
|
7964
|
+
text-decoration: underline;
|
|
7965
|
+
}
|
|
7559
7966
|
.md3 .fin-rate-main > div {
|
|
7560
7967
|
flex-wrap: wrap;
|
|
7561
7968
|
}
|
|
@@ -9278,3 +9685,82 @@ color: #005CFF;
|
|
|
9278
9685
|
grid-template-columns: repeat(4, 1fr);
|
|
9279
9686
|
}
|
|
9280
9687
|
}
|
|
9688
|
+
|
|
9689
|
+
/* ==========================================================================
|
|
9690
|
+
CarCard (libs/packages/fe-ui-core-autobahn/cards/CarCard.tsx) — the grid
|
|
9691
|
+
card reused on VDP's "Ähnliche Fahrzeuge" section (VehicleDetailedNextPage
|
|
9692
|
+
.vdp-similar / .cards-3) — desktop-only pixel-match to Figma "Component |
|
|
9693
|
+
Car Card | Desktop", file 2U6FNIz6STpwSBoqvLIKRV:
|
|
9694
|
+
- Finanzierung tab active → node 245:752
|
|
9695
|
+
- Leasing tab active → node 318:1366
|
|
9696
|
+
- Kaufen tab active → node 331:1891
|
|
9697
|
+
Confirmed with the user: only the price/rating block actually changes with
|
|
9698
|
+
the active tab — the image treatment/gallery-nav differences between the
|
|
9699
|
+
3 frames are just 3 different demo cars' own data, not a tab-driven
|
|
9700
|
+
restyle, so those are intentionally left alone here.
|
|
9701
|
+
Mobile AND tablet are untouched: `.cards-3` itself drops to 2 columns at
|
|
9702
|
+
<=1024px (existing rule above), so "desktop" here starts at 1025px — every
|
|
9703
|
+
rule below is inside that query, and every selector requires
|
|
9704
|
+
`.cc-card`/`.cc-price` so nothing here can leak into any other
|
|
9705
|
+
`.mcard`/`.statchip`/`.neu-badge`/etc. usage elsewhere on the site.
|
|
9706
|
+
========================================================================== */
|
|
9707
|
+
@media (min-width: 1025px) {
|
|
9708
|
+
/* card shell: 18px corners, #d4dde7 border, resting elevation (Figma shows this shadow at
|
|
9709
|
+
rest, not just on hover — the existing .mcard--interactive:hover elevation is untouched). */
|
|
9710
|
+
.md3 .cc-card {
|
|
9711
|
+
border-radius: 18px;
|
|
9712
|
+
border-color: #d4dde7;
|
|
9713
|
+
box-shadow: 0px 3px 14px 0px rgba(14, 34, 56, 0.09);
|
|
9714
|
+
}
|
|
9715
|
+
|
|
9716
|
+
/* favorite heart + top-left badge stack position (Figma: heart top15/right11 of a 362-wide
|
|
9717
|
+
card; badge stack starts top15, row gap 8 between the chip row and the Angebot badge). */
|
|
9718
|
+
.md3 .cc-card .cc-fav {
|
|
9719
|
+
top: 15px !important;
|
|
9720
|
+
right: 11px !important;
|
|
9721
|
+
}
|
|
9722
|
+
.md3 .cc-card .cc-badges {
|
|
9723
|
+
top: 15px !important;
|
|
9724
|
+
}
|
|
9725
|
+
|
|
9726
|
+
/* hero price — Figma's rate figure (Finanzierung/Leasing) is much larger than the shared
|
|
9727
|
+
.cc-price sizing; the flat purchase price (Kaufen, .pp-hero--buy) stays smaller since real
|
|
9728
|
+
purchase prices run 5-6 digits and would overflow the card at the rate-sized figure. */
|
|
9729
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-val {
|
|
9730
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
9731
|
+
font-weight: 700;
|
|
9732
|
+
font-size: 52px;
|
|
9733
|
+
line-height: 58px;
|
|
9734
|
+
color: #005cff;
|
|
9735
|
+
}
|
|
9736
|
+
/* 6-digit purchase price (e.g. 113.249 €) shrinks further so it still fits. */
|
|
9737
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-val.pp-hero-val--buy-len6 {
|
|
9738
|
+
font-size: 48px;
|
|
9739
|
+
line-height: 54px;
|
|
9740
|
+
}
|
|
9741
|
+
/* 7-digit purchase price (e.g. 1.553.249 €) shrinks even further. */
|
|
9742
|
+
.md3 .cc-price .pp-hero--buy .pp-hero-val.pp-hero-val--buy-len7 {
|
|
9743
|
+
font-size: 43px;
|
|
9744
|
+
line-height: 47px;
|
|
9745
|
+
}
|
|
9746
|
+
|
|
9747
|
+
/* Finanzierung/Leasing/Kaufen tabs — Figma: only the ACTIVE tab is bold + Deep Navy #0e2238
|
|
9748
|
+
inactive text (the shared .fin-tab rule bolds both and uses #111820, since the VDP
|
|
9749
|
+
finance-calculator tabs it's shared with want both bold there); base divider and active
|
|
9750
|
+
underline are literal Figma tokens (#d4dde7 divider, #005cff underline with 2px-rounded
|
|
9751
|
+
ends), not the site-wide --md-outline-variant/--md-primary shades. */
|
|
9752
|
+
.md3 .cc-price .fin-tabs {
|
|
9753
|
+
border-bottom-color: #d4dde7;
|
|
9754
|
+
}
|
|
9755
|
+
.md3 .cc-price .fin-tab {
|
|
9756
|
+
font-weight: 400;
|
|
9757
|
+
color: #0e2238;
|
|
9758
|
+
}
|
|
9759
|
+
.md3 .cc-price .fin-tab.on {
|
|
9760
|
+
font-weight: 700;
|
|
9761
|
+
color: #005cff;
|
|
9762
|
+
border-bottom-width: 3px;
|
|
9763
|
+
border-bottom-left-radius: 2px;
|
|
9764
|
+
border-bottom-right-radius: 2px;
|
|
9765
|
+
}
|
|
9766
|
+
}
|