Die Kachelfarben kommen jetzt WIRKLICH auf dem Bildschirm an

Filipe: "ich raste aus im ernst, was verstehst du nicht darunter wenn
ich sage das alle kacheln eine andere farbe haben sollen ich seh
immer wieder sehr viele die einfach komplett die gleiche farbe haben."

ER HATTE RECHT, UND MEINE PRUEFUNG WAR TROTZDEM GRUEN.
Der Grund war ein Messfehler, und zwar meiner: pruef-kachelfarben las
`--ton` aus start.css -- die ROHFARBE. Die lag zwischen allen 31
Kacheln weit auseinander (0,0978 in OKLab). Nur steht sie so nie auf
dem Bildschirm.

GEMESSEN an echten Bildpunkten (neu: tools/kachel-echtfarbe.mjs):
  Rohfarben:              0,0978 auseinander
  Auf dem Bildschirm:     0,0141
  Es kamen an:            14,4 Prozent
  Fuer ein Auge gleich:   ACHT Paare

Drei Stellen haben die Farbe geschluckt, alle in .kachel:
  1. Eine Wolke mit 16 Prozent -- in immer DEMSELBEN Blau, auf jeder
     Kachel. Der staerkste Gleichmacher der ganzen Wand. Sie traegt
     jetzt den Ton der Kachel.
  2. Die Vignette legte bis zu 55 Prozent Dunkelblau darueber.
  3. Der Grund trug den Ton zu 24 Prozent und ging ab 58 Prozent in
     fast reines Schwarz. Zwei Drittel jeder Kachel waren damit
     dieselbe Farbe, egal welcher Ton darueber stand.

Danach: 51,1 Prozent kamen an, NULL ununterscheidbare Paare.

UND DANN HAETTE ICH EINEN FEHLER GEGEN EINEN ANDEREN GETAUSCHT.
Gemessen an jedem einzelnen Kacheltext: VORHER war 1 von 31 unter
4,5:1, DANACH 27 von 31. Also genau das, was Filipe schon zweimal
gemeldet hat ("man bekommt fast nichts gelesen"). Kein Messwert hat
es angezeigt -- pruef-buehne nimmt Stichproben und traf die
Kacheltexte nicht.

Behoben mit einem Lesesaum: ein dunkler Verlauf VON UNTEN, der genau
den Streifen abdunkelt, auf dem gelesen wird, und die oberen zwei
Drittel in Ruhe laesst. Dasselbe Mittel, mit dem jede Bildunterschrift
auf einem Foto lesbar gemacht wird.

  Texte unter 4,5:1:   1 -> 27 -> 0
  Farbe kommt an:      14,4 % -> 51,1 % -> 36,5 %

