Skip to content

perf: Flip-Flap und Liquid-Morph flüssig machen - #32

Merged
malte9799 merged 3 commits into
mainfrom
claude/flap-liquid-perf
Nov 10, 2026
Merged

malte9799 merged 3 commits into
mainfrom
claude/flap-liquid-perf

Conversation

@malte9799

Copy link
Copy Markdown
Owner

Problem

Die Designs Flip-Flap und Liquid-Morph ruckeln stark.

Ursachen und Fixes

Flip-Flap

  • Jeder Flip hat per void offsetWidth ein synchrones Layout erzwungen (~1,5 ms). Bei vollem Board blockierte das den Main-Thread ~2,7 s. Jetzt Web Animations API: ~0,13 ms pro Flip, komplettes Board in ~50 ms.
  • Die Karten-Beschreibungen waren je Buchstabe eine Kachel mit 9 Knoten. Jetzt Klartext mit Clip-Reveal. Hub: 1861 → 378 Kacheln, 17.229 → 3.857 DOM-Knoten.
  • Die beweglichen Klappen existieren nur noch während des Flips. contain: layout style auf den Kacheln.

Liquid-Morph

  • Der Hintergrund lief über einen Vollbild-SVG-Filter (Blur + Farbmatrix) pro Frame, in Safari oder auf integrierten GPUs sehr langsam. Jetzt werden die Metaballs auf einem kleinen Canvas (~22k Pixel) berechnet und vom Browser hochskaliert.
  • drop-shadow-Filter auf den animierten Überschriften entfernt.

Getestet

  • Gemessen im Browser: Flip-Kosten und DOM-Größe (Zahlen oben); Liquid-Frame ~3 bis 8 ms inklusive Warmup bei 1024×768.
  • Beide Designs laden ohne Konsolenfehler, pnpm build läuft. Visuell geprüft (Screenshot Liquid).
  • Nicht gemessen: echte FPS, die Browser-Pane liefert hier kaum Frames.

🤖 Generated with Claude Code

Flip-Flap:
- Flips laufen über element.animate() statt Klassenwechsel + void offsetWidth
  (erzwang pro Flip ein synchrones Layout, ~1,5 ms → ~0,13 ms)
- Klappen werden nur während des Flips erzeugt (5 statt 9 Knoten je Kachel)
- Kartenbeschreibungen sind Klartext mit Clip-Reveal statt einer Kachel je Buchstabe
  (hub: 1861 → 378 Kacheln, 17k → 3,9k DOM-Knoten)
- contain: layout style auf den Kacheln

Liquid-Morph:
- Metaball-Hintergrund wird auf einem kleinen Canvas (~22k Pixel) berechnet statt mit
  einem Vollbild-SVG-Filter (Blur + Farbmatrix) pro Frame
- drop-shadow-Filter auf den animierten Überschriften entfernt

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

malte9799 and others added 2 commits November 10, 2026 19:14
…'-Labels

.fl-bar span:nth-child(2) traf auch die untere Kachelhälfte (.b) und färbte sie braun
(auf Mobil wurde sie sogar ausgeblendet). Jetzt nur noch direkte Kinder der Leiste.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Beim Hover wird der Titel breiter (wdth 62 → 150) und passte nicht mehr neben die
Beschreibung, die Flex-Zeile brach um. Ab 641px bricht sie nicht mehr um, die
Beschreibung schrumpft stattdessen (Ellipsis).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@malte9799
malte9799 merged commit c6a0bbd into main Nov 10, 2026
1 check passed
@malte9799
malte9799 deleted the claude/flap-liquid-perf branch November 10, 2026 18:20
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