From f5976e6865a66474ea25359e8e09222f886bfb5b Mon Sep 17 00:00:00 2001 From: Tobi G Date: Thu, 13 Aug 2026 19:20:28 +0200 Subject: [PATCH] iOS-Optik offiziell machen, Audi-CI-Spezifikation vorher archivieren MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Entscheidung nach DESIGN_REVIEW_2026-08-13.md §A, Option 1: die additive iOS-Auflage (audi-dashboard-ios.css) wird zur verbindlichen Optik erklaert, statt die App auf reine Audi-CI zurueckzuschneiden. Der bisherige SPECIFICATION.md-§2-Wortlaut (Audi-CI-Farben, 20px-Radius) ist wortgleich in AUDI_CI_ARCHIV_2026-08-13.md gesichert, inklusive Anleitung fuer den Rueckweg - der Code selbst braucht dafuer kein Backup, da die iOS-Auflage rein additiv ist und die Audi-CI-Basiswerte in audi-dashboard.css unveraendert erhalten bleiben. SPECIFICATION.md §2 beschreibt jetzt die tatsaechlichen iOS-Werte aus audi-dashboard-ios.css. bauauftrag.md §8 bleibt unangetastet (Projekt- konvention: historisches Dokument), gilt aber ab hier als ueberholt. Zwei aus demselben Review noch offene Implementierungsfehler (Rot-Semantik invertiert, 20px/16px-Radius-Inkonsistenz bei Popups) sind unabhaengig von dieser Richtungsentscheidung und bleiben offen. Zusaetzlich: Versionsbump nach dem Redeploy in audi_ha_test. --- AGENTS.md | 14 +++ AUDI_CI_ARCHIV_2026-08-13.md | 89 +++++++++++++++++++ SPECIFICATION.md | 56 ++++++++---- homeassistant/www/audi-dashboard-version.json | 2 +- 4 files changed, 141 insertions(+), 20 deletions(-) create mode 100644 AUDI_CI_ARCHIV_2026-08-13.md diff --git a/AGENTS.md b/AGENTS.md index e9e7a42..287f7a4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -500,6 +500,20 @@ wraps the web app for iPhone; a PWA home-screen install is the accepted intermed exactly the changed trigger-bound field(s) and no others. Did not actually trigger a restart during verification (would have restarted the shared test container) — the service call itself was left unexercised beyond confirming it registers without error at pyscript load time. +- [x] Decide the iOS-vs-Audi-CI conflict from `DESIGN_REVIEW_2026-08-13.md` §A — decided + 2026-08-13, owner's call: **iOS look made official** (Option 1 of the two the review offered). + `SPECIFICATION.md` §2 rewritten to describe the iOS values (colors, 16px radius) as canonical; + `bauauftrag.md` §8 now counts as superseded (left untouched, per this project's convention of + never editing that file — see its own "historical only" note above). The pre-decision Audi-CI + spec text is preserved verbatim in [`AUDI_CI_ARCHIV_2026-08-13.md`](AUDI_CI_ARCHIV_2026-08-13.md), + which also documents *why reverting later needs no restore*: `audi-dashboard-ios.css` is a + purely additive overlay loaded after `audi-dashboard.css` in `_aufbauen()` + (`audi-dashboard-app.js` ~line 3990) — the Audi-CI base values are still fully intact in the + unmodified base stylesheet, untouched by this decision. Reverting is just: stop loading the + overlay ``. Two findings from the same review are still open and unaffected by this + decision (they're implementation bugs, not direction questions): §B red-semantics inversion + (`.aktion` fills every primary action red, not just destructive ones) and the `.setup-popup`/ + `.standortmenu` hardcoded `border-radius: 20px` vs. the new 16px token. - [ ] Fix remaining documentation drift (statistics claim, README gaps, obsolete TODO comment) — text-only changes; INSTALL.md's WLAN/TommiG1 drift and stale variable names were fixed 2026-08-12 (see section B); `DESIGN_REVIEW_2026-08-13.md` and `REVIEW_main_2026-08-13.md` diff --git a/AUDI_CI_ARCHIV_2026-08-13.md b/AUDI_CI_ARCHIV_2026-08-13.md new file mode 100644 index 0000000..62c6735 --- /dev/null +++ b/AUDI_CI_ARCHIV_2026-08-13.md @@ -0,0 +1,89 @@ +# Audi-CI-Design — Archiv (Stand 2026-08-13, vor der iOS-Offizialisierung) + +**Warum diese Datei existiert:** `SPECIFICATION.md` §2 „Concept & Design System" beschrieb bis +2026-08-13 das ursprüngliche, reine Audi-CI-Design des Panels — Nacht-Canvas `#161b23`, 20-px- +Kachelradius, Rot nur als Akzent, keine Schatten. Mit der Entscheidung, die iOS-Auflage +(`audi-dashboard-ios.css`) offiziell zur verbindlichen Optik zu machen (siehe +`DESIGN_REVIEW_2026-08-13.md` §A, Option 1, und der entsprechende `AGENTS.md`-Eintrag), wurde §2 +umgeschrieben, um die iOS-Werte zu beschreiben. Diese Datei bewahrt den vorherigen Wortlaut +**wortgleich**, falls die Entscheidung später zurückgenommen wird. + +**Wichtig — das ist nicht die einzige Absicherung:** Der Code selbst macht die Rückkehr trivial, +unabhängig von dieser Datei. `audi-dashboard-ios.css` ist eine rein additive **Auflage** +(`homeassistant/www/audi-dashboard-app.js`, Zeile ~3990–4000 lädt zuerst `audi-dashboard.css`, dann +zusätzlich `audi-dashboard-ios.css`) — die Basisdatei `audi-dashboard.css` enthält die Audi-CI-Werte +weiterhin vollständig und unverändert. Um zur reinen Audi-CI zurückzukehren, genügt es, das Laden +von `audi-dashboard-ios.css` in `_aufbauen()` zu entfernen bzw. bedingt zu machen — kein Restore +aus einem Backup nötig. Diese Datei dokumentiert die **Spezifikationstexte**, nicht den Code (der +bleibt ohnehin vorhanden). + +Bekannter Nebenpunkt aus dem Design-Review: die korrigierte `--fg3`-Kontrastfarbe (`#8a94a3`, siehe +unten) ist in `bauauftrag.md` §8 **nicht** nachgezogen — dort steht noch der ursprüngliche, +kontrastschwache Wert `#657081`. Diese Archivdatei hier gibt daher den zuletzt tatsächlich gültigen +Stand wieder, nicht `bauauftrag.md`. + +--- + +## Ursprünglicher Wortlaut von `SPECIFICATION.md` §2 (vor 2026-08-13) + +### Visual language +Dark ("Nacht") is the default and primary theme; a light ("Tag") theme exists as a toggle. No +shadows, no gradients anywhere except the fade under the vehicle photo (`.szene`). Flat tiles, +pill-shaped controls, hairline dividers. + +### Colors (CSS custom properties, defined per-theme via `:root` / `[data-theme="tag"]`) + +| Role | Nacht (default) | Tag | +|---|---|---| +| `--canvas` (page background) | `#161b23` | `#FFFFFF` | +| `--tile` | `#1f2733` | `#f2f2f2` | +| `--tile-2` (inputs, hover) | `#2a3341` | `#e5e5e5` | +| `--line` | `rgba(255,255,255,.10)` | `rgba(0,0,0,.10)` | +| `--line-strong` | `rgba(255,255,255,.20)` | `rgba(0,0,0,.22)` | +| `--fg` | `#FFFFFF` | `#000000` | +| `--fg2` (secondary text) | `#9aa1ad` | `#4c4c4c` | +| `--fg3` (labels/eyebrows) | `#8a94a3` | `#666666` | +| `--ok` | `#15da15` | `#0DA20D` | +| `--warn` | `#ffaa00` | `#ffaa00` | +| `--shade` | `rgba(255,255,255,.05)` | `rgba(0,0,0,.04)` | +| `--bad` | `#fd2c4e` | `#eb0d3f` | +| `--red` (accent, theme-independent) | `#F50537` | `#F50537` | + +`--red` is used sparingly (accents, active states, destructive actions), not as a background fill. + +### Radii +- `--r-tile: 20px` — tiles, the vehicle-photo "scene" container. +- `--r-pill: 999px` — buttons, switches, segmented controls, progress bars. +- Small functional elements (form inputs, placeholder/mini image boxes, popups) use **hardcoded + literal pixel values** (6px / 12px / 14px respectively) rather than a shared token. + +### Typography +Three font-family names in play, all under the trademarked "Audi Type" family, embedded inline as +base64 `woff2` directly in `audi-dashboard.css` (private-install only): +- `"Audi Type"` — body/UI text, weight 400. +- `"Audi Type Wide"`, weight 300 — `.fig` class, used for large numeric figures (odometer, range, + tank %, prices, service countdowns). +- `"Audi Type Extended"`, italic — `.sport` class and the vehicle-title badge suffix + (`.badge .zusatz`). + +Only weights 300 and 400 are shipped — never use `font-weight: 600` or higher; the browser would +synthetically bold. Numbers are formatted via `de-DE` locale (thousands separator, comma decimals) +through the `de()`/`eur()` helpers. + +### Licensing constraint (hard rule) +The Audi Type font, the four-rings SVG, and the model badge SVGs (`www/badges/*.svg`) are +**licensed/trademarked assets, cleared only for this one private, non-published installation** +(bauauftrag §8, §12). Never extract, republish, or reuse them anywhere outside this specific Home +Assistant instance. + +--- + +## So kommst du zurück + +1. In `homeassistant/www/audi-dashboard-app.js`, `_aufbauen()`: die vier Zeilen, die `linkIos` + erzeugen und an `ROOT` anhängen, entfernen (oder hinter eine Bedingung stellen). +2. `SPECIFICATION.md` §2 durch den obigen Wortlaut ersetzen (oder auf diese Datei verweisen und den + iOS-Absatz als „überholt" markieren, symmetrisch zur jetzigen Umkehrung). +3. `AGENTS.md` entsprechend nachziehen (die Design-Review-Entscheidung als zurückgenommen + vermerken). +4. `audi-dashboard-ios.css` selbst muss nicht gelöscht werden — ungeladen hat sie keine Wirkung. diff --git a/SPECIFICATION.md b/SPECIFICATION.md index 020d932..497053e 100644 --- a/SPECIFICATION.md +++ b/SPECIFICATION.md @@ -41,33 +41,51 @@ A private, single-user Home Assistant `panel_custom` dashboard that replaces the ## 2. Concept & Design System -### Visual language -Dark ("Nacht") is the default and primary theme; a light ("Tag") theme exists as a toggle. No shadows, no gradients anywhere except the fade under the vehicle photo (`.szene`). Flat tiles, pill-shaped controls, hairline dividers. +> **iOS-Optik ist seit 2026-08-13 die verbindliche Linie** (Entscheidung nach +> `DESIGN_REVIEW_2026-08-13.md` §A, Option 1: „iOS-Optik als neue verbindliche Linie +> dokumentieren"). Das ursprüngliche, reine Audi-CI-Design unten war bis dahin gültig und bleibt +> wortgleich archiviert in [`AUDI_CI_ARCHIV_2026-08-13.md`](AUDI_CI_ARCHIV_2026-08-13.md) — +> inklusive einer kurzen Anleitung, wie man technisch zurückwechselt (die Auflage ist rein additiv, +> die Basis-Werte unten sind im Code nach wie vor vorhanden). `bauauftrag.md` §8 beschreibt weiterhin +> das alte Design und gilt ab hier als überholt, wie es die Projektkonvention für Entscheidungen +> vorsieht (siehe `AGENTS.md`). +> +> Bekannter, noch offener Folgefehler aus demselben Review: die Rot-Semantik ist in der iOS-Auflage +> invertiert (`.aktion` füllt jede Primäraktion rot statt nur destruktive) — Befund B, noch nicht +> behoben. -### Colors (CSS custom properties, defined per-theme via `:root` / `[data-theme="tag"]`) +### Visual language +iOS-native Formensprache (`audi-dashboard-ios.css`, additive Auflage über der Audi-CI-Basis unten): +große Titel, gruppierte 44-px-Zeilen, transluzente Tab-Leiste mit Blur, iOS-Schalter/-Segmente, +gefüllte Aktionsknöpfe. Dunkel ("Nacht") bleibt Standard, "Tag" als Umschalter. Audi Type und das +Rot `#F50537` bleiben führend (Typografie, Akzentfarbe) — Fläche, Radius und Signalfarben folgen +iOS-Konventionen statt der ursprünglichen Audi-Palette. + +### Colors (CSS custom properties, iOS-Auflage überschreibt die Audi-CI-Basis pro Theme) | Role | Nacht (default) | Tag | |---|---|---| -| `--canvas` (page background) | `#161b23` | `#FFFFFF` | -| `--tile` | `#1f2733` | `#f2f2f2` | -| `--tile-2` (inputs, hover) | `#2a3341` | `#e5e5e5` | -| `--line` | `rgba(255,255,255,.10)` | `rgba(0,0,0,.10)` | -| `--line-strong` | `rgba(255,255,255,.20)` | `rgba(0,0,0,.22)` | +| `--canvas` (page background) | `#0C1014` | `#F2F2F7` | +| `--tile` | `rgba(255,255,255,.055)` | `#FFFFFF` | +| `--tile-2` | `rgba(255,255,255,.10)` | `#EFEFF4` | +| `--line` | `rgba(255,255,255,.13)` | `rgba(60,60,67,.13)` | +| `--line-strong` | `rgba(255,255,255,.24)` | `rgba(60,60,67,.24)` | | `--fg` | `#FFFFFF` | `#000000` | -| `--fg2` (secondary text) | `#9aa1ad` | `#4c4c4c` | -| `--fg3` (labels/eyebrows) | `#8a94a3` | `#666666` | -| `--ok` | `#15da15` | `#0DA20D` | -| `--warn` | `#ffaa00` | `#ffaa00` | -| `--shade` | `rgba(255,255,255,.05)` | `rgba(0,0,0,.04)` | -| `--bad` | `#fd2c4e` | `#eb0d3f` | -| `--red` (accent, theme-independent) | `#F50537` | `#F50537` | +| `--fg2` | `#BFC4CC` | `#3C3C43` | +| `--fg3` | `#8E8E93` | `#8E8E93` | +| `--ok` | `#30D158` | `#34C759` | +| `--warn` | `#FFD60A` | `#FF9F0A` | +| `--bad` | `#FF453A` | `#FF3B30` | +| `--ios-tint` (Akzent/Aktionsfüllung, theme-unabhängig) | `#F50537` | `#F50537` | -`--red` is used sparingly (accents, active states, destructive actions), not as a background fill. +`.aktion` füllt sich vollflächig mit `--ios-tint` — abweichend von der ursprünglichen Regel „Rot nur +als Akzent" (bekannter, offener Befund, siehe Kasten oben). ### Radii -- `--r-tile: 20px` — tiles, the vehicle-photo "scene" container. -- `--r-pill: 999px` — buttons, switches, segmented controls, progress bars. -- Small functional elements (form inputs, placeholder/mini image boxes, popups) use **hardcoded literal pixel values** (6px / 12px / 14px respectively) rather than a shared token — see §7 for why this is a discrepancy from the brief. +- `--r-tile: 16px` (iOS-Wert; Audi-CI-Basis war 20px, siehe Archiv) — Kacheln, Popups, Bildbereiche. +- `--r-pill: 999px` unverändert — Buttons, Schalter, Segmente, Fortschrittsbalken. +- `.setup-popup`/`.standortmenu` schreiben weiterhin `border-radius: 20px` als Literal + (Inkonsistenz zum 16px-Token, ebenfalls im Review dokumentiert, noch nicht bereinigt). ### Typography Three font-family names in play, all under the trademarked "Audi Type" family, embedded inline as base64 `woff2` directly in `audi-dashboard.css` (private-install only — see Licensing below): diff --git a/homeassistant/www/audi-dashboard-version.json b/homeassistant/www/audi-dashboard-version.json index 372c96c..faa6ad9 100644 --- a/homeassistant/www/audi-dashboard-version.json +++ b/homeassistant/www/audi-dashboard-version.json @@ -1 +1 @@ -{"version": 1786550400} +{"version": 1786726800}