Das Feld „Dauer (Sekunden)“ im b2in-Display nimmt Komma und Punkt an,
erlaubt 0,5 bis 120 Sekunden und speichert eine Zahl; der Player rechnet
unverändert mal 1000. Anzeige in der Liste mit Komma. Nachtrag 14.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Arbeitsplan 14.09.2026, Punkte 1.1 bis 1.4 (Nachträge 6 bis 10 im Entwicklungsplan):
- Farbwelt Interior (Tanne, Creme, Sand, Ocker, Clay) als Standard, Immobilien-Welt
behält das bisherige Blau über body.world-immobilien; Logo je Welt, Favicons neu,
Welten-Wechsler in Kopf- und Fußzeile.
- Saubere Trennung der Welten: eigene Navigation, Ankündigungsleiste, Magazinliste,
Über-uns-Seite, FAQ, Kontaktseite und Abschluss-CTA für Immobilien; Beiträge tragen
eine Welt (Migration + Admin-Feld). Abschluss-CTA Ton in Ton statt Grün-zu-Ocker.
- Kontakt: Betreffe in Gruppen Interior / Immobilien / B2in, Marken darin.
Terminanfrage-Buttons öffnen das Widget mit vorgewähltem Anliegen; Select-Felder
einheitlich gestaltet.
- Tischlerei als vierte Kernmarke (Platzhalter), Kachelraster 2×2.
- Herkunfts-Sektion „Aus der Region gefertigt“ mit schematischer Standortkarte und
Ablauf CABINET (Beratung Bielefeld, Fertigung Köln, Aufbau mit Tischlerei).
Deployment: migrate, WorldSplitCmsSeeder, CmsBrandSeeder, OriginSectionCmsSeeder
(Abschnitt 8 im Entwicklungsplan).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Gewuenscht: CABINET 15 Prozent kleiner, Rotpunkt 20 Prozent groesser, Februe
unveraendert. Rotpunkt fuellte die Box bereits ganz aus und konnte nur ueber
eine groessere Box wachsen.
- Alle vier Logo-Boxen 20 Prozent hoeher (Seitenkopf 96 → 115 px, Kacheln
44 → 53 px, /marken 56 → 67 px). Rotpunkt waechst dadurch um genau 20 %.
- Februe gleicht das ueber 20 Prozent Luft oben und unten in der Datei aus und
rendert unveraendert.
- CABINET bekommt 18 Prozent Luft rechts – die Box begrenzt den 4:1-Schriftzug
ueber die Breite, nicht ueber die Hoehe. Die Luft sitzt nur rechts, damit das
Logo links buendig zum Text darunter bleibt.
Nachgerechnet an allen drei Stellen: CABINET 85 %, Rotpunkt 120 %, Februe 100 %.
Die Abstimmung steckt in den Zeichenflaechen der Dateien, nicht im Blade – so
gilt sie an allen vier Stellen gleichzeitig. Der Merksatz fuer neue Logos steht
im Kopf von BrandLogoSeeder.
Tests: 873 gruen (3217 Assertions), Pint sauber, alle Themes gebaut.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CABINET und Rotpunkt wirkten neben Februe zu klein. Ursache war nicht die Box,
sondern leerer Rand in den Dateien: CABINET nutzte nur 29 Prozent der Hoehe
seiner Zeichenflaeche, Rotpunkt 70 Prozent. CABINET ist ein 4:1-Schriftzug in
einer fast quadratischen Flaeche – im Seitenkopf blieben davon rund 28 px
sichtbare Hoehe.
Bei beiden SVGs auf die Tuschekante beschnitten (viewBox auf den Inhalt
gesetzt, plus 1 Prozent Luft; die Pfade selbst unveraendert). Beide nutzen ihre
Flaeche jetzt zu 98 Prozent. Im Seitenkopf ist CABINET damit rund zweieinhalb-
mal so gross wie vorher, Rotpunkt gut anderthalbmal und auf derselben Hoehe
wie Februe.
Die Boxgroessen im Frontend bleiben unveraendert – Februe sass bereits richtig,
eine groessere Box haette Februe mitvergroessert.
Ein Test haelt fest, dass unter public/ die beschnittenen Fassungen liegen und
nicht die Zulieferungen.
Tests: 873 gruen (3217 Assertions), Pint sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Zulieferung dev/2026-08-28/markenlogos/ (CABINET und Rotpunkt als SVG, Februe
als PNG). Die Dateien liegen unter public/img/assets/marken/ und haengen als
`logo` an der jeweiligen Marke.
- Kopf der Markenseite: Logo anstelle des Schriftzugs, im <h1>, damit die
Ueberschrift erhalten bleibt – den Text liefert das alt-Attribut. Ohne Logo
erscheint weiterhin der Schriftzug.
- Logo zusaetzlich auf der Startseiten-Kachel, im Block auf /marken und in den
„Weitere Marken“-Kacheln am Seitenfuss.
- Feste Box (Hoehe + Maximalbreite + object-contain) statt fester Hoehe: die
Seitenverhaeltnisse gehen weit auseinander (Februe 2,3:1, Rotpunkt 1,2:1),
mit reiner Hoehenangabe waere Februe doppelt so breit erschienen. Konvention
aus der Sponsoring-Sektion.
- Februe-Logo auf seinen Inhalt beschnitten: im Original waren knapp drei
Viertel der Flaeche leerer Rand, in einer Box haette es winzig gewirkt.
53 KB → 15 KB.
- BrandLogoSeeder traegt die Logos auf bestehenden Installationen nach –
CmsBrandSeeder ueberspringt vorhandene Marken. Setzt nur `logo` und nur bei
leerem Feld, ein im Admin hochgeladenes Logo bleibt stehen.
Tests: 871 gruen (3215 Assertions), Pint sauber, alle Themes gebaut.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Umsetzung von AP0-AP6 aus dev/2026-08-28/entwicklungsplan.md sowie der
vorab gefundenen Befunde T1 und B1-B13.
Befunde
- CmsContentSeeder überschrieb bei jedem Lauf alle redaktionellen Inhalte;
jetzt Redaktionsschutz plus gezielter Relaunch-Seeder (B1)
- Magazin-CMS war nicht ans Frontend angebunden, Artikel jetzt über Slugs
mit 301 von den alten numerischen URLs (B2)
- Vier veröffentlichte Display-Playlists zeigten auf b2in.test und wären
live nicht ladbar gewesen (B13)
- Info-Tablet speicherte geleerte Öffnungszeiten nicht (T1)
- /service und /portfolio lieferten seit Februar 500 (B12)
Website
- Startseite neu strukturiert und umgetextet, eigene Seite /marken mit
Detailseite je Kernmarke, /netzwerk und Altrouten leiten dorthin
- Galerie je Marke, getrennt nach realisierten Projekten und
Visualisierungen; ohne gesetzte Kategorie gilt ein Bild als Entwurf
- Seite /referenzen, gespeist aus den Markengalerien
- Showroom-Display im 9:16-Rahmen über eine schreibgeschützte Embed-Route
ohne Preview-Token
- Terminanfrage-Widget auf allen Seiten, Markenauswahl aus dem CMS,
WhatsApp per Klick-zum-Chat-Link mit vorbereitetem Text
- FAQ, Über-uns, Kontakt und Magazin inhaltlich auf Interior umgestellt
Sonstiges
- Vorschau-Instanzen liefern noindex und verlinken sich bei unbekanntem
Host auf sich selbst statt auf eine fremde Domain
- Seeder-Zugangsdaten aus dem Code in die Konfiguration (B8)
- Ablauf für die Vorschau: dev/2026-08-28/preview-deployment.md
833 Tests grün (3084 Assertions), Pint sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Mediathek-Uploads legen keinen Datensatz mehr an, wenn der Datei-Write
fehlschlägt (verhindert 404-Einträge auf den Displays). Der Player
überspringt Bilder mit Ladefehler nach 2s statt Schwarzbild zu zeigen.
Co-authored-by: Cursor <cursoragent@cursor.com>
Blendet den B2IN-Text-Verlauf ohne Footer aus, zeigt 9:16-Format-Badges in der Mediathek, normalisiert Modul-Booleans und korrigiert Flux-Switches im Dark Mode.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Mediathek: Video-Vorschaubilder statt Icons (FFmpeg-Thumbnails + Backfill-Command), Kategorie "Sonstiges"
- B2in Media-Picker zeigt alle Medientypen, Typ wird automatisch erkannt; Thumbnail-Preview vor allen Medien-URL-Feldern
- B2in Marke/Footer: Footer ein/aus, Logo+Claim frei positionierbar (Ecken) mit Constraints, separate Anzeige-Schalter
- Angebote-Modul dynamisch: kein Slide-Typ mehr, einheitliches Detail-Layout mit ein-/ausblendbaren Bloecken, Logo/Brand pro Slide, Streichpreis-Option
- Player: leere Module stoppen Endlosschleife, dynamische Layout-Anpassung bei verstecktem Footer/Header
- Fix: Script-Ladereihenfolge (Livewire vor Flux), entfernte stale public/flux/flux.js, Modal-Crash beim Aktualisieren behoben
Co-authored-by: Cursor <cursoragent@cursor.com>