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:
@@ -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`
|
||||||
|
|||||||
@@ -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.
|
||||||
+37
-19
@@ -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ändert — Buttons, 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}
|
||||||
|
|||||||
Reference in New Issue
Block a user