Wide Bold fuer die grossen Zahlen, Genauigkeit der Position anzeigen
- Audi Type Wide Bold (700) eingebunden und fuer .fig/.ads-fig gesetzt, in
beiden Codebasen. Light war zu duenn, Normal ebenfalls (Ansage des
Eigentuemers). Die alte Notiz "es gibt nur 300 und 400, niemals fetter"
ist damit ueberholt und entfernt statt ergaenzt - sie stand nur da, weil
es keine anderen Schnitte gab.
- standort_genauigkeit_m wird jetzt angezeigt ("Position auf +-12 m genau",
unter der Anschrift im Standortblatt). Der Wert kam seit jeher vom
Backend, wurde im Panel in eine Variable gelesen und nirgends gezeigt -
im Audit als totes Schema gefunden. In der App fehlte er ganz und ist
jetzt durch Typ und Adapter verdrahtet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
@@ -69,6 +69,8 @@ export interface Fahrzeug {
|
||||
/** Diagnosecodes im Fehlerspeicher; `null` heisst "kein Sensor zugeordnet
|
||||
oder er meldet nichts" - nie als "keine Fehler" deuten. */
|
||||
fehlerspeicher: { anzahl: number | null; ok: boolean | null } | null
|
||||
/** Genauigkeit der Position in Metern; `null` heisst unbekannt. */
|
||||
standortGenauigkeitM: number | null
|
||||
/** Zustand des Zündungssensors — nicht „fährt": ohne Bewegungssensor sagt
|
||||
an nur, dass die Zündung an ist. `null` heißt „kein Zündungssensor
|
||||
zugeordnet", also unbekannt — nicht „steht". */
|
||||
@@ -185,6 +187,7 @@ export function profilZuFahrzeug(profil: Profil, status: Fahrzeugstatus): Fahrze
|
||||
gesichert: status.gesichert ?? null,
|
||||
sicherheitscheck: status.sicherheitscheck ?? [],
|
||||
fehlerspeicher: status.fehlerspeicher ?? null,
|
||||
standortGenauigkeitM: status.standort_genauigkeit_m ?? null,
|
||||
zuendung: status.zuendung ?? null,
|
||||
geparktSeit: (status.geparkt_seit as string | null) ?? null,
|
||||
faehrtSeit: (status.faehrt_seit as string | null) ?? null,
|
||||
|
||||
@@ -27,6 +27,7 @@ function fahrzeug(odo: number, modus = "hersteller"): Fahrzeug {
|
||||
gesichert: null,
|
||||
sicherheitscheck: [],
|
||||
fehlerspeicher: null,
|
||||
standortGenauigkeitM: null,
|
||||
zuendung: null,
|
||||
geparktSeit: null,
|
||||
faehrtSeit: null,
|
||||
|
||||
@@ -124,6 +124,20 @@ const PARKPLATZ_AB_MIN = 15
|
||||
|
||||
Kein Rueckfall auf die Fahrtenliste: null heisst unbekannt, und das wird
|
||||
auch so angezeigt. Eine falsche Zahl ist schlechter als keine. */
|
||||
/* Wie genau die Position ist, in Metern. Der Wert kommt seit jeher vom
|
||||
Backend (standort_genauigkeit_m) und wurde bis zum 05.09.2026 nur in eine
|
||||
Variable gelesen und nirgends gezeigt - im Audit-Durchgang als totes Schema
|
||||
gefunden, Entscheidung des Eigentuemers: anzeigen. Er sagt, ob man dem Punkt
|
||||
auf der Karte trauen kann; ohne ihn sieht eine auf 500 m geschaetzte
|
||||
Funkzellen-Position genauso aus wie ein Fix auf 5 m.
|
||||
|
||||
Nur bei einer brauchbaren Zahl - fehlt sie, steht dort nichts statt einer
|
||||
erfundenen Genauigkeit. */
|
||||
export function genauigkeitText(m: number | null): string {
|
||||
if (typeof m !== "number" || !(m > 0)) return ""
|
||||
return `Position auf ±${m < 10 ? m.toFixed(1) : Math.round(m)} m genau`
|
||||
}
|
||||
|
||||
export function standortZustand(
|
||||
fahrzeug: Fahrzeug,
|
||||
): { faehrt: boolean; unbekannt: boolean; seitTs: number | null; geparkt: boolean } {
|
||||
@@ -570,6 +584,11 @@ export function Standort() {
|
||||
</div>
|
||||
</div>
|
||||
<div className="dm-standortmenu__adresse">{adresseAnzeige}</div>
|
||||
{genauigkeitText(fahrzeug.standortGenauigkeitM) && (
|
||||
<div className="dm-standortmenu__genauigkeit">
|
||||
{genauigkeitText(fahrzeug.standortGenauigkeitM)}
|
||||
</div>
|
||||
)}
|
||||
<div className="dm-standortmenu__status">
|
||||
{zustand.faehrt ? (
|
||||
<>
|
||||
|
||||
@@ -12,8 +12,9 @@
|
||||
* base64 eingebettet lagen. Als eigene woff2-Dateien sind sie zwischenspeicherbar,
|
||||
* statt bei jedem Laden des Stylesheets erneut übertragen zu werden.
|
||||
*
|
||||
* Es gibt nur die Schnitte 300 und 400. Niemals fetter setzen — der Browser
|
||||
* würde die Schrift künstlich verdicken, was sichtbar anders aussieht.
|
||||
* Vorhanden sind Wide in 300/400/700 und Normal in 400. Nur diese setzen —
|
||||
* alles andere verdickt oder verschmälert der Browser künstlich, was sichtbar
|
||||
* anders aussieht.
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
@@ -36,9 +37,8 @@
|
||||
deshalb standen die grossen Zahlen im Light-Schnitt, und der Eigentuemer
|
||||
verglich sie mit der myAudi-App: "die Ziffern der Reichweite sind in der
|
||||
Audi App dicker". Er hat daraufhin den vollen Satz aus Audis eigenem
|
||||
Styleguide geliefert (styleguide.audi.com, AudiType 4.03). Wide Normal ist
|
||||
jetzt da; Wide Bold liegt vor, ist aber bewusst nicht eingebunden - 400 ist
|
||||
der naechste Schritt, und 300/400 bleibt die Linie dieses Projekts.
|
||||
Styleguide geliefert (styleguide.audi.com, AudiType 4.03). Wide Normal und Wide Bold sind
|
||||
seither eingebunden.
|
||||
|
||||
Lizenz: gilt wie alle Audi-Assets nur fuer diese eine private Installation.
|
||||
Deshalb liegt die Datei in companion-app bzw. im Panel, NIE in
|
||||
@@ -51,6 +51,18 @@
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/* Wide Bold (700), der Schnitt der grossen Zahlen. Erst stand dort Light, dann
|
||||
Normal - beides war gegenueber der myAudi-App zu duenn. Die fruehere
|
||||
Projektregel "nur 300/400" gilt damit nicht mehr; sie stand nur da, weil es
|
||||
keine anderen Schnitte gab. */
|
||||
@font-face {
|
||||
font-family: "Audi Type Wide";
|
||||
src: url("../assets/audi/schriften/audi-type-wide-700.woff2") format("woff2");
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Audi Type Extended";
|
||||
src: url("../assets/audi/schriften/audi-type-extended-400-italic.woff2") format("woff2");
|
||||
@@ -72,9 +84,7 @@
|
||||
variante, wie im Panel. */
|
||||
/* Seit dem 05.09.2026 Normal- statt Light-Schnitt: der Eigentümer verglich die
|
||||
Zahlen mit der myAudi-App („die Ziffern der Reichweite sind in der Audi App
|
||||
dicker") und lieferte daraufhin den vollen Satz aus Audis Styleguide. Wide
|
||||
Normal (400) ist seither eingebunden; Wide Bold liegt vor, ist aber bewusst
|
||||
nicht in Gebrauch.
|
||||
dicker") und lieferte daraufhin den vollen Satz aus Audis Styleguide. Seither steht dort Wide Bold.
|
||||
|
||||
Diese Regel steht NACH dem Design-System und gewinnt gegen dessen .ads-fig —
|
||||
eine Änderung dort allein bleibt hier wirkungslos. Genau das ist am
|
||||
@@ -84,7 +94,7 @@
|
||||
.ads-fig,
|
||||
.dm-detail__zahl {
|
||||
font-family: var(--font-wide);
|
||||
font-weight: 400;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ads-sport {
|
||||
|
||||
@@ -2398,3 +2398,11 @@ input[type="range"] {
|
||||
myAudi-App nach, und deren Rot ist das der Marke (vom Eigentuemer am
|
||||
05.09.2026 als "weniger dunkel" gemeldet).
|
||||
|
||||
Rot als FLAECHE ist in diesem Projekt sonst zerstoerenden Aktionen
|
||||
vorbehalten. Hier ist es kein Bedienelement, sondern eine Warnung - eine
|
||||
bewusste, benannte Ausnahme. Wortgleich mit dem Panel. */
|
||||
.dm-balken--reserve .ads-balken > i {
|
||||
background: var(--red);
|
||||
}
|
||||
|
||||
/* Genauigkeit der Position, unter der Anschrift. Wortgleich mit
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":"2026.9.5.42","sha256":"2ae33ef936e10845d4c4c6e5545511c99a20d19a43ec1520b6a78bf683393b89","bytes":364400,"gebaut":"2026-09-05T15:49:05Z"}
|
||||
{"version":"2026.9.5.43","sha256":"5f10d242a786850624aa8484fb83c8638fc43e41c20afd894c008665dde0c1f0","bytes":418680,"gebaut":"2026-09-05T15:55:43Z"}
|
||||
Binary file not shown.
@@ -1155,6 +1155,20 @@ function letzteFahrt() {
|
||||
|
||||
Kein Rueckfall auf die Fahrtenliste: null heisst unbekannt, und das wird
|
||||
auch so angezeigt. Eine falsche Zahl ist schlechter als keine. */
|
||||
/* Wie genau die Position ist, in Metern. Der Wert kommt seit jeher vom
|
||||
Backend (standort_genauigkeit_m) und wurde bis zum 05.09.2026 nur in eine
|
||||
Variable gelesen und nirgends gezeigt - im Audit-Durchgang als totes Schema
|
||||
gefunden, Entscheidung des Eigentuemers: anzeigen. Er sagt, ob man dem Punkt
|
||||
auf der Karte trauen kann; ohne ihn sieht eine auf 500 m geschaetzte
|
||||
Funkzellen-Position genauso aus wie ein Fix auf 5 m.
|
||||
|
||||
Nur bei einer brauchbaren Zahl - fehlt sie, steht dort nichts statt einer
|
||||
erfundenen Genauigkeit. */
|
||||
function genauigkeitText() {
|
||||
const m = CAR.standortGenauigkeitM;
|
||||
if (typeof m !== "number" || !(m > 0)) return "";
|
||||
return `Position auf ±${m < 10 ? m.toFixed(1) : Math.round(m)} m genau`;
|
||||
}
|
||||
function standortZustand() {
|
||||
const roh = CAR.geparktSeit ? new Date(CAR.geparktSeit).getTime() : NaN;
|
||||
const seitTs = Number.isNaN(roh) ? null : roh;
|
||||
@@ -1975,6 +1989,7 @@ function vStandort() {
|
||||
</div>
|
||||
</div>
|
||||
<div class="standortmenu-adresse" id="standortAdresse">${esc(adresseText)}</div>
|
||||
${genauigkeitText() ? `<div class="standortmenu-genauigkeit">${esc(genauigkeitText())}</div>` : ""}
|
||||
<div class="standortmenu-status">
|
||||
${zustand.faehrt
|
||||
/* Der Text sagt "Zuendung an", nicht "Fahrzeug faehrt". Es gibt keinen
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -418,7 +418,7 @@ button.tile, .tilebtn { transition: background .15s, transform .1s; }
|
||||
}
|
||||
.fig {
|
||||
font-family: "Audi Type Wide", var(--font-stack);
|
||||
font-weight: 400;
|
||||
font-weight: 700;
|
||||
letter-spacing: -.02em;
|
||||
line-height: .95;
|
||||
color: var(--fg);
|
||||
@@ -1754,3 +1754,7 @@ img.carfix.klein { aspect-ratio: auto; height: auto; }
|
||||
ablesbar ist, dass jetzt geloescht wird und nicht nur aufgeklappt.
|
||||
Wortgleich mit .dm-wisch__loeschen--scharf in der App. */
|
||||
.swipe-delete--scharf { filter: brightness(1.12); }
|
||||
|
||||
/* Genauigkeit der Position, unter der Anschrift im Standortblatt. Eine Stufe
|
||||
leiser als die Anschrift - sie beschreibt sie, statt neben ihr zu stehen. */
|
||||
.standortmenu-genauigkeit { font-size: 12.5px; color: var(--fg3); margin-top: 4px; }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"domain": "audi_dashboard",
|
||||
"name": "Audi Dashboard",
|
||||
"version": "2026.9.5.42",
|
||||
"version": "2026.9.5.43",
|
||||
"documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md",
|
||||
"issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues",
|
||||
"codeowners": [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.ads-fig {
|
||||
font-weight: 400 /* Wide Normal, siehe audi-schrift.css */;
|
||||
font-weight: 700 /* Wide Bold, siehe audi-schrift.css */;
|
||||
/* -.03em, nicht -.02em: die iOS-Auflage im Panel überschreibt .fig dort
|
||||
eigens (audi-dashboard-ios.css, live gemessen -1.8px bei 60px = -.03em)
|
||||
- das Basisblatt allein (audi-dashboard.css, -.02em) reicht am echten
|
||||
|
||||
Reference in New Issue
Block a user