CRYONOVA Schritt 3: Feldfokus, Blickfaenge, Testkorrekturen

Der Feldfokus zeigt jetzt den Ion-Rand und den weichen Schein, den das
Design-System auf Seite 15 verlangt. Er fehlte, weil der allgemeine
Tastaturring seinen dunklen Innenring darueberlegte: Dessen Selektor hat
Spezifitaet 0,3,0, die Feldregel nur 0,2,1 -- und Spezifitaet schlaegt
Reihenfolge, egal wie weit unten die Regel steht. Eingabefelder sind
jetzt vom Innenring ausgenommen; sie brauchen ihn nicht, weil sie selbst
eine dunkle Flaeche sind. Der Aqua-Umriss bleibt fuer alle erhalten.

Die zwei Blickfang-Motive stehen jetzt auch wirklich auf einer Seite:
das Wappen auf "Ueber mich", direkt nach dem Absatz ueber die Herkunft
des Namens, der Monolith auf "Portfolio" zwischen Einleitung und den
echten Projekten. Beide als Zierbild ausgezeichnet -- ihre Aussage steht
schon im Text daneben. Auf dem Handy laedt automatisch die kleine
Fassung.

Vier Fehler steckten in der Pruefung selbst, nicht im Stilblatt:
- Sie griff das erste "input" der Anfrageseite. Das sind aber sechs
  optisch versteckte Auswahl-Radios, kein Textfeld.
- Sie mass ohne Fensterfokus. Ein Browser wendet :focus nur an, wenn das
  Fenster selbst den Fokus hat -- das DOM meldet trotzdem brav
  matches(":focus") === true, die Farbe bleibt die alte.
- Sie mass mitten im Uebergang, bevor die Animation stand.
- Und sie zaehlte Schattenebenen an "),", einem Muster, das in keinem
  Schattenwert je vorkommt. Geprueft wird jetzt die Anforderung selbst:
  Ion-Farbe und ein Weichzeichner ueber 0.

