Handy-Mitte, Babyblau und Spicy im Umschalter
Drei Bildschirmfotos, drei Befunde -- und alle drei waren messbar. --- SCREEN 2: RING UND UHR STANDEN SCHIEF --- Filipe: "ich will dass auf dem handy die uhr und der kreis ganz oben mit den erledigten aufgaben, schoen mittig, zentriert sind. die stehen sehr verzogen von der mitte. das soll bei jedem und jeder rolle verbessert werden." Gemessen bei 390 und 412 px, in allen fuenf Rollen, immer dieselbe Zahl: Ring 31 px nach links, Uhr 31 px nach rechts. Gleicher Betrag, entgegengesetzte Richtung -- eine Ursache, nicht zwei. `justify-content: center` zentriert den INHALT der Reihe, und in der Reihe steht neben dem Instrument noch ein Knopf (Glocke rechts vom Ring, Wecker links von der Uhr). Zentriert wurde also [Knopf + Abstand + Instrument] als Block; das Instrument rutschte um die halbe Knopfbreite zur Seite. Die Knopfbreite steht seit jeher als `--instrument-knoepfe: 62px` in derselben Datei -- 62 / 2 = 31. Die gemessene Zahl war von Anfang an aufgeschrieben, nur an anderer Stelle. Der Knopf zaehlt jetzt nicht mehr mit: aus dem Fluss genommen, neben das zentrierte Instrument gehaengt. NICHT um 31 px verschoben -- das waere dieselbe Zahl ein zweites Mal, und beim naechsten Knopf waere sie falsch. Jetzt folgt seine Lage dem Instrument, wie gross das auch ist. Nachher: 0 px Abweichung, alle fuenf Rollen, beide Breiten. --- SCREEN 3: DAS BABYBLAU WAR STAHLGRAU --- Filipe: "die rolle dogfather soll eine uebertrieben geile babyblau haben." Zum dritten Mal -- und die ersten beiden Male habe ich das Falsche vergroessert. Beide Male hatte ich den Abstand zwischen Rot- und Blaukanal im HEXWERT erhoeht (45 Stufen, dann 86). Diesmal zuerst gemessen, was am Bildschirm ankommt: Die DogFather-Zeile traegt 98,7 % farbige Bildpunkte -- MEHR als jede andere Rolle. An der Menge lag es also nie. Ihr Mittelwert war rgb(43,62,78): 35 Stufen zwischen Rot und Blau. Das ist Stahlgrau. Die richtige Groesse ist die SAETTIGUNG. In OKLab hatte #9ed3f4 eine Buntheit von 0,0718 -- der blasseste Wert aller fuenf Rollen. #5fbdff hat 0,1303, also 81 Prozent mehr. Die Zeile kommt damit auf rgb(36,60,79), und der mittlere Kanalabstand steigt von 35,2 auf 43,0. Nachgerechnet, was NICHT verlorengeht: Kontrast auf dem Grund 9,75:1 (vorher 12,49) -- weit ueber den 7 fuer AAA. Abstand zur naechsten Rollenfarbe 0,1608 in OKLab, vorher 0,1466; die Hausgrenze liegt bei 0,0973. DogFather ist also SICHERER unterscheidbar als vorher. Gemessen an der echten Flaeche: 8,84:1 und 9,60:1. --- SCREEN 4: SPICY FEHLTE IM UMSCHALTER --- Filipe: "ich will da auch noch die spicy rolle sehen und die leute in der rolle wie die anderen." Der Sicht-Umschalter fuehrte eine EIGENE Rollenliste -- vier Eintraege, Spicy Media fehlte. Zum vierten Mal derselbe Fehler: eine zweite Fassung einer Liste, die es zentral schon gibt. Vorher traf es die Leitungsliste (ein Set), die Rollennamen (ein Objekt in fuenf Skripten -- im Chat stand "UNDEFINED" ueber einem Namen) und die Personenliste. Jetzt steht dort keine Liste mehr, sondern eine Ableitung aus `ROLLENFOLGE` und `ROLLEN_GRUPPE`. Kommt eine sechste Rolle, ist sie ohne eine Zeile Arbeit dabei. --- Pruefung --- pruef-handy: zehn neue Messungen (fuenf Rollen x zwei Breiten), alle 0 px. Die beiden fehlenden Rollen sind dafuer in den Testdaten ergaenzt -- eine Pruefung an drei von fuenf haette "bei jeder Rolle" nicht belegen koennen. pruef-sicht: Cigdem als Spicy-Media-Person ergaenzt. Ohne sie waere es nie aufgefallen -- eine Rolle ohne Leute wird ohnehin weggelassen, und die alte Zusicherung "Manager, Scouts, Creator" waere weiter gruen gewesen. Dazu eine Gegenprobe, dass die Reihenfolge WIRKLICH aus der zentralen Liste kommt und nicht wieder abgeschrieben ist. pruef-personen-kachel: DogFather-Kontrast neu dabei. Ausserdem gruen: pruef-css-klassen, pruef-lesbarkeit. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+36
-1
@@ -80,6 +80,17 @@ function anlegen(name, rolle, code) {
|
||||
return d.prepare("SELECT last_insert_rowid() AS id").get().id;
|
||||
}
|
||||
const idDogi = anlegen("Filipe", "admin", "CODE-DOGI-0001");
|
||||
/* SPICY MEDIA GEHOERT DAZU (09.09.2026).
|
||||
|
||||
Filipe: "ich will da auch noch die spicy rolle sehen und die leute in
|
||||
der rolle wie die anderen."
|
||||
|
||||
Der Umschalter fuehrte eine EIGENE Rollenliste -- vier Eintraege, und
|
||||
Spicy Media fehlte. Ohne eine Spicy-Person in diesen Testdaten waere
|
||||
das nie aufgefallen: Eine Rolle ohne Leute wird ohnehin weggelassen,
|
||||
und die Pruefung darunter haette weiter brav "Manager, Scouts,
|
||||
Creator" bestaetigt. */
|
||||
const idSpicy = anlegen("Cigdem", "spicy", "CODE-SPIC-0001");
|
||||
const idMgr = anlegen("Mara", "manager", "CODE-MANA-0001");
|
||||
const idPat = anlegen("Patrick", "scout", "CODE-SCOU-0001");
|
||||
const idBen = anlegen("Ben", "scout", "CODE-SCOB-0001");
|
||||
@@ -338,10 +349,34 @@ const wahl = await bDogi.seite.evaluate(() => {
|
||||
anzahl: s.querySelectorAll("option").length,
|
||||
erste: s.querySelector("option")?.textContent,
|
||||
ichDrin: [...s.querySelectorAll("option")].some((o) => o.textContent === "Filipe"),
|
||||
namen: [...s.querySelectorAll("optgroup option")].map((o) => o.textContent),
|
||||
};
|
||||
});
|
||||
ok(wahl.gruppen.join(", ") === "Manager, Scouts, Creator",
|
||||
/* Die Reihenfolge ist die des Hauses (window.Bereiche.ROLLENFOLGE):
|
||||
Spicy Media, DogFather, Manager, Scout, Creator. DogFather faellt
|
||||
weg, weil dort nur Filipe selbst steht. */
|
||||
ok(wahl.gruppen.join(", ") === "Spicy Media, Manager, Scouts, Creator",
|
||||
`nach Rollen gruppiert: ${wahl.gruppen.join(", ")}`);
|
||||
ok(wahl.gruppen.includes("Spicy Media"),
|
||||
"Spicy Media steht mit dabei — nicht mehr nur vier von fuenf Rollen");
|
||||
|
||||
/* GEGENPROBE: Die Liste kommt wirklich aus der zentralen Reihenfolge
|
||||
und ist nicht wieder abgeschrieben. Waere sie es, koennte sie beim
|
||||
naechsten Mal genauso stehenbleiben. */
|
||||
const ausZentral = await bDogi.seite.evaluate(() => {
|
||||
const folge = window.Bereiche?.ROLLENFOLGE || [];
|
||||
const namen = window.Bereiche?.ROLLEN_GRUPPE || {};
|
||||
const s = document.getElementById("sicht-feld");
|
||||
const da = [...s.querySelectorAll("optgroup")].map((g) => g.label);
|
||||
const erwartet = folge.map((r) => namen[r]).filter((n) => da.includes(n));
|
||||
return { gleich: erwartet.join(", ") === da.join(", "), erwartet, da };
|
||||
});
|
||||
ok(ausZentral.gleich,
|
||||
`die Reihenfolge folgt der zentralen Liste (${ausZentral.erwartet.join(", ")})`);
|
||||
|
||||
/* Und die PERSON steht drin, nicht nur die Ueberschrift. */
|
||||
ok([...(wahl.namen || [])].includes("Cigdem"),
|
||||
`die Spicy-Media-Person steht in ihrer Gruppe (${(wahl.namen || []).join(", ")})`);
|
||||
ok(/meine Sicht/i.test(wahl.erste || ""),
|
||||
`der Rueckweg steht ganz oben ("${wahl.erste}")`);
|
||||
ok(!wahl.ichDrin, "DogFather selbst steht nicht in der Liste – das waere derselbe Zustand");
|
||||
|
||||
Reference in New Issue
Block a user