diff --git a/web/src/finance.css b/web/src/finance.css index 042e86b..66f9f3b 100644 --- a/web/src/finance.css +++ b/web/src/finance.css @@ -229,6 +229,56 @@ .account-row:last-child { border-bottom: none; } + +/* Die Kategorie-Auswahl ist `width: 100%` – als Flex-Element heisst das „ich + brauche die ganze Zeile", und alles daneben wird bis zum Umbruch + zusammengedrückt. In einer Listenzeile bekommt sie deshalb eine eigene + Breite, die nur noch schrumpfen darf. */ +.account-row .catsel { + flex: 0 1 clamp(180px, 26%, 300px); + width: auto; + /* Ohne das schrumpft ein Flex-Element nie unter die Breite seines längsten + Wortes – die Auswahl bliebe breiter als vorgesehen und schöbe die Knöpfe + aus der Zeile. Der Text darin kürzt sich selbst mit „…". */ + min-width: 0; +} +/* Der Abstand darüber ist für Formulare gedacht, wo die Auswahl unter ihrer + Beschriftung steht. In einer mittig ausgerichteten Zeile verrutscht sie nur. */ +.account-row .catsel-btn { + margin-top: 0; +} +/* Beträge in einer Spalte statt ausgefranst. */ +.account-row .money { + flex: 0 0 auto; + min-width: 104px; + white-space: nowrap; +} +/* Der Name nimmt den übrigen Platz. Nicht mit „…" abschneiden: Die Texte + sollen sich weiterhin vollständig markieren und kopieren lassen. */ +.account-row .named-text { + flex: 1 1 auto; + min-width: 0; +} + +@media (max-width: 820px) { + /* Auf dem Telefon passt das nicht in eine Zeile. Zwei Zeilen: oben Name und + Betrag, darunter Auswahl und Knöpfe. Die Prozentwerte sind die Bruchstelle + – sie sind gross genug, dass unten kein Platz mehr für Name und Betrag + bleibt, und klein genug, dass die Knöpfe neben der Auswahl bleiben. */ + .account-row { + flex-wrap: wrap; + row-gap: var(--sp-2); + } + .account-row .named-text { + flex: 1 1 50%; + } + .account-row .money { + min-width: 0; + } + .account-row .catsel { + flex: 1 1 40%; + } +} .row-actions { display: flex; gap: 4px; diff --git a/web/src/pages/Eingang.jsx b/web/src/pages/Eingang.jsx index 2b85c98..00a3388 100644 --- a/web/src/pages/Eingang.jsx +++ b/web/src/pages/Eingang.jsx @@ -116,7 +116,12 @@ export default function Eingang() {
{item.payee || t("inbox.noText")}
- {formatDate(item.date)} · {konto?.name || "—"} + {/* Jede Angabe für sich unzertrennlich: Auf dem Telefon + brach sonst „Revolut CHF" um oder wurde gekürzt – und + genau die Währung im Namen unterscheidet die Konten. */} + {formatDate(item.date)} + {" · "} + {konto?.name || "—"} {item.source === "shortcut" && ` · ${t("inbox.viaShortcut")}`} {item.source === "mail" && ` · ${t("inbox.viaMail")}`} {item.status === "unclear" && ` · ${t("inbox.unclear")}`}