Startseite ruhiger, Otterpohl mit Montage, Marken-Bilder und Farbwelt-Entwurf
- Hinweisleiste per B2IN_ANNOUNCEMENT_BAR ausgeblendet (Standard aus) - Hero: „Räume aus einer Hand.“ als neue Überschrift, zweiter Button entfernt - Projekttext mit zentralem deutschen Vertragspartner (Punkt statt Gedankenstrich) - Otterpohl als vierte Kernmarke: Text v2, Abschnitt „Montage“, Titelbild getauscht - Markenabschnitte: Absätze mit „- “ als Liste mit fetter Einleitung - Titelbilder und Galerien für CABINET, Rotpunkt, Febrü und Otterpohl (WebP) - Feedback 17.09. in den Markentexten, Demobilder entfernt, WhatsApp-Nummer - Palette „Modern“ fest ohne Schalter, Entwurf /entwurf mit Hero-Slideshow - Seeder-Liste fürs Deployment im Entwicklungsplan Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3211569fee
commit
4b07bbdcae
124 changed files with 3618 additions and 496 deletions
BIN
dev/2026-08-28/Bildschirmfoto 2026-09-24 um 17.30.16.png
Normal file
BIN
dev/2026-08-28/Bildschirmfoto 2026-09-24 um 17.30.16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.5 MiB |
BIN
dev/2026-08-28/Farbwelt und Stil.png
Normal file
BIN
dev/2026-08-28/Farbwelt und Stil.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
|
|
@ -38,9 +38,12 @@ ausführlichen Text. `php artisan test --compact`: **873 grün** (3217 Assertion
|
|||
| AP5 Rubrik-Seite „Referenzen" | ✅ |
|
||||
| Arbeitsplan 14.09. · 1.1 Farbwelt, Logo je Welt, Welten-Wechsler | ✅ (Nachtrag 6) |
|
||||
| Welten-Trennung: Navigation, Magazin, Über uns, FAQ, Widget je Welt | ✅ (Nachtrag 7, Erweiterung zu 1.1) |
|
||||
| Arbeitsplan 14.09. · 1.2 Tischlerei als vierte Marke (Platzhalter) | ✅ (Nachtrag 9) |
|
||||
| Arbeitsplan 14.09. · 1.2 Tischlerei als vierte Marke | ✅ Otterpohl mit Text und Logo (Nachtrag 9 + 15) |
|
||||
| Arbeitsplan 14.09. · 1.4 Akkordeon und Widget-Beschriftung je Marke | ✅ (bereits seit 03.09., CABINET-Text fehlt im CMS) |
|
||||
| Arbeitsplan 14.09. · 1.3 Herkunfts-Sektion „Aus der Region gefertigt“ | ✅ (Nachtrag 10 + 11: Standorte an der Marke, Ablauf CABINET von Marcel bestätigen lassen) |
|
||||
| Abstimmung 23.09. · WhatsApp zuerst im Widget, Business-Nummer, Farbvariante „Modern“ mit Schalter | ✅ (Nachtrag 18, Palette von Marcel entscheiden lassen) |
|
||||
| Briefing 24.09. · Entwurf Startseite „Greige“ mit Gold-Logo, Hero-Slideshow, Projekttext | ✅ Entwurf unter /entwurf (Nachtrag 19); offen: Foto Marcel, Slides selbst pflegen, Logo-Verläufe |
|
||||
| Zulieferung 24.09. · Otterpohl Text v2, Bilder (Werkstatt + Referenzen) | ✅ (Nachtrag 19, Unterschriften und Referenzen-Fallback von Marcel bestätigen lassen) |
|
||||
|
||||
### Nächste Schritte
|
||||
|
||||
|
|
@ -55,7 +58,7 @@ gebaut. Was fehlt, ist Material, kein Code.
|
|||
| Echte Projektfotos statt der Demobilder (siehe Warnung unten) | Kernmarken → Bildergalerie |
|
||||
| Herstellerseiten-URLs | Kernmarken → Herstellerseite |
|
||||
| Motiv für den Kopf von `/marken` | Inhalte → `marken` → `hero` |
|
||||
| WhatsApp-Nummer | Inhalte → `global` → `contact` → `whatsapp` |
|
||||
| WhatsApp-Nummer – seit Nachtrag 18 per Seeder gesetzt (0521-98620100), Änderung weiter hier | Inhalte → `global` → `contact` → `whatsapp` |
|
||||
| Welches Display auf der Website läuft | Inhalte → `referenzen` → `display_feed` → `display_id` |
|
||||
|
||||
**Beim Deployment mit erledigen (Abschnitt 8):**
|
||||
|
|
@ -1267,7 +1270,7 @@ php artisan db:seed --class=BrandLogoSeeder --force
|
|||
# Die Migration ordnet die drei Dubai-Beitraege der Immobilien-Welt zu.
|
||||
php artisan db:seed --class=WorldSplitCmsSeeder --force
|
||||
|
||||
# 8. Vierte Kernmarke „Tischlerei“ als Platzhalter (Nachtrag 9) – legt nur an, was fehlt.
|
||||
# 8. Vierte Kernmarke Otterpohl, Slug „tischlerei“ (Nachtrag 9 + 15) – legt nur an, was fehlt.
|
||||
php artisan db:seed --class=CmsBrandSeeder --force
|
||||
|
||||
# 9. Herkunfts-Sektion „Aus der Region gefertigt“ (Nachtrag 10) – legt die Sektion nur an, wenn sie
|
||||
|
|
@ -1278,6 +1281,41 @@ php artisan db:seed --class=OriginSectionCmsSeeder --force
|
|||
# deren Ort noch leer ist. Die Migration davor legt die drei Spalten an.
|
||||
php artisan db:seed --class=BrandOriginSeeder --force
|
||||
|
||||
# 11. Otterpohl (Nachtrag 15 + 19): ersetzt den Platzhalter „Tischlerei“ durch Name, Claim, Texte,
|
||||
# Leistungen, Abschnitte, Abschlussblock und Fertigungsort aus der Zulieferung v2 vom 24.09.
|
||||
# Überschreibt auch einen Stand mit dem Text vom 17.09. Bild, Galerie und Reihenfolge
|
||||
# bleiben; das Logo wird nur gesetzt, wenn es leer ist.
|
||||
# Schritt 4 (BrandPageTextSeeder) bringt das Feedback vom 17.09. für CABINET, Rotpunkt
|
||||
# und Febrü mit – er überschreibt dort wie dokumentiert die Textfelder.
|
||||
php artisan db:seed --class=OtterpohlBrandSeeder --force
|
||||
|
||||
# 12. Bilder für CABINET, Rotpunkt, Febrü (Nachtrag 16) und Otterpohl (Nachtrag 19): Titelbild nur,
|
||||
# wenn keins gepflegt ist; Galeriebilder nur, wenn die Datei noch nicht in der Galerie steht.
|
||||
# Die WebP-Dateien liegen unter public/img/assets/marken/{cabinet,rotpunkt,februe,otterpohl}/
|
||||
# im Repository.
|
||||
php artisan db:seed --class=BrandImageSeeder --force
|
||||
|
||||
# 13. Demobilder aus den Galerien entfernen (Nachtrag 17) – erkennt sie am Dateinamen des
|
||||
# Demo-Seeders, echte Bilder bleiben. Nach Schritt 12 ausführen.
|
||||
php artisan db:seed --class=DemoBrandGalleryCleanupSeeder --force
|
||||
|
||||
# 14. WhatsApp-Business-Nummer 0521-98620100 (Nachtrag 18): ersetzt nur den Platzhalter
|
||||
# „+49 151 00000000“, die falsche Nummer vom 23.09. (…98610020) oder ein leeres Feld –
|
||||
# eine im Admin gepflegte andere Nummer bleibt.
|
||||
php artisan db:seed --class=WhatsappNumberSeeder --force
|
||||
|
||||
# 15. Projekttext auf der Startseite (Briefing 24.09., Punkt 7; Nachtrag 19): ersetzt in
|
||||
# home/audience_switch nur den Satz „Mit deutscher Vertragssicherheit …“. Idempotent.
|
||||
php artisan db:seed --class=AudienceSwitchProjectTextSeeder --force
|
||||
|
||||
# 16. Abstimmung 01.10. (Nachtrag 20): Hero-Überschrift „Räume aus einer Hand.“ und zweiten
|
||||
# Hero-Button entfernen (nur wenn noch die alte Überschrift im CMS steht), Projekttext mit
|
||||
# Punkt (Schritt 15 erneut, idempotent), Otterpohl: Titelbild tauschen + Abschnitt „Montage“.
|
||||
# Die Hinweisleiste ist per Standard aus (B2IN_ANNOUNCEMENT_BAR, nichts in die .env nötig).
|
||||
php artisan db:seed --class=HomeHeroTextSeeder --force
|
||||
php artisan db:seed --class=AudienceSwitchProjectTextSeeder --force
|
||||
php artisan db:seed --class=OtterpohlBrandSeeder --force
|
||||
|
||||
php artisan config:cache
|
||||
php artisan view:clear
|
||||
|
||||
|
|
@ -1312,6 +1350,15 @@ done
|
|||
- [ ] Logo in Header, Footer **und** in einer Test-Mail
|
||||
- [ ] Alte Magazin-URLs `/magazin/1` … `/magazin/5` leiten per 301 auf den Slug
|
||||
- [ ] `/service` und `/portfolio` leiten um statt 500 zu liefern
|
||||
- [ ] Terminanfrage-Widget: WhatsApp-Button oben, Link führt auf `wa.me/4952198620100`, darunter
|
||||
„oder per Formular“ und das Formular
|
||||
- [ ] Interior-Seiten laufen in „Neu“ (`<html class="palette-modern">`), kein Farb-Schalter;
|
||||
`/immobilien` unverändert blau
|
||||
- [ ] `/entwurf`: Gold-Logo in Kopf und Fuß, Hero mit Goldkante und laufender Slideshow (Marken-
|
||||
Titelbilder), keine Ankündigungsleiste, ein Button im Hero, Termin-Widget unten rechts
|
||||
- [ ] `/marken/tischlerei`: Text v2 (drei Abschnitte, acht Leistungen, Abschluss „Das Ganze statt
|
||||
nur das Einzelne“), Werkstatt-Titelbild, Galerie „Referenzen und Einblicke“ mit den Badges
|
||||
„Realisiertes Projekt“ und „Aus der Werkstatt“
|
||||
- [ ] **Die vier Displays sichten:** „Display 4 – Innen", „Kundenstopper", „Display 2",
|
||||
„Test-Display". Besonders das Modul „Cabinet-Influencerin" – dessen Video lag auf
|
||||
`b2in.test`. Ob die Datei auf dem Live-Server überhaupt existiert, ließ sich lokal nicht
|
||||
|
|
@ -1809,3 +1856,446 @@ auch 1,5 annehmen. Das Feld war ganzzahlig (`int`, Zahlenfeld mit `min=1`).
|
|||
|
||||
**Tests:** vier neue Fälle in `tests/Feature/DisplayVersionTest.php` (Komma-Eingabe,
|
||||
Parser/Formatierer, Ablehnung unter 0,5 s, Video ignoriert das Feld). Kein Deployment-Schritt.
|
||||
|
||||
---
|
||||
|
||||
## Nachtrag 15 · Otterpohl als vierte Marke, Feedback 17.09. eingearbeitet (17.09.2026)
|
||||
|
||||
Zulieferung 17.09.2026: `dev/2026-08-28/otterpohl_Webseitentext_FINAL.md` (Text der
|
||||
Tischlerei-Seite), `dev/2026-08-28/markenlogos/otterpohl.jpg` (Logo) und
|
||||
`dev/2026-08-28/feedback-17-09-2026.md` (Marcels Rückmeldung zu CABINET, Febrü und Rotpunkt).
|
||||
|
||||
### Otterpohl ersetzt den Platzhalter „Tischlerei“
|
||||
|
||||
- **Marke:** Name „Otterpohl“, Claim „Nicht easy to click & buy. Aber easy to get.“, Kacheltext,
|
||||
Text für /marken, drei Merkmale, Einleitung (erster Block des Textes), vier Leistungen, **13
|
||||
Abschnitte** mit den Überschriften der Zulieferung 1:1, die pointierten Schlusssätze als
|
||||
Schlusszeile je Abschnitt, Abschlussblock „Ihre Idee. Handwerklich umgesetzt.“, Fertigungsort
|
||||
Rheda-Wiedenbrück mit Rolle „seit 2014 an unserer Seite“. Slug `tischlerei` bleibt (Links,
|
||||
Widget-Thema, Kartenposition).
|
||||
- **Logo:** `public/img/assets/marken/otterpohl.png`, aus der JPG-Zulieferung freigestellt und
|
||||
knapp beschnitten (Imagick), damit es in der gemeinsamen Logo-Box wie die anderen wirkt.
|
||||
Das Logo trägt „25 Jahre“ – so geliefert, so übernommen.
|
||||
- **Seeder:** neu `OtterpohlBrandSeeder` (überschreibt bei der bestehenden Marke alle Textfelder,
|
||||
lässt Bild, Galerie und Reihenfolge stehen, Logo nur wenn leer); `CmsBrandSeeder` nutzt
|
||||
dieselben Daten für frische Installationen; `BrandLogoSeeder` und `BrandOriginSeeder` kennen
|
||||
die Marke. Lang-Fallback, Seitentitel von /marken und der Ablauf-Block der Herkunfts-Sektion
|
||||
nennen jetzt Otterpohl.
|
||||
|
||||
### Feedback 17.09. in den Markentexten (`BrandPageTextSeeder`)
|
||||
|
||||
- **CABINET:** Der Abschnitt „Aufmaß vor Ort statt Schätzung am Telefon“ widersprach Marcels
|
||||
Ablauf (erst Foto und grobes Maß, Aufmaß erst nach Angebot). Ersetzt durch „Ein Bild und ein
|
||||
grobes Maß reichen für den Anfang“ mit Marcels Fassung wörtlich und der Ablaufzeile
|
||||
„So läuft’s: Foto + grobe Maße → … → Bestellung“ als Schlusszeile. Zweiter Absatz von
|
||||
„Die Fragen, die wir vorher stellen“ ersetzt (Karnevalskostüme, Sportsachen).
|
||||
- **Febrü:** nur die vereinbarten Stellen: „Bei uns gibt es Kunden – keine Schubladen“ (drei
|
||||
Absätze), „Aus Herford“ mit „sehr hohe Fertigungstiefe“ statt 95 Prozent, „Wertschätzung ist
|
||||
keine Frage der Stückzahl“ (Familienalltag statt Mütter-Passage). Der doppelte Schlusssatz
|
||||
„Ob im Kleinen oder im Großen …“ steht nur noch beim ersten Abschnitt. „Nicht drei Marken“,
|
||||
„Das Wir und das Ich“ und der mitlaufende CTA unverändert.
|
||||
- **Rotpunkt:** „Mehr als Küchen“ mit Marcels drei Absätzen ersetzt.
|
||||
- **Handwerk als gemeinsamer Abschluss (Punkt 3b):** Die markeneigenen Abschnitte
|
||||
„Schranksystem plus Handwerk“ (CABINET) und „Küchenstudio plus Handwerk“ (Rotpunkt) sind
|
||||
entfallen. Stattdessen gibt es **eine** Sektion `brand_craft` („Planung plus Handwerk“, Lang-
|
||||
Datei, im Inhalte-Editor unter Marken → „Handwerk-Abschluss auf jeder Markenseite“ anlegbar),
|
||||
die `BrandDetail` als letzten Abschnitt auf jeder Markenseite anhängt – außer auf der
|
||||
Otterpohl-Seite selbst. Der Link „Mehr zu Otterpohl“ erscheint nur, wenn die Marke
|
||||
veröffentlicht ist. Anker `#handwerk`. Einmal gepflegt, überall gleich – genau wie gewünscht.
|
||||
|
||||
**Lokal ausgeführt:** `OtterpohlBrandSeeder`, `BrandPageTextSeeder`, `BrandLogoSeeder`.
|
||||
Beim Deployment: Abschnitt 8.2, Schritt 4 (Feedback) und Schritt 11 (Otterpohl).
|
||||
|
||||
**Offen:** Stimmungsbild und Galerie für Otterpohl (im Admin nachtragen); Nachtrag 10 bleibt
|
||||
offen, ob CABINET selbst Aufbau anbietet. Der Text bestätigt Rheda-Wiedenbrück und die
|
||||
Montage-Partnerschaft seit 2014 – die Herkunfts-Sektion passt damit.
|
||||
|
||||
**Tests:** `tests/Feature/BrandFeedbackTest.php` (10 Fälle: CABINET-Einstieg und Fragen, Febrü-
|
||||
Passagen und einmaliger Schlusssatz, Rotpunkt „Mehr als Küchen“, Handwerk-Abschluss auf drei
|
||||
Seiten mit Link und Position, nicht auf Otterpohl, ohne Link bei unveröffentlichter Marke,
|
||||
CMS-Vorrang, Otterpohl-Seeder behält Logo/Bild/Reihenfolge); `FourthBrandTest`,
|
||||
`MarkenPageTest` und `BrandPageSectionsTest` auf die neuen Texte umgestellt.
|
||||
|
||||
---
|
||||
|
||||
## Nachtrag 16 · Erste Bilder für CABINET und Rotpunkt (22.09.2026)
|
||||
|
||||
Zulieferung 22.09.2026 unter `dev/2026-08-28/images/{cabinet,rotpunkt}/`, das Titelbild je
|
||||
Marke mit `_title_` markiert. 12 Bilder CABINET, 14 Bilder Rotpunkt, alles Visualisierungen des
|
||||
Herstellers (Renderings), 3–6 MB je Datei.
|
||||
|
||||
- **Optimierung:** alle Bilder als WebP mit maximal 1920 px Kantenlänge, Qualität 82, ohne
|
||||
Metadaten (Imagick) nach `public/img/assets/marken/cabinet/` und `…/rotpunkt/`; 55–330 KB je
|
||||
Datei statt mehrerer MB. Sprechende Dateinamen aus den Motiven („dachschraegenschrank-filo-
|
||||
cashmere.webp“, „kueche-07.webp“). Die Originale bleiben per `.gitignore` außerhalb des
|
||||
Repositorys, nur die WebP-Fassungen werden deployt.
|
||||
- **Titelbild** (`image`): CABINET „Ankleide Solitär, Eiche Tano“, Rotpunkt „Küche 01“. Es
|
||||
erscheint im Seitenkopf der Markenseite, auf der Startseiten-Kachel und im Markenblock auf
|
||||
/marken – dort, wo bisher der Platzhalter stand.
|
||||
- **Galerie:** die übrigen Bilder als **Visualisierung** mit Bildunterschrift aus dem Motiv.
|
||||
Die Rubrik passt: Badge „Visualisierung“, Hinweis „Entwürfe und Visualisierungen“. Unter
|
||||
„Referenzen“ erscheinen sie damit bewusst nicht – das sind keine von uns ausgeführten Projekte.
|
||||
Marcel kann jedes Bild im Admin umkategorisieren, sobald ein echtes Projekt dahintersteht.
|
||||
- **`BrandImageSeeder`:** Titelbild nur, wenn keins gepflegt ist; Galeriebilder nur, wenn die
|
||||
Datei noch nicht in der Galerie steht; vorhandene Einträge bleiben samt Kategorie und
|
||||
Unterschrift. Mehrfach ausführbar. Febrü und Otterpohl bleiben unberührt (keine Zulieferung).
|
||||
|
||||
**Lokal ausgeführt:** `php artisan db:seed --class=BrandImageSeeder`. Beim Deployment:
|
||||
Abschnitt 8.2, Schritt 12 – die Dateien kommen mit dem Repository.
|
||||
|
||||
**Ergänzung 23.09.2026:** Febrü nachgeliefert (`dev/2026-08-28/images/februe/`, 16 Bilder,
|
||||
Titelbild „Base Thekenlösung“). Gleiche Behandlung, Bildunterschriften nach den Febrü-
|
||||
Produktlinien aus den Dateinamen („Active 2.0 mit Bureo“, „Arena Stage“, „Vio“ …). Der Seeder
|
||||
und `BrandImageSeederTest` decken jetzt drei Marken ab.
|
||||
|
||||
**Offen:** Bilder für Otterpohl; Freigabe der Bildunterschriften durch Marcel
|
||||
(aus den Dateinamen abgeleitet, z. B. Frontdekore „Filo Cashmere“, „Velluto Fango“, bei Febrü
|
||||
die Produktlinien).
|
||||
|
||||
**Tests:** `tests/Feature/BrandImageSeederTest.php` (4 Fälle: Titelbild und Galerie, jede
|
||||
referenzierte Datei existiert als optimierte Datei unter 400 KB und 1920 px, zweiter Lauf
|
||||
lässt Gepflegtes stehen, Anzeige auf Startseite, /marken, Markenseite und nicht unter Referenzen).
|
||||
|
||||
---
|
||||
|
||||
## Nachtrag 17 · Demobilder raus, Galerie ohne Rubrikwechsel (22.09.2026)
|
||||
|
||||
Abstimmung 22.09. nach den ersten echten Bildern: die Demobilder aus AP2 müssen weg, der
|
||||
Rubrikwechsel „Realisierte Projekte / Inspirationen“ ist ausgesetzt, solange es keine
|
||||
realisierten Projekte gibt, und die zwei Zeilen unter der Galerie-Überschrift werden eine.
|
||||
|
||||
- **`DemoBrandGalleryCleanupSeeder`** entfernt die elf Demobilder (CABINET 4, Rotpunkt 3, Febrü
|
||||
4) aus den Galerien. Erkennung am Dateinamen aus `DemoBrandGallerySeeder`, nicht an der
|
||||
Unterschrift – den Vermerk „BEISPIEL“ hatte Schritt 5 auf der Vorschau bereits entfernt.
|
||||
Alle anderen Bilder bleiben. Idempotent.
|
||||
- **Galerie** auf der Markenseite: ein Raster, realisierte Projekte zuerst, jedes Bild trägt
|
||||
weiter sein Badge („Realisiertes Projekt“ / „Visualisierung“). Kein Tab-Wechsel, keine
|
||||
Gruppenüberschriften, kein separater Hinweistext. Die Kategorie im Admin bleibt bestehen,
|
||||
der Wechsel lässt sich wieder einschalten, sobald echte Projekte da sind.
|
||||
- **Texte:** Überschrift „Inspirationen und Entwürfe“, eine Zeile darunter: „Visualisierungen,
|
||||
die zeigen, was in einem Raum möglich ist – noch bevor das erste Möbel steht.“ (vorher
|
||||
„Referenzen und Inspirationen“ plus Hinweis unter der Rubrik).
|
||||
|
||||
**Lokal ausgeführt:** `php artisan db:seed --class=DemoBrandGalleryCleanupSeeder` (11 entfernt).
|
||||
Beim Deployment: Abschnitt 8.2, Schritt 13, nach Schritt 12.
|
||||
|
||||
**Tests:** `BrandPageTest` umgestellt (ein Raster mit Badges und Projekten zuerst, genau eine
|
||||
Zeile unter der Überschrift, Aufräum-Seeder entfernt nur Demobilder und ist idempotent).
|
||||
|
||||
## Nachtrag 18 · WhatsApp zuerst, Business-Nummer, Farbvariante „Modern“ (23.09.2026)
|
||||
|
||||
Rückmeldung von Marcel über Kevin am 23.09.: Im Termin-Widget soll WhatsApp oben stehen und das
|
||||
Formular darunter; als Nummer gilt die Business-Nummer 0521-98620100 (am 23.09. kam zunächst
|
||||
…98610020, Korrektur von Marcel am 24.09.). Außerdem wirkt ihm die
|
||||
Farbwelt „zu altbacken“ – die beigen Flächen. Gewünscht ist eine klarere, modernere Variante, die
|
||||
farblich am Logo bleibt (Tanne und Ocker unverändert), sowie ein schwimmender Schalter, um beide
|
||||
Stände direkt zu vergleichen.
|
||||
|
||||
### Termin-Widget
|
||||
|
||||
- **Reihenfolge:** WhatsApp-Block direkt unter der Einleitung, darunter eine Trennzeile „oder per
|
||||
Formular“, dann das Formular. Einleitung jetzt „Am schnellsten per WhatsApp – wir bereiten die
|
||||
Nachricht mit Ihren Angaben vor.“ Der Hinweis, dass der Besucher selbst abschickt, bleibt.
|
||||
Der vorbereitete Text liest weiter Anliegen, Wunschtermin und Name aus dem Formular, auch wenn
|
||||
es jetzt unter dem Button steht. Ohne Nummer im CMS erscheint weder Button noch Trennzeile.
|
||||
- **Nummer:** `WhatsappNumberSeeder` trägt `+49 521 98620100` in `global.contact.whatsapp` ein
|
||||
(de und en), aber nur, wenn das Feld leer ist, noch den Platzhalter „+49 151 00000000“ aus der
|
||||
ersten Einrichtung enthält oder die falsche Nummer vom 23.09. (`+49 521 98610020`) – die hatte
|
||||
Marcel versehentlich geschickt, auf der Vorschau lief der Button deshalb ins Leere. Eine im
|
||||
Admin gepflegte andere Nummer bleibt stehen. Fehlt der Eintrag, wird er angelegt. Idempotent.
|
||||
Ergebnis-Link: `https://wa.me/4952198620100`. Auf einer Vorschau ohne Portal reicht
|
||||
`php artisan db:seed --class=WhatsappNumberSeeder --force`.
|
||||
|
||||
### Farbvariante „Modern“
|
||||
|
||||
Eine zweite Interior-Palette als Override in `theme-b2in.css` (`.palette-modern .world-interior`).
|
||||
Sie ändert **nur Flächen**, keine Logofarben:
|
||||
|
||||
| Token | Bisher (Creme) | Modern |
|
||||
|---|---|---|
|
||||
| Hintergrund | Creme `#f7f4ef` | fast weiß, leicht warm `#fbfaf8` |
|
||||
| Karten | `#fbf9f5` | reinweiß |
|
||||
| Sektionswechsel (`bg-accent`) | Sand `#d9cbbf` | helles Grau-Beige `#efece7` |
|
||||
| Ruhige Flächen (`bg-muted`) | helles Sand | `#f2f0ed` |
|
||||
| Linien / Eingabefelder | Sand-Töne | `#e6e2dc` / weiß |
|
||||
| Hero-Bühne | Sand | helles Grau-Beige |
|
||||
| Footer | Sand mit Tanne | Tanne mit Creme, Ocker als Akzent |
|
||||
| Tanne, Ocker, Clay, dunkle Sektionen, CTA-Band | unverändert | unverändert |
|
||||
|
||||
Karten liegen jetzt weiß auf fast weiß, deshalb haben `--shadow-card` und `--shadow-elevated` in
|
||||
der Variante etwas mehr Tiefe. Weil der Footer dunkel ist, trägt er in „Modern“ das **negative
|
||||
Logo** (Rückmeldung Kevin 23.09.): der Footer rendert beide Logos (`footer-logo-light` /
|
||||
`footer-logo-dark`), das Stylesheet blendet je Palette das passende ein – die Umschaltung läuft
|
||||
im Browser, ohne Server-Roundtrip. Die Immobilien-Welt bleibt bei ihrem einen negativen Logo.
|
||||
Zwei Nachbesserungen nach dem ersten Blick (Kevin 23.09.): Abschlussband und Footer sind in
|
||||
„Modern“ beide dunkel, deshalb trennt eine helle Haarlinie (`--footer-muted` bei 35 %) den Footer
|
||||
oben ab. Und der schwebende Termin-Button war als reine Kontur über Bildern und weißen Karten
|
||||
kaum zu sehen – er trägt jetzt in beiden Paletten eine Fläche in Kartenfarbe
|
||||
(`.appointment-toggle`), Hover bleibt Tanne.
|
||||
|
||||
Dritte Nachbesserung (Kevin 23.09.): der **Cookie-Button** unten links kam noch in Blau aus
|
||||
`config/cookie-consent.php` – das ist die Immobilien-Welt. `theme-b2in.css` überschreibt die
|
||||
Paketvariablen (`--cc-*`) für `.world-interior`: Button in Tanne mit dem Verlauf des
|
||||
Akzent-Buttons, Icon, Schalter, Fokusring und Link-Hover in Ocker, „Speichern“ in Tanne,
|
||||
„Akzeptieren“ bleibt grün. Gilt in beiden Paletten; `/immobilien` behält das Blau. Der dunkle Footer ist die eine bewusste Abweichung, die über
|
||||
„heller“ hinausgeht: er gibt der hellen Seite unten einen klaren Abschluss. Wenn Marcel ihn
|
||||
lieber hell hätte, sind es vier Token.
|
||||
|
||||
### Schalter
|
||||
|
||||
- `<x-palette-switch />` schwimmt links in der Mitte (unten links sitzt der Cookie-Button, unten
|
||||
rechts das Termin-Widget): eine senkrechte Pille „Farbwelt · Bisher / Neu“. Nur auf den
|
||||
Interior-Seiten von b2in, nicht auf `/immobilien`.
|
||||
- Die Wahl liegt im `localStorage` (`b2in-palette`) und wird schon im `<head>` gesetzt, bevor das
|
||||
Stylesheet greift – kein Aufblitzen in Creme. `?palette=modern` bzw. `?palette=classic` an einer
|
||||
URL überschreibt die gemerkte Wahl; damit lässt sich Marcel ein Link auf die neue Variante
|
||||
schicken: `https://<vorschau>/?palette=modern`.
|
||||
- Abschalten, sobald entschieden ist: `B2IN_PALETTE_SWITCH=false` in `.env`
|
||||
(`config('app.palette_switch')`). Dann erscheint weder Schalter noch Skript, die Seite läuft in
|
||||
der Standard-Palette. Soll „Modern“ dauerhaft werden, werden die Token in `:root` übernommen und
|
||||
der Override entfernt – ein Nachtrag, kein Umbau.
|
||||
|
||||
**Lokal ausgeführt:** `php artisan db:seed --class=WhatsappNumberSeeder` (2 Sprachen gesetzt),
|
||||
`npm run build:b2in`. Beim Deployment: Abschnitt 8.2, Schritt 14, dazu `npm run build:web`.
|
||||
|
||||
**Tests:** `WhatsappNumberSeederTest` (6: anlegen, Platzhalter ersetzen, falsche Nummer vom 23.09.
|
||||
korrigieren, gepflegte Nummer behalten, idempotent, Link auf der Seite), `AppointmentWidgetTest` (+2: WhatsApp vor dem Formular, keine
|
||||
Trennzeile ohne Nummer), `ColorWorldsTest` (+6: Schalter auf Interior-Seiten, nicht auf
|
||||
Immobilien, per Config abschaltbar, Override ohne Logofarben, negatives Logo im Footer der
|
||||
Variante, Immobilien-Footer unverändert).
|
||||
|
||||
**Offen:** Marcel entscheidet zwischen „Bisher“ und „Neu“ – oder benennt, was an „Neu“ noch
|
||||
fehlt (Footer hell/dunkel, Grad der Aufhellung). Danach Schalter abschalten.
|
||||
|
||||
## Nachtrag 19 · Otterpohl: Text v2 und erste Bilder (24.09.2026)
|
||||
|
||||
Zulieferung vom 24.09.: `dev/2026-08-28/otterpohl_Webseitentext_FINAL_v2.md` löst die lange Fassung
|
||||
vom 17.09. komplett ab, dazu 13 Bilder in `dev/2026-08-28/images/otten/` (Titel plus 2–5 vom
|
||||
Unternehmen, der Rest Referenzen).
|
||||
|
||||
### Text v2
|
||||
|
||||
Deutlich kürzer als v1: eine Einleitung, zwei Abschnitte, acht Leistungen, ein Schlussblock. Die
|
||||
Fassung vom 17.09. mit zwölf Abschnitten (u. a. „Seit 2014 an unserer Seite“, „Farbe darf auch
|
||||
genau die Farbe sein“) ist damit vollständig ersetzt. Zuordnung auf die Markenseite:
|
||||
|
||||
| Zulieferung v2 | Feld | Auf der Seite |
|
||||
|---|---|---|
|
||||
| „Ziemlich nah an der eierlegenden Wollmilchsau“ + 4 Absätze | `sections[0]`, Claim „Genau dort beginnt der individuelle Innenausbau.“ | erster Abschnitt |
|
||||
| „Vom einzelnen Möbel bis zum ganzen Raum“ | `sections[1]`, Claim „So können wir Räume ganzheitlicher denken …“ | zweiter Abschnitt |
|
||||
| „Planung trifft Handwerk“ | `sections[2]`, Claim „Das Ergebnis kann ein einzelnes Möbel sein. Oder ein kompletter Raum.“ | dritter Abschnitt |
|
||||
| „Leistungen und Möglichkeiten“ (8 Punkte) | `services` | Leistungsraster, zwei Reihen à vier |
|
||||
| „Das Ganze statt nur das Einzelne“ | `cta_title` / `cta_text` | Abschlussblock hinter Leistungen und Galerie – so bleibt die Reihenfolge der Zulieferung erhalten |
|
||||
| „Nicht easy click & buy. Aber dennoch easy to get.“ | `tagline` und Ende des `cta_text` | Claim im Seitenkopf und Schlusssatz |
|
||||
|
||||
- **Name** jetzt „Otterpohl Möbelservice“ – so nennt die Zulieferung den Partner durchgängig.
|
||||
Überall dort, wo der Name aus der Marke kommt (Kacheln, Widget-Anliegen, Herkunfts-Kachel).
|
||||
Der Link im Handwerk-Abschnitt der anderen Markenseiten heißt weiter „Mehr zu Otterpohl“.
|
||||
- **Kein „seit 2014“ mehr:** v2 erwähnt die gemeinsame Zeit nicht. Der Hinweis ist aus Teaser,
|
||||
Fertigungsort (`origin_role`), Lang-Fallback und dem Handwerk-Abschnitt (`brand_craft`)
|
||||
entfernt. ⚠️ Falls Marcel die Angabe bewusst behalten wollte, ist sie in drei Sätzen zurück.
|
||||
- `description` bleibt leer, damit der Text in der Reihenfolge der Zulieferung steht; `summary`
|
||||
(Markenübersicht) fasst die Einleitung zusammen; `highlights` sind drei Stichzeilen aus den
|
||||
Leistungen. Englisch: eigene Übersetzung in gleicher Struktur.
|
||||
- `widget_label` „Persönliche Beratung zur Maßarbeit vereinbaren“ bleibt.
|
||||
|
||||
### Bilder
|
||||
|
||||
13 Dateien, konvertiert wie in Nachtrag 16 (WebP, max. 1920 px, unter
|
||||
`public/img/assets/marken/otterpohl/`, zusammen rund 2,4 MB; ein Bild per GD nachverdichtet).
|
||||
|
||||
- **Titelbild** `werkstatt-titel.webp`: zwei Mitarbeiter in der Werkstatt.
|
||||
- **Aus der Werkstatt** (2–5): CNC-Bearbeitungszentrum, Türeinbau vor Ort, Handwerkzeug,
|
||||
Anlieferung per Möbellift. Dafür gibt es eine **dritte Galerie-Kategorie** `company`
|
||||
(`CmsBrand::GALLERY_COMPANY`, Badge „Aus der Werkstatt“). Im Admin: Button „Werkstatt“ und
|
||||
Option „Aus der Werkstatt“ in der Kategorie-Auswahl, Hinweistext ergänzt.
|
||||
- **Referenzen** (8, Kategorie `project`, Badge „Realisiertes Projekt“): Treppen, Lamellenwand mit
|
||||
Sitzbank, Tür und Kommode, Wandregale, Objektbau-Verkaufsraum, Büro-Sideboard. Unterschriften
|
||||
beschreiben das Motiv; die Kundennamen aus den Dateinamen (Lücke, Berkemeier, Neugebauer,
|
||||
Dziuballe) stehen bewusst nicht auf der Seite. ⚠️ `Otterpohl_11.jpg` (Sideboard im Büro) ist
|
||||
nach Kevins Angabe eine Referenz, nicht Werkstatt – falls es das eigene Büro ist, im Admin auf
|
||||
„Aus der Werkstatt“ umstellen.
|
||||
- **Reihenfolge in der Galerie:** Projekte, dann Werkstatt, dann Visualisierungen.
|
||||
- **Überschrift der Galerie** richtet sich jetzt nach dem Inhalt: nur Visualisierungen →
|
||||
„Inspirationen und Entwürfe“ (wie bisher, CABINET/Rotpunkt/Febrü); nur Projekte → „Referenzen“;
|
||||
Projekte und Werkstatt → „Referenzen und Einblicke“ (Otterpohl); mit Visualisierungen →
|
||||
„Projekte und Entwürfe“. Die Zeile darunter passt jeweils.
|
||||
- ⚠️ **Referenzen-Seite:** `/referenzen` zeigt, solange im Modul „Referenzen“ nichts gepflegt ist,
|
||||
die Projekte aus den Markengalerien – jetzt also die acht Otterpohl-Referenzen mit Link auf die
|
||||
Markenseite. Werkstattbilder erscheinen dort nicht. Wenn Marcel das nicht will: Bilder im Admin
|
||||
auf „Aus der Werkstatt“ stellen oder eigene Referenzen anlegen, dann greift der Fallback nicht.
|
||||
|
||||
**Lokal ausgeführt:** `php artisan db:seed --class=OtterpohlBrandSeeder`, `php artisan db:seed
|
||||
--class=BrandImageSeeder`. Beim Deployment: Abschnitt 8.2, Schritte 11 und 12 (Texte
|
||||
unverändert, sie decken v2 mit ab).
|
||||
|
||||
**Tests:** `FourthBrandTest` (v2-Überschriften, acht Leistungen, drei Abschnitte, Schlussblock hinter
|
||||
den Leistungen, kein „Seit 2014“), `BrandFeedbackTest` (Seeder setzt Name, acht Leistungen,
|
||||
Abschluss), `BrandImageSeederTest` (+3: Otterpohl-Galerie 8 Projekte + 4 Werkstatt ohne
|
||||
Kundennamen, Badges und Überschrift „Referenzen und Einblicke“, Referenzen-Fallback zeigt Projekte
|
||||
und keine Werkstattbilder), `BrandPageTest` (gemischte Galerie → „Projekte und Entwürfe“, Aufräum-
|
||||
Seeder lässt Otterpohl 12).
|
||||
|
||||
**Offen:** Marcel prüft Unterschriften, die Zuordnung von `Otterpohl_11`, das gestrichene „seit
|
||||
2014“ und ob die Otterpohl-Referenzen unter `/referenzen` erscheinen sollen.
|
||||
|
||||
## Nachtrag 19 · Entwurf der Startseite in der Farbwelt „Greige“ (24.09.2026)
|
||||
|
||||
Briefing von Marcel (`dev/2026-08-28/farbwelt-kunde-24-09-2026.md`, Visualisierung
|
||||
`Farbwelt und Stil.png`): die Creme-Palette wird nicht weiterverfolgt, die Richtung „Neu“ soll
|
||||
heller, klarer und hochwertiger werden – heller, leicht kühler Grundton (Greige, kein steriles
|
||||
Weiß), deutlich präsenteres Tannengrün, Gold nur als feine Linie. Dazu eine Slideshow im Hero,
|
||||
neue Überschrift, keine Aktionsleiste, ein Button im Hero, neuer Projekttext, Logo mit Goldbogen.
|
||||
Kevins Auftrag: eine **separate Version der Startseite** zum Vergleich, das Logo als Kopie.
|
||||
|
||||
### Was gebaut ist
|
||||
|
||||
- **Entwurfsseite `/entwurf`** (Route `home.draft`, View `web/home-draft.blade.php`): die reguläre
|
||||
Startseite mit neuem Hero, ohne Ankündigungsleiste, Body-Klasse `palette-greige`, `noindex`.
|
||||
Alle übrigen Sektionen sind unverändert eingebunden und färben sich über die Tokens. Die Seite
|
||||
hängt am Farb-Schalter: mit `B2IN_PALETTE_SWITCH=false` liefert sie 404.
|
||||
- **Palette „Greige“** als drittes Token-Set in `theme-b2in.css` (`.world-interior.palette-greige`,
|
||||
am Body, nicht am `<html>` wie der Browser-Schalter – so überlagern sich beide nicht):
|
||||
|
||||
| Token | Wert |
|
||||
|---|---|
|
||||
| Grund | `#f0eeeb` Greige, Off-White (Kopfzeile der Visualisierung) |
|
||||
| Karten / Hero-Bühne | `#f8f7f4` |
|
||||
| Sektionswechsel (`bg-accent`) | `#e8e6e0` |
|
||||
| Tannengrün (`--primary`) | `#14342c`, Buttons, dunkle Sektionen, Footer |
|
||||
| Gold (`--secondary`) | `#aa8341` gedeckt; als Text `--secondary-deep` (dunkler) |
|
||||
| Text | Tannengrau `hsl(166 25% 13%)` |
|
||||
| Footer | Tannengrün mit Greige-Text, Goldlinie oben, negatives Logo |
|
||||
|
||||
- **Logo-Kopien** `public/img/logos/b2in-interior-logo-gold-{positive,negative}.svg`: Bogen
|
||||
`#AA8341` statt Ocker, Wortmarke im neuen Tannengrün `#14342C` (negativ: Schrift `#F0EEEB`).
|
||||
Flächig, ohne Verlauf – die Verläufe liefert Marcel nach; die Dateien lassen sich dann 1:1
|
||||
ersetzen. Die bisherigen Logos sind unangetastet. `ThemeHelper::getLogoPath()` liefert die
|
||||
Gold-Variante, sobald `b2in_palette()` (neuer Helper, Binding `b2in.palette`) „greige“ meldet
|
||||
– das setzt nur die Entwurfsroute. Kein PNG erzeugt (kein SVG-Rasterizer im Container).
|
||||
- **Hero mit Slideshow** (`HeroSlider`, Sektion `home/hero_slider`, im Seitenbaum unter Startseite
|
||||
mit Vorschau auf `/entwurf`): Rahmen mit 1-px-Goldkante und Schatten, tannengrüne Flanken rechts
|
||||
(volle Höhe) und links unten wie in der Visualisierung, Eyebrow „B2IN INTERIOR ——“, Überschrift
|
||||
„*Räume aus einer Hand.* Mit starken Marken und persönlichen Lösungen.“ (erste Zeile in Gold,
|
||||
Serife), Einleitungstext aus der Visualisierung, **ein** Button „Unsere Marken entdecken“ mit
|
||||
Goldkante unten und Pfeil. Kein zweiter Button (Briefing Punkt 5), das Termin-Widget bleibt.
|
||||
- Bild rechts im festen Seitenverhältnis 4:3 → auf großen Bildschirmen nicht mehr unten
|
||||
beschnitten (Briefing Punkt 2).
|
||||
- Slides: Liste `slides` der Sektion (je `image`, `label`, `caption`, `active`), solange leer
|
||||
die **Titelbilder der veröffentlichten Kernmarken** in ihrer Reihenfolge (aktuell CABINET,
|
||||
Rotpunkt, Febrü, Otterpohl sofern Bild). Kleine Marken-Pille unten links im Bild.
|
||||
- Ruhig: Überblendung 1,4 s, Wechsel alle 7 s (`interval`, begrenzt auf 3–30 s), Pause bei
|
||||
Hover/Fokus, Pfeiltasten, Punkte unter dem Rahmen als Tabs; bei „reduzierter Bewegung“ kein
|
||||
Autowechsel. Läuft ohne eigenes JS-Bundle (Alpine im Markup).
|
||||
- **Farb-Schalter** hat jetzt drei Einträge: Bisher / Neu (Browser, wie gehabt) / **Entwurf**
|
||||
(Link auf `/entwurf`). Auf dem Entwurf ist „Entwurf“ aktiv, „Bisher“/„Neu“ führen mit
|
||||
`?palette=…` zurück auf die Startseite.
|
||||
- **Projekttext** (Briefing Punkt 7) global: Lang de/en geändert, `AudienceSwitchProjectTextSeeder`
|
||||
tauscht den Satz in einem vorhandenen CMS-Eintrag (nur diesen Satz, idempotent). Lokal
|
||||
ausgeführt (2 Stellen). Deployment Schritt 15.
|
||||
|
||||
**Nachbesserung nach Kevins Screenshot (24.09., 17:30):** Die Goldkante war auf Greige nicht zu
|
||||
sehen – jetzt ein Verlauf (hell oben links, auslaufend, in der Ecke wieder anziehend) über einen
|
||||
maskierten Pseudo-Rand von 1,5 px. Die Flanken sind gerundet (Radius 2,75 rem rechts, 2 rem
|
||||
links) und laufen hinter das Bild; ihre Goldlinie folgt der Rundung. Das Bild füllt den Rahmen
|
||||
fast ganz (5:4, nur 1,25 rem Luft oben und unten, rechts über der Flanke), die Überschrift ist
|
||||
kleiner (max. 3,3 rem statt 4,1 rem) und der Einleitungstext eine Stufe kleiner.
|
||||
|
||||
**Zweite Nachbesserung (25.09.):** Hinter der Goldkante schien eine helle Linie durch – die
|
||||
Masken-Technik ließ die gerundete Kante des Rahmens außerhalb des Rings sichtbar. Jetzt sind
|
||||
Rahmen und Bild-Rahmen echte Verlaufs-Borders (transparenter Rand, Fläche auf `padding-box`,
|
||||
Goldverlauf auf `border-box`), ohne Pseudo-Element. Der Button trägt den Goldrand rundum, unten
|
||||
3 px, der Pfeil ist Gold. Die grünen Flanken sind **Inline-SVGs**
|
||||
(`components/web/hero-flank-right|left.blade.php`): grüner Verlauf, Goldlinie entlang der
|
||||
Rundung, rechts zusätzlich die kurze Zierlinie aus der Visualisierung. Sie skalieren über die
|
||||
Rahmenhöhe (`height: 100 %` bzw. `46 %`, Breite aus dem viewBox-Verhältnis, Strichstärke bleibt
|
||||
1,5 px dank `vector-effect`), Farben aus den Tokens. Liefert Marcel eigene SVGs, werden die
|
||||
beiden Dateien getauscht – der Platz im Rahmen bleibt.
|
||||
|
||||
**Abstimmung 25.09. (Kevin):** Für die nächste Runde ist der Farb-Schalter **aus** und die Seite
|
||||
steht fest auf „Neu“. Dafür zwei neue Konfigurationswerte in `config/app.php`:
|
||||
`B2IN_PALETTE_SWITCH` (Standard jetzt `false`), `B2IN_PALETTE` (Standard `modern`; ohne Schalter
|
||||
setzt das Layout die Klasse `palette-modern` serverseitig an `<html>`, mit Schalter ist es die
|
||||
Vorbelegung, solange nichts im localStorage liegt) und `B2IN_HOME_DRAFT` (Standard `true`) – der
|
||||
Entwurf `/entwurf` hängt nicht mehr am Schalter, sondern an diesem Wert. Der Schalter selbst
|
||||
bleibt im Code und lässt sich mit `B2IN_PALETTE_SWITCH=true` wieder einblenden.
|
||||
|
||||
### Was aus dem Briefing noch offen ist
|
||||
|
||||
| Punkt | Stand |
|
||||
|---|---|
|
||||
| 1 Slideshow selbst pflegen (Upload, Reihenfolge, an/aus) | Datenmodell steht (Liste `slides` mit `active`), Pflege bisher nur über den JSON-Editor unter Inhalte. Eigene Oberfläche wie bei den Displays: nächster Schritt nach Freigabe des Entwurfs. |
|
||||
| 6 Persönliches Foto | Kein Foto geliefert. Vorschlag: in der Gründer-Leiste („B2in by Marcel Scheibe“), Bildfeld ist dort schon vorhanden (`founder_bar.image`). |
|
||||
| 8 Feinabstimmung der Töne | Werte oben sind aus der Visualisierung gesampelt und leicht aufgehellt („noch etwas heller“). Marcel entscheidet am Entwurf. |
|
||||
| 9 Logo mit Verläufen | Kommt von Marcel; bis dahin flache Gold-Kopie. |
|
||||
| Entwurf → Standard | Wenn freigegeben: Tokens von `.palette-greige` nach `:root`, Gold-Logos umbenennen, `home.blade.php` auf `hero-slider` umstellen, Ankündigungsleiste global aus, Schalter und `/entwurf` abschalten. Ein Nachtrag, kein Umbau. |
|
||||
|
||||
**Lokal ausgeführt:** `php artisan db:seed --class=AudienceSwitchProjectTextSeeder`, `npm run build:b2in`.
|
||||
Beim Deployment: Abschnitt 8.2, Schritt 15, dazu `npm run build:web`; die SVG-Logos liegen im
|
||||
Repository. Link für Marcel: `https://<vorschau>/entwurf`.
|
||||
|
||||
**Tests:** `HomeDraftTest` (16: Palette und Gold-Logos nur auf dem Entwurf, Überschrift/ein
|
||||
Button/keine Leiste, Sektionsreihenfolge, 404 ohne Schalter, Slides aus Marken, ohne Bild,
|
||||
CMS-Slides mit `active`, Intervall-Grenzen, Schalter hin und zurück, Logo-Dateien, Tokens,
|
||||
Projekttext in Lang und per Seeder), `CmsPageTreeTest` (Reihenfolge um `hero_slider` ergänzt).
|
||||
Gesamt: 1049 grün.
|
||||
|
||||
---
|
||||
|
||||
## Nachtrag 20 · Korrekturen Startseite und Otterpohl (01.10.2026)
|
||||
|
||||
Farbwelt bleibt vorerst „Modern“ ohne Schalter. Umgesetzt auf der regulären Startseite `/`:
|
||||
|
||||
- **Hinweisleiste oben** aus über die Flag `B2IN_ANNOUNCEMENT_BAR` (`config('app.announcement_bar')`,
|
||||
Standard `false`, gilt für beide Welten). Inhalt und CMS-Pflege bleiben, `=true` blendet sie wieder ein.
|
||||
- **Hero-Überschrift** „<span class="text-secondary">Räume aus einer Hand.</span><br>Mit starken Marken
|
||||
und persönlichen Lösungen.“ (erste Zeile in `.text-secondary`). Lang de/en und `HomeHeroTextSeeder`
|
||||
für den CMS-Eintrag `home/hero` (ersetzt nur die alte Überschrift).
|
||||
- **Zweiter Hero-Button** „Termin anfragen“ entfernt: aus Lang und CMS gelöscht; das Blade zeigt ihn nur
|
||||
noch, wenn `cta2_text` gepflegt ist. Der feste Termin-Button unten rechts bleibt.
|
||||
- **Projekttext**: „… Projektentwicklungen. Koordiniert aus einer Hand …“ (Punkt statt Gedankenstrich),
|
||||
Lang de/en und `AudienceSwitchProjectTextSeeder` erweitert.
|
||||
- **Otterpohl Titelbild**: `tittle_otter.png` → `marken/otterpohl/titel-treppe.webp` (1920 px, WebP 82).
|
||||
Gleiches Motiv wie das Galeriebild `referenz-luecke-01` – daher echter Tausch: die Treppe wird Titelbild,
|
||||
das bisherige Werkstattbild nimmt ihren Galerieplatz ein (Aus der Werkstatt). Nur wenn noch das alte
|
||||
Titelbild gesetzt ist (`OtterpohlBrandSeeder::swapTitleImage()`).
|
||||
- **Otterpohl Abschnitt „Montage“** als vierter Abschnitt. Neu für alle Markenabschnitte: Absätze mit
|
||||
„- “ am Anfang werden zur Liste, der Teil vor dem ersten Doppelpunkt fett (`CmsBrand::paragraphBlocks()`)
|
||||
– pflegbar im normalen Textfeld im Admin.
|
||||
|
||||
Lokal ausgeführt: die drei Seeder aus Schritt 16. Tests: `HomeCorrectionsTest` (neu), angepasst
|
||||
`AnnouncementBarTest`, `HomePageStructureTest`, `HomeDraftTest`, `BrandImageSeederTest`,
|
||||
`FourthBrandTest`, `AppointmentTriggerTest`, `CmsContentSeederTest`. Gesamt 1071 grün
|
||||
(mit `B2IN_HOME_DRAFT=true`; die lokale `.env` hat den Entwurf aus, dann schlagen die `/entwurf`-Tests fehl).
|
||||
|
||||
---
|
||||
|
||||
## Seeder für das nächste Deployment (Stand 01.10.2026)
|
||||
|
||||
Alles, was seit dem letzten Commit (`3211569f`, Bilddauer im Display) neu ist: Nachträge 15–20.
|
||||
Annahme: Der Stand bis zu diesem Commit ist live. Genau diese Seeder, in dieser Reihenfolge:
|
||||
|
||||
```bash
|
||||
php artisan db:seed --class=CmsBrandSeeder --force # legt Otterpohl („tischlerei“) an, falls die Marke fehlt – überschreibt nichts
|
||||
php artisan db:seed --class=BrandPageTextSeeder --force # Feedback 17.09. für CABINET, Rotpunkt, Febrü (überschreibt deren Textfelder)
|
||||
php artisan db:seed --class=OtterpohlBrandSeeder --force # Otterpohl-Texte v2, Abschnitt „Montage“, Titelbild-Tausch
|
||||
php artisan db:seed --class=BrandImageSeeder --force # Titelbilder und Galerien aller vier Marken
|
||||
php artisan db:seed --class=DemoBrandGalleryCleanupSeeder --force # Demobilder raus – nach BrandImageSeeder
|
||||
php artisan db:seed --class=WhatsappNumberSeeder --force # WhatsApp-Business-Nummer 0521-98620100
|
||||
php artisan db:seed --class=AudienceSwitchProjectTextSeeder --force # Projekttext „… Projektentwicklungen. Koordiniert …“
|
||||
php artisan db:seed --class=HomeHeroTextSeeder --force # Hero „Räume aus einer Hand.“, zweiter Button weg
|
||||
```
|
||||
|
||||
Danach:
|
||||
|
||||
```bash
|
||||
php artisan config:cache
|
||||
php artisan view:clear
|
||||
npm ci && npm run build:web && npm run build:portal
|
||||
```
|
||||
|
||||
- Alle Seeder sind idempotent, ein zweiter Lauf schadet nicht.
|
||||
- In der `.env` muss nichts ergänzt werden: Hinweisleiste aus und Palette „Modern“ ohne Schalter sind
|
||||
die Standardwerte. Den Entwurf `/entwurf` live abschalten: `B2IN_HOME_DRAFT=false`.
|
||||
- Nicht nötig: `BrandLogoSeeder` und `BrandOriginSeeder` – Logo und Fertigungsort von Otterpohl setzt
|
||||
bereits der `OtterpohlBrandSeeder`.
|
||||
|
|
|
|||
69
dev/2026-08-28/farbwelt-kunde-24-09-2026.md
Normal file
69
dev/2026-08-28/farbwelt-kunde-24-09-2026.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
1. Hero-Bereich / Slideshow
|
||||
Das aktuelle große Hero-Bild würde ich gerne durch eine Slideshow mit unterschiedlichen Herstellern und Themen ersetzen, zum Beispiel:
|
||||
Rotpunkt / Küche
|
||||
CABINET
|
||||
Febrü
|
||||
Tischlerei / individueller Innenausbau
|
||||
komplette Raum- und Einrichtungskonzepte
|
||||
Wichtig wäre mir, dass ich diese Slideshow selbstständig pflegen und steuern kann, ähnlich wie unsere Displays.
|
||||
Ideal wäre eine Möglichkeit im Backend, mit der ich:
|
||||
Bilder selbst hochladen kann
|
||||
die Reihenfolge verändern kann
|
||||
einzelne Slides aktivieren oder deaktivieren kann
|
||||
Bilder später unkompliziert austauschen kann
|
||||
Die Slideshow selbst sollte dabei ruhig und hochwertig wirken – also langsame, dezente Übergänge und kein klassischer Werbebanner-Effekt.
|
||||
|
||||
2. Darstellung und Größe des Hero-Bildes
|
||||
Wichtig wäre mir außerdem, dass das Hero-Bild auf größeren Bildschirmen nicht unten abgeschnitten wird.
|
||||
Auf meinem Monitor – ich meine, es sind 27 Zoll – wird das aktuelle Motiv unten sichtbar beschnitten. Dadurch wirkt der Bildausschnitt aus meiner Sicht nicht ganz stimmig.
|
||||
Bei der mitgeschickten Visualisierung ist das wesentlich besser gelöst: Das Motiv ist nahezu vollständig sichtbar und bekommt dadurch deutlich mehr Wirkung.
|
||||
So würde ich es gerne haben – natürlich responsive für unterschiedliche Bildschirmgrößen.
|
||||
|
||||
3. Headline
|
||||
Die bisherige Headline würde ich gerne ändern zu:
|
||||
„Räume aus einer Hand. Mit starken Marken und persönlichen Lösungen.“
|
||||
Die Formulierung B2in Interior kann dabei gerne, ähnlich wie in der Visualisierung, etwas zurückhaltender oberhalb bzw. im Umfeld der Headline eingesetzt werden.
|
||||
|
||||
4. Obere Aktionsleiste
|
||||
Die derzeitige Aktionsleiste ganz oben würde ich komplett entfernen.
|
||||
Ohne diese Leiste wirkt die Seite aus meiner Sicht ruhiger, klarer und insgesamt hochwertiger.
|
||||
|
||||
5. Buttons im Hero
|
||||
Den zusätzlichen Button „Termin anfragen“ neben „Unsere Marken entdecken“ würde ich entfernen.
|
||||
Der feststehende Button „Termin anfragen“ rechts unten soll dagegen bestehen bleiben.
|
||||
Damit gibt es im eigentlichen Hero einen klaren Hauptbutton:
|
||||
„Unsere Marken entdecken“
|
||||
|
||||
6. Persönliches Foto
|
||||
Ein Foto von mir würde ich gerne dezent und hochwertig auf der Seite integrieren.
|
||||
Nicht im Hero und auch nicht zu dominant, sondern an einer passenden Stelle weiter unten – zum Beispiel in Verbindung mit dem persönlichen B2in-/Marcel-Scheibe-Bereich.
|
||||
|
||||
7. Text Projektgeschäft
|
||||
Die bisherige Formulierung mit „deutscher Vertragssicherheit“ würde ich gerne ersetzen durch:
|
||||
„Vollständige Einrichtung für Objekte, Büros und Projektentwicklungen – koordiniert aus einer Hand, von der Küche bis zur letzten Blume. Mit einem zentralen deutschen Vertragspartner und einem eingespielten Herstellernetzwerk.“
|
||||
|
||||
8. Farbwelt und Stil
|
||||
Die bisherige Farbwelt würde ich nicht weiterverfolgen. Die neue Richtung gefällt mir deutlich besser, ich würde sie allerdings noch etwas heller, klarer und hochwertiger gestalten.
|
||||
Das beigefügte Bild zeigt die Richtung aus meiner Sicht schon sehr gut.
|
||||
Besonders wichtig wären mir dabei:
|
||||
ein heller, leicht kühler Grundton
|
||||
kein reines bzw. steriles Weiß
|
||||
eher ein sehr helles, modernes Greige / Off-White
|
||||
ein deutlich präsenteres und klareres Tannengrün
|
||||
Gold nur als feiner Akzent
|
||||
Gerade die Kombination aus Tannengrün und einer sehr dünnen Goldlinie gefällt mir gut.
|
||||
Im beigefügten Beispiel sieht man das unter anderem:
|
||||
an der feinen goldenen Umrandung des Hero-Bereichs
|
||||
in Verbindung mit den tannengrünen Flächen
|
||||
am Button „Unsere Marken entdecken“, der ebenfalls eine feine Goldkante bzw. einen Goldakzent erhält
|
||||
bei kleinen Linien und Details
|
||||
Genau so würde ich Gold einsetzen: nicht flächig und nicht dekorativ-verspielt, sondern sehr reduziert als hochwertiges Detail.
|
||||
Die Kombination aus hellem Untergrund + kräftigem Tannengrün + sehr feinem Gold trifft für mich die gewünschte Richtung inzwischen ziemlich gut.
|
||||
|
||||
9. B2in-Logo an die neue Farbwelt anpassen
|
||||
Wenn wir die Farbwelt entsprechend weiterentwickeln, sollte sich das aus meiner Sicht konsequenterweise auch im B2in-Logo widerspiegeln.
|
||||
Der Bogen über dem B2in-Schriftzug ist aktuell eher in einem Ocker-/Senfton gehalten. Diesen würde ich gerne auf den neuen Goldton umstellen, den wir auch für die feinen Linien und Akzente auf der Website verwenden.
|
||||
Damit würde sich die Farbsprache durchgängig wiederfinden:
|
||||
Tannengrün + Gold + heller, neutraler Grundton.
|
||||
Ich würde dich daher bitten, die vorhandenen Logo-Varianten entsprechend anzupassen, sodass der bisherige Ockerton konsequent durch den neuen Goldton ersetzt wird und Website und Logo anschließend exakt dieselbe Farbwelt verwenden.
|
||||
Wichtig wäre mir auch hier, dass das Gold edel und zurückhaltend bleibt – also kein gelblicher oder zu glänzender Goldton, sondern eher ein moderner, gedeckter Premium-Goldton wie in der beigefügten Visualisierung.
|
||||
41
dev/2026-08-28/otterpohl_Webseitentext_FINAL_v2.md
Normal file
41
dev/2026-08-28/otterpohl_Webseitentext_FINAL_v2.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
Ziemlich nah an der eierlegenden Wollmilchsau
|
||||
Der Begriff ist vielleicht nicht besonders elegant. Aber ganz falsch ist er nicht.
|
||||
Individuelle Möbel. Türen. Treppen. Küchen. Wandverkleidungen. Objektbau. Sonderanfertigungen. Lackierungen und Echtholzfurniere. Bis hin zum kompletten Innenausbau.
|
||||
Mit Otterpohl Möbelservice haben wir einen Partner an unserer Seite, bei dem die Möglichkeiten nicht am einzelnen Möbelstück aufhören.
|
||||
Denn manchmal braucht ein Raum mehr als einen Schrank oder ein Sideboard. Vielleicht soll eine Treppe Teil des Gestaltungskonzepts werden. Eine Wand erhält eine individuelle Holzverkleidung. Eine Tür soll sich selbstverständlich in den Raum einfügen. Oder Möbel, Materialien und bauliche Elemente müssen so zusammenspielen, dass am Ende alles wie aus einem Guss wirkt.
|
||||
Genau dort beginnt der individuelle Innenausbau.
|
||||
Vom einzelnen Möbel bis zum ganzen Raum
|
||||
Wir arbeiten mit Herstellern, die schon sehr viele individuelle Möglichkeiten bieten. CABINET, Rotpunkt und Febrü geben uns dafür eine starke Basis.
|
||||
Aber es gibt Projekte, bei denen die Lösung darüber hinausgeht.
|
||||
Mit Otterpohl Möbelservice können wir deshalb nicht nur individuelle Möbel und Sonderanfertigungen realisieren, sondern auch Türen, Treppen, Küchen, Wand- und Deckenverkleidungen sowie komplette Innenausbauten und Lösungen für den Objektbereich einbeziehen.
|
||||
So können wir Räume ganzheitlicher denken – und Details nicht isoliert betrachten.
|
||||
Planung trifft Handwerk
|
||||
Manchmal entsteht die beste Lösung aus einem Möbelprogramm. Manchmal braucht es eine individuelle Ergänzung. Und manchmal muss etwas komplett neu gedacht und gebaut werden.
|
||||
Genau diese Kombination macht für uns den Unterschied.
|
||||
Wir planen den Raum und verbinden bei Bedarf unterschiedliche Hersteller, Materialien und handwerkliche Lösungen miteinander. Otterpohl Möbelservice ergänzt diese Planung um die Möglichkeiten einer klassischen Tischlerei und eines erfahrenen Innenausbauers.
|
||||
Das Ergebnis kann ein einzelnes Möbel sein.
|
||||
Oder ein kompletter Raum.
|
||||
Leistungen und Möglichkeiten
|
||||
Individuelle Möbel & Sonderanfertigungen
|
||||
Möbel nach Maß, besondere Konstruktionen und individuelle Lösungen – nach Planung, Idee, Skizze oder konkreter Anforderung.
|
||||
Innenausbau
|
||||
Von einzelnen Ausbauarbeiten bis zum ganzheitlichen Raumkonzept – inklusive individueller Verkleidungen und maßgefertigter Einbauten.
|
||||
Türen & Treppen
|
||||
Individuelle Türen, Treppen und konstruktive Lösungen, die sich in Architektur und Einrichtung einfügen.
|
||||
Küchen
|
||||
Individuelle Küchenlösungen und handwerkliche Ergänzungen auch dort, wo klassische Küchenprogramme an ihre Grenzen kommen.
|
||||
Wandverkleidungen & besondere Details
|
||||
Holzverkleidungen, Lamellen, Paneele und individuelle Gestaltungselemente, die Architektur und Einrichtung miteinander verbinden.
|
||||
Objektbau
|
||||
Individuelle Lösungen für Büros, Verkaufsräume und gewerblich genutzte Flächen – vom Einzelmöbel bis zum kompletten Ausbau.
|
||||
Lack & Echtholzfurnier
|
||||
Individuelle Lackierungen und Furniere für Lösungen, bei denen Farbe, Material und Oberfläche exakt aufeinander abgestimmt werden sollen.
|
||||
Montage
|
||||
Die Umsetzung endet nicht bei der Fertigung. Entscheidend ist, dass Möbel, Ausbau und Raum am Ende auch vor Ort sauber zusammenkommen.
|
||||
Das Ganze statt nur das Einzelne
|
||||
Genau deshalb passt Otterpohl Möbelservice zu unserem Ansatz.
|
||||
Wir möchten Räume nicht in einzelne Gewerke zerlegen. Wir möchten Lösungen schaffen, bei denen Möbel, Materialien, Architektur und handwerkliche Details zusammenpassen.
|
||||
Mal braucht es dafür einen Hersteller.
|
||||
Mal einen Tischler.
|
||||
Und manchmal beides.
|
||||
Nicht easy click & buy. Aber dennoch easy to get.
|
||||
Loading…
Add table
Add a link
Reference in a new issue