Commit Graph
225 Commits
Author SHA1 Message Date
qciganoandClaude Sonnet 5 346a0ed14e Kontaktseite: "Direkter Kontakt" & "Antwortzeit" in eigene, auffaellige Kiste gepackt
Standen bisher als freier Text neben dem Formular. Jetzt in einer eigenen Karte
mit demselben Verlaufsrand-Look wie der Rest der Seite, zusaetzlich mit einem
sanften Akzent-Glow (wie bei den Charakter-Story-Boxen) und kleinen Icons vor
den Ueberschriften, damit die wichtigen Kontaktinfos etwas mehr Aufmerksamkeit
bekommen, ohne aus dem Design zu fallen.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 02:22:57 +02:00
qciganoandClaude Sonnet 5 b6f8b4339f Fix: zu großer Abstand zwischen Story-Box und Platzhalterkarten bei Tier-Familien ohne Produkt
Familien ohne eigenes Produkt (z.B. Frieda bei der Kuh) zeigten die Story-Box
und die Platzhalterkarten darunter in zwei getrennten <section>-Bloecken -
dadurch addierten sich zwei section-Innenabstaende zu einem viel zu grossen
Zwischenraum (im Vergleich zur Hase-Seite, wo Story-Box und echte Produktkarte
in derselben Sektion stehen). Platzhalterkarten stehen jetzt in derselben
Sektion wie die Story-Box, Abstand ist ueberall einheitlich eng.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 02:15:01 +02:00
qciganoandClaude Sonnet 5 739c0845ba Fix: Haupt-Charakter einer Tier-Familie verliert Story-Box nicht mehr ohne Produkt
Der letzte Commit hatte Story-Boxen komplett an ein zugeordnetes Produkt
gekoppelt - das entfernte zwar wie gewuenscht HasiGott/Mama Hase (Hase-Familie
hat bereits HasiDog als Produkt), loeschte aber ungewollt auch die Box des
Haupt-Charakters bei Familien ohne eigenes Produkt (z.B. Frieda bei der Kuh).

Jetzt bekommt immer der erste/Haupt-Charakter einer Familie eine Story-Box,
zusaetzliche Charaktere weiterhin nur mit echtem Produkt.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 02:01:52 +02:00
qciganoandClaude Sonnet 5 fa5287484e Charakter-Story-Boxen zeigen nur noch Charaktere mit echtem Produkt
Bisher wurden auf den Tier-Familien-Seiten Vorstellungsboxen für ALLE im Admin
angelegten Charaktere gezeigt, auch ohne zugeordnetes Produkt (z.B. HasiGott,
Mama Hase auf der Hase-Seite ohne echte Ware). Auf Wunsch entfernt: die
Story-Boxen erscheinen jetzt nur noch für Charaktere, denen im Admin auch
wirklich ein Produkt zugeordnet ist - genau wie die Shop-Karten darunter.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:54:45 +02:00
qciganoandClaude Sonnet 5 7720396be2 Fix: Menüpunkte in der Kopfzeile brachen bei mittleren Bildschirmbreiten um
"Über die Kreative" (und potenziell andere Menüpunkte) konnte bei
mittleren Fensterbreiten (zwischen ca. 860-1100px) in eine zweite Zeile
umbrechen — durch die kürzlich vergrößerte Kopfzeile plus den neuen
Installieren-Button wurde es dort schlicht zu eng für die Hauptnavi.

Fix: white-space:nowrap auf den Menüpunkten (bricht nie mehr um) +
den Umschaltpunkt zum Hamburger-Menü von 860px auf 1100px angehoben,
damit auf mittleren Breiten gar nicht erst versucht wird, alles
nebeneinander reinzuquetschen, sondern rechtzeitig auf das kompakte
Menü umgeschaltet wird. Geprüft: bei 1100px sauberer Wechsel zum
Hamburger-Menü, kein Umbruch und kein horizontaler Überlauf mehr bei
1150-1600px.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:43:59 +02:00
qciganoandClaude Sonnet 5 1b55604cba Badges kräftiger für bessere Lesbarkeit + Admin-Install-Icon endlich zuverlässig
Badges ("NEU", "HANDGEMACHT" ...) sitzen direkt auf Produktfotos mit
unterschiedlichsten Hintergründen — die alte, sehr transparente Pille
ging auf manchen Fotos optisch unter. Gleiche Farben/gleicher Stil,
aber kräftigerer (deutlich weniger transparenter) Hintergrund + eigener
Rand + dezenter Schlagschatten hinterm Text für Kontrast auf jedem
Untergrund.

Den eigentlichen Grund für das wacklige Verhalten beim Installieren des
Admin-Bereichs gefunden: Sveltia CMS liest selbst den "logo"-Eintrag in
config.yml (eigentlich nur fürs Branding IN der CMS-Oberfläche gedacht)
und fügt daraus automatisch EIGENE Icon-/Manifest-Verknüpfungen in den
<head> ein — u.a. ein live generiertes, eigenes Manifest als blob:-URL
— NACH unseren eigenen. Zwei "rel=manifest"-Links gleichzeitig sind
technisch erlaubt, aber welcher beim Installieren gewinnt, war nicht
zuverlässig vorhersagbar. Das erklärt, warum es mal geklappt hat und
mal nicht, unabhängig vom Icon-Inhalt selbst.

Fix: ein MutationObserver entfernt Sveltias eigene, automatisch
eingefügte Icon-/Manifest-Verknüpfungen sofort wieder, sobald sie
auftauchen — übrig bleiben ausschließlich unsere eigenen (Favicon =
echtes Logo, Install-Icon = lila V). Verifiziert: nach vollständigem
Laden inkl. Sveltia sind nur noch unsere 5 eigenen Verknüpfungen im
<head> vorhanden, 0 Installability-Errors.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:24:40 +02:00
qciganoandClaude Sonnet 5 8da322699b Admin: Produktformular-Felder umsortiert (Kategorie/Auszeichnungen/Unterkategorie/Charakter vor Preis)
Neue Reihenfolge: Kategorie → Auszeichnungen → Unterkategorie →
Charakter → Preis (danach unverändert wie bisher weiter). Reiner
Reihenfolge-Tausch, keine Felder inhaltlich verändert.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:18:54 +02:00
qciganoandClaude Sonnet 5 19f8ce6e6f Browser-Tab-Icon wieder das echte Logo — "V" nur noch fürs Installieren
Klarstellung: Favicon (Browser-Tab, Lesezeichen) zeigt wieder das echte
VanVan-Logo, wie überall sonst auf der Seite. Nur das Icon, das beim
Installieren als App auf dem PC/Handy verwendet wird (icon-192/512 +
maskable-Varianten, apple-touch-icon), bleibt das eigens gestaltete
lila "V" von eben.

Dafür die favicon-16x16/32x32-Einträge aus beiden Web-App-Manifesten
entfernt (die enthielten noch das jetzt wieder logo-basierte Favicon)
— die Manifeste referenzieren jetzt ausschließlich die V-Icons, damit
beim Installieren garantiert nie versehentlich das Logo statt des V
gezogen wird. Erneut auf 0 Installability-Errors geprüft.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:15:53 +02:00
qciganoandClaude Sonnet 5 ba3ab44ef3 Fotos mit dem Finger wischen (Swipe) — auf jeder Karte, überall auf der Seite
Das Foto-Karussell auf den Produktkarten (Shop-Grid, Startseite, Sale,
Charakter-Kacheln, "Weitere Modelle" — überall wo ProductCard.astro
verwendet wird) lässt sich jetzt zusätzlich zu den ‹/›-Pfeilen auch per
Wisch-Geste bedienen: Finger auf dem Handy oder Maus ziehen am PC.
Technisch über die Pointer-Events-API (deckt Touch UND Maus mit
derselben Logik ab). Ein Wisch zählt erst ab einer Mindeststrecke und
nur bei überwiegend horizontaler Bewegung, damit normales Scrollen der
Seite nicht versehentlich als Wisch missverstanden wird. Da die ganze
Karte ein Link ist, wird der nachfolgende Klick nach einem echten Wisch
unterdrückt — sonst würde man ungewollt zur Produktseite springen, nur
weil man durch die Fotos blättern wollte.

Gleiches Wischen jetzt auch auf der Produktdetailseite selbst, für das
große Hauptbild (springt zum nächsten/vorherigen Thumbnail).

Verifiziert: Wisch ändert das Bild UND verhindert nachweislich die
Navigation; normale Klicks navigieren weiterhin korrekt; die Pfeil-
Buttons funktionieren unverändert (kein Regressionsfehler).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:12:46 +02:00
qciganoandClaude Sonnet 5 c7c500e23b App-Icon: eigens gestaltetes lila "V" statt echtem Foto-Logo
Falls das Problem beim Installieren (falsches/generisches Icon) am
Foto-Logo lag, ersetzt dieses Icon-Set es testweise durch ein rein
vektoriell gezeichnetes "V"-Symbol — glänzender Lila-zu-Türkis-Verlauf
(exakt die Markenfarben --c-purple/--c-purple-glow/--c-accent der
Seite), abgerundetes App-Icon-Quadrat, weicher Farbschimmer im
Hintergrund für einen "premium" statt flachen Look. Kein Systemfont
nötig (komplett aus Formen gezeichnet), dadurch garantiert überall
identisch. Nebeneffekt: die Dateien sind jetzt auch viel kleiner (z.B.
512px-Icon: 39 KB statt vorher von einem 380-KB-Foto abgeleitet) —
falls die Dateigröße beim Installieren mit reinspielte, hilft das
zusätzlich.

Alle anderen Dateien (Manifest, Service Worker, Installations-Button)
unverändert — die Dateinamen blieben exakt gleich, nur der Bildinhalt
wurde ersetzt. Lokal erneut auf 0 Installability-Errors geprüft
(Chrome DevTools Protocol), sowohl Hauptseite als auch Adminbereich.

An der Cloudflare-Access-Sperre (Login-Pflicht für die ganze Seite)
wurde NICHTS geändert — die Seite bleibt genauso privat/unsichtbar
für Außenstehende wie bisher, nur das Icon selbst wurde ersetzt.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:06:13 +02:00
qciganoandClaude Sonnet 5 a4aff8aa7d Charakter-Vorstellungen wieder für alle sichtbar, Shop-Karten bleiben streng
Klarstellung zur gestrigen Änderung: die persönliche Vorstellung
("Hallo, ich bin Frieda...") ist reiner Text ohne Kaufversprechen und
wird jetzt wieder für JEDEN im Admin definierten Charakter gezeigt,
auch bevor ein passendes Produkt existiert (Frieda, Sam, Siggi, Gaby,
Pingi sind wieder mit ihrem echten Vorstellungstext auf ihren Seiten
zu sehen). Die "Mehr über mich"-Schaltfläche bleibt aber weiterhin nur
bei Charakteren mit hinterlegtem Link (aktuell nur HasiDog).

Die eigentliche Shop-Karte (Foto/Preis/Kaufinfos) bleibt dagegen streng
wie gestern festgelegt: die gibt es nach wie vor NUR für Charaktere mit
echtem, im Admin zugeordnetem Produkt — kein Vorstellungstext täuscht
mehr einen kaufbaren Artikel vor. Ohne Produkt erscheinen stattdessen
die bereits vorbereiteten, namenlosen "Kommt bald"-Karten darunter.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 01:01:52 +02:00
qciganoandClaude Sonnet 5 8700e2c588 Tier-Familien-Seiten: nur noch Charaktere mit echtem Admin-Produkt sichtbar
Wichtige Verhaltensänderung: ein Charakter (aus dem Kategorien-Bereich im
Admin) ist ab jetzt nur noch eine VORBEREITETE Definition. Er erscheint
auf der Seite NUR, wenn ihm im Admin tatsächlich ein Produkt mit genau
diesem Charakter-Code zugeordnet wurde (das Feld "Charakter" am
Produkt = seine "Rolle"). Ohne zugeordnetes Produkt taucht er nirgends
mehr auf — auch nicht mehr als Platzhalter-Karte mit seinem Namen.
Konkret: HasiGott und Mama Hase verschwinden von der Hase-Seite, weil
für sie (noch) keine Produkte im Admin angelegt wurden. Sobald VanVan
ein Produkt mit charakter: hasigott anlegt, erscheint er automatisch.

Familien ganz ohne Produkte (Kuh, Wal, Oktopus, Schildkröte, Pinguin)
zeigen weiterhin die bereits vorbereiteten, namenlosen "Kommt bald"-
Karten (unverändert) — nur die NAMENTLICHE Vorab-Anzeige einzelner
Charaktere ohne Produkt entfällt.

Zusätzlich: der "Mehr über mich"-Button in der Story-Box hatte keinen
erklärenden Text — man wusste nicht, wohin/wozu er führt. Jetzt steht
davor "Wenn du mehr über mich erfahren möchtest, dann klicke [hier →]"
in allen 4 Sprachen.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 00:47:25 +02:00
qciganoandClaude Sonnet 5 b28475c26a Admin-Lücke geschlossen: Banner-Name jetzt auch von VanVan selbst editierbar
Vollständige Prüfung der ganzen Website durchgeführt (auf Wunsch:
"nicht einen einzigen Fehler finden"): jede Seite mit Listen (Shop-
Grid, Startseite, Sale, Kategorie-/Unterkategorie-Seiten, Footer,
Navigation) zieht ihre Einträge bereits vollständig aus den
Admin-Inhalten (products/*.json, categories/*.json) — neue Produkte,
Kategorien, Unterkategorien und Charaktere erscheinen automatisch,
ohne dass Code angefasst werden muss. Mit einem echten Test bestätigt:
testweise eine komplett neue Unterkategorie samt Charakter angelegt
(wie VanVan es im Admin tun würde) → Seite erschien automatisch,
korrekt in allen 4 Sprachen, inkl. Eintrag auf der übergeordneten
Kategorie-Seite. Testdaten danach wieder exakt zurückgesetzt.

Einzige echte Lücke gefunden: das `bannerName`-Feld (aus dem letzten
Update, überschreibt die große Bannerüberschrift mit dem bekanntesten
Charakternamen) existierte zwar im Code/in den JSON-Dateien, aber
NICHT im Admin-Formular — ich hatte es bislang nur selbst direkt in
die Dateien geschrieben. VanVan hätte es also für neue Tier-Familien
nicht selbst setzen können. Jetzt als eigenes Feld "Name im großen
Banner oben (optional)" direkt unter dem normalen Namen der
Unterkategorie ergänzt, mit erklärendem Hinweistext.

Alle anderen Admin-Formulare (Produkte, Gutscheine, Partnercodes,
Versandkosten-Staffel, Bankverbindung) 1:1 gegen ihre Datenmodelle
geprüft — keine weiteren Lücken gefunden.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 00:39:30 +02:00
vansdiyundbastelbedarfandGitHub 017938c2e8 Update Produkt “bastel-starterset” +1 2026-08-03 00:35:03 +02:00
qciganoandClaude Sonnet 5 d1acf1d377 Alle Tier-Familien-Seiten mit Charakternamen im Banner vorbereitet
Analog zu "Hase" → "HasiDog" bekommen jetzt auch die restlichen fünf
Tier-Familien ihren Charakternamen als große Bannerüberschrift statt
des Artnamens: Kuh → Frieda, Wal → Sam, Oktopus → Siggi,
Schildkröte → Gaby, Pinguin → Pingi.

Die restliche Seitenstruktur (Story-Box + Kartenreihe) brauchte keine
Änderung — die Vorlage war schon vollständig datengetrieben und zeigt
automatisch für JEDE Familie mit Charakteren dieselbe Optik wie bei
Hase. Da bei diesen fünf Familien noch keine echten Produkte hinterlegt
sind, erscheint (wie bei HasiGott/Mama Hase auf der Hase-Seite auch)
nur die vorbereitete Platzhalter-Karte, aber noch keine Story-Box —
die blendet sich automatisch ein, sobald VanVan im Admin ein passendes
Produkt anlegt.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 00:29:33 +02:00
qciganoandClaude Sonnet 5 e6e86c556a Hase-Seite: Banner zeigt "HasiDog", doppelte Überschrift in der Story-Box entfernt
- Bannerüberschrift zeigt wieder "HasiDog" statt "Hase" (bannerName
  erneut gesetzt).
- Die weiße "HasiDog"-Überschrift in der Story-Box darunter entfernt —
  war doppelt, weil der cyanfarbene Obertitel ("Hallo, ich bin HasiDog.")
  den Namen schon nennt. Das ist eine allgemeine Änderung an der
  Story-Box-Vorlage (gilt für alle Charaktere/Familien, nicht nur Hase),
  da die Überschrift überall strukturell redundant war.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 00:21:16 +02:00
qciganoandClaude Sonnet 5 4aee6c7b98 Als App auf dem PC installierbar — mit gut sichtbarem Installations-Button
Die Icons/Manifeste waren schon vorbereitet, aber es gab keinen echten
Weg, die Installation auch zu STARTEN, ohne das kleine, leicht zu
übersehende Icon im Browser selbst zu suchen. Jetzt:

- Ein Service Worker (public/sw.js) ist Voraussetzung dafür, dass
  Browser die Seite überhaupt als "installierbare App" erkennen. Bewusst
  minimal gehalten: strikt "network-first" — bei bestehender Verbindung
  wird IMMER zuerst das echte Netzwerk gefragt, der Cache dient nur als
  Rückfalllösung, wenn wirklich keine Verbindung besteht. Dadurch besteht
  KEIN Risiko, dass der Adminbereich veraltete Inhalte zeigt, während man
  online ist — als Bonus funktionieren bereits besuchte Seiten aber auch
  kurz offline (mit echtem Offline-Test geprüft).
- Neuer "Installieren"-Button direkt in der Kopfzeile (Hauptseite) bzw.
  unten rechts (Adminbereich) — erscheint automatisch, sobald der
  Browser eine Installation wirklich anbietet, verschwindet danach
  wieder bzw. bleibt komplett versteckt, wenn schon als App installiert.
  Ein Klick reicht, kein Suchen im Browser-Menü mehr nötig.
- Beide Bereiche (Hauptseite + Admin) nutzen dieselben, bereits
  vorhandenen Logo-Icons/Manifeste — landet also mit dem echten
  VanVan-Logo auf dem Startbildschirm/Desktop.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 00:16:23 +02:00
qciganoandClaude Sonnet 5 0ff6412e1e Admin-Bereich: echtes Logo statt generiertem Icon bei Installation als App
Der Adminbereich hatte zwar schon einen Favicon-Link, aber kein eigenes
Web-App-Manifest — wer /admin/ als App installiert hat, bekam deshalb
ein automatisch generiertes Platzhalter-Icon statt des echten VanVan-
Logos (gleiches Problem wie zuvor schon auf der Hauptseite behoben).
Neues manifest.webmanifest für den Adminbereich verlinkt jetzt dieselben
Logo-Icons wie die Hauptseite (inkl. maskable-Varianten).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-03 00:09:43 +02:00
qciganoandClaude Sonnet 5 2d2ade1aa8 Kopfzeile (Logo, Navigation, Buttons) etwas größer
Logo, Markenname, Hauptnavigation, Sprachumschalter, Konto-/Warenkorb-
Icons sowie die zweite Kategorien-Leiste darunter sind jetzt insgesamt
etwas größer/luftiger (Schriftgrößen, Icon-Maße, Innenabstände moderat
erhöht) — wie gewünscht "bissl größer" statt eines kompletten Redesigns.

Dabei einen kleinen, durch die Vergrößerung ausgelösten Folgefehler
gleich mitbehoben: auf schmalen Handy-Breiten (<480px) hätte der neue,
größere Header nicht mehr komplett reingepasst und den Menü-Button (☰)
rechts aus dem sichtbaren Bereich geschoben, unerreichbar für Klicks.
Neue Media Query verkleinert dort gezielt Logo/Markentext und blendet
den Sprachumschalter-Text (bleibt nur der Globus) sowie den Pfeil aus —
geprüft: kein horizontales Überlaufen mehr bei 420px, 700px und
Desktop-Breite.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:54:51 +02:00
qciganoandClaude Sonnet 5 3e2be5a420 Doppeltes "HasiDog" auf der Hase-Seite entfernt
Die Bannerüberschrift zeigte "HasiDog", direkt gefolgt von der
Story-Box, die den Namen nochmal als eigene Überschrift zeigt ("Hallo,
ich bin HasiDog. HasiDog ...") — wirkte doppelt. Banner zeigt jetzt
wieder den Familiennamen "Hase" (bannerName-Override entfernt, das
Feld selbst bleibt im Datenmodell bestehen, falls später mal gebraucht).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:48:36 +02:00
qciganoandClaude Sonnet 5 2e1101deac Karten im Haupt-Shop gleich groß + Versandkosten-Feld direkt unter Rabatte
Fix: Auf der Haupt-Shop-Seite (/shop/) wirkten Produktkarten in derselben
Reihe unterschiedlich groß, je nachdem wie lang Titel/Beschreibung waren.
Ursache: jede Karte steckt dort zusätzlich in einem .product-slot-Div
(fürs Filtern/Sortieren per JS). CSS Grid streckt dieses Div zwar auf die
volle Zeilenhöhe, die Karte DARIN füllte diese Höhe aber nicht aus (ein
normales <div> reicht "stretch" nicht an sein Kind weiter). Jetzt ist
das Slot-Div selbst ein Flex-Container, wodurch sich die Karte darin auf
die volle Höhe ausdehnt — alle Karten einer Reihe sind jetzt exakt
gleich groß, unabhängig von der Textlänge.

Admin: "🚚 Eigene Versandkosten je Land" steht jetzt direkt unter
"🏷️ Rabatte" (vorher lag "Auf Lager" dazwischen).

Die "🤝 Partner-Rabattcodes" bereits vorhandene Sektion sitzt weiterhin
direkt unter "🎟️ Gutscheincodes" in der linken Bereichsliste (per
Screenshot verifiziert) — falls sie nicht sichtbar war, lag es an
gecachtem Admin-Tab, nicht an fehlender Konfiguration.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:46:32 +02:00
qciganoandClaude Sonnet 5 e48700f982 Tier-Familien-Seiten verfeinert, Foto-Karussell, Partnercode auf Sale-Ausschluss
Mehrere Feinschliff-Punkte auf den Tier-Familien-Seiten (z.B. "Hase"):
- Abstand zwischen der Story-Box und der Kartenreihe verkleinert (vorher
  durch zwei separate Section-Umrandungen unnötig groß) — beide Bereiche
  teilen sich jetzt eine gemeinsame Section statt zwei gestapelte.
- Platzhalter-Karten (Charaktere ohne Foto) bekommen jetzt exakt die
  gleiche Bildhöhe wie eine Karte mit echtem Foto (vorher griff nur die
  allgemeine Mindesthöhe, wirkte kleiner/anders proportioniert).
- Neues optionales Feld `bannerName` an der Unterkategorie: überschreibt
  NUR die große Bannerüberschrift (Breadcrumb/Chips bleiben unverändert)
  — für "Hase" jetzt auf "HasiDog" gesetzt, den bekanntesten Charakter
  der Familie.
- Unterkategorie-Seiten ganz ohne Produkte/Charaktere (z.B. Maschen-
  markierer, Holzknöpfe) zeigen jetzt schon 3 vorbereitete Platzhalter-
  Karten im selben Kartenstil statt nur einer nackten Textzeile — die
  Seite "sieht schon fertig aus", auch bevor echte Produkte da sind.
  Nebenbei einen Bug behoben: bei Unterkategorien ohne Charaktere, aber
  MIT echten Produkten, erschien vorher zusätzlich fälschlich der
  "noch keine Produkte"-Hinweis über der echten Produktreihe.

Neu: Mini-Bildkarussell direkt auf jeder Produktkarte (Shop-Grid,
Charakter-Kacheln, "Weitere Modelle", Sale-Seite, Startseite — überall
wo ProductCard verwendet wird). Sobald ein Produkt mehrere Fotos hat
(Admin-Bereich erlaubt das bereits über das Foto-Listenfeld), erscheinen
dezente ‹/›-Pfeile plus Punkte-Indikator direkt auf der Karte, ganz ohne
erst die Produktseite öffnen zu müssen.

Neu: Partner-Rabattcodes können im Admin jetzt gezielt auf "gilt NICHT
für Artikel, die schon im Sale sind" gestellt werden (giltAufSale:
false) — der Rabatt berechnet sich dann nur noch auf den regulär
bepreisten Teil des Warenkorbs, damit sich der Partner-Rabatt nicht
zusätzlich auf einen bereits reduzierten Preis obendrauf summiert.
Standardverhalten (Feld leer/true) bleibt wie bisher unverändert.

Alle Änderungen lokal mit Test-Daten durchgespielt (mehrere Testfotos,
Testprodukt im Sale + Partnercode mit/ohne giltAufSale, leere
Unterkategorie-Seite) und vor dem Commit wieder zurückgesetzt.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:41:27 +02:00
qciganoandClaude Sonnet 5 6fc64e0972 Neu: Partner-/Influencer-Rabattcodes (Warenkorb, Checkout, Admin)
Neben dem allgemeinen Gutscheincode gibt es jetzt einen zweiten,
unabhängigen "Partner-Rabattcode"-Slot — für Codes, die VanVan gezielt
mit einzelnen Streamer:innen/Content-Creator:innen aushandelt. Kund:innen
lösen ihn genauso ein wie einen Gutschein (eigene, optisch identische Box
direkt unter dem Gutschein im Warenkorb bzw. im Checkout), beide Codes
können unabhängig voneinander gleichzeitig aktiv sein und ihre Rabatte
werden addiert (auf die Zwischensumme gedeckelt, damit der Preis nie
unter 0 € fällt).

Admin (Sveltia CMS): neuer Bereich "🤝 Partner-Rabattcodes", getrennt von
den allgemeinen Gutscheinen geführt. Pro Code lässt sich hinterlegen, zu
welcher Partnerin/welchem Partner er gehört (nur für VanVans eigene
Übersicht, wird Kund:innen nirgends gezeigt), Prozent- ODER Betrags-
Rabatt, optionales Ablaufdatum, ein "Aktiv"-Schalter zum Pausieren ohne
Löschen, sowie ein freies Notizfeld für die vereinbarten Konditionen
(z.B. Provision) — echtes automatisches Auswerten, wer wie oft welchen
Code einlöst, bräuchte ein eigenes Backend (Phase 2) und ist bewusst
nicht Teil dieser rein statischen Umsetzung.

Nebenbei einen bestehenden Bug behoben: die define:vars-Variablenliste
im Checkout-Skript war bei EN/CH/FR unvollständig (discountLabel,
couponInvalid, Klarna-/Bank-Texte fehlten) — dadurch wären dort Teile
der Checkout-Seitenleiste als "undefined" gerendert worden. Jetzt an
die vollständige Liste der DE-Version angeglichen.

Neu erstellte Dateien lokal mit Test-Codes durchgespielt (Gutschein +
Partnercode gleichzeitig eingelöst, Rabatte korrekt addiert, Admin-
Formular mit allen Feldern geprüft) und wieder auf leere Listen
zurückgesetzt vor dem Commit.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:28:01 +02:00
qciganoandClaude Sonnet 5 45f64b95ee Echtes Logo statt generiertem Buchstaben-Icon (Browser-Tab + Installation als App)
Bisher wurde als Icon nur Astros Standard-Platzhalter-SVG (ein Pfeil-Symbol,
kein eigenes Branding) verlinkt. Weil kein Web-App-Manifest mit Icons
hinterlegt war, generierten Browser beim "Auf PC installieren" automatisch
einen Buchstaben-Kreis ("V") als App-Icon statt des echten Logos.

Aus dem vorhandenen public/logo.png automatisch alle nötigen Icon-Größen
erzeugt (favicon.ico mit 16/32/48px, Apple-Touch-Icon 180px, sowie 192px/
512px normal + eigene "maskable"-Varianten mit Weißraum-Sicherheitszone,
damit runde/eckige OS-Zuschnitte beim Installieren nicht den Rand des
Logos abschneiden). Neues manifest.webmanifest verlinkt alle Icons plus
Name/Theme-Farbe für die Installation. Layout.astro und der
Admin-Bereich verlinken jetzt überall das echte Logo statt des alten
Platzhalters.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:11:11 +02:00
qciganoandClaude Sonnet 5 0ae990baad Charakter-Story-Box aufgewertet: eigener Look statt schlichter Basiskarte
Die "Hallo, ich bin ..."-Box wirkte leer und generisch. Ohne Text zu
ändern, bekommt sie jetzt: ein großes, dezentes Anführungszeichen als
Wasserzeichen oben rechts (im Marken-Verlauf Cyan/Lila/Rosa), einen
sanften Farbschimmer rund um die ganze Box statt des flachen
Standard-Schattens, eine leicht verlaufsgefärbte Überschrift und einen
eigens gestalteten "hier"-Button im Akzent-Verlauf statt schlichtem
Outline-Rahmen (inkl. Hover-Anhebung). Bleibt ruhig/professionell,
fügt sich in den bestehenden Kartenstil der Seite ein.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:05:14 +02:00
qciganoandClaude Sonnet 5 5febeeaa2f Charakter-Geschichtsboxen nur noch für Charaktere mit echtem Produkt
Bisher bekam jeder Charakter einer Tier-Familie (z.B. Hase) automatisch
seine eigene Story-Box, auch wenn für ihn noch gar kein Produkt existiert.
Das wirkte unfertig (z.B. HasiGott und Mama Hase zeigten volle
Persönlichkeitstexte, obwohl beide noch keine Produkte haben). Jetzt
erscheint die Story-Box nur noch für Charaktere mit mindestens einem
zugeordneten Produkt (aktuell also nur HasiDog). Die kompakten Karten
darunter (mit Platzhalter-Foto und "Produkte folgen bald") bleiben für
alle Charaktere sichtbar, damit die Familie als Ganzes trotzdem gezeigt
wird.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 23:00:43 +02:00
qciganoandClaude Sonnet 5 e212fb17d6 Fix: Versandkosten-Feld im Admin besser auffindbar machen
Das Feld für produktspezifische Versandkosten existierte bereits, war
aber kaum zu finden: es stand ganz unten im Formular (nach Lieferzeit)
und war zusätzlich hinter Sveltias "+ Add"-Checkbox versteckt (weil das
Objektfeld selbst required:false hatte). Jetzt direkt nach "Auf Lager"
platziert und ohne required:false auf dem Objekt, sodass die vier
Länder-Preisfelder sofort sichtbar sind, genau wie bei "Name" und
"Beschreibung". Hinweistext zusätzlich präzisiert (verweist jetzt
namentlich auf den Bereich "Versandkosten-Staffel").

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 22:57:58 +02:00
qcigano 8cd0145003 Charaktergeschichten von den Shop-Karten getrennt: eigene volle-Breite Boxen oben, reine Foto/Preis-Karten darunter
Bisher stand die persönliche Charaktergeschichte (Hallo-ich-bin-Text)
direkt in derselben Karte wie Foto und Kaufinfos. Jetzt zweigeteilt:
- Oben: jede Geschichte in einer eigenen, vollen Breite Karte
  (character-stories/.character-story), übereinander gestapelt.
- Darunter: eine Kartenreihe wie im Shop-Grid, die für Charaktere mit
  echtem Produkt direkt die vorhandene ProductCard-Komponente wiederverwendet
  (Foto, Badges, Preis, Kurzbeschreibung — 1:1 wie überall sonst im Shop),
  für Charaktere ohne Produkt ein passender Platzhalter im gleichen
  Kartenstil. Keine Geschichten mehr in dieser Reihe.

Verifiziert per Puppeteer: alle drei Geschichten-Boxen ohne Preis, alle
drei Shop-Karten ohne Geschichtstext, HasiDog-Karte zeigt echten Preis
(42,00 € durchgestrichen, 25,00 €) über die wiederverwendete ProductCard-
Komponente.
2026-08-02 22:44:51 +02:00
qcigano bdb1b323c7 Charakter-Vorstellungen umgebaut: kompakte Karten nebeneinander statt großflächiger Text/Foto-Splits
Die großen abwechselnden Foto/Text-Boxen (voller Formularbreite je
Charakter, viel Leerraum bei kurzem Text) sind ersetzt durch kompakte
Karten im exakt gleichen Stil wie die Produktkarten im Shop-Grid: Foto
oben, Text darunter in voller Kartenbreite, alle Charaktere einer Familie
nebeneinander in einer Reihe statt einzeln untereinander.

Betrifft alle Tier-Familien (Hase, Kuh, Wal, Oktopus, Schildkröte,
Pinguin) — wächst weiterhin automatisch mit, sobald neue Charaktere
ergänzt werden. Die "Über die Kreative"-Seite nutzt dieselbe .intro-
CSS-Klasse für ihr eigenes Layout und ist unangetastet geblieben.

Verifiziert per Puppeteer: alle drei Hase-Karten korrekt (Foto, Text,
Link), "Über die Kreative" weiterhin fehlerfrei und unverändert.
2026-08-02 22:38:20 +02:00
qcigano ffddd33a38 Charakter-Vorstellungen: Text und Foto bekommen beide die Kartenoptik der Produktkarten
Auf den Tier-Familien-Seiten (z.B. /shop/diy-plushies/hase/) standen Foto
und Text bisher als freischwebende Elemente nebeneinander, ohne Rahmen.
Jetzt bekommen beide Seiten die gleiche Verlaufsrand-"Kisten"-Optik wie
die Produktkarten im Shop-Grid — zwei gleichwertige, gerahmte Boxen
nebeneinander statt unauffälligem Text neben einem randlosen Foto.

Zusätzlich: HasiDog (1. Charakter der Hase-Familie) hat jetzt den Text
links und das Foto rechts (vorher umgekehrt) — die Abwechslung für
weitere Charaktere (HasiGott, Mama Hase, ...) bleibt erhalten, nur die
Startseite ist gespiegelt.

Verifiziert per Puppeteer-Screenshot: alle drei Hase-Charaktere zeigen
jetzt beide Karten im Verlaufsrand-Stil, HasiDog korrekt mit Text links.
2026-08-02 22:28:57 +02:00
qcigano eddc70e698 Fix: "Foto folgt"-Platzhalter bekommt jetzt den gleichen edlen Rahmen wie echte Fotos
Innerhalb eines Portrait-Frames (z.B. Charakter-Box ohne zugeordnetes
Produkt wie HasiGott/Mama Hase) hatte der Platzhalter keinen Rahmen/Ring,
während echte Fotos schon den dunklen Ring + Akzent-Leuchtrand hatten
(.portrait-frame img). Jetzt bekommt .img-placeholder innerhalb eines
Portrait-Frames genau denselben Rahmen — behält dabei seine eigene
Flex-Zentrierung für den "Produktfoto folgt"-Text.

Verifiziert per Puppeteer: Platzhalter hat jetzt denselben box-shadow-
Ring wie echte Fotos, Textzentrierung (display:flex) bleibt erhalten.
2026-08-02 22:16:16 +02:00
qcigano 3cebb9c3cd Fix: alter Preis bei Rabatt war auf der Produktseite nicht durchgestrichen
.price-old hatte nur in ProductCard.astro (Produktkarten im Shop-Grid)
eine CSS-Regel — auf der Produktdetailseite fehlte sie sitesweit
komplett, der alte Preis stand deshalb dort einfach nur normal daneben
statt durchgestrichen zu sein. Jetzt global definiert, gilt überall.

Verifiziert per Puppeteer: text-decoration ist jetzt line-through.
2026-08-02 21:08:45 +02:00
qcigano f4a48c519c Fix: "+"-Button der Mengensteuerung war unsichtbar, wenn die maximale Lagermenge bereits im Warenkorb war
Ursache gefunden: wenn der Lagerbestand komplett im Warenkorb war, bekam
der "In den Warenkorb"-Button den kompletten langen Hinweissatz als
Text ("Maximale verfügbare Menge ist bereits im Warenkorb"). Der Button
wurde dadurch riesig (3 Zeilen) und hat die danebenliegende
Mengen-Steuerung samt "+"-Button optisch verschluckt — auf schmalen
Bildschirmen war der "+" komplett unsichtbar.

Fix: Der Button bekommt jetzt eine kurze Beschriftung ("Bereits im
Warenkorb"), der ausführliche Satz steht weiterhin im separaten
Hinweistext darunter. Zusätzlich .qty-row jetzt mit flex-wrap
abgesichert, damit ein zu langer Button-Text künftig einfach umbricht
statt die Mengen-Steuerung zu überlagern.

Verifiziert per Puppeteer auf schmalem Viewport (420px): "+" jetzt
sichtbar und klickbar, Button zeigt Kurztext, Hinweis zeigt weiterhin
den vollen Satz.
2026-08-02 21:06:17 +02:00
qcigano 0ee884364d Unterkategorien-Chips: mittig ausgerichtet + Verlaufsrand-Stil statt schlichter Pillen
Die Chip-Reihe war linksbündig statt zentriert und nutzte einfache
Einzelfarb-Pillen. Jetzt mittig auf der Seite und im selben
Verlaufsrand-Stil wie die Karten der Seite (cyan → lila → rosa,
sanftes Leuchten, Hover-Anhebung) — wirkt dadurch "speziell" und
markentypisch, bleibt aber ruhig genug für den professionellen
Gesamtlook.

Verifiziert per Puppeteer-Screenshot.
2026-08-02 20:55:42 +02:00
qcigano a61336b9ee Fix: Überschrift über der Produktreihe zeigt jetzt wirklich "Hauptkategorie" statt den Kategorienamen zu wiederholen
Missverständnis aus einer früheren Anfrage korrigiert: die Überschrift
zwischen den Unterkategorie-Chips und der Produktreihe sollte das Wort
"Hauptkategorie" zeigen (spiegelbildlich zur "Unterkategorien"-
Beschriftung darüber), nicht den Kategorienamen ("DIY Plushies")
wiederholen. Jetzt im exakt gleichen dezenten Stil wie
"Unterkategorien" — beide Beschriftungen sind jetzt visuell symmetrisch.

Verifiziert per Puppeteer: Seite zeigt "UNTERKATEGORIEN" und
"HAUPTKATEGORIE" als passendes Beschriftungs-Paar.
2026-08-02 20:52:46 +02:00
qcigano dc1d7a41ff Unterkategorien-Chips zeigen wieder den Charakternamen (z.B. Hase „HasiDog")
Seit der Umstellung auf "eine Seite pro Tier-Familie" hießen die Chips
nur noch generisch (Kuh, Hase, Wal, ...). Jetzt zeigen sie zusätzlich
den ersten/bekanntesten Charakter der Serie in Anführungszeichen — z.B.
"Hase „HasiDog"" — behalten dabei aber die neue Datenstruktur
(Subcategory.characters) bei, damit Familien mit mehreren Charakteren
(wie Hase: HasiDog, HasiGott, Mama Hase) technisch weiterhin
funktionieren.

Neue Helper-Funktion subcategoryChipLabel() in categories.ts, pro
Sprache mit den richtigen Anführungszeichen (DE/CH „...", EN "...",
FR « ... »).

Verifiziert per Puppeteer: alle 6 Chips zeigen exakt die gewünschten
Labels.
2026-08-02 20:49:26 +02:00
qcigano ee4ec0053e Checkout: AGB/Widerruf-Checkboxen stehen jetzt direkt unter Gesamt/USt-Hinweis statt separat unterhalb beider Spalten
Die Checkboxen standen bisher außerhalb des Zwei-Spalten-Layouts, über
die volle Formularbreite. Jetzt stehen sie direkt im Anschluss an
"Gemäß §19 UStG..." in derselben (rechten) Spalte — wie gewünscht direkt
unter der Bestellübersicht statt separat darunter.

Verifiziert per Puppeteer-Screenshot (Desktop + schmale Ansicht).
2026-08-02 20:45:54 +02:00
qcigano 51ac0affa7 Warenkorb/Produktseite: nie mehr in den Warenkorb legen können als auf Lager ist
- Produktseite: Mengen-Stepper und manuelle Eingabe sind jetzt auf den
  tatsächlichen Lagerbestand begrenzt (zählt bereits im Warenkorb
  liegende Menge desselben Produkts mit). Ist das Maximum schon
  erreicht, wird der "In den Warenkorb"-Button deaktiviert und zeigt
  "Maximale verfügbare Menge ist bereits im Warenkorb"; bei wenig Rest-
  bestand (≤5) erscheint stattdessen "Nur noch X auf Lager".
- Warenkorb-Seite: der "+"-Button bei der Mengenauswahl ist ebenfalls auf
  den Lagerbestand begrenzt.
- Als zusätzliche Absicherung greift das Limit jetzt auch direkt in
  addToCart()/updateQuantity() selbst (cart.ts) — unabhängig davon,
  welche Oberfläche die Funktion aufruft, kann so nie mehr Menge als
  Bestand ins localStorage gelangen.

Verifiziert per Puppeteer an einem Produkt mit Bestand 2: 6× auf "+"
klicken bleibt bei 2, manuelles Eintippen von 999 wird auf 2 geklemmt,
nach dem Hinzufügen ist der Button deaktiviert, der "+"-Button im
Warenkorb erhöht nicht weiter — keine Konsolenfehler.
2026-08-02 20:42:21 +02:00
qcigano 7e8e85851c Checkout: Bestellübersicht sitzt jetzt unter Kontakt & Lieferadresse statt über die volle Breite
"3. Bestellübersicht" stand bisher als eigener Block über die volle
Formularbreite unterhalb beider Spalten. Jetzt steht sie direkt in der
rechten Spalte, gestapelt unter "2. Kontakt & Lieferadresse" — beide
Spalten (Zahlungsart links, Kontakt + Bestellübersicht rechts) füllen
dadurch die gemeinsame Karte deutlich ausgewogener.

Verifiziert per Puppeteer-Screenshot gegen den echten Build.
2026-08-02 20:36:32 +02:00
qcigano d0feaacd4c Warenkorb: Trennlinie zwischen Artikeln als fließender Verlauf mit Knopf-Ornament statt Strichen
Die vorherige gestrichelte Linie wirkte noch zu "einfach nur Striche".
Jetzt fließt ein sanfter, an den Rändern ausblendender Verlauf in den
drei Marken-Farben (wie der Karten-Rand der Seite) über die volle
Breite, mit einem kleinen glänzenden Knopf in der Mitte — eine dezente
Anspielung auf's Nähen/Basteln, passend zur Marke, ohne aufdringlich zu
wirken.

Verifiziert per Puppeteer-Screenshot mit zwei Artikeln im Warenkorb.
2026-08-02 20:27:27 +02:00
qcigano a31bd2b4a0 Warenkorb: Trennlinie zwischen Artikeln als zweifarbige Naht statt nüchterner grauer Linie
Passend zum "Bastelbedarf"-Charme: die Trennung zwischen Warenkorb-
Positionen ist jetzt ein gestrichelter Verlaufs-Stich in Marken-Akzent
und Lila statt einer kaum sichtbaren grauen 1px-Linie — fällt deutlich
mehr auf, bleibt aber dezent genug für den professionellen Rest der
Seite.

Verifiziert per Puppeteer-Screenshot mit zwei Artikeln im Warenkorb.
2026-08-02 20:24:02 +02:00
qcigano 677104d4a6 Warenkorb: Artikel einzeln zum Kauf auswählen, andere bleiben unverbindlich liegen
Jeder Artikel im Warenkorb hat jetzt eine Checkbox "Jetzt kaufen". Nur
angehakte Artikel zählen zur Zwischensumme, zum Versand, zum Gutschein
und zum Checkout — abgewählte Artikel bleiben sichtbar (leicht
abgedunkelt, mit "Bleibt im Warenkorb, wird noch nicht gekauft"-Hinweis)
im Warenkorb liegen, ohne mitgekauft zu werden. Die Auswahl wird pro
Artikel gespeichert (localStorage) und bleibt bis zur nächsten Änderung
bestehen. Der Checkout übernimmt automatisch nur die ausgewählten
Artikel.

Verifiziert per Puppeteer: Abwählen eines Artikels reduziert Summe/
Rechnungsliste sofort korrekt, Checkout zeigt nur den ausgewählten
Artikel, keine Konsolenfehler.
2026-08-02 20:21:30 +02:00
qcigano 993c4f9265 Warenkorb: Positionsliste steht jetzt auch in der Zusammenfassung
Die Zwischensumme-Box zeigte bisher nur die Endsumme, ohne die
einzelnen Artikel aufzulisten. Jetzt steht dort — genau wie beim
Checkout — eine kompakte Rechnungsübersicht (Menge × Artikel →
Zeilenpreis) direkt über der Zwischensumme.

Verifiziert per Puppeteer mit zwei verschiedenen Artikeln im Warenkorb:
Positionsliste zeigt korrekte Mengen/Preise, keine Konsolenfehler.
2026-08-02 20:15:14 +02:00
qcigano 8fec08d550 Adminbereich: Überschriften in derselben Schrift wie die Website (Fraunces)
Der Adminbereich nutzte für Überschriften bisher nur Inter (Sans-Serif),
während die eigentliche Website durchgängig Fraunces als markante
Serifenschrift für Überschriften verwendet (--font-head). Jetzt zieht
sich diese Schrift auch durch den Adminbereich — über die stabilen HTML-
Tags (h1/h2/h3) gesetzt statt über Sveltias interne, ungeschützte
Klassennamen, bleibt also robust gegen künftige Sveltia-Updates.

Verifiziert per Puppeteer: H1 nutzt jetzt "Fraunces, Playfair Display,
Georgia, serif", keine Konfigurationsfehler.
2026-08-02 20:12:08 +02:00
qcigano 46aae63bcf Grundlegend umgebaut: eine Seite pro Tier-Familie mit mehreren Charakteren statt einer Seite pro Charakter
Bisher war jeder Charakter (HasiDog, Frieda, Sam, ...) eine eigene
Unterkategorie mit eigener Seite. Das passte nicht mehr, sobald eine
Familie mehrere Charaktere bekommt (HasiDog, HasiGott, Mama Hase) — die
sollten alle auf EINER Seite erscheinen, nicht auf drei getrennten.

Neues Modell:
- Unterkategorie = die ganze Tier-Familie (z.B. "hase", "kuh", "wal"),
  nicht mehr ein einzelner Charakter.
- Jede Familie hat jetzt ein "characters"-Array (categories.ts,
  config.yml) — beliebig viele Charaktere, jeder mit eigenem Namen,
  Vorstellungstext und optionalem "Mehr über mich"-Link.
- Produkte bekommen ein neues optionales Feld "charakter", das sie einem
  bestimmten Charakter innerhalb der Unterkategorie zuordnet (Product.
  charakter in products.ts + Adminbereich-Feld).
- Die Unterkategorie-Seite zeigt jetzt JEDEN Charakter als eigene Box
  untereinander, mit automatisch abwechselnder Foto-/Text-Seite (1. links,
  2. rechts, 3. wieder links, ...). Ein Charakter ohne zugeordnetes
  Produkt zeigt trotzdem schon seine Box (nur ohne Foto) — die Seite
  "wächst" mit, sobald neue Charaktere/Produkte dazukommen, für jede
  Tier-Familie (Hase, Kuh, Wal, Oktopus, Schildkröte, Pinguin).
- "Hase" hat jetzt drei Charaktere (HasiDog mit echtem Produkt, HasiGott
  und Mama Hase als Platzhalter-Boxen).
- Unterkategorien-Chips zeigen jetzt sauber die Familiennamen (Kuh, Hase,
  Wal, ...) statt "Kuh „Frieda"" etc.
- Alte, verwaiste /hasidog/-Seite entfernt (war durch die Umstellung
  kaputt und nirgends mehr verlinkt).

Verifiziert per Puppeteer gegen den echten Build: /shop/diy-plushies/hase/
zeigt alle drei Charaktere korrekt alternierend, Ein-Charakter-Familien
(Kuh etc.) funktionieren unverändert, Adminbereich lädt ohne
Konfigurationsfehler, alte Hase-URLs geben korrekt 404.
2026-08-02 20:08:51 +02:00
qcigano b8f4454bea Checkout-Fenster deutlich breiter; PayPal auf einen sauberen Button reduziert; Klarna verbindet automatisch bei Auswahl
- Das Zahlungsart/Kontakt-Fenster war unabsichtlich auf 560px begrenzt
  (geerbtes Formular-Limit von Kontakt-/Konto-Seite) — jetzt nutzt es die
  volle verfügbare Spaltenbreite (~820px statt 560px).
- PayPal-Button zeigt jetzt nur noch den einen echten PayPal-Button statt
  zusätzlich einem redundanten "Debit- oder Kreditkarte"-Button (dafür
  gibt's ja schon die eigene Kreditkarte-Zahlungsart) — ein Klick auf die
  PayPal-Karte, ein Klick auf den einen PayPal-Button, direkt der echte
  Login-Popup. Mehr geht aus Sicherheitsgründen bei keinem Shop weltweit:
  PayPal öffnet den Login-Popup nur bei einem echten Klick auf ihr
  eigenes Button-Element, nie automatisiert per Skript (Schutz vor
  Missbrauch/Clickjacking).
- Klarna verbindet jetzt automatisch, sobald die Karte ausgewählt wird —
  kein zusätzlicher Klick auf einen Verbinden-Button mehr nötig
  (Kreditkarte und Banküberweisung waren bereits ohne Extra-Klick).

Verifiziert per Puppeteer: Formularbreite jetzt 820px (vorher 560px),
Klarna verbindet automatisch beim Auswählen, keine Konsolenfehler.
2026-08-02 20:00:51 +02:00
qcigano 1c9bee94ca Zwei neue Hase-Varianten (HasiGott, Mama Hase) + abwechselnde Foto/Text-Seite pro Familie; Hauptkategorie-Überschrift auf Kategorie-Seiten
- Zwei neue Unterkategorien unter "Hase" angelegt: "HasiGott" und "Mama
  Hase", jeweils mit eigenem Charaktertext, bereit für echte Produktfotos
  sobald VanVan sie im Adminbereich hinzufügt.
- Neue Logik: Innerhalb einer Tier-Familie (gleicher Slug-Präfix, z.B.
  "hase-*") wechselt die Vorstellungsbox jetzt automatisch die Seite ab —
  1. Mitglied Foto links/Text rechts (HasiDog, unverändert), 2. Mitglied
  Foto rechts/Text links (HasiGott), 3. wieder links (Mama Hase), und so
  weiter für alle künftigen Varianten.
- Kategorie-Seiten (z.B. "DIY Plushies") zeigen jetzt eine
  Hauptkategorie-Überschrift zwischen der Unterkategorien-Chip-Reihe und
  der eigentlichen Produktreihe darunter.

Verifiziert per Puppeteer gegen den echten Build: neue Seiten laden
fehlerfrei, HasiDog bleibt korrekt "nicht gespiegelt" (1. Familienmitglied),
Hauptkategorie-Überschrift sitzt an der richtigen Stelle.
2026-08-02 19:56:46 +02:00
qcigano 965434e2fc Adminbereich: Lila-Babyblau-Farbmix + klarer Hinweis zur automatischen Rabatt-Berechnung
- Akzentfarbe im Adminbereich von einfarbigem Türkis auf einen echten
  Lila-Babyblau-Mix umgestellt: normale Buttons/aktive Felder sind
  babyblau, Hover-/Fokus-/Auswahl-Zustände kippen ins Lila (gleicher
  Violett-Ton wie die Verlaufsränder auf der Website) — dadurch zieht
  sich der Farbmix durch die ganze Oberfläche statt nur eine Einzelfarbe
  zu sein.
- Hinweistext bei "Rabatte" ergänzt: macht klar, dass nichts selbst
  ausgerechnet werden muss — die Website berechnet den neuen Preis
  automatisch, sobald oben rechts auf "Speichern" geklickt wird.

Verifiziert per Puppeteer-Login in den echten Adminbereich (Access
Token): Farben korrekt übernommen, keine Konfigurationsfehler, Text
sichtbar.
2026-08-02 19:51:00 +02:00
qcigano 87032eeba8 Checkout-Zahlungsarten: Karten klappen sofort beim Anklicken auf; HasiDog-Box zeigt Charaktertext & ist breiter
- Zahlungsart-Auswahl umgebaut: jede Karte (PayPal/Klarna/Kreditkarte/
  Banküberweisung) klappt den passenden "Verbinden"-Bereich jetzt SOFORT
  in sich selbst auf, sobald man draufklickt — kein Zwischenschritt, kein
  separates Panel weiter unten mehr. Rein CSS-gesteuert (:has()), reagiert
  augenblicklich auf den Klick.
- Unterkategorie-Vorstellungsbox (z.B. HasiDog) zeigt jetzt wieder den
  persönlichen Charaktertext ("Ich bin klein, knuffig, wuschelig...")
  statt der Produktbeschreibung, plus den Cliffhanger-Satz "Wenn du mehr
  über mich erfahren möchtest, dann klicke" vor dem Button — für alle 6
  Tier-Serien (Kuh, Hase, Wal, Oktopus, Schildkröte, Pinguin). Foto und
  Überschrift sind jetzt anklickbar und führen zur echten Produktseite,
  damit trotz des reinen Charaktertexts nichts an Kaufbarkeit verloren
  geht. Textspalte gegenüber Fotospalte verbreitert.

Verifiziert per Puppeteer gegen den echten Build: PayPal-Karte zeigt beim
Laden sofort den echten SDK-Button, Kreditkarte/Banküberweisung klappen
unmittelbar beim Klick auf (ohne Wartezeit geprüft), Bankdaten und
Charaktertext korrekt, keine Konsolenfehler.
2026-08-02 19:44:39 +02:00
qcigano aa53a6321d Breadcrumbs heben Haupt-/Unterkategorie stärker hervor; Unterkategorie-Seiten bereit für viele Produkte pro Serie
- Breadcrumb-Schrift siteweit leicht vergrößert; die aktuelle Ebene
  (Hauptkategorie auf Kategorie-/Produktseiten, Unterkategorie auf
  Unterkategorie-Seiten) ist jetzt fett/weiß hervorgehoben statt nur
  gleichförmig grau — auf allen Kategorie-, Unterkategorie- und
  Produktseiten in allen 4 Sprachen.
- Unterkategorie-Seiten (Kuh, Hase, Wal, Oktopus, Schildkröte, Pinguin)
  zeigen jetzt eine "Weitere Modelle"-Überschrift über der Produktreihe
  unterhalb des featured Produkts — die Seite ist jetzt sichtbar darauf
  ausgelegt, dass mit der Zeit beliebig viele weitere Varianten pro Serie
  dazukommen, nicht nur ein einzelnes Vorzeige-Produkt.

Verifiziert per Puppeteer-Screenshot inkl. Test mit einem zweiten Produkt
in derselben Unterkategorie (danach wieder entfernt) — Layout skaliert
sauber.
2026-08-02 19:34:13 +02:00