GAP-REPORT · ANFORDERUNGSANALYSE FÜR MZONE-UI 1.1.0

Was dem Publisher an UI-Magie fehlt

canvas-ui als Referenz: 33 Canvas-/WebGL-Komponenten, sechs Kategorien — und eine ehrliche Bestandsaufnahme, wo das MaierZone-Universum heute steht.

Datum
2026-08-03 · v2 (Update am Abend)
Autor
Kimi (MZP-Agent)
Referenz
github.com/DavidHDev/canvas-ui (MIT + Commons Clause)
Scope
Nur publisher.maierzone.de — Ist-Stand mzone-ui@1.0.0
UPDATE · GLEICHER TAG, ABEND
Fünf der acht Anforderungen sind bereits als Prototypen gebaut und live abgenommen: R1, R2 (Stufe 1), R3, R5 und R6 — mit Reglern, Copy-Snippets und Reduced-Motion-Fallbacks. R7 ist mit derselben Seite als Prototyp angelegt.

→ Zum fx-Playground · Offen: R4 (serverseitig), R2 Stufe 2 (WebGL), R8 (3D) und das Pinnen ins libRegistry.

Ausgangslage

mzone-ui ist als Report-Vokabular erwachsen geworden: Typografie, Karten, Tabellen, Findings, Stat-Kacheln, Chart-Preset — sauber, themefähig, barrierearm. Aber bei Erlebnis-Komponenten — interaktive Canvas- und WebGL-Effekte, Text-Magie, 3D — ist der Katalog fast leer.

Die gesamte Effekt-Flotte des Publishers besteht aus zwei Ambient-Modulen (particleField, pulseGrid). Beide reagieren allenfalls auf die Mausposition; keines verzerrt Inhalte, keines spielt mit Typografie, keines nutzt die gepinnte three.js-Bibliothek. Genau dort setzt die Referenz an.

CSS-Klassen
29
ES-Module
3
Canvas-Effekte
2
Gepinnte Libs
4inkl. three

Die Referenz: canvas-ui

canvas-ui (David H., canvasui.dev) liefert 33 Komponenten, die den lebenden DOM als Textur auf ein Canvas ziehen: Text bleibt markierbar, Links klickbar — während Fluid-Simulationen, Feuer, Glas-Linsen und Glitch-Effekte darüber laufen. Wo das experimentelle HTML-in-canvas-API fehlt (nur Chrome mit Flag/Origin-Trial), springt automatisch ein WebGL-Overlay ein. Architektur-Lehre, die wir kopieren sollten: eine Engine in plain TypeScript + WebGL (~15–24 KB, gesamt ~0,9 MB für alle 33), dazu hauchdünne Wrapper für React, Solid, Preact, Vue, Svelte und Vanilla. Getypte Options, Instanz-API (setOptions / resize / destroy), null Laufzeit-Abhängigkeiten, „copy, don't install“ über eine shadcn-kompatible Registry — inklusive MCP-Anbindung, damit Assistenten Komponenten selbst finden und installieren.

KategorieKomponenten (6 Kategorien, 33 gesamt)Erlebnis
🌊 Fluid & MotionLiquid, Ripple, Cloth, Droplets, Bubble, DisplacementPointer-getriebene Flüssigkeit, Klick-Wellen, Stoff im Wind
🔥 Feuer & EnergieBlaze, FlameWrap, ForceField, LaserFunken & Hitzeflimmern, Feuerrahmen, Schockwellen-Schild
💎 Glas & OptikGlass, Frost, Magnify, Bend, Peel, CloudsLinsen, schmelzendes Eis, Seite falten & abziehen
📼 Retro & GlitchVHS, Glitch, RetroDither, Asciify, DecryptReveal, GlyphRainBandrauschen, RGB-Splits, Dither, entschlüsselnder Text
✨ Partikel & StrukturParticleReveal, ParticleScroll, Shatter, Grid, HexFloat, CanvasPartikel, die sich zu scharfem UI zusammenfinden
🧊 3D-ObjekteAsciiObject, GlassObject, ParticleObject, DitheredObject, LiquidObjectGLB/glTF-Modelle als ASCII, Glas, Partikel, Dither, Liquid

Live-Demo: Was heute schon geht

