iOS-Optik offiziell machen, Audi-CI-Spezifikation vorher archivieren

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.
This commit is contained in:
2026-08-13 19:20:28 +02:00
parent 163efe1392
commit f5976e6865
4 changed files with 141 additions and 20 deletions
+14
View File
@@ -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 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 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. 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 `<link>`. 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) — - [ ] 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 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` 2026-08-12 (see section B); `DESIGN_REVIEW_2026-08-13.md` and `REVIEW_main_2026-08-13.md`
+89
View File
@@ -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 ~39904000 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.
+37 -19
View File
@@ -41,33 +41,51 @@ A private, single-user Home Assistant `panel_custom` dashboard that replaces the
## 2. Concept & Design System ## 2. Concept & Design System
### Visual language > **iOS-Optik ist seit 2026-08-13 die verbindliche Linie** (Entscheidung nach
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. > `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 | | Role | Nacht (default) | Tag |
|---|---|---| |---|---|---|
| `--canvas` (page background) | `#161b23` | `#FFFFFF` | | `--canvas` (page background) | `#0C1014` | `#F2F2F7` |
| `--tile` | `#1f2733` | `#f2f2f2` | | `--tile` | `rgba(255,255,255,.055)` | `#FFFFFF` |
| `--tile-2` (inputs, hover) | `#2a3341` | `#e5e5e5` | | `--tile-2` | `rgba(255,255,255,.10)` | `#EFEFF4` |
| `--line` | `rgba(255,255,255,.10)` | `rgba(0,0,0,.10)` | | `--line` | `rgba(255,255,255,.13)` | `rgba(60,60,67,.13)` |
| `--line-strong` | `rgba(255,255,255,.20)` | `rgba(0,0,0,.22)` | | `--line-strong` | `rgba(255,255,255,.24)` | `rgba(60,60,67,.24)` |
| `--fg` | `#FFFFFF` | `#000000` | | `--fg` | `#FFFFFF` | `#000000` |
| `--fg2` (secondary text) | `#9aa1ad` | `#4c4c4c` | | `--fg2` | `#BFC4CC` | `#3C3C43` |
| `--fg3` (labels/eyebrows) | `#8a94a3` | `#666666` | | `--fg3` | `#8E8E93` | `#8E8E93` |
| `--ok` | `#15da15` | `#0DA20D` | | `--ok` | `#30D158` | `#34C759` |
| `--warn` | `#ffaa00` | `#ffaa00` | | `--warn` | `#FFD60A` | `#FF9F0A` |
| `--shade` | `rgba(255,255,255,.05)` | `rgba(0,0,0,.04)` | | `--bad` | `#FF453A` | `#FF3B30` |
| `--bad` | `#fd2c4e` | `#eb0d3f` | | `--ios-tint` (Akzent/Aktionsfüllung, theme-unabhängig) | `#F50537` | `#F50537` |
| `--red` (accent, theme-independent) | `#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 ### Radii
- `--r-tile: 20px` — tiles, the vehicle-photo "scene" container. - `--r-tile: 16px` (iOS-Wert; Audi-CI-Basis war 20px, siehe Archiv) — Kacheln, Popups, Bildbereiche.
- `--r-pill: 999px`buttons, switches, segmented controls, progress bars. - `--r-pill: 999px` unverändertButtons, Schalter, Segmente, Fortschrittsbalken.
- 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. - `.setup-popup`/`.standortmenu` schreiben weiterhin `border-radius: 20px` als Literal
(Inkonsistenz zum 16px-Token, ebenfalls im Review dokumentiert, noch nicht bereinigt).
### Typography ### 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): 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):
@@ -1 +1 @@
{"version": 1786550400} {"version": 1786726800}