Teilen-Blatt, HIG-Blaetter, geteilte Ansichtseinstellungen (2026.8.31.1)
Share-Erweiterung: ein PDF aus Mail landet ueber Teilen -> DataMetric360 als Tankbeleg. Alles Native liegt versioniert unter companion-app/native/, weil ios/ gitignored ist und npx cap add ios es sonst wieder frisst; scripts/ios-teilen-einrichten.mjs haengt es bei jedem Bau ins Xcode-Projekt und ist in ios-signieren.sh eingehaengt. Der pbxproj-Teil ist auf keinem Mac erprobt - er bricht vor dem Schreiben ab, und docs/SHARE_EXTENSION.md beschreibt dieselben Handgriffe fuer Xcode. "In den Kalender uebernehmen" ging in der App nie: WKWebView ignoriert das download-Attribut, der Klick lief ins Leere. Auf dem Geraet jetzt @capacitor/filesystem plus @capacitor/share. useTheme/useBoden legten je Aufrufer eigenen Zustand an - fuenf Kopien. Der Schalter aenderte nur seine eigene, data-theme in App.tsx blieb stehen, die Tag/Nacht-Umschaltung wirkte erst nach einem Neustart. Jetzt ein Speicher je Einstellung ueber useSyncExternalStore. Zwei Regressionstests, gegen den alten Stand als fehlschlagend nachgewiesen. Alle Popups nach Apple HIG: neue Bausteine Sheet und ActionSheet, blickdicht und mit abgedunkeltem Schleier, in beiden Codebasen. Popup portalierte nach document.body - ausserhalb von [data-theme] - und war deshalb im Tagmodus fast unsichtbar; Portal zielt jetzt auf .ads-root. ImagePlaceholder merkte sich "fehlgeschlagen" ohne die Adresse: nach einem leeren Galerieplatz zeigten auch die mit Foto nur noch den Platzhalter. Vier Regressionstests, ebenfalls gegen den alten Stand geprueft. Bildadressen tragen jetzt einen Cache-Brecher - HA liefert /local/ mit 31 Tagen Cache-Vorgabe aus, im Panel eingefuegte Radfotos erschienen in der App deshalb nicht. uebersichtsbild: Panel speichert den Namen, die App verglich gegen den Dateinamen - der Vergleich traf nie zu. Kanonisch ist der Name. Weiter: Navigationspfeil statt gleichschenkligem Dreieck auf der Streckenlinie (die Kerbe unterscheidet Kopf und Ende), CI-Symbol tour-s als Fahrten-Icon, Datumsfelder zeigen ihren Wert ohne erstes Antippen, feste Beispielnamen im Setup, Kopf-Gegengewicht fuer mittige Titel, Standort-Blatt mit festem Fussabstand, NSLocationWhenInUseUsageDescription, watchPosition fuer die Live-Ortung, Art-Pille wieder als Knopf, Zwischenablage fuer Tankbelege. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -275,8 +275,12 @@ input[type="date"].dm-eingabe {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 42%;
|
||||
background: linear-gradient(to bottom, transparent, var(--canvas) 78%);
|
||||
/* 26/96 statt 42/78: der Verlauf soll die harte Bildkante ausblenden,
|
||||
nicht das Fahrzeug. Mit 42% Hoehe und Vollton ab 78% war das untere
|
||||
Drittel des Fotos praktisch einfarbig - Raeder und Schweller lagen
|
||||
darunter (gemeldet vom Eigentuemer, 2026-08-31). */
|
||||
height: 26%;
|
||||
background: linear-gradient(to bottom, transparent, var(--canvas) 96%);
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
@@ -1675,21 +1679,24 @@ button.dm-listenzeile {
|
||||
gezaehlt, das Blatt war auf dem Geraet rund 16px hoeher als noetig und
|
||||
schob sich entsprechend weiter hoch. Am Rechner faellt das nicht auf,
|
||||
dort ist der Einzug 0. */
|
||||
padding: 0 20px 18px;
|
||||
padding: 0 20px 34px;
|
||||
transform: translateY(calc(100% - var(--dm-standort-peek)));
|
||||
transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
|
||||
}
|
||||
/* Aufgezogen rastet das Blatt auf der mittleren Hoehe ein, nicht auf seiner
|
||||
Inhaltshoehe. Apple beschreibt genau das als "detents": Hoehen, auf denen
|
||||
ein Blatt natuerlich zur Ruhe kommt - large ist das voll ausgefahrene
|
||||
Blatt, medium etwa die Haelfte davon. Vorher war die Rasthoehe schlicht
|
||||
die Hoehe des Inhalts, dadurch schlossen die Knoepfe unten buendig mit der
|
||||
Menueleiste ab. Der Ueberschuss liegt unter den Knoepfen und haelt sie von
|
||||
der Leiste frei. Die eingeklappte Hoehe bleibt unberuehrt: die Verschiebung
|
||||
rechnet mit 100% der jeweiligen Blatthoehe minus dem Guckwert. */
|
||||
/* Aufgezogen bleibt unter den Knoepfen ein fester Abstand stehen, statt dass
|
||||
sie buendig mit der Menueleiste abschliessen.
|
||||
|
||||
Vorher stand hier min-height:50% - Apples "medium detent". Gemessen ergab
|
||||
das 89px (Panel) bzw. 76px (App) Luft unter dem letzten Knopf, und das war
|
||||
sichtbar zu viel: das Blatt zog ueber die Haelfte des Bildschirms auf,
|
||||
obwohl sein Inhalt dort laengst zu Ende war. Eine Raste ist nur dann
|
||||
richtig, wenn zwischen ihr und der Inhaltshoehe kein grosses Loch klafft.
|
||||
|
||||
Jetzt bestimmt der Inhalt die Hoehe, und die 34px Fussabstand halten die
|
||||
Knoepfe von der Leiste frei - hergeleitet aus der Beanstandung, nicht
|
||||
geraten: 18px waren zu wenig, 76-89px zu viel. */
|
||||
.dm-standortmenu--offen {
|
||||
transform: translateY(0);
|
||||
min-height: 50%;
|
||||
}
|
||||
.dm-standortmenu__griffzone {
|
||||
padding: 10px 0 14px;
|
||||
@@ -1853,7 +1860,8 @@ button.dm-listenzeile {
|
||||
}
|
||||
|
||||
.dm-marke img {
|
||||
height: 13px;
|
||||
/* Auf Zeilenhoehe, siehe .dm-markenlogo weiter unten. */
|
||||
height: 16px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
@@ -1874,3 +1882,58 @@ button.dm-listenzeile {
|
||||
.dm-sd-knoepfe > * {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------- Beleg-Fenster
|
||||
Deckungsgleich mit .beleg-drop in audi-dashboard.css: gestrichelter Rahmen,
|
||||
14px Radius, 28px Innenabstand, mittig, 15px kraeftige Zeile ueber 12.5px
|
||||
gedaempfter. `--darueber` ist die Rueckmeldung beim Ziehen (nur am Rechner
|
||||
erreichbar, am Telefon gibt es keine Ziehgeste fuer Dateien). */
|
||||
.dm-beleg-drop {
|
||||
margin-top: var(--sp-3);
|
||||
border: 1px dashed var(--line-strong);
|
||||
border-radius: 14px;
|
||||
padding: 28px var(--sp-4);
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
.dm-beleg-drop strong {
|
||||
font-size: 15px;
|
||||
color: var(--fg);
|
||||
}
|
||||
.dm-beleg-drop span {
|
||||
font-size: 12.5px;
|
||||
color: var(--fg2);
|
||||
}
|
||||
.dm-beleg-drop--darueber {
|
||||
border-color: var(--fg);
|
||||
border-style: solid;
|
||||
background: var(--shade);
|
||||
}
|
||||
|
||||
.dm-beleg-knoepfe {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--sp-2);
|
||||
margin-top: var(--sp-3);
|
||||
}
|
||||
/* Solldruck: vier Zeichen ("2,40"), nicht die volle Feldbreite.
|
||||
Deckungsgleich mit .druckfeld in audi-dashboard.css (58px). Die Klasse
|
||||
stand hier schon im Markup, hatte aber keine Regel - die Felder nahmen
|
||||
deshalb die ganze Zeile ein. */
|
||||
.ads-feld input.druckfeld {
|
||||
width: 58px;
|
||||
min-width: 0;
|
||||
flex: none;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Markenlogo (Shell u. a.) auf die Hoehe der Feldbeschriftung daneben -
|
||||
16px, siehe .ads-feld label. Mit 14px wirkte es neben "SmartDeal aktiv"
|
||||
zu klein (gemeldet vom Eigentuemer, 2026-08-31). */
|
||||
.dm-markenlogo {
|
||||
height: 16px;
|
||||
width: auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user