Vier Meldungen -- und dahinter zweimal derselbe alte Fehler
DIE SYMBOLE IN DER TAGESKACHEL WAREN DIESELBEN -- OHNE IHRE GESTALTUNG
Sie kommen vom selben Bauer wie alle anderen, bekamen aber nie dessen
Aussehen: Alle Lagenregeln waren auf `.kachel__svg` eingegrenzt, und
dieses Zeichen heisst `.dran__svg`. Uebrig blieb eine flache Kontur --
daneben, auf derselben Seite, dieselben Zeichen mit drei Lichtern,
Tiefe und Randlicht. Die Regeln gelten jetzt fuer beide Traeger, und
das Feld darum ist dasselbe gefasste Schild wie auf den Kacheln.
"UNDEFINED" IM CHAT -- DERSELBE FEHLER WIE HEUTE FRUEH, NUR ALS OBJEKT
Ueber Cigdems Namen stand woertlich "UNDEFINED". Die Rollennamen
standen als Objekt in FUENF Skripten (chat.js zweimal, dateien.js,
kalender.js zweimal), in keinem davon 'spicy'.
Heute Frueh war es dieselbe Sache als Menge (`new Set([...])`), und
seitdem sucht `pruef-css-klassen.mjs` danach. Ein Muster, das nur eine
Schreibweise kennt, findet auch nur eine -- die Pruefung sucht jetzt
auch nach Rollen-OBJEKTEN, mit Gegenprobe. Die Namen stehen an EINER
Stelle in bereiche.js.
DOGFATHER UND SPICY MEDIA SIND IM CHAT FUER JEDEN ERREICHBAR
DogFather kam bisher als Nebeneffekt ueber die Betreuungskette mit
hinein, Spicy Media gar nicht -- die Rolle steht in keiner Kette, sie
steht daneben. Beide werden jetzt ausdruecklich hinzugefuegt: Eine
Zustaendigkeit, die nur zufaellig aus einer anderen Regel herausfaellt,
faellt beim naechsten Umbau genauso zufaellig wieder heraus.
Gemessen aus der Sicht eines Creators -- wer bei ihm ankommt, kommt
ueberall an.
DIE PERSONENLISTE: SPICY MEDIA SIEHT ALLES AUSSER DOGFATHER
Der Abschnitt "Spicy Media" fehlte in der Liste komplett -- die Rolle
gibt es seit heute Frueh, die Personenseite kannte sie nicht. Und Spicy
Media selbst sah dort bisher nur das Anlegen-Formular; sie bekommt
jetzt die Liste, ohne DogFathers Zeile, und weiterhin ohne Codes,
Sperren, Loeschen und Protokoll. Ueberblick ist nicht Verwaltung.
ZWEI FOLGEFEHLER, BEIDE VON DEN PRUEFUNGEN GEFUNDEN
* `next("route")` TUT DAS GEGENTEIL VON DEM, WONACH ES KLINGT. Mein
erster Versuch war eine Ausnahme-Route VOR der Schranke, die mit
`next("route")` weiterreicht -- das ueberspringt aber die restlichen
Handler DIESER Route und geht zur naechsten Schicht, also genau zur
Schranke. Spicy bekam weiter 404, die Oberflaeche verstand das als
"nicht erlaubt" und sprang zur Startseite. Gemessen: Auf
personen.html standen die Kategorien der STARTSEITE.
* DAS PROTOKOLL WARF SIE VON DER SEITE. Es bleibt bei DogFather und
antwortet ihr mit 404 -- und `hole()` versteht ein 404 unter
`/verwaltung/` als "nicht erlaubt". Die Seite baute sich auf und
sprang im naechsten Atemzug weg. Eine Abfrage, von der man weiss,
dass sie 404 gibt, stellt man nicht.
UND EINE MEINER EIGENEN NEUEN PRUEFUNGEN WAR WERTLOS
"bei ihr fehlt der Abschnitt DogFather" -- gruen, mit dem Zusatz
"(keine Abschnitte)". Sie war gruen, weil die Liste bei ihr GAR NICHT
DA war. Genau der Haken, der nichts beweist. Er steht jetzt neben einem
Ergebnis, das etwas enthaelt: "Spicy Media | Manager | ...".
18 Pruefungen gelaufen, alle gruen. pruef-spicy von 49 auf 57.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -1040,16 +1040,16 @@ body.start > main { position: relative; z-index: 1; }
|
||||
|
||||
Drei Tiefenlagen sind gemessen: bei zwei sieht es aus wie ein
|
||||
Druckfehler, ab fünf wie ein Schlagschatten. */
|
||||
.kachel__svg .zeichen__tiefe3,
|
||||
.kachel__svg .zeichen__tiefe2,
|
||||
.kachel__svg .zeichen__tiefe1 {
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__tiefe3,
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__tiefe2,
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__tiefe1 {
|
||||
stroke: none;
|
||||
}
|
||||
.kachel__svg .zeichen__tiefe3 { fill: rgba(0, 0, 0, .55); }
|
||||
.kachel__svg .zeichen__tiefe2 { fill: url(#zeichen-wand); opacity: .85; }
|
||||
.kachel__svg .zeichen__tiefe1 { fill: url(#zeichen-wand); }
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__tiefe3 { fill: rgba(0, 0, 0, .55); }
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__tiefe2 { fill: url(#zeichen-wand); opacity: .85; }
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__tiefe1 { fill: url(#zeichen-wand); }
|
||||
|
||||
.kachel__svg .zeichen__deck {
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__deck {
|
||||
fill: url(#zeichen-deck);
|
||||
stroke: none;
|
||||
}
|
||||
@@ -1058,7 +1058,7 @@ body.start > main { position: relative; z-index: 1; }
|
||||
hellen Deckfläche liest man beide zusammen als eingravierte Rille,
|
||||
auf der dunklen Plakette verschwindet er und nur die helle Linie
|
||||
bleibt. */
|
||||
.kachel__svg .zeichen__saum {
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__saum {
|
||||
fill: none;
|
||||
stroke: rgba(6, 10, 16, .78);
|
||||
stroke-width: 3.4;
|
||||
@@ -1066,7 +1066,7 @@ body.start > main { position: relative; z-index: 1; }
|
||||
}
|
||||
/* Die kuehle Lichtkante. Duenner als die Kontur und ohne Fuellung --
|
||||
sie soll die Kante andeuten, nicht eine zweite Zeichnung sein. */
|
||||
.kachel__svg .zeichen__rand {
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__rand {
|
||||
fill: none;
|
||||
/* BREITER als die Kontur darueber (2,7 gegen 1,9) und um ein Drittel
|
||||
Rasterpunkt versetzt -- nur so schaut die Lichtkante oben links
|
||||
@@ -1077,7 +1077,7 @@ body.start > main { position: relative; z-index: 1; }
|
||||
}
|
||||
.kachel__wasserzeichen .zeichen__rand { display: none; }
|
||||
|
||||
.kachel__svg .zeichen__linie {
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__linie {
|
||||
stroke: url(#zeichen-linie);
|
||||
/* 2,05 statt 1,65: Die Zeichen sollen TRAGEN, nicht andeuten. Eine
|
||||
dünne Linie wirkt neben kräftigem Text zaghaft -- und zaghaft war
|
||||
@@ -1123,7 +1123,7 @@ body.start > main { position: relative; z-index: 1; }
|
||||
/* Ohne Farben trägt allein die Linie. Der Schein wäre dort ein
|
||||
grauer Klecks über der Zeichnung. */
|
||||
.kachel__svg { filter: none; }
|
||||
.kachel__svg .zeichen__linie { stroke: CanvasText; }
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__linie { stroke: CanvasText; }
|
||||
}
|
||||
|
||||
.kachel__text { position: relative; z-index: 1; display: grid; gap: 3px; min-width: 0; }
|
||||
@@ -1328,21 +1328,67 @@ body.start > main { position: relative; z-index: 1; }
|
||||
padding: 11px 15px 11px 17px;
|
||||
color: var(--text); text-decoration: none; font-size: .9rem;
|
||||
}
|
||||
/* Und das Feld darum ist dasselbe gefasste Schild wie auf den
|
||||
Kacheln -- abgeschnittene Ecke, Metallring, Farbe innen. Eine
|
||||
Oberflaeche, eine Sprache. */
|
||||
.dran__zeichen {
|
||||
--z-fase: 7px;
|
||||
position: relative;
|
||||
display: grid; place-items: center;
|
||||
width: 30px; height: 30px; border-radius: 9px;
|
||||
border: 1px solid color-mix(in srgb, var(--ton) 30%, transparent);
|
||||
background: color-mix(in srgb, var(--ton) 13%, transparent);
|
||||
transition: transform .18s ease, background .18s ease;
|
||||
width: 34px; height: 34px;
|
||||
padding: 2px;
|
||||
border: 0; border-radius: 0;
|
||||
clip-path: polygon(var(--z-fase) 0, 100% 0, 100% 100%, 0 100%, 0 var(--z-fase));
|
||||
background:
|
||||
conic-gradient(from 210deg,
|
||||
#b9c8da 0deg, #5a6b80 44deg, #d6e2ef 88deg, #44536a 140deg,
|
||||
#aebdd0 196deg, #64758c 244deg, #cddaea 296deg, #4e5d73 340deg,
|
||||
#b9c8da 360deg);
|
||||
box-shadow:
|
||||
0 4px 12px -7px rgba(0, 0, 0, .9),
|
||||
0 0 0 1px rgba(6, 10, 18, .5),
|
||||
0 8px 26px -12px color-mix(in srgb, var(--ton) 70%, transparent);
|
||||
transition: transform .18s ease;
|
||||
}
|
||||
.dran__zeichen::before {
|
||||
content: ""; position: absolute; inset: 2px; z-index: 0;
|
||||
clip-path: polygon(
|
||||
calc(var(--z-fase) - 2px) 0, 100% 0, 100% 100%, 0 100%,
|
||||
0 calc(var(--z-fase) - 2px));
|
||||
background:
|
||||
linear-gradient(150deg, rgba(255, 255, 255, .18) 0%, transparent 50%),
|
||||
radial-gradient(120% 100% at 22% 8%,
|
||||
color-mix(in srgb, var(--ton) 52%, transparent) 0%,
|
||||
color-mix(in srgb, var(--ton) 22%, transparent) 50%,
|
||||
color-mix(in srgb, var(--ton) 8%, transparent) 100%),
|
||||
linear-gradient(#0a0f18, #0a0f18);
|
||||
}
|
||||
.dran__svg { position: relative; z-index: 1; }
|
||||
/* DIE ZEILENSYMBOLE SIND DIESELBEN SYMBOLE (07.09.2026).
|
||||
|
||||
Filipe: "die symbole sollen auch wie die anderen symbole sein."
|
||||
|
||||
Sie wurden vom selben Bauer erzeugt (`zeichenBauen`), bekamen aber
|
||||
nie dessen Gestaltung: Alle Lagenregeln waren auf `.kachel__svg`
|
||||
eingegrenzt, und dieses Zeichen heisst `.dran__svg`. Uebrig blieb
|
||||
eine flache Kontur in einer Farbe -- daneben auf derselben Seite
|
||||
dieselben Zeichen mit drei Lichtern, Tiefe und Randlicht.
|
||||
|
||||
Die Regeln gelten jetzt fuer beide Traeger. Wer ein drittes Zeichen
|
||||
einbaut, traegt es dort ein; die Alternative waere, die Gestaltung
|
||||
ein zweites Mal zu beschreiben, und zwei Beschreibungen derselben
|
||||
Sache laufen immer auseinander.
|
||||
|
||||
Groesser ist es auch: 16 -> 20 px im 30er-Feld, damit die drei
|
||||
Lichter ueberhaupt Platz haben. */
|
||||
.dran__svg {
|
||||
width: 16px; height: 16px;
|
||||
fill: none; stroke: var(--ton); stroke-width: 1.7;
|
||||
width: 20px; height: 20px;
|
||||
color: var(--ton);
|
||||
fill: none;
|
||||
stroke-linecap: round; stroke-linejoin: round;
|
||||
}
|
||||
.dran__link:hover .dran__zeichen {
|
||||
transform: scale(1.07);
|
||||
background: color-mix(in srgb, var(--ton) 20%, transparent);
|
||||
transform: translateY(-1px) scale(1.05);
|
||||
}
|
||||
/* Die Zahl steht vorn und in gleicher Zeichenbreite: Beim Ueberfliegen
|
||||
von sieben Zeilen liest man sie zuerst, und sie sollen untereinander
|
||||
@@ -3283,12 +3329,12 @@ body[data-fremde-sicht="ja"]::after {
|
||||
|
||||
/* Die Spiegelung liegt auf demselben Körper -- ein schmaler heller
|
||||
Streifen quer über die obere Hälfte, wie Licht auf gewölbtem Glas. */
|
||||
.kachel__svg .zeichen__glanz {
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__glanz {
|
||||
fill: url(#zeichen-glanz);
|
||||
stroke: none;
|
||||
transition: opacity var(--tempo);
|
||||
}
|
||||
.kachel:hover .kachel__svg .zeichen__glanz { opacity: 1.35; }
|
||||
.kachel:hover :is(.kachel__svg, .dran__svg) .zeichen__glanz { opacity: 1.35; }
|
||||
|
||||
/* Im Wasserzeichen NICHT -- dort liegt das Zeichen riesig hinter dem
|
||||
Text der Kachel. Eine Fläche würde ihn hinterlegen. */
|
||||
@@ -3300,8 +3346,8 @@ body[data-fremde-sicht="ja"]::after {
|
||||
}
|
||||
@media (forced-colors: active) {
|
||||
/* Ohne Farben würde die Fläche zu einem massiven Block. */
|
||||
.kachel__svg .zeichen__fuellung,
|
||||
.kachel__svg .zeichen__glanz { display: none; }
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__fuellung,
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__glanz { display: none; }
|
||||
}
|
||||
|
||||
/* ---------- Material statt Zeichnung (03.09.2026, zweite Stufe) ----------
|
||||
@@ -3348,7 +3394,7 @@ body[data-fremde-sicht="ja"]::after {
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
.kachel__svg .zeichen__eigenschatten,
|
||||
:is(.kachel__svg, .dran__svg) .zeichen__eigenschatten,
|
||||
.kachel__zeichen::after { display: none; }
|
||||
.kachel__svg { filter: none; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user