/* ===================================================================== DIE REGELN FÜR EINEN KACHELTON — an einer Stelle (22.09.2026) ===================================================================== ENTSTANDEN AUS EINEM WIDERSPRUCH, den niemand bemerkt hätte, bis er Arbeit gekostet hat. Für die neue Kachel „Calls & Protokolle" musste ein Ton gerechnet werden. `tools/kachel-farbe-einzeln.mjs` lieferte `#bcdbff` mit einem Abstand von 0,1339 — dem besten Wert weit und breit. `server/pruef-kachelfarben.mjs` lehnte ihn ab: FEHL keiner ist blasser als 0.12 — Ton 43 #bcdbff (0.060) Beide hatten recht. Das Werkzeug suchte die Buntheit von 0,30 bis herunter auf 0,04, die Prüfung verlangt mindestens 0,12. Zwei Zahlen für dieselbe Regel, in zwei Dateien, die nichts voneinander wissen — die eine kannte die andere nicht. Das ist dieselbe Krankheit wie eine abgeschriebene Spaltenliste: Es wird nicht falsch, es wird UNZUSTÄNDIG. Ein Werkzeug, das Vorschläge macht, die die Prüfung danach ablehnt, ist schlimmer als keines — man hält das Ergebnis für fertig. Deshalb stehen die Schwellen jetzt hier, und beide Seiten lesen sie von hier. Wer eine ändert, ändert sie für alle. ===================================================================== */ /** Der dunkle Grund, gegen den jede Kachelfarbe gemessen wird. */ export const GRUND = "#0a121e"; /* DIE SCHWELLE IST GEMESSEN, NICHT GERATEN. Vor dem Lauf vom 22.09.2026 lag das engste Paar der benutzten Töne bei 0,0741 („Was ansteht" neben dem neuen Rot von „Draußen") — das war der Zustand, den Filipe als „ähnlich" gemeldet hat. Danach: 0,1028. 0,090 liegt dazwischen: Der heutige Stand hat Luft, ein Rückfall auf „sieht gleich aus" schlägt an. */ export const MINDEST_ABSTAND = 0.090; /* Der Median der Buntheit aller Töne lag bei 0,168, die fünf blassesten zwischen 0,064 und 0,088. Filipe: „die farben sollen auch richtig geil und speziell sein." Augenschonend heißt dunkles Schema und kein Flackern — NICHT blass. */ export const MINDEST_BUNTHEIT = 0.12; /* Die Obergrenze. Über 0,30 wird es auf einem dunklen Grund grell, und grell ist das, was die Augen belastet. */ export const HOECHST_BUNTHEIT = 0.30; /* Nicht verhandelbar: Eine Kachelfarbe trägt auch Text und Zahlen. */ export const MINDEST_KONTRAST = 4.5; /* ===================================================================== WAS FESTGELEGT IST -- und warum (hierher geholt am 25.09.2026) Diese Liste stand in server/pruef-kachelfarben.mjs. Dort konnte sie nur EINES: eine Abweichung melden, nachdem sie passiert ist. Genau das ist am 25.09. passiert. Eine Rechnung hat die 45 Kachelfarben neu verteilt, um acht fast gleiche Paare zu trennen -- und dabei zwei ausdrueckliche Wuensche ueberfahren, weil sie sie nicht kannte: Ton 38 #ff1a1a „nur die soll knall rot sein!!!" -> #ff241e Ton 44 #a8d8ff „soll auch babyblau sein" -> #90c3ff Die Pruefung hat beides gefunden, und das ist ihr Verdienst. Aber eine Bedingung, die erst NACH dem Schaden spricht, ist die schwaechere Form: Wer die Farben rechnet, soll gar nicht erst die Moeglichkeit haben, sie zu verschieben. Deshalb steht sie jetzt hier, neben den Schwellen -- und beide Seiten lesen sie von hier: die Pruefung, um zu melden, und das Rechenwerkzeug, um sie festzuhalten. ===================================================================== */ export /* Was festgelegt ist — mit dem Grund, aus dem es festgelegt wurde. */ const FESTGELEGT = [ /* BERICHTIGT AM 22.09.2026. Ich hatte screen5 und screen6 vertauscht und das Rot auf "Draussen" gelegt. Filipe: "nicht die kachel draussen soll rot sein sondern die kachel vertraulich melden nur die soll knall rot sein!!!" */ { ton: 38, kachel: "Vertraulich melden", hex: "#ff1a1a", warum: "knalliges Rot -- wer den vertraulichen Weg sucht, soll ihn finden, ohne zu lesen" }, { ton: 39, kachel: "Draußen", warum: "die Farbe, die Regeln & Hilfe hatte -- ausdruecklicher Wunsch (screen5)" }, /* BABYBLAU IST PER DEFINITION BLASS (25.09.2026). Filipe: „die hauptfarbe der kachel soll auch babyblau sein mit bissl lila." Diese Farbe haelt die Buntheitsgrenze von 0,12 NICHT (sie liegt bei 0,074) -- und kann sie nicht halten, das liegt am Wort. Nachgemessen mit `node tools/_babyblau-suchen.mjs`: Unter allen Blautoenen im Umkreis des Wunsches gibt es KEINEN, der gleichzeitig Buntheit >= 0,12 und Abstand >= 0,09 schafft -- der beste kommt auf 0,075 Abstand. Der Blaubereich ist von den Toenen 15, 23, 26, 31, 41 und 43 besetzt. DIE GRENZE WIRD DESHALB NICHT GESENKT, sondern hier BENANNT ausgenommen. Eine gesenkte Grenze gaelte fuer alle 45 Toene und liesse ab morgen jede blasse Farbe durch; eine benannte Ausnahme gilt fuer genau diese eine und steht mit ihrem Grund da. UND SIE IST NICHT GRATIS: Wer blass sein darf, muss dafuer beim ABSTAND ueberdurchschnittlich sein -- das ist der Zweck, den die Buntheitsregel nur stellvertretend misst. Gemessen 0,1125 zur naechsten Farbe (Ton 15), das 7,3-Fache des engsten Paares, das im Haus ohnehin steht. Die Bedingung dazu steht unten bei der Pruefung und ist echt: Faellt der Abstand unter 0,10, wird diese Zeile rot. */ { ton: 44, kachel: "Support", hex: "#a8d8ff", blassErlaubt: 0.10, blassBis: 0.070, warum: "Babyblau auf Wunsch -- blass, dafuer mit gemessenem Sicherheitsabstand" }, /* ==== TUERKIS GEHT NICHT BUNTER (26.09.2026) ===================== Ton 1 traegt „Dashboard" im Agenturhaus und liegt bei einer Buntheit von 0,112 -- acht Tausendstel unter der Hausgrenze. Aufgefallen ist das erst, als diese Pruefung endlich AUCH die Toene des Agenturhauses ansah; vorher kannte sie nur 33 von 45. DIE NAHELIEGENDE ANTWORT WAERE, IHN BUNTER ZU MACHEN. Gemessen geht das nicht: Durchsucht man ALLE 16,7 Millionen sRGB-Farben nach der naechstgelegenen, die gleichzeitig Buntheit >= 0,124, Kontrast >= 4,65 und 0,09 Abstand zu allen 44 anderen haelt, kommt #7a75c8 heraus -- ein Blauviolett, 0,113 entfernt. Aus dem Tuerkis des Dashboards wuerde also Flieder. Der Grund ist der Farbraum selbst: Tuerkis erreicht in sRGB nur eine geringe Buntheit, und dieses schmale Band teilen sich bereits die Toene 15, 16, 23, 26, 31, 32 und 43. Es ist voll. ALSO EINE AUSNAHME MIT ZAHL, KEIN FREIBRIEF: `blassBis` sagt, wie blass er hoechstens sein darf -- blasser als heute darf er nicht werden. Und `blassErlaubt` fordert weiterhin den vollen Abstand ein. Eine Kachel, die ihre Farbfamilie behaelt, ist die bessere Antwort auf „richtig geil und speziell" als eine, die acht Tausendstel bunter ist und niemand wiedererkennt. */ { ton: 1, kachel: "Dashboard", blassErlaubt: 0.09, blassBis: 0.108, warum: "Tuerkis -- in diesem schmalen Band gibt es keine buntere Farbe mit Abstand" }, /* ==== DER SECHSUNDVIERZIGSTE TON (26.09.2026) ==================== Filipe: „fuer die modis, rechte und linke hand und dogfather eine kachel ... sie soll: Notizen, heissen." GESUCHT WAR BERNSTEIN -- die Farbe von Papier. Gemessen gibt es sie nicht mehr: Durchsucht man alle sRGB-Farben im Bernsteinband (Farbwinkel 55 bis 100 Grad) nach der, die am weitesten von allen 45 vorhandenen wegliegt, kommt #d0ac48 heraus -- mit 0,0799 Abstand, also UNTER der Hausgrenze von 0,09. Und Platz zu schaffen hilft nicht: Setzt man diesen Bernstein fest und laesst die Nachbarn ausweichen, geht es zwar auf -- aber ein warmer Ton muss dafuer das Band verlassen. Gemessen wanderte Ton 45 (Orange) 0,212 weit ins Magenta; haelt man auch den fest, trifft es Ton 40 mit 0,246. Das warme Band ist voll, und jede neue Farbe darin kostet eine vorhandene Kachel ihre Identitaet. Das ist ein schlechter Tausch. DIE FREIEN LUECKEN, alle gemessen: Gruen #9cde90 0,0917 <- genommen Violett #ca50ac 0,0913 Blau #746afc 0,0890 Tuerkis #66e2bc 0,0821 Bernstein #d0ac48 0,0799 Gruen passt zur Sache besser, als es zunaechst klingt: Das Notizblatt im Haus traegt seine Linien in dieser Farbe, und ein linierter Block in Gruen ist Papier, seit es Papier gibt. ER IST FESTGELEGT, weil die Kachel ihre eigene Oberflaeche hat (siehe `papier` in start.css): Ein Farblauf, der ihn verschiebt, wuerde Linien und Flaeche auseinanderlaufen lassen. */ { ton: 46, kachel: "Notizen", hex: "#9cde90", warum: "die groesste freie Luecke der Palette -- Bernstein gibt es nicht mehr" }, ];