Geprueft: 334 Pruefungen gruen (CRYONOVA 53, Blickfang 13, Abmelden 16,
Angebot 54, Abbruch 42, System 5, Automatik 55, Angebote 56, Kette 40).

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-24 23:03:27 +02:00
co-authored by Claude Opus 5
parent 336e702d90
commit 99b5dd4eb2
23 changed files with 418 additions and 2 deletions
+199 -1
View File
@@ -2556,7 +2556,20 @@ a.wd-karte:active, .wd-karte--klickbar:active {
.wd :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
outline: 2px solid rgb(var(--wd-aqua-rgb));
outline-offset: 2px;
/* Der dunkle Innenring trennt das Aqua von hellen Flaechen. */
}
/* Der dunkle Innenring trennt das Aqua von hellen Flaechen.
Eingabefelder sind hier BEWUSST ausgenommen: Sie sind selbst eine
dunkle, vertiefte Flaeche, das Aqua hebt sich davon ohnehin ab. Ein
Innenring waere nicht nur ueberfluessig, er ueberschreibt auch den
Ion-Schein, den das System auf Seite 15 fuer den Feldfokus verlangt.
Warum die Ausnahme im Selektor stehen muss und nicht einfach weiter
unten ueberschrieben wird: Diese Regel hat Spezifitaet 0,3,0
(Klasse + :is + :focus-visible), die Feldregel nur 0,2,1 -- und
Spezifitaet schlaegt Reihenfolge, egal wie weit unten sie steht. */
.wd :is(a, button, summary, [tabindex]):focus-visible {
box-shadow: 0 0 0 4px rgb(3 8 16 / .85);
}
@@ -2641,3 +2654,188 @@ a.wd-karte:active, .wd-karte--klickbar:active {
.wd-status--kritisch { background: rgb(var(--wd-fehler-rgb) / .13); color: var(--wd-fehler); border-color: rgb(var(--wd-fehler-rgb) / .35); }
.wd-status--pausiert { background: rgb(var(--wd-chrome-rgb) / .12); color: var(--wd-chrome); border-color: rgb(var(--wd-chrome-rgb) / .30); }
.wd-status--vip { background: rgb(var(--wd-gold-rgb) / .13); color: var(--wd-gold); border-color: rgb(var(--wd-gold-rgb) / .35); }
/* =====================================================================
SIGNATURE-VERLAEUFE (Design-System Seite 18)
Vier Verlaeufe mit je einer klaren Aufgabe. Das System gibt dazu eine
Dosierungsregel, die wichtiger ist als die Verlaeufe selbst:
"Maximal ein Signature-Verlauf pro sichtbarer Bildschirmhoehe.
Keine Regenbogenflaechen. Kein Vollflaechen-Neon.
Champagne niemals mit Violet mischen."
Das letzte Verbot ist keine Geschmacksfrage: Champagne steht fuer
Treue und Bezahltes, Violet fuer Spezielles. Mischt man beides, kann
niemand mehr ablesen, was eine Flaeche bedeutet -- und genau die
Ablesbarkeit ist der Zweck eines Farbsystems.
Deshalb sind es HILFSKLASSEN und keine Vorgabe auf Kacheln: Ein
Verlauf, der automatisch auf jeder Karte laege, waere sofort eine
Regenbogenflaeche. Man setzt ihn bewusst an eine Stelle.
===================================================================== */
/* CRYO FLOW -- primaere Energie. Baby zu Ion zu Aqua. */
.wd-verlauf--cryo {
background: linear-gradient(135deg,
rgb(var(--wd-blau-rgb) / .95) 0%,
rgb(var(--wd-ion-rgb) / .90) 50%,
rgb(var(--wd-aqua-rgb) / .85) 100%);
}
/* PRISM SHIFT -- Premium und Fokus. Ion zu Indigo. */
.wd-verlauf--prisma {
background: linear-gradient(135deg,
rgb(var(--wd-ion-rgb) / .92) 0%,
rgb(var(--wd-indigo-rgb) / .92) 100%);
}
/* AURORA CUT -- Spezialmoment. Indigo zu Violet. */
.wd-verlauf--aurora {
background: linear-gradient(135deg,
rgb(var(--wd-indigo-rgb) / .90) 0%,
rgb(var(--wd-lila-rgb) / .90) 100%);
}
/* LIQUID VALUE -- VIP und Treue. Champagne allein, mit einer dunklen
Tiefe statt einer zweiten Akzentfarbe: Das System verbietet die
Mischung mit Violet ausdruecklich. */
.wd-verlauf--liquid {
background: linear-gradient(135deg,
rgb(var(--wd-gold-rgb) / .92) 0%,
rgb(var(--wd-gold-rgb) / .55) 55%,
rgb(var(--wd-dunkelblau-2)) 100%);
}
/* Text auf einem Signature-Verlauf braucht immer dunkle Schrift --
alle vier sind hell genug, dass helle Schrift darauf verschwindet. */
.wd-verlauf--cryo, .wd-verlauf--prisma,
.wd-verlauf--aurora, .wd-verlauf--liquid { color: var(--wd-schwarz); }
/* =====================================================================
FORMULARE UND TABELLEN (Design-System Seite 15)
"Fokus: Eingabefeld erhaelt Ion-Blue-Rand und sanften Glow.
Tabellenzeile erhaelt beim Hover ein sehr schwaches,
positionsabhaengiges Licht."
Das Wort "sehr schwach" ist hier die eigentliche Anweisung. Eine
Tabelle ist zum Lesen da: Wandert beim Ueberfahren ein kraeftiges
Licht mit, springt der Blick staendig zur Maus statt zur Zahl, die
man eigentlich sucht. Deshalb liegt die Deckkraft hier bei einem
Bruchteil dessen, was eine Kachel bekommt.
===================================================================== */
/* Der Fokus im Eingabefeld: Ion-Rand plus weicher Schein.
Die Vertiefung bleibt erhalten -- sonst springt das Feld beim
Anklicken optisch aus der Flaeche heraus. */
.wd-feld input:focus, .wd-feld select:focus, .wd-feld textarea:focus,
.wd-eingabe:focus {
border-color: rgb(var(--wd-ion-rgb) / .85);
box-shadow:
var(--wd-tiefe),
0 0 0 4px rgb(var(--wd-ion-rgb) / .16),
0 0 18px -4px rgb(var(--wd-ion-rgb) / .45);
}
/* Ein Feld mit Fehler traegt IMMER auch Text -- die Farbe allein
waere fuer niemanden lesbar, der sie nicht unterscheiden kann. */
.wd-feld--fehler input, .wd-feld--fehler select, .wd-feld--fehler textarea {
border-color: rgb(var(--wd-fehler-rgb) / .7);
}
.wd-feld--fehler input:focus, .wd-feld--fehler select:focus,
.wd-feld--fehler textarea:focus {
box-shadow:
var(--wd-tiefe),
0 0 0 4px rgb(var(--wd-fehler-rgb) / .18);
}
/* ---------- Tabellen ---------- */
.wd-tabelle {
width: 100%;
border-collapse: collapse;
font-size: .92rem;
}
.wd-tabelle th {
text-align: left;
font-size: .74rem;
font-weight: 800;
letter-spacing: .06em;
text-transform: uppercase;
color: var(--wd-text-soft);
padding: .6rem .8rem;
border-bottom: 1px solid rgb(var(--wd-blau-rgb) / .22);
}
.wd-tabelle td {
padding: .7rem .8rem;
border-bottom: 1px solid rgb(255 255 255 / .05);
color: var(--wd-text-mid);
}
/* Zahlen in gleicher Ziffernbreite: Sonst stehen Betraege in einer
Spalte nicht untereinander, und man vergleicht sie falsch. */
.wd-tabelle td.wd-zahl, .wd-tabelle th.wd-zahl {
text-align: right;
font-variant-numeric: tabular-nums;
}
@media (hover: hover) and (pointer: fine) {
.wd-tabelle tbody tr {
--wd-lichtx: 50%;
position: relative;
transition: background-color .2s ease;
}
/* Das positionsabhaengige Licht der Zeile -- bewusst nur 7 %, ein
Viertel dessen, was eine Kachel bekommt. Es soll die Zeile
nachzeichnen, nicht den Blick fangen. */
.wd-tabelle tbody tr:hover {
background: linear-gradient(90deg,
transparent 0%,
rgb(var(--wd-blau-rgb) / .07) var(--wd-lichtx),
transparent 100%);
}
}
@media (prefers-reduced-motion: reduce) {
.wd-tabelle tbody tr:hover { background: rgb(var(--wd-blau-rgb) / .05); }
}
/* =====================================================================
KACHEL-ANATOMIE (Design-System Seite 11)
Das System beschreibt sechs Bestandteile: Material (Obsidian Glass
statt flacher Farbe), Kante (1 px Baby Blue, 24-36 % Deckkraft),
Lumen, Inhalt ueber dem Licht, Tiefe (zarter Schatten plus innere
Lichtkante) und Zustand.
Fuenf davon standen bereits. Was fehlte, ist die INNERE LICHTKANTE:
eine haarfeine helle Linie an der Oberkante. Sie ist der Unterschied
zwischen "dunkles Rechteck" und "Objekt aus Glas" -- Licht faellt von
oben, also faengt die obere Kante es ein. Ohne sie wirkt jede Kachel
flach, egal wie gut die Farben sind.
===================================================================== */
.wd-karte {
/* BEIDE Hintergrundebenen, nicht nur eine.
Die Kachel baut ihre Kante ueber einen zweiten Verlauf auf der
border-box -- der Rahmen selbst ist durchsichtig. Ein erster
Versuch setzte hier nur die Flaeche (padding-box) und liess die
Randebene damit ersatzlos wegfallen: Der Rand mass danach
rgba(0,0,0,0), also gar nichts. Sichtbar war das kaum, messbar
sofort -- und das System verlangt ausdruecklich eine Kante von
1 px Baby Blue mit 24-36 % Deckkraft (Seite 11). */
background:
linear-gradient(180deg,
rgb(var(--wd-glas-rgb) / .58),
rgb(6 19 35 / .72)) padding-box,
linear-gradient(140deg,
rgb(var(--wd-blau-rgb) / .36),
rgb(var(--wd-blau-rgb) / .10) 45%,
rgb(var(--wd-lila-rgb) / .26)) border-box;
/* Die innere Lichtkante: eine haarfeine helle Linie oben. Sie ist
der Unterschied zwischen "dunkles Rechteck" und "Objekt aus
Glas" -- Licht faellt von oben, also faengt die obere Kante es
ein. Ohne sie wirkt jede Kachel flach, egal wie gut die Farben
sind. */
box-shadow:
var(--wd-hoehe-1),
inset 0 1px 0 rgb(var(--wd-blau-rgb) / .16);
}