@bytebrand/fe-ui-core-autobahn 1.0.48 → 1.0.50
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/package.json +1 -1
- package/theme/md3.css +7 -1
- package/vdp/FinanceCalculator.tsx +33 -16
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytebrand/fe-ui-core-autobahn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.50",
|
|
4
4
|
"description": "auto.de md3 (Autobahn) design system — UI primitives, cards, chrome, VDP modules, theme CSS and locales. Ships raw TypeScript source (like fe-ui-core before it); each consumer's bundler compiles it.",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"license": "UNLICENSED",
|
package/theme/md3.css
CHANGED
|
@@ -1405,7 +1405,9 @@
|
|
|
1405
1405
|
/* mobile-only "first screen": identity + trust row BEFORE the finance card, highlights/
|
|
1406
1406
|
condition tiles moved AFTER it (both split out of the desktop-only VdpHeaderCard,
|
|
1407
1407
|
which stays bundled inside .vdp-gallery, hidden on mobile via hide-mobile). */
|
|
1408
|
-
|
|
1408
|
+
/* no extra margin — .vdp-grid's uniform gap is THE spacing between all mobile blocks
|
|
1409
|
+
(round 14: a stray 4px here made the summary→card gap bigger than the rest) */
|
|
1410
|
+
.md3 .vdp-header-summary { order: 2; padding: 0; }
|
|
1409
1411
|
.md3 .vdp-aside { order: 3; }
|
|
1410
1412
|
/* no extra margin-top — .vdp-grid's own gap (14px, set further below) already spaces every
|
|
1411
1413
|
mobile card uniformly; an added margin here stacked ON TOP of that gap, making the gap
|
|
@@ -1661,6 +1663,10 @@
|
|
|
1661
1663
|
.md3 .fin-modal-body > .show-mobile { min-height: 56vh; }
|
|
1662
1664
|
/* inactive mode tabs are dark + bold on phone (Figma) */
|
|
1663
1665
|
.md3 .fin-tab:not(.on) { color: var(--fig-navy); font-weight: 700; }
|
|
1666
|
+
/* round 14: ONE uniform 14px rhythm between ALL mobile blocks — the details column used the
|
|
1667
|
+
desktop 22px gap and the below-grid sections carried inline 24/44px top margins */
|
|
1668
|
+
.md3 .vdp-details { gap: 14px; }
|
|
1669
|
+
.md3 .hiw-section, .md3 #vdp-kontakt, .md3 #vdp-bewertungen, .md3 .vdp-similar { margin-top: 14px !important; }
|
|
1664
1670
|
/* condition tiles: Figma value size + roomier gap to the pills above */
|
|
1665
1671
|
.md3 .zustand-tile .md-title-sm { font-size: 16.5px; }
|
|
1666
1672
|
.md3 .vdp-header-extras .zustand-grid { margin-top: 10px; }
|
|
@@ -395,29 +395,46 @@ const FinanceCalculator: React.FunctionComponent<FinanceCalculatorProps> = ({
|
|
|
395
395
|
{/* col 1 row 1: hero rate — Figma: "329 €" all-big, then a small stacked column with
|
|
396
396
|
the struck old rate ABOVE "/mtl." (round 11; was a single baseline row) */}
|
|
397
397
|
<div className="fin-rate-main">
|
|
398
|
-
{/* mobile Kaufen (Figma round 14): struck list price ABOVE the price, right-aligned
|
|
399
|
-
replaces the Festpreis + UVP lines, which stay desktop-only */}
|
|
398
|
+
{/* mobile Kaufen (Figma round 14): struck list price ABOVE the price, right-aligned,
|
|
399
|
+
tight to the figure — replaces the Festpreis + UVP lines, which stay desktop-only */}
|
|
400
400
|
{isCash && showStrike && (
|
|
401
|
-
<div className="show-mobile" style={{ justifyContent: 'flex-end' }}>
|
|
401
|
+
<div className="show-mobile" style={{ justifyContent: 'flex-end', lineHeight: 1, marginBottom: -5 }}>
|
|
402
402
|
<s className="num fin-rate-old">{eur(listPrice as number)} €</s>
|
|
403
403
|
</div>
|
|
404
404
|
)}
|
|
405
405
|
<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
|
|
406
|
-
<span
|
|
407
|
-
className="num"
|
|
408
|
-
style={{ fontSize: 48, fontWeight: 800, color: 'var(--md-primary)', letterSpacing: '-2px' }}
|
|
409
|
-
>
|
|
410
|
-
{/* cash keeps the long price number-only (a big "13.249 €" overflows the grid cell) */}
|
|
411
|
-
{isCash ? eur(price) : `${eur(Math.round(monthly))} €`}
|
|
412
|
-
</span>
|
|
413
406
|
{isCash ? (
|
|
414
|
-
|
|
407
|
+
<>
|
|
408
|
+
{/* phone: ONE unbreakable "13.249 €" span (a separate € span wraps to its own
|
|
409
|
+
line); desktop keeps the number + quiet small € pair */}
|
|
410
|
+
<span
|
|
411
|
+
className="num show-mobile"
|
|
412
|
+
style={{ fontSize: 48, fontWeight: 800, color: 'var(--md-primary)', letterSpacing: '-2px', whiteSpace: 'nowrap' }}
|
|
413
|
+
>
|
|
414
|
+
{eur(price)} €
|
|
415
|
+
</span>
|
|
416
|
+
<span
|
|
417
|
+
className="num hide-mobile"
|
|
418
|
+
style={{ fontSize: 48, fontWeight: 800, color: 'var(--md-primary)', letterSpacing: '-2px' }}
|
|
419
|
+
>
|
|
420
|
+
{eur(price)}
|
|
421
|
+
</span>
|
|
422
|
+
<span className="md-body-sm hide-mobile" style={{ fontWeight: 600 }}>€</span>
|
|
423
|
+
</>
|
|
415
424
|
) : (
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
425
|
+
<>
|
|
426
|
+
<span
|
|
427
|
+
className="num"
|
|
428
|
+
style={{ fontSize: 48, fontWeight: 800, color: 'var(--md-primary)', letterSpacing: '-2px' }}
|
|
429
|
+
>
|
|
430
|
+
{eur(Math.round(monthly))} €
|
|
431
|
+
</span>
|
|
432
|
+
<span className="fin-rate-unit">
|
|
433
|
+
{/* struck old rate (REAL oldMonthlyInstallment; SRP strikes the same source) */}
|
|
434
|
+
{oldMonthly != null && <s className="num fin-rate-old">{eur(Math.round(oldMonthly))} €</s>}
|
|
435
|
+
<span>{t('autobahn:finance.perMonth')}</span>
|
|
436
|
+
</span>
|
|
437
|
+
</>
|
|
421
438
|
)}
|
|
422
439
|
</div>
|
|
423
440
|
{isCash && <div className="md-label-sm hide-mobile">{t('autobahn:finance.fixedPrice')}</div>}
|