diff --git a/AGENTS.md b/AGENTS.md index 8901221..108e725 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12774,6 +12774,31 @@ Nachts trägt `--warn` selbst genug Kontrast, tagsüber nicht. `#B36200` wäre näher am reinen Orange, fällt auf dem hinterlegten Grund aber auf 4,11:1 und damit unter die Grenze - deshalb `#A15800`. +**Nachgeschlagen am 07.09.2026, auf Nachfrage des Eigentümers, ob die Farbe HIG +oder Audi CI entspricht** (developer.apple.com/design/human-interface-guidelines/color; +die Hexwerte stehen dort **nur im Alternativtext der Farbfelder**, nicht im Text - +über `innerText` sind sie unsichtbar): + +| | default light | default dark | increased contrast light | +|---|---|---|---| +| Orange | `#FF8D28` | `#FF9230` | `#C55300` | +| Yellow | `#FFCC00` | `#FFD600` | `#A16A00` | + +Zwei Befunde daraus: + +1. **Apples eigener Kontrastwert taugt hier nicht.** `#A16A00` liefert auf + unserem hinterlegten Grund nur **4,19:1**, `#C55300` nur 4,16:1 - beide unter + der Grenze. Apples Schwelle gilt für Schrift auf einfarbigem Grund; die + 12 %-Hinterlegung senkt sie darunter. Der gemessene Wert bleibt. +2. **Die Seite zeigt inzwischen die neue („unified") Palette.** Dort steht + systemRed dunkel auf `#FF4245`, dieses Projekt führt `#FF453A` aus der + älteren Generation. Einen einzelnen Wert aus der neuen Palette + hereinzunehmen wäre ohnehin inkonsistent gewesen. + +Und die Ausgangsfrage: die **Fläche** ist Apple (die 2026-08-13 übernommene +iOS-Palette), das Audi-CI-Gelb `#ffaa00` wurde damals abgelöst und liefert als +Schrift nur 1,91:1. Die **Schrift** ist gemessen, nicht übernommen. + ### Geprüft * **15 Fälle** gegen die echten Panel-Funktionen (aus der Panel-Quelle @@ -12795,11 +12820,49 @@ damit unter die Grenze - deshalb `#A15800`. * 327/327 App-Tests, `tsc` sauber, beide Panel-Dateien als **Modul** geparst, Manifest und Bündel gleichauf auf `2026.9.6.6`, Testcontainer sauber gestartet. -### Was offen bleibt +### Größe der Kennzahl auf der Übersicht: 40px -> 32px -**Optisch nicht gesehen.** Die Markierung ist über Rendertests und gemessene -Kontraste belegt, nicht über ein Bild - der Testbestand enthält keinen -überschrittenen Termin (Ölwechsel 2028, Inspektion 2027, HU 2028), und für einen -Blick ins laufende Panel fehlte die angemeldete Sitzung. Nach der Regel dieses -Projekts (Abschnitt S: ein sauberer Testlauf beweist kein Layout) steht das -ausdrücklich als offen, nicht als erledigt. +Vom Eigentümer als „sehr groß" gemeldet, im Browser bei 375×812 nachgemessen +(Kachel 307px): + +| | Größe | Gewicht | Breite | Anteil der Kachel | +|---|---|---|---|---| +| Reichweite „37 km" | 60px | 700 | 107px | 35 % | +| **Nächster Service „8.600 km"** | **40px** | 300 | **133px** | **43 %** | +| Kilometerstand „21.355 km" | 20px | 300 | 87px | 28 % | + +Der **zweitrangige** Wert war breiter als die Kennzahl darüber - die Reichweite +hat zwei Ziffern, der Servicewert fünf. Mit einem Datum stand es noch +deutlicher: „01.03.2028" misst bei 40px **231px**, also 75 % der Kachel. Auf +32px sind es 108px bzw. 185px; nachgemessen liegt der Servicewert damit auf +107px der Reichweite gleichauf statt darüber, die Staffelung liest sich als +60/32/20. + +Schrift und Gewicht waren nie das Problem und bleiben: Audi Type Wide 300, in +beiden Codebasen gleich. + +**Das nimmt eine frühere Entscheidung zurück** - am 18.08.2026 hatte der +Eigentümer 40px ausdrücklich gegenüber 30px gewählt (damals ging es darum, dass +das Datum dieselbe Größe wie die km-Zahl bekommt). Die Größenordnung selbst +stand damals nicht zur Debatte. + +### Live gesehen (07.09.2026) + +Der Eigentümer hat auf einen offenen Browser hingewiesen - damit ließ sich der +zuerst offen gebliebene Punkt schließen. Am laufenden Entwicklungsserver bei +375×812, mit **vorübergehend** auf 01.03.2020 zurückdatierter Erstzulassung +(Hauptuntersuchung damit 03/2023); Profil vorher gesichert, hinterher +zurückgestellt und geprüft: + +* **Übersicht** - „01.03.2023" in `rgb(161, 88, 0)` = `#A15800`, Marke daneben, + `.dm-serviceblock--ueberschritten` gesetzt. +* **Mein Audi** - Zeile „Hauptuntersuchung | 01.03.2023 überschritten", Marke + 10,5px in derselben Farbe, Rahmen ebenso. +* **Service** - nur die Hauptuntersuchung hinterlegt + (`color(srgb 1 0.623529 0.0392157 / 0.12)`, also `#FF9F0A` bei 12 %); + Ölwechsel (2028) und Inspektion (2027) blieben unmarkiert. Die Unterscheidung + greift also, nicht nur die Darstellung. + +**Nicht gesehen: das Panel.** Dafür fehlt weiterhin eine angemeldete +HA-Sitzung; es ist über den Paritätstest und den Modul-Parse belegt, nicht über +ein Bild. diff --git a/OFFEN.md b/OFFEN.md index 02a8a10..bfd3cf9 100644 --- a/OFFEN.md +++ b/OFFEN.md @@ -100,14 +100,14 @@ Beispielzahlen in der Statistik und ein überholter TODO-Kommentar. ## 3b. Optisch noch nicht gesehen -**Die Markierung überschrittener Servicetermine** (`2026.9.6.6`, Abschnitt DJ) -ist über Rendertests und gemessene Kontraste belegt, aber nie am Bild geprüft - -der Testbestand hat keinen überschrittenen Termin, und für einen Blick ins -laufende Panel fehlte die angemeldete Sitzung. +**Das Panel.** Die Markierung überschrittener Servicetermine (Abschnitt DJ) ist +in der **App** live geprüft, im **Panel** nicht - dafür fehlt eine angemeldete +Home-Assistant-Sitzung. Belegt ist es dort über den Paritätstest gegen die +echten Panel-Funktionen und den Modul-Parse. -*Was zu tun ist:* einmal ansehen, sobald ein Termin wirklich fällig ist - oder -mit einer angemeldeten Sitzung und einem vorübergehend zurückdatierten -Wartungsplan-Eintrag (hinterher zurücksetzen). +*Was zu tun ist:* bei nächster Gelegenheit mit angemeldeter Sitzung einmal +ansehen; ein vorübergehend zurückdatiertes Erstzulassungsdatum erzeugt den Fall +(hinterher zurückstellen). ## 4. Gemeldet, aber nicht reproduzierbar diff --git a/companion-app/src/screens/Uebersicht.tsx b/companion-app/src/screens/Uebersicht.tsx index 878bf19..82ef8c2 100644 --- a/companion-app/src/screens/Uebersicht.tsx +++ b/companion-app/src/screens/Uebersicht.tsx @@ -256,11 +256,15 @@ export function Uebersicht({ geheZu }: { geheZu: (name: SeitenName, id?: string) {(() => { const Symbol = SERVICE_SYMBOL[service.art] + /* 40 -> 32 am 07.09.2026: bei 40px war "8.600 km" 133px breit und + damit breiter als die Reichweite darueber (60px, 107px) - der + zweitrangige Wert schlug den Hauptwert in der Flaeche. + Wortgleich mit zahlGroesse im Panel. */ const fig = ( ) return Symbol ? ( diff --git a/companion-app/src/stile/screens.css b/companion-app/src/stile/screens.css index dc9f8ae..5cdcc88 100644 --- a/companion-app/src/stile/screens.css +++ b/companion-app/src/stile/screens.css @@ -2421,9 +2421,17 @@ input[type="range"] { Zeile lesbar bleibt und der Hinweis trotzdem auffällt (Ansage des Eigentümers 07.09.2026). --warn ist die Fläche, --warn-text die Schrift - dieselbe Rollenteilung wie bei --bad/--bad-flaeche im Panel, und aus - demselben Grund: #FF9F0A als Text auf Weiß sind 2.06:1. Auf dem hier - hinterlegten Grund (#FFF3E2 tags, #33311E nachts) misst --warn-text 4.90:1 - bzw. 9.30:1 - beides über der 4.5:1-Grenze für kleine Schrift. */ + demselben Grund: #FF9F0A als Text auf Weiß sind 2.06:1. + + Warum nicht Apples eigener Kontrastwert? Am 07.09.2026 auf + developer.apple.com/design/human-interface-guidelines/color nachgeschlagen: + Yellow "Increased contrast (light)" ist #A16A00, Orange #C55300 - auf UNSEREM + Grund nur 4.19 bzw. 4.16:1. Apples Schwelle gilt für Schrift auf einfarbigem + Grund; die 12%-Hinterlegung hier senkt sie darunter. Deshalb der gemessene + Wert #A15800 (4.90:1) statt eines übernommenen. + + Auf dem hinterlegten Grund (#FFF3E2 tags, #33311E nachts) misst --warn-text + 4.90:1 bzw. 9.30:1 - beides über der 4.5:1-Grenze für kleine Schrift. */ .dm-termingruppe--ueberschritten { background: color-mix(in srgb, var(--warn) 12%, transparent); border-radius: var(--r-tile); diff --git a/custom_components/audi_dashboard/frontend/app/bundle.json b/custom_components/audi_dashboard/frontend/app/bundle.json index 4e76f86..c194e67 100644 --- a/custom_components/audi_dashboard/frontend/app/bundle.json +++ b/custom_components/audi_dashboard/frontend/app/bundle.json @@ -1 +1 @@ -{"version":"2026.9.6.6","sha256":"c9e3d8f25998f38b70e38441a8c0e09d76bbe340845575e9ae769fe12c2fc45e","bytes":379100,"gebaut":"2026-09-07T11:37:53Z"} \ No newline at end of file +{"version":"2026.9.6.7","sha256":"1c9c672a258f7540a0186ebc12d32965d472478923ff3c44a013d46f58a3805d","bytes":379101,"gebaut":"2026-09-07T12:06:15Z"} \ No newline at end of file diff --git a/custom_components/audi_dashboard/frontend/app/bundle.zip b/custom_components/audi_dashboard/frontend/app/bundle.zip index 49ca07e..564bdcb 100644 Binary files a/custom_components/audi_dashboard/frontend/app/bundle.zip and b/custom_components/audi_dashboard/frontend/app/bundle.zip differ diff --git a/custom_components/audi_dashboard/frontend/audi-dashboard-app.js b/custom_components/audi_dashboard/frontend/audi-dashboard-app.js index 563a8ad..92aca88 100644 --- a/custom_components/audi_dashboard/frontend/audi-dashboard-app.js +++ b/custom_components/audi_dashboard/frontend/audi-dashboard-app.js @@ -2465,11 +2465,17 @@ function vHome() { const hauptwert = restKm !== null ? `${de(restKm)}km` : (datum === t.datum ? datumText(t.datum, t.genau) : (datum ? dedat(datum) : "–")); - // Ohne Restkilometer steht das Datum selbst im Zahlenfeld - auf Nutzerwunsch - // jetzt in derselben Groesse wie die km-Zahl (vorher 30px, damit "15.04.2027" - // auf 375px nicht umbricht - am laufenden Panel geprueft, dass es bei 40px - // weiterhin einzeilig bleibt). - const zahlGroesse = 40; + // Ohne Restkilometer steht das Datum selbst im Zahlenfeld - in derselben + // Groesse wie die km-Zahl (Nutzerwunsch 18.08.2026, davor 30px). + // + // 40 -> 32 am 07.09.2026, nachdem der Eigentuemer die Zahl als "sehr gross" + // gemeldet hat. Im Browser bei 375px nachgemessen, Kachel 307px breit: + // "8.600 km" war bei 40px 133px breit (43% der Kachel) und damit BREITER + // als die Reichweite darueber (60px, 107px, 35%) - der zweitrangige Wert + // schlug den Hauptwert in der Flaeche. Mit einem Datum stand es noch + // deutlicher: "01.03.2028" misst bei 40px 231px, also 75% der Kachel. Bei + // 32px sind es 116px bzw. 185px, die Staffelung liest sich als 60/32/20. + const zahlGroesse = 32; // Icon statt "bis zum Ölwechsel"/"bis zur Inspektion" (nur fuer die beiden // Arten, die eines haben). Die Hauptuntersuchung hat kein Restkilometer-Ziel // und zeigt stattdessen den Art-Namen selbst unter dem Datum. diff --git a/custom_components/audi_dashboard/frontend/audi-dashboard.css b/custom_components/audi_dashboard/frontend/audi-dashboard.css index 7be986b..6fcaae7 100644 --- a/custom_components/audi_dashboard/frontend/audi-dashboard.css +++ b/custom_components/audi_dashboard/frontend/audi-dashboard.css @@ -659,8 +659,23 @@ button.leaf:active { background: var(--tile-2); } Zeile lesbar bleibt und der Hinweis trotzdem auffaellt (Ansage des Eigentuemers 07.09.2026). --warn ist die Flaeche, --warn-text die Schrift - dieselbe Rollenteilung wie bei --bad/--bad-flaeche, und aus demselben Grund: - #FF9F0A als Text auf Weiss sind 2.06:1. Auf dem hier hinterlegten Grund - (#FFF3E2 tags, #33311E nachts) misst --warn-text 4.90:1 bzw. 9.30:1. */ + #FF9F0A als Text auf Weiss sind 2.06:1. + + Warum nicht Apples eigener Kontrastwert? Am 07.09.2026 auf + developer.apple.com/design/human-interface-guidelines/color nachgeschlagen + (die Werte stehen dort nur im Alternativtext der Farbfelder, nicht im Text): + Yellow "Increased contrast (light)" ist #A16A00, Orange #C55300. Beide + liefern auf UNSEREM Grund nur 4.19 bzw. 4.16:1 - Apples Schwelle gilt fuer + Schrift auf einfarbigem Grund, die 12%-Hinterlegung hier senkt sie darunter. + Deshalb der gemessene Wert #A15800 (4.90:1) statt eines uebernommenen. + + Nebenbefund derselben Recherche: die Seite zeigt inzwischen die neue + ("unified") Palette - systemRed dunkel steht dort auf #FF4245, dieses Projekt + fuehrt #FF453A aus der aelteren. Einen einzelnen Wert aus der neuen Generation + hereinzunehmen waere ohnehin inkonsistent gewesen. + + Auf dem hier hinterlegten Grund (#FFF3E2 tags, #33311E nachts) misst + --warn-text 4.90:1 bzw. 9.30:1. */ .termingruppe.ueberschritten { background: color-mix(in srgb, var(--warn) 12%, transparent); border-radius: var(--r-tile); padding-left: 12px; padding-right: 12px; diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index 73e7bf6..f89902b 100644 --- a/custom_components/audi_dashboard/manifest.json +++ b/custom_components/audi_dashboard/manifest.json @@ -1,7 +1,7 @@ { "domain": "audi_dashboard", "name": "Audi Dashboard", - "version": "2026.9.6.6", + "version": "2026.9.6.7", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": [