feat(ui): Kundenkonto im Wabenstil

- Konto-Kacheln: Icon in einer Wabe, die sich beim Hover mit Honig fuellt,
  einlaufender Pfeil, Serifen-Titel
- Bestell-Statusleiste: Waben statt Punkte, erledigte Abschnitte fliessen
  nacheinander voll, aktueller Schritt pulsiert sanft
- Status-Badge mit pulsierendem Punkt bei laufenden Bestellungen
- Leere Zustaende mit gestrichelter Wabe und Serifen-Titel
- Formularfelder: einheitlicher Honig-Schein beim Fokus
- Groessere Abschnittstitel im Konto, Bestellsummen in Serifen-Preisschrift
- Nur CSS-Animationen (Komponenten rendern auch auf Admin-Serverseiten);
  reduzierte Bewegung schaltet Puls und Fuellen ab

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-25 07:53:02 +02:00
1 parent 3de17ca070
commit 6ac7cc5d1f
5 files changed
+141 -35

No files matched your search

+54
View File
@@ -203,3 +203,57 @@ p {
animation: none !important;
}
}
/* Konto: erledigte Abschnitte der Statusleiste "fliessen" nacheinander voll. */
@keyframes wh-grow {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}
/* Aktueller Schritt / laufender Status: sanfter Puls um die Wabe. */
@keyframes wh-pulse {
0% {
box-shadow: 0 0 0 0 color-mix(in oklab, var(--color-honey) 55%, transparent);
}
70%,
100% {
box-shadow: 0 0 0 7px transparent;
}
}
/* Sechseck als Form fuer Icon-Flaechen (gleiche Geometrie wie Logomark). */
.clip-hex {
clip-path: polygon(50% 0, 93.3% 25%, 93.3% 75%, 50% 100%, 6.7% 75%, 6.7% 25%);
}
@media (prefers-reduced-motion: reduce) {
.motion-grow,
.motion-pulse {
animation: none !important;
}
}
/* Formularfelder: weicher Honig-Schein beim Fokus statt nur einer
Randfarbe — auf allen Formularen einheitlich, ohne jedes einzeln
anzufassen. Viele Felder setzen focus:outline-none; der Schein
(box-shadow) bleibt davon unberuehrt. */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
transition:
border-color 200ms var(--ease-arrive),
box-shadow 250ms var(--ease-arrive);
}
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-honey) 22%, transparent);
}
input::placeholder,
textarea::placeholder {
color: color-mix(in oklab, var(--color-ink) 45%, transparent);
}