Skip to content

feat(a14): Übergangsanimation Schritt 2 zu 3#77

Merged
TBum1404 merged 16 commits into
feature/wizard-redesignfrom
feat/a14-animation
Jul 21, 2026
Merged

feat(a14): Übergangsanimation Schritt 2 zu 3#77
TBum1404 merged 16 commits into
feature/wizard-redesignfrom
feat/a14-animation

Conversation

@TBum1404

Copy link
Copy Markdown
Collaborator

Ticket

A14 – Übergänge zwischen den Schritten sichtbar machen (Animation Schritt 2 → 3).

Was gemacht

  • Angular-Animations-Trigger stepTransition auf .step-container, nur beim Wechsel currentStep 1 → 2.
  • Phase 1 (Kollaps, 200 ms): Detailspalten der step2-Tabelle (Typ/Count/Unique/Missing/Distribution) blenden aus, Spaltennamen-Liste bleibt; Crossfade in die step3-Master-Rail.
  • Phase 2 (Slide-in, 300 ms): step3-Detail-/Konfig-Well fährt von rechts herein (translateX(100% → 0) + Fade). Easing cubic-bezier(0.4,0,0.2,1).
  • prefers-reduced-motion: reduce[@stepTransition.disabled], sofortiger Wechsel wie bisher.
  • Isoliert in der Shell: step2/step3-Markup nicht verändert, deren Klassen nur lesend per query(..., {optional:true}) referenziert (degradiert statt zu brechen, falls Parallel-Tickets Klassen umbenennen).
  • Neue Dependency @angular/animations@^21.2.13 (passend zu core 21.2.13), provideAnimations() in app.config.ts.

Manuelle Testschritte (Schritt → Ort → Erwartung)

  1. CSV laden, zu Schritt 2, „Weiter" → Übergang 2→3 → Detailspalten blenden aus, Spaltennamen bleiben, Detailansicht fährt von rechts ein.
  2. Zurück zu Schritt 2, erneut „Weiter" → Sequenz wiederholt sich sauber; Auswahl/Filter unverändert.
  3. OS „Bewegung reduzieren" aktivieren, Schritt 2 → 3 → sofortiger Wechsel ohne Animation.
  4. Übergänge 1→2 und 3→4 → unverändert/instant wie bisher.

Build

npm run build erfolgreich; nur die vorbestehende Bundle-Budget-Warnung.

Hinweis

Konfliktfrei zu den anderen beiden PRs (nur Shell, app.config.ts, package.json/package-lock.json, neue animations/-Datei). Sollte zuerst gemergt werden. package.json/package-lock.json enthalten die neue Dependency und müssen mit gemergt werden.

TBum1404 and others added 15 commits July 19, 2026 09:07
…etail von rechts)

Ersetzt den Flip-basierten Morph durch eine gerichtete Zwei-Phasen-Animation:
- Phase 1 (vor dem Wechsel): die noch lebende Step-2-Tabelle kollabiert von
  rechts nach links auf die Rail-Breite (320px), die Stat-Spalten werden am
  rechten Rand weggeclippt, die Suchleiste schrumpft/fadet mit.
- Phase 2 (nach dem Wechsel): der Detailbereich slidet als ein Block von rechts
  herein, die Rail-Liste blendet sanft ein.

Damit entfallen die vielen Streubewegungen des alten Flip-Ansatzes (tr->div
unter position:absolute, nicht renderbare Leave-Zellen). Gemeinsamer zentrierter
Container fuer Schritt 2 und 3 haelt die linke Kante deckungsgleich. Navigation
laeuft ueber onProceed(); reduced-motion wechselt weiterhin sofort ohne Animation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…der-Cross-fade

Behebt die restliche Unruhe beim Uebergang Schritt 2 -> 3:
- Box-Hoehe wird von der gemessenen Step-2-Hoehe auf die Step-3-Hoehe animiert
  (kein Hoehensprung, keine unterschiedlich grossen Boxen).
- Die Rail-Liste gleitet um den gemessenen y-Versatz (Rail-Header ist hoeher als
  der Step-2-Kopf) nach oben in Position, statt zu springen.
- Kopfbereich als weiche Ueberblendung: Step-2-Leiste + Tabellenkopf faden am
  Ende von Phase 1 aus, der Rail-Header fadet in Phase 2 ein (kein hartes
  Verschwinden/Erscheinen).

Statt fragiler Pixelwerte werden y-Versatz und Box-Hoehe zur Laufzeit gemessen;
die Kollaps-Breite nutzt denselben Rail-Token wie Schritt 3. GSAP Flip entfaellt
komplett (Tabellenzeilen/-zellen lassen sich losgeloest nicht sauber animieren).
MORPH_TIMESCALE erlaubt Zeitlupe zum Inspizieren.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rtikal-Sprung