VERTRAULICH MELDEN IST JETZT KNALLROT.
Filipe: "nicht die kachel draussen soll rot sein sondern die kachel
vertraulich melden nur die soll knall rot sein!!!" Ich hatte screen5
und screen6 vertauscht. Ringtausch ohne neue Farbe:
  Vertraulich melden  28 -> 38  (#ff1a1a, knallrot)
  Draussen            38 -> 39  (die Farbe, die Regeln & Hilfe hatte)
  Regeln & Hilfe      39 -> 28  (das frei gewordene Gruen)

NEU, UND DER EIGENTLICHE LERNEFFEKT:
server/helfer-kachel-echtfarbe.mjs misst beides in EINER Messung --
Farbunterschied UND Lesbarkeit. Wer sie trennt, verbessert das eine
und verliert das andere; genau das ist heute passiert. Benutzt von
der Pruefung und vom Werkzeug, damit es nur eine Fassung gibt.

pruef-kachelfarben 18/0 (war 13), davon fuenf am echten Bildschirm:
  - kein Paar sieht auf dem Bildschirm gleich aus (0,0357)
  - mindestens ein Drittel der Rohfarbe kommt an (36,5 %)
  - jeder Kacheltext erreicht 4,5:1 (schlechtester: 4,80:1)
Mit drittem Ausgang: kein Browser heisst "konnte nicht nachsehen",
nicht "in Ordnung".

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-22 10:26:49 +02:00
co-authored by Claude Opus 5
parent 65d278a18e
commit e12392a289
44 changed files with 1205 additions and 559 deletions
+67 -5
View File
@@ -1115,7 +1115,7 @@ body.start > main { position: relative; z-index: 1; }
Ergebnis: OKLCH L=0.59 C=0.185 H=254. Abstand 0.310 zum nächsten
(Ton 33), Kontrast 4.51:1. Blau ist die einzige Ecke, die im Treff
noch frei war — das ist kein Zufall, sondern das Ergebnis. */
[data-ton="38"] { --ton: #ff1a1a; } /* Draussen -- KNALLROT, gesetzt 22.09.2026 (Kontrast 4,84:1) */
[data-ton="38"] { --ton: #ff1a1a; } /* Vertraulich melden -- KNALLROT, gesetzt 22.09.2026 (Kontrast 4,84:1) */
/* VERTRAULICH MELDEN (19.09.2026) -- ebenfalls abgesucht, nicht gewaehlt.
140 973 lesbare Kandidaten, gewonnen hat der mit dem groessten
Mindestabstand zu allen neun belegten Toenen: OKLCH L=0.77 C=0.130
@@ -1198,6 +1198,35 @@ body.start > main { position: relative; z-index: 1; }
Farben ihn halten, prüft pruef-css-klassen ohnehin bei jedem Lauf.
===================================================================== */
background:
/* ---- DER LESESAUM (22.09.2026) ----------------------------------
==================================================================
ZUERST IM STAPEL, also GANZ OBEN -- er liegt ueber allem anderen.
Am 22.09. wurde die Kachelfarbe kraeftiger gemacht, weil Filipe
zu Recht sagte, alle saehen gleich aus. Gemessen kamen vorher
14,4 Prozent der Rohfarbe an, danach 51,1 -- und acht
ununterscheidbare Paare wurden null.
Nur: Damit wurde der Text unlesbar. Gemessen an echten
Bildpunkten hinter jedem Kacheltext: VORHER war 1 von 31 unter
4,5:1, DANACH 27 von 31. Ein Fehler gegen einen anderen
getauscht -- und Filipe hat denselben schon zweimal gemeldet
("man bekommt fast nichts gelesen").
Beides geht. Der Text steht unten links, die Farbe braucht die
ganze Flaeche: Also dunkelt ein Verlauf VON UNTEN genau den
Streifen ab, auf dem gelesen wird, und laesst die oberen zwei
Drittel in Ruhe. Das ist dasselbe Mittel, mit dem jede
Bildunterschrift auf einem Foto lesbar gemacht wird.
Er faerbt NICHT ins Graue, sondern ins Dunkle der Buehne
(#04060e) -- sonst haette man 31 Kacheln mit demselben grauen
Fuss, und die Farbe waere unten wieder weg. */
linear-gradient(to top,
rgba(4, 6, 14, .88) 0%,
rgba(4, 6, 14, .66) 26%,
rgba(4, 6, 14, .22) 48%,
transparent 66%),
/* ---- NAHE STERNE ------------------------------------------------
Gross, hell, spaerlich. Jeder mit einem Hof (der zweite
Farbstopp), damit er leuchtet statt zu stanzen -- das ist der
@@ -1258,21 +1287,54 @@ body.start > main { position: relative; z-index: 1; }
Farbfleck; erst ein zweiter, kaelterer Ton macht daraus einen
Raum mit Ferne. Dieselbe Ueberlegung wie bei der
Willkommenskachel, wo Rot und Babyblau sich gegenueberstehen. */
radial-gradient(56% 64% at 76% 18%, rgba(96, 158, 232, .16), transparent 64%),
/* IM KACHELTON, NICHT FEST BLAU (22.09.2026).
Diese Wolke lag mit 16 Prozent auf JEDER Kachel -- in immer
demselben Blau. Sie war damit der staerkste Gleichmacher der
ganzen Wand: 31 verschiedene Toene, und darueber 31 mal
dasselbe Blau. Jetzt traegt sie den Ton der Kachel; das
Tiefengefuehl bleibt, die Angleichung faellt weg. */
radial-gradient(56% 64% at 76% 18%,
color-mix(in srgb, var(--ton) 38%, transparent), transparent 64%),
/* DIE VIGNETTE. Aussen dunkler als innen -- ohne sie ist die
Kachel eine gleichmaessig helle Flaeche, mit ihr ein Ausschnitt
aus etwas Groesserem. Das ist der billigste Tiefeneindruck, den
es gibt, und der wirksamste. */
radial-gradient(120% 120% at 50% 45%, transparent 38%, rgba(3, 5, 12, .55) 100%),
radial-gradient(120% 120% at 50% 45%, transparent 46%, rgba(3, 5, 12, .38) 100%),
/* ---- DER GRUND --------------------------------------------------
Dunkler als frueher: Das Universum braucht Schwarz, sonst
leuchten die Sterne gegen ein Foto an und verlieren. Die Kachel
bleibt durchscheinend -- nur eben weniger. */
/* DIE FARBE TRAEGT UEBER DIE GANZE KACHEL (22.09.2026).
================================================================
Filipe: "ich seh immer wieder sehr viele die einfach komplett
die gleiche farbe haben ich will dass sie wirklich alle alle
alle komplett unterschiedlich sind."
Er hatte recht, und `pruef-kachelfarben` war trotzdem gruen --
weil sie die ROHFARBE mass. Nachgemessen an echten Bildpunkten
(tools/kachel-echtfarbe.mjs): Die Rohfarben liegen 0,0978
auseinander, auf dem Bildschirm nur 0,0141. Es kamen 14,4
Prozent an, und acht Paare waren fuer ein Auge nicht mehr zu
unterscheiden.
Der Grund stand hier: 24 Prozent Ton am Anfang, ab 58 Prozent
fast reines Schwarz. Zwei Drittel jeder Kachel waren damit
dieselbe Farbe, egal welcher Ton oben drueber stand.
Jetzt traegt der Ton bis zum Ende durch -- unten dunkler, aber
immer noch farbig. Die Kachel bleibt dunkel (der Ton wird mit
Schwarz gemischt, nicht aufgehellt), also bleibt der Text
lesbar; nachgemessen wird das von pruef-buehne an echten
Bildpunkten. */
linear-gradient(155deg,
color-mix(in srgb, var(--ton) 24%, var(--flaeche)),
color-mix(in srgb, #05070e 55%, var(--flaeche)) 58%);
color-mix(in srgb, var(--ton) 62%, var(--flaeche)),
color-mix(in srgb, var(--ton) 30%, #05070e) 100%);
background-size:
/* Der Lesesaum deckt die ganze Kachel (22.09.2026). Ohne diesen
Eintrag rutscht die ganze Liste um eins und jedes Sternenfeld
bekommt die Groesse seines Nachbarn. */
100% 100%,
317px 317px, 223px 223px, 271px 271px,
137px 137px, 191px 191px, 233px 233px, 163px 163px,
89px 89px, 137px 137px, 223px 223px, 107px 107px, 179px 179px,