e1d570992e
Drei zusammengehörige Teile in einem Repository: - homeassistant/ Das fertige, im Einsatz befindliche Home-Assistant-Panel (panel_custom Custom Element + pyscript-Backend). Echte Fahrzeug- und Personendaten (fahrzeugprofil.json, fahrten.jsonl, tankvorgaenge.jsonl, Tankbelege) bleiben per .gitignore außen vor; die anonymisierte Vorlage fahrzeugprofil.example.json ist mit dabei. - design-system/ Eigenständige React-Komponentenbibliothek (@audi-dash/ui), die die visuelle Sprache des Panels nachbildet - ohne Audi-Markenzeichen und ohne die lizenzierte Hausschrift. Dient als Grundlage für Claude Design. War bis hierher ein eigenes Repository und ist in dieses eingeschmolzen worden. - companion-app/ Datenschicht der neuen App DataMetric360 (iOS/Android via Capacitor, zusätzlich als Iframe im HA-Dashboard). Noch ohne Oberfläche: REST- und WebSocket-Zugriff auf Home Assistant plus Warteschlange für Änderungen ohne Netz. Ersetzt das eingespritzte hass-Objekt, das nur innerhalb des HA-Frontends existiert. Dazu die Projektdokumentation: SPECIFICATION.md (Ist-Stand des Panels), COMPANION_APP_ARCHITECTURE.md (Architekturentscheidungen der neuen App), AUDIT_2026-08-10.md, DESIGN_BRIEF_DATAMETRIC360.md und der ursprüngliche Bauauftrag. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.2 KiB
1.2 KiB
Usage conventions
- Always wrap the tree that uses these components in
<div className="ads-root" data-theme="nacht">(ordata-theme="tag"for the light theme). Color tokens (--fg,--canvas,--tile, etc.) are defined on:rootand work anywhere, but textcolorand pagebackgroundare only applied via the.ads-rootclass — content rendered outside it falls back to browser-default black-on-white. - Default theme is Nacht (dark) — this is what
:rootsets without anydata-themeoverride. Usedata-theme="tag"for the light variant. - No Audi brand assets (font, rings, nameplate) are included in this bundle — it uses a neutral
Helvetica, Arial, sans-seriffallback stack by design. Popuprenders via a React portal intodocument.bodyby default (position: fixed, centers or anchors relative to the viewport) — it doesn't need to sit inside.ads-rootitself since its own CSS setsbackground/colorexplicitly rather than inheriting them.SwipeRowis a controlled/uncontrolled swipe-to-reveal row: swiping (or settingswiped) slides content left to reveal a delete action on the right, clipping the row's left edge by design — this is the intended interaction, not a layout bug.