Reaktion auf Feedback (Vertikalbewegung zu ploetzlich, zu viel Whitespace in
Schritt 3, weisses Flackern):
- Schritt-3-Box (.config-shell) bekommt dieselbe feste Hoehe wie die Step-2-
  Tabelle; Liste und Detailbereich scrollen bei Bedarf intern. Damit entfaellt
  die nach unten wachsende Hoehenanimation und Schritt 3 hat weniger Leerraum.
- Phase 2 macht keine vertikale Zeilen-/Box-Bewegung mehr: die beiden gleich
  hohen Boxen werden ueberblendet (Cross-fade), nur der Detailbereich slidet
  weiter von rechts herein. Einzige gerichtete Bewegungen: Kollaps rechts->links
  und Detail rechts->links.
- Weisses Flackern behoben: Phase 2 startet in requestAnimationFrame (vor dem
  Paint), sodass die einfliegenden Elemente vor dem ersten Frame versteckt sind.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ursache (per Frame-Analyse): kein leeres Frame beim Komponententausch, aber die
vom Kollaps freigelegte Flaeche und der Bereich hinter dem einsliden den
Detailbereich waren weiss (Seiten-/config-shell-Hintergrund) -> ~280ms weisser
Blitz in der Mitte.

- Keine Opacity-Fades mehr auf Schritt 2/3 (ein Fade-in aus 0 erzeugt beim harten
  Swap zwangslaeufig ein transparentes/weisses Frame). Schritt 3 erscheint sofort
  deckend; einzige Einflug-Bewegung ist der Detail-Slide von rechts.
- Phase-2-Start laeuft synchron nach cdr.detectChanges() (vor dem Paint), daher
  kein Ein-Frame-Blitz des Detailbereichs an seiner Zielposition.
- config-shell-Hintergrund auf denselben Grauton wie der Detailbereich; waehrend
  des Morphs bekommt .step-container denselben Grau-Backdrop. Freigelegte Flaechen
  und der Bereich hinter dem Slide sind damit grau statt weiss -> kein Flackern.

Verifiziert: Frame-fuer-Frame-Monitor zeigt kein leeres/weisses Frame; Produktion
0 Fehler, reduced-motion sofort.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Der Grau-Backdrop lag auf dem bleibenden .step-container und wurde am Ende wieder
entfernt -> sichtbarer Wechsel weiss->grau->weiss. Jetzt wird das Grau nur noch
aus der (beim Swap zerstoerten) Step-2-Box heraus enthuellt:

- Die Tabellen-Box behaelt volle Breite und bekommt den grauen Detail-Ton; ihr
  rechtes Padding waechst, sodass die Tabelle (per overflow hidden geclippt) von
  rechts auf Rail-Breite schrumpft und dabei das boxeigene Grau freilegt.
- Da die Tabelle die Box zu Beginn voll abdeckt, wird das Grau nur DURCH den
  Kollaps sichtbar (kein Aufblitzen am Start), und kein bleibendes Element
  wechselt die Farbe (kein Zurueck-zu-weiss).
- step-container-Tint samt morphing-Flag wieder entfernt.

Verifiziert: Produktion 0 Fehler, reduced-motion sofort.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Der Kollaps animierte zuvor Breite/Padding der Tabellen-Box -> in jedem Frame ein
komplettes Neu-Layout der Tabelle (inkl. Mini-Histogramme), was ruckelte.

Jetzt schiebt ein graues Overlay-Panel (gleicher Detail-Ton) per translateX von
rechts ueber die Stat-Spalten. Reine, GPU-kompositierte Transform-Animation ohne
Reflow. Das Panel liegt ueber dem Sticky-Header (z-index 15) und ist Teil des beim
Swap zerstoerten Step-2-DOM (kein Cleanup noetig).

Verifiziert: Produktion 0 Fehler, reduced-motion sofort.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…scheinen

Der Rail-Header (Suche + Typ-Filter) erschien in Phase 2 ohne Bewegung. Jetzt
slidet er per translateY (yPercent -100 -> 0) von oben in seinen Slot; er startet
oberhalb der Box und wird vom overflow:hidden der config-shell geclippt, taucht
also von der Oberkante her auf. Reine Transform, Startzustand vor dem Paint
gesetzt (kein Flackern).

Verifiziert: Produktion 0 Fehler, reduced-motion sofort.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TBum1404

Copy link
Copy Markdown
Collaborator Author

ready to merge

# Conflicts:
#	src/app/preprocessing-wizard/steps/step2-column-selection/step2-column-selection.component.html
#	src/app/preprocessing-wizard/steps/step2-column-selection/step2-column-selection.component.scss
#	src/app/preprocessing-wizard/steps/step2-column-selection/step2-column-selection.component.ts
#	src/app/preprocessing-wizard/steps/step3-configure-data-features/step3-configure-data-features.component.html
@TBum1404
TBum1404 merged commit 44ea355 into feature/wizard-redesign Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant