diff --git a/AGENTS.md b/AGENTS.md index e14c062..6b38685 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,7 +1,7 @@ # AGENTS.md — Project state, review findings, open items, and working rules **Last updated: 2026-08-30** (owner findings batch - vehicle pin, tile chevrons, select arrows, -SmartDeal dialog, address cache and pull-to-refresh; manifest `2026.8.30.12`, see section AO. +SmartDeal dialog, address cache and pull-to-refresh; manifest `2026.8.30.16`, see sections AO and AP. Before that: design-audit follow-through - the five priority items applied to both codebases, plus the location preview's wrong pin; manifest `2026.8.30.8`, see section AN. Before that: third parity round — the panel had never actually rendered Audi @@ -5968,6 +5968,45 @@ is raised. --- + +## AP. Surface tokens: the rule, and the sweep that verified it (2026.8.30.16) + +Three separate defects in one day traced to the same mistake, so it is written down as a rule with a +way to check it. + +**The rule.** `--tile` belongs on the page background and nowhere else. Anything painted *on* a tile +or a sheet takes `--tile-deckend` (an opaque surface) or `--ios-fill` (a control). The reason is that +`--tile` is deliberately **translucent at night** (a white veil over the dark page) and **opaque white +by day**, so painting it onto another surface fails in exactly one theme at a time: + +| | day (`--tile` = #FFFFFF) | night (`--tile` = rgba(255,255,255,.055)) | +|---|---|---| +| on a tile / sheet | invisible - same colour, the element disappears | two veils add up, the area is visibly lighter | + +That is why each of the three slipped through: whoever built it looked at one theme. + +- Swipe rows in Fahrten and Tanken: doubled veil, night only. +- The sheet's close button on Standort: white on white, day only. +- The map area on the detail pages carried `--tile-2`, a second veil at night, where the panel uses + `--tile-deckend`. + +**The sweep.** Checked at runtime rather than by grep, because what matters is the *resolved* colour +of an element against the resolved colour of its nearest painted ancestor - neither is visible in the +source. For each element with a non-transparent background, walk up to the first ancestor that also +paints; flag it when the two colours are equal, or when the child carries `--tile` and the ancestor is +a tile or a sheet (a tile on the page background is the correct base case and must not be flagged). +Run it in **both** themes; one theme alone proves nothing. + +Result: panel 21 routes, app 18 pages, both themes - the only remaining hit is `swipe-content` on +`tile` in day mode, where both are opaque white by design (rows are meant to blend into the tile; +hairlines separate them), and it disappears at night because the row is opaque and the tile is not. + +**The sweep was itself verified**, which matters more than the clean result: setting the close button +back to `var(--tile)` by hand made the detector flag it immediately, and removing the override made +the flag disappear. A check that has never been seen to fail is not evidence of anything. + +--- + ## Working conventions (observed — keep them) - German is the project language: identifiers, comments, commits, UI texts. Exceptions: diff --git a/companion-app/src/stile/screens.css b/companion-app/src/stile/screens.css index 1c6be63..edd1bca 100644 --- a/companion-app/src/stile/screens.css +++ b/companion-app/src/stile/screens.css @@ -1232,13 +1232,16 @@ button.dm-listenzeile { align-items: center; } +/* Deckend wie .mapbox im Panel (audi-dashboard-ios.css). --tile-2 ist im + Nachtmodus ein zweiter Schleier auf der ohnehin durchscheinenden Kachel - + die Flaeche hinter den Kartenkacheln wurde dadurch heller als vorgesehen. */ .dm-karte { height: 240px; width: 100%; border-radius: var(--r-func); overflow: hidden; margin-top: var(--sp-3); - background: var(--tile-2); + background: var(--tile-deckend, var(--tile-2)); } /* ------------------------------------------------------------ Ladezustand */ @@ -1849,7 +1852,7 @@ button.dm-listenzeile { Maße wie `.mapbox` im Panel. */ .dm-kartenplatz { height: 210px; - background: var(--tile-2); + background: var(--tile-deckend, var(--tile-2)); } /* Knopfzeile der SmartDeal-Abfrage - Abbrechen links, Bestaetigen rechts, diff --git a/custom_components/audi_dashboard/frontend/app/bundle.json b/custom_components/audi_dashboard/frontend/app/bundle.json index 5273e30..112b394 100644 --- a/custom_components/audi_dashboard/frontend/app/bundle.json +++ b/custom_components/audi_dashboard/frontend/app/bundle.json @@ -1 +1 @@ -{"version":"2026.8.30.15","sha256":"411b13cca076656b76c8238bbf2eeefc6e71a7803506cde756f1fba8ff9e2f9c","bytes":256973,"gebaut":"2026-08-30T21:40:37Z"} \ No newline at end of file +{"version":"2026.8.30.16","sha256":"5e9e11c03f77f42e7a55dc2f974e1a34700da3b2e50ddf6ec2a93d15a66d0c4d","bytes":256975,"gebaut":"2026-08-30T21:46:48Z"} \ 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 1af347b..ab2e7c2 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/manifest.json b/custom_components/audi_dashboard/manifest.json index cea5c5f..c0c1151 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.8.30.15", + "version": "2026.8.30.16", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": ["@paul"],