diff --git a/src/components/charts/trend-card.tsx b/src/components/charts/trend-card.tsx index 68fdc94a4..c7dfa5a00 100644 --- a/src/components/charts/trend-card.tsx +++ b/src/components/charts/trend-card.tsx @@ -211,20 +211,52 @@ export function TrendCard({ return (
-
- + {/* v1.4.25 W20a — single-line discipline + deterministic height for + the heading row so the value row below sits at the same baseline + across every tile. The label is locale-abbreviated upstream (see + `dashboard.*Short` keys) so `truncate` is a layout safeguard + rather than the primary defence against wraps. `h-5` matches + `text-xs leading-5` ≈ 20 px; identical across every tile. */} +
+ {label}
-
- + {/* v1.4.25 W20a — baseline-aligned value row. The headline value, + unit, and trend arrow share a single flex line with + `items-baseline` so the digits line up at the same y-coordinate + across every tile in the strip (Weight 80 kg vs. BP 122 mmHg used + to land at different heights when one tile had a one-line heading + and another had a two-line wrap). The arrow slot is always + present — when there is no slope yet, a muted "—" placeholder + renders so the value row keeps a deterministic width. Marc's + ask: "rechts neben der Zahl … der Pfeil [ist], wie gerade der + Trend ist". */} +
+ {latest !== null ? renderPair(latest, secondary?.latest) : "—"} - + {unit} - {slope30 && } +
{/* v1.4.16 phase B8 — comparison delta callout. Sits on its own line below the latest value so the tile stays scannable on