Dieser Report ist selbst der Beleg: Hintergrund = particleField aus mzone-ui@1.0.0. Der Seitentitel oben entschlüsselt sich beim Laden (und bei Klick) — ein Decrypt-Reveal-Prototyp in ~40 Zeilen. Unten ein Ripple-Prototyp in Canvas 2D (~110 Zeilen): Klick ins Feld. Kein WebGL, keine neue Lib — die Basis stimmt also schon heute. Bei prefers-reduced-motion bleiben alle Effekte aus. Seit dem Abend existieren beide Effekte als ausgebaute Module mit Instanz-API im fx-Playground.

PROTOTYP · FX-RIPPLE (CANVAS 2D)

Klick erzeugt Wellenringe mit Abklingen, Glanz und Ambient-Tropfen. Die ausgebaute Modul-Version läuft im Playground; die WebGL-Version (echte Refraktion + Dispersion wie canvas-ui Ripple) bleibt als Stufe 2 offen.

Gap-Analyse

Bewertung je Kategorie: Was canvas-ui kann, was MZP heute hat, wie groß die Lücke ist — mit Priorität (P1 · sofort P2 · nächster Sprint P3 · später) und geschätztem Umsetzungsaufwand im Publisher (Personentage, PT). Update: die ✅-markierten Lücken sind seit heute Abend als Prototypen geschlossen.

KategorieMZP heuteLückePrioAufwand
🌊 Fluid & Motion ✅fx-ripple (Canvas 2D) als Prototyp gebautStufe 1 geschlossen. Offen: WebGL-Refraktion/Dispersion (Liquid, Displacement).P11–4 PT
📼 Retro & Glitch ✅fx-decrypt als Prototyp gebautDecryptReveal geschlossen. Offen: GlyphRain, Glitch, VHS.P10,5–2 PT
✨ Partikel & Struktur ✅fx-particle-reveal als Prototyp gebaut (inkl. Cursor-Abstoßung)Hero-Text-Lücke geschlossen. Offen: ParticleScroll, Shatter, HexFloat.P22 PT
💎 Glas & Optik ✅fx-magnify (Canvas-2D-Linse) als Prototyp gebautLupe/Scanner geschlossen. Offen: echte Glas-Optik (Frost, Bend, Peel) per WebGL.P22–3 PT
🔥 Feuer & EnergieNichtsSpektakulär, aber situativ einsetzbar — FlameWrap/ForceField eher für Specials (April Fools, Release-Posts).P33–4 PT
🧊 3D-Objektethree@0.170 gepinnt, aber null KomponentenGLB→ASCII/Glas/Partikel wäre das Sahnehäubchen; braucht Loader-Pipeline + Fallbacks.P35+ PT

Jenseits von canvas-ui: eigene Ideen

canvas-ui deckt Effekte ab — aber ein Publishing-Universum braucht mehr. Diese Punkte fließen ebenfalls in die Anforderungsanalyse ein:

IdeeNutzen für MZPPrioAufwand
Konfetti-Modul ✅Umgesetzt: fx-confetti.js ist die produktive Fassung der konfetti-probe — Demo im Playground.P10,5 PT
Scroll-ChoreografieLenis (Smooth Scroll) + GSAP ScrollTrigger pinnen: Sektionen, die sich beim Scrollen aufbauen — macht lange Reports erlebbar.P10,5 PT
Komponenten-Playground ✅Angelegt: der fx-Playground zeigt jedes Modul live mit Reglern und Copy-Snippet. Fehlt: Katalog aller 29 mz-Klassen.P22–3 PT
View TransitionsNative View-Transitions-API für weiche Übergänge zwischen Artefakt-Seiten (Index → Report). Kein Lib nötig.P21 PT
Shader-HeroPlasma/Noise-Gradient als optionale Hero-Fläche hinter dem Titel (fx-hero.js, WebGL, ~2 PT).P22 PT
Theme-Switcher pro ArtefaktKleiner Toggle, der data-theme flipt und die Wahl speichert — mzone-ui kann hell/dunkel schon, es fehlt nur der Schalter.P20,5 PT
Registry-/MCP-Flowcanvas-ui lässt Assistenten Komponenten per MCP installieren. Pendant für MZP: getComponent(name), das fertige fx-Snippets zurückgibt.P33–4 PT

Anforderungsanalyse — mzone-ui@1.1.0 / Publisher Next

Verdichtet zu acht Anforderungen. Jede folgt der canvas-ui-Bauweise: ein ES-Modul, getypte Options, destroy(), reduced-motion-No-Op, keine externen Abhängigkeiten. Stand v2: fünf davon sind als Prototypen erfüllt.

  1. R1✓ PROTOTYP LIVEP1 · 0,5 PT
    fx-decrypt.js — Text-Entschlüsselung für Titel/Eyebrows (Trigger load/click/hover, Pool konfigurierbar). Gebaut und abgenommen im fx-Playground.
  2. R2✓ STUFE 1 LIVEP1 · 1,5–4 PT
    fx-ripple.js — Stufe 1 (Canvas-2D-Ringe mit Glanz, Ambient-Tropfen, Hover-Modus) gebaut und abgenommen im fx-Playground. Stufe 2 (WebGL-Refraktion + Dispersion) bleibt offen.
  3. R3✓ PROTOTYP LIVEP1 · 0,5 PT
    fx-confetti.js — Konfetti-Probe produktiv gesetzt: burst(x, y) als Fraktion oder Pixel, Farben aus mz-Tokens. Gebaut und abgenommen im fx-Playground.
  4. R4P1 · 0,5 PT
    Scroll-Libs pinnen — Lenis + GSAP ScrollTrigger ins libRegistry aufnehmen, inkl. mzone-Preset-Modul mit sinnvollen Defaults. Rein serverseitiger Schritt.
  5. R5✓ PROTOTYP LIVEP2 · 2 PT
    fx-particle-reveal.js — Partikel formieren sich zu Hero-Text und weichen dem Cursor aus (canvas-ui ParticleReveal als Blaupause). Gebaut und abgenommen im fx-Playground.
  6. R6✓ PROTOTYP LIVEP2 · 2–3 PT
    fx-magnify.js — Scanner-Linse mit HUD über Canvas-/Bild-Inhalten, setOptions() nach canvas-ui-Vorbild. Gebaut und abgenommen im fx-Playground. WebGL-Glas-Shader optional später.
  7. R7P2 · 2–3 PT · TEILWEISE
    mzone-ui Playground — als Prototyp angelegt (fx-Playground, fünf Module mit Reglern und Snippets). Offen: vollständiger Katalog aller 29 mz-Klassen und der drei Bestandsmodule.
  8. R8P3 · 5+ PT
    fx-object3d.js — GLB/glTF als ASCII/Glas/Partikel rendern (three ist gepinnt). Erst nach R1–R7; Lizenz-Check der canvas-ui-Engines prüfen (MIT + Commons Clause erlaubt Nutzung, nicht Weiterverkauf).

Aufwand im Überblick

Personentage je Anforderung (obere Schätzung, Original aus v1). Praxis-Check am selben Tag: R1–R3, R5 und R6 wurden in einer Session als Prototypen gebaut — die Schätzungen der kleinen Module erwiesen sich als realistisch.

Empfehlung

Stand Abend: Das P1-Paket ist zu drei Vierteln erledigt — R1, R2 (Stufe 1) und R3 laufen als Prototypen; R5 und R6 sind ebenfalls schon gebaut. Nächster Schritt: Code-Review und Minifizierung der fünf Module, dann Aufnahme ins libRegistry als mzone-ui@1.1.0 samt Katalog-Eintrag — parallel R4 (Lenis/GSAP pinnen), ebenfalls ein serverseitiger Schritt. Danach: R7 zum Vollkatalog ausbauen und R2 Stufe 2 (WebGL-Refraktion) angehen. Bewusst zurückgestellt: HTML-in-canvas (DOM→Textur) — browserseitig Chrome-exklusiv; erst mit Origin-Trial angehen, bis dahin WebGL-Overlays wie canvas-ui im Fallback-Pfad. Und R8, das 3D-Sahnehäubchen, wenn das Fundament steht.

NON-GOALS FÜR 1.1.0
Kein Framework-Zwang (Vanilla-Module wie bisher), kein HTML-in-canvas vor Origin-Trial, keine Effekte ohne reduced-motion-Aus, keine externen CDN-Abhängigkeiten — alles bleibt pinnbar und offline-fähig.