Rollende Zeitraeume, zwei Gesten, CI-Symbole und das Screening faellt nach (2026.9.2.8-.12)

Gemeldet vom Eigentuemer an der realen Instanz, in einem Zug abgearbeitet.

STATISTIK. "Monat kleiner als Woche" war kein Rechenfehler, sondern die
Definition: am 02.09. begann die Kalenderwoche am 31.08., der Monat erst am
01.09. Umgestellt auf rollende Fenster (1/7/30/365 Tage), damit 1 ⊂ 7 ⊂ 30 ⊂
365 an jedem Tag gilt. "Jahr" meint damit nicht mehr das Kalenderjahr - so
entschieden. Zwei neue Tests halten die Verschachtelung fest.

Aus dem Langzeitverbrauch sind Herleitung und Erklaerabsatz aus der ANSICHT
genommen, nicht aus der Rechnung; das Datum des letzten Tankstops ebenfalls.

UEBERSICHT. Unter "Letzter Tankvorgang" steht das Datum statt der Tankstelle.

BILDER. Die Draufsicht war der einzige sichtbare Bildplatz ohne Zugang -
bilder.py kannte den Dateinamen, BILDER/BILDPLAETZE nicht. Jetzt ein Platz wie
jeder andere. Die Vorschau in den Einstellungen schneidet Fotos nicht mehr an,
und der Bildbereich der Fahrzeugseite steht eingerueckt statt randlos.

ZAHNRAD. Es lag mit seiner 44px-Trefferflaeche 21px im Kachelinhalt und fing
die obere Haelfte des ersten Knopfes ab (Versicherung, "Inland"). Die Kopfzeile
bekommt jetzt die Hoehe, die es braucht.

SCREENING. Lief ausschliesslich bei einer Aenderung des Kilometerstands, also
nur waehrend der Fahrt - im Stand blieben Ortsnamen und Verbrauch liegen. Jetzt
zusaetzlich einmal nach dem Start, und danach faellt es selbst nach, solange
ein Lauf sein Ortsbudget aufbraucht UND dabei etwas aufloest. Kein Dauertakt:
die Kette endet, sobald ein Lauf mit uebrigem Budget durchkommt.

GESTEN. Zum Loeschen nach links wischen, jetzt auch im Radarchiv (das Panel
hatte die Mechanik, das Archiv war nie angeschlossen; die App hatte sie gar
nicht). Vom linken Rand nach rechts wischen = zurueck, jetzt auch in der App,
mit denselben Zahlen wie im Panel und in beiden mit sichtbarer Rueckmeldung.

CI-SYMBOLE. Das Kachel-Zahnrad ist settings-s - im Panel stand der Pfad
sechsmal wortgleich im Markup, jetzt einmal als CI.settingsS. Das
handgezeichnete Zahnrad der Seitenleiste ist ersetzt und geloescht. Die
Zapfsaeule des Tanken-Reiters ist fuel-station-s, Faktor 0,84 um die
Rastermitte - live per getBBox() gemessen, damit sie auf dieselbe senkrechte
Spanne kommt wie Statistik.

Zurueckgenommen: die Titel der Unterseiten stehen wieder mittig. Zentriert ist
Apples HIG fuer Navigationsleisten; die linksbuendigen Titel sind die der
Hauptbereiche und folgen der anderen Regel.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-02 15:48:24 +02:00
co-authored by Claude Opus 5
parent e28abdce25
commit 38e7731a3d
23 changed files with 911 additions and 135 deletions
+97 -2
View File
@@ -323,6 +323,86 @@ input[type="date"].dm-eingabe {
display: none;
}
/* Die Vorschau in den Einstellungen zeigt das ganze Foto.
Vorher galt der Regelkasten 4:3 mit object-fit:cover - ein Foto anderen
Formats wurde oben und unten beschnitten, bei der Frontansicht besonders
deutlich (gemeldet 02.09.2026). Wer prüfen will, ob das richtige Bild
hochgeladen ist, muss es ganz sehen. Dieselbe Entscheidung wie beim
Fahrzeugfoto der Übersicht (.carfix.klein im Panel): das Bild bestimmt die
Höhe, nicht der Kasten. Nur der Platzhalter behält ein festes Verhältnis,
er hat ja keines von sich aus. */
.dm-einstellbild .ads-bildbox {
aspect-ratio: auto;
height: auto;
}
.dm-einstellbild .ads-bildbox img {
height: auto;
}
.dm-einstellbild .ads-bildbox:has(.ads-platzhalter) {
aspect-ratio: 4 / 3;
}
/* Die Draufsicht auf der Fahrzeugseite ist eine Beigabe, keine Szene: sie
steht über den Sicherheitszeilen und soll die Zeilen nicht nach unten
drängen. Statt randlos über die volle Breite (rund 374px auf einem Telefon,
mit 16:8 also 187px hoch) steht sie eingerückt und mittig — 60% Breite, die
Höhe geht im selben Verhältnis mit auf rund 112px zurück. Auf Ansage des
Eigentümers am 02.09.2026 („Draufsicht-Foto Bereich ist zu groß"):
schmaler, nicht flacher — flacher hätte bei einem Foto, das nicht sehr
breit ist, oben und unten geschnitten. Gleichlautend .szene.bleed.schmal
im Panel. Der :has()-Zweig oben setzt die Ränder bereits auf 0, wenn kein
Foto da ist; hier gilt es unabhängig davon. */
.dm-szene--schmal {
/* Der Abstand zum Fahrzeug kommt jetzt aus dem Layout, nicht aus leerem
Bildrand: das Foto ist seit dem 02.09.2026 freigestellt und eng
beschnitten. Oben und unten Luft wie im Vorbild des Eigentümers. */
margin: 0;
padding: 22px 0 26px;
}
.dm-szene--schmal .ads-bildbox {
width: 60%;
margin: 0 auto;
}
/* Zum Löschen nach links wischen (WischLoeschen in bausteine.tsx).
Der Knopf liegt fest hinter dem Inhalt, verschoben wird nur der Inhalt
darüber — deshalb braucht er einen DECKENDEN Grund, sonst schiene das Rot
hindurch. --tile ist der Grund der Kachel, in der die Zeile sitzt.
touch-action: pan-y sagt dem Browser, dass die waagerechte Achse uns
gehört: senkrecht scrollt er weiter selbst, waagerecht wartet er auf uns,
statt die Geste nach ein paar Pixeln zu übernehmen. */
.dm-wisch {
position: relative;
overflow: hidden;
}
.dm-wisch__loeschen {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 88px;
border: 0;
padding: 0;
background: var(--bad);
color: #fff;
font: inherit;
font-size: 15px;
cursor: pointer;
}
.dm-wisch__inhalt {
position: relative;
background: var(--tile);
touch-action: pan-y;
}
.dm-szene .ads-bild,
.dm-szene img {
width: 100%;
@@ -411,10 +491,25 @@ button.dm-serviceblock:active {
padding-right: 44px;
}
/* Das Zahnrad ist 44px hoch (Trefferfläche), die Überschrift darunter nur
12px. Ohne reservierte Zeile ragte es also 20px in den Kachelinhalt und lag
sichtbar auf dem ersten Knopf - auf der Versicherungsseite auf "Inland ·
<Nummer>", von dort auch gemeldet (02.09.2026). Es fing dessen obere Hälfte
ab: der Knopf ließ sich am oberen Rand nicht wählen.
Statt das Zahnrad zu verkleinern (44px sind die Mindestgröße einer
Trefferfläche) bekommt die Kopfzeile die Höhe, die es braucht. Gleiche
Regel im Panel (.tile:has(> .zahnrad)). */
.dm-kachel--zahnrad > .ads-eyebrow:first-child,
.dm-kachel--zahnrad > .ads-title:first-child {
min-height: 34px;
padding-right: 48px;
}
.dm-zahnrad {
position: absolute;
top: 11px;
right: 11px;
top: 8px;
right: 8px;
width: 44px;
height: 44px;
display: inline-flex;