Das System ist seit 20.07.2026 live; die dev-Doku spiegelt jetzt den Betriebszustand statt der Release-Vorbereitung: - dev/betrieb/: Deploy-Runbook (neu: §10 Betrieb nach Go-Live mit SFTP-Deploy-Checkliste inkl. queue:restart-Pflicht und den Betriebs-Erkenntnissen der Go-Live-Woche), Legacy-API-Parität, Umami. - dev/roadmap.md: offene Nachlauf-Punkte (Go-Live-Mails, Merge nach main, Stripe-Test-Artefakte, Key-Rotation, Alt-System-Abschaltung) und Ideen-Backlog. - dev/archive/: abgeschlossene Phasen — Migration-2026-Planung, Cutover-Runbook (mit Erledigt-Vermerk), Release-Plan/QA-Checkliste, Optimierungsphasen, Frontend-Konzepte + Responsive-Audits vom 16.07., Altsystem-Reste. - dev/README.md als Wegweiser; gitignore-Pfad der SQL-Dumps mitgezogen (dev/archive/migration-2026/sql/ bleibt untracked, ebenso dev/migration/ und dev/api/). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
13 KiB
Bestandsaufnahme: Frontend Responsive / Mobile
Erstellt: 16.07.2026
Status: Nur Audit – kein Code geändert
Viewports: 320×568 (kleines Smartphone) und 390×844 (iPhone-ähnlich), jeweilsmobile: true
Scope: Öffentliches Web-Frontend (presseecho, businessportal24, pressekonto-Hub)
Nicht im Scope: Admin/Portal (Flux), Customer-Bereich
Methode
- Live-Check im Browser bei 320 px und 390 px Breite (CDP-Layout-Metriken:
scrollWidth, Overlay-Bounding-Boxes, Grid-Spalten, Touch-Targets) - Code-Review der Blade-Komponenten unter
resources/views/web/**undresources/views/components/web/** - Stichproben: Startseiten beider Portale, Preise, Release-Detail, Kategorie, Veröffentlichen, Hub-Landing
Hinweis zu Screenshots: Das Browser-Capture zeigt die emulierte Seite oft als schmalen Streifen links im Fenster (Tooling-Artefakt). Maßgeblich sind die CDP-Messungen (clientWidth / scrollWidth / Element-Rechtecke), nicht die leere Fläche rechts im Screenshot.
Hinweis Debugbar: Laravel Debugbar ist lokal sichtbar und verdeckt Inhalt – kein Produktionsproblem, bei visueller QA ausblenden.
Kurzfazit
Die Desktop-Layouts sind weitgehend stimmig. Auf Mobile gibt es wenige, aber schwere strukturelle Bugs, die sich themenübergreifend wiederholen:
| Priorität | Thema | Betrifft |
|---|---|---|
| P0 | Hero-Text-Overlay läuft aus dem Bild nach oben und überdeckt Section-Header | Portal-Startseiten, Kategorie (und analog Newsroom) |
| P0 | Horizontaler Seiten-Scroll durch Quality-Summary (3-Spalten-Grid + nowrap-Link) |
Portal-Startseiten |
| P0 | Hub-Utility-Bar + Header-CTAs sprengen die Viewport-Breite (~245px Overflow) | pressekonto.test |
| P1 | Hub-Footer fest 4 Spalten; Architektur-Diagramm mit überlappenden Karten | pressekonto.test |
| P1 | Hub-Navigation ab lg ausgeblendet ohne Mobile-Menü-Ersatz |
pressekonto.test |
| P1 | Sticky-Header-Script schaltet Klassen um, für die keine CSS-Regeln existieren | Portal-Seiten |
| P2 | Hartes px-8 / große Type auf Homepages; kleine Touch-Targets in Topbar |
Portale |
Seiten wie Preise, Release-Detail und Veröffentlichen sind mobil schon deutlich robuster (px-4 sm:px-6 lg:px-8, kein Seiten-Overflow in der Stichprobe).
Geprüfte Seiten (Überblick)
| Seite | URL (Beispiel) | Mobil-Status |
|---|---|---|
| Startseite presseecho | https://presseecho.test/de |
Kritisch: Hero-Overlap + H-Scroll (320/390 px verifiziert) |
| Startseite businessportal24 | https://businessportal24.test/de |
Kritisch: gleiches Muster (390 px verifiziert) |
| Hub pressekonto | https://pressekonto.test/ |
Kritisch: Utility/Header/Footer/Diagramm (320/390 px verifiziert) |
| Preise | …/de/preise |
Weitgehend ok |
| Release-Detail | …/de/press-release/… |
Weitgehend ok; Hero-Bild sehr flach (21:9) |
| Kategorie | …/de/category/sonstiges |
Kritisch: Hero-Overlay-Overflow |
| Veröffentlichen | …/de/veroeffentlichen |
Weitgehend ok |
| Suche / FAQ / API / Newsrooms | Code-Review + Muster | Keine P0 in Stichprobe; API-Tabellen bewusst overflow-x-auto |
Das Routen-Inventar umfasst darüber hinaus Newsroom-Detail, Tombstone, Suche mit Filterzuständen, Hilfe sowie die öffentlichen Rechts-/Formularseiten. Diese Seitentypen wurden statisch erfasst, aber in dieser ersten Runde nicht in allen Zuständen und auf beiden Sprachen live durchgeklickt. Admin, Auth und Customer bleiben bewusst außerhalb dieses Audits.
Befunde im Detail
P0-01 — Focus-Hero: Overlay überdeckt „Im Fokus“
Schwere: Kritisch
Wo: resources/views/components/web/focus-hero.blade.php (Zeilen ~39–67)
Portale: presseecho + businessportal24 (gleiche Komponente)
Messung (Lead mit langem Titel/Teaser):
- Parent-Bildbox:
h-[500px]→ Höhe 500px - Bei 390px: absolutes Bottom-Overlay 734px hoch (presseecho) bzw. 586px (businessportal24)
- Bei 390px ragt das presseecho-Overlay ~234px nach oben aus dem Container und liegt über dem Section-Header („Im Fokus“ + Datum)
- Bei 320px wird das presseecho-Overlay ~917px hoch und ragt ~417px nach oben aus der 500px-Bildbox; der Fehler verschärft sich auf kleinen Smartphones deutlich
Ursache:
- Feste Höhe
h-[500px]+overflow-hiddenam Bild - Overlay absolut
bottom-0mit Headlinetext-[38px](ohne Mobile-Downscale), Teaser und Meta - Inhalt des Overlays ist höher als die Bildbox → wächst nach oben aus dem
relative-Wrapper (Parent der<a>hat keinoverflow:hidden)
Darstellung: Titel/Teaser überdecken die Überschrift „Im Fokus“; Lesbarkeit und Hierarchie kaputt.
Fix-Richtung (später): Responsive Type (text-[24px] sm:text-[32px] lg:text-[38px]), Overlay-Padding px-4 sm:px-9, ggf. min-h statt fester Höhe oder Overlay in den Flow legen / overflow-hidden am äußeren relative.
P0-02 — Kategorie-/Newsroom-Hero: gleiches Overlay-Problem
Schwere: Kritisch (Kategorie verifiziert) / Hoch (Newsroom analog im Code)
Wo:
resources/views/web/kategorie.blade.php~123–147 (aspect-ratio: 16/10)resources/views/web/newsroom.blade.php~152–180 (aspect-ratio: 16/9)
Messung Kategorie (390px):
- Hero-Box ~224×358
- Overlay-Höhe 459px,
topDeltaca. −236px (ragt nach oben heraus)
Trotz etwas kleinerer Type (text-[26px] sm:text-[32px]) reicht langer Titel + Teaser + Meta, um das flache Aspect-Ratio-Hero zu sprengen.
P0-03 — Horizontaler Scroll auf Portal-Startseiten (Quality-Summary)
Schwere: Kritisch
Wo: resources/views/components/web/quality-summary.blade.php
Messung: scrollWidth = 457 bei vw = 390 (Δ ≈ 67px) auf beiden Portal-Homes. Bei vw = 320 bleibt die Seite 457px breit (Δ ≈ 137px).
Isolation: Ausblenden der Quality-Summary-Section → scrollWidth = 390. Andere Home-Sections allein verursachen den Overflow nicht.
Ursache:
style="grid-template-columns: auto 1fr auto;"
bleibt auf Mobile 3 Spalten. Der Link „Veröffentlichungsrichtlinien →“ hat whitespace-nowrap und endet bei right ≈ 458 (> 390).
Fix-Richtung: Grid auf Mobile stacken (grid-cols-1 sm:grid-cols-[auto_1fr_auto] o. ä.), Link umbrechen lassen oder unter den Text legen; Section-Padding auf px-4 sm:px-6 lg:px-8.
P0-04 — Hub pressekonto: massiver Horizontal-Scroll
Schwere: Kritisch
Wo:
resources/views/components/web/hub/top-utility-bar.blade.phpresources/views/components/web/hub/site-header.blade.php
Messung:
- Bei 390px:
scrollWidth = 635(Δ ≈ 245px) - Bei 320px: weiterhin
scrollWidth = 635(Δ ≈ 315px) - Utility-Bar-Kinder summiert bis
right = 635(Datum + „Publisher-Hub für …“ + FAQ/Hilfe/Kontakt, alleswhitespace-nowrap, kein Wrap/overflow-x) - Header-CTA-Gruppe („Anmelden“ + „Konto erstellen“)
right = 472
Zusätzlich: Haupt-Nav ist hidden lg:flex – auf Mobile komplett weg, ohne Hamburger/Drawer. Anker (Tarife, Funktion, …) sind im Header nicht erreichbar.
P1-01 — Hub-Footer: 4 Spalten auf Mobile
Schwere: Hoch
Wo: resources/views/components/web/hub/site-footer.blade.php Zeile ~14
style="grid-template-columns:1.5fr 1fr 1fr 1fr;" ohne Media Query
Messung: Spaltenbreiten ca. 133 / 63 / 84 / 151 px – Linklisten unbenutzbar schmal.
P1-02 — Hub Architektur-Diagramm: Überlappung
Schwere: Hoch
Wo: resources/views/web/pressekonto.blade.php ~105–167
Messung: Containerbreite ~268px bei height:320px; Brand-Karten jeweils min-w-[160px] links und rechts oben → Überlappung (~52px). Hub-Kreis und Eck-Labels kollidieren.
Zusätzlich: Stats darunter grid-cols-3 in derselben engen Karte.
P1-03 — Hartes px-8 auf Homepages (Content-Breite)
Schwere: Hoch (UX/Dichte), kein Overflow allein
Wo u. a.:
focus-hero.blade.php,industry-index,industry-spotlight,pricing-teaserpresseecho.blade.php/businessportal24.blade.phpFeed-Section- Hub-Seiten durchgängig
px-8
Unterseiten (Preise, Detail, Suche, …) nutzen bereits korrekt px-4 sm:px-6 lg:px-8.
Bei 390px Viewport bleiben mit px-8 nur ~326px Content – verschärft Hero- und Grid-Probleme.
P1-04 — Sticky-Header ist funktional wirkungslos
Schwere: Hoch
Wo:
resources/views/web/layouts/web-master.blade.php~76–114resources/views/components/web/site-header.blade.php~101
Das Script ersetzt beim Scrollen header-normal durch header-sticky. Weder in den Web-CSS-Quellen noch im aktuellen Web-Build existieren Regeln für diese Klassen. Der Header wird deshalb nicht sticky; auf langen Mobilseiten gehen Suche, Login und Veröffentlichungs-CTA beim Scrollen verloren.
P2-01 — Industry-Index: 2 Spalten ab Mobile
Schwere: Mittel
Wo: industry-index.blade.php – grid-cols-2 + px-5
Lange Branchennamen + Delta in einer Zeile wirken gequetscht.
P2-02 — Quality-Summary / Stat-Strips / Sidebar-Grids
Schwere: Mittel
- Quality-Summary: siehe P0-03
- Kategorie/Newsrooms/Veröffentlichen:
grid-cols-2Stat-Strips mit großen Zahlen – Labels wrapen unschön focus-side-item: 3-Spalten-Grid in gestapelter Sidebar – funktional ok, aber dicht- Release-Detail-Hero
aspect-ratio: 21/9→ auf Mobile nur ~153px Bildhöhe
P2-03 — Touch-Targets Header (Portale)
Schwere: Mittel
Topbar DE/EN (~42×35), „Preise“-Link (~33×17), Suche 40×40 und Anmelden ~34×34. Mehrere Ziele bleiben damit unter der 44×44-Empfehlung; die große Rubrik-Zeile erreicht 358×44.
P2-04 — Live-Ticker
Schwere: Niedrig–Mittel (kein alleiniger H-Scroll-Auslöser in der Isolation)
Marquee mit width: max-content ist beabsichtigt und liegt in overflow-hidden.
Market-Slot (max-w-[min(92vw,280px)] + shrink-0) kann auf sehr schmalen Screens den Ticker-Bereich stark einengen, wenn Kursdaten aktiv sind – bei der Stichprobe war der Market-Slot oft leer.
P2-05 — API-Seite Tabellen
Schwere: Niedrig (bewusst)
overflow-x-auto + whitespace-nowrap an Field-Namen → horizontales Scrollen in der Tabelle, nicht der ganzen Seite.
P2-06 — Bedingter Hub-Kontextbanner ohne Mobile-Umbruch
Wo: resources/views/components/web/hub/brand-context-banner.blade.php
Wann sichtbar: Hub-Aufruf mit ?from=presseecho oder ?from=businessportal24
Fließtext, Marken und „Zurück zu …“-Link liegen in einer einzigen Flex-Zeile ohne flex-wrap oder Mobile-Stacking. Dieser optionale Zustand wurde statisch als Overflow-/Kompressionsrisiko identifiziert und sollte bei der späteren Browser-QA separat geprüft werden.
P2-07 — Weitere Dichte- und Touch-Themen
- FAQ-Antworten auf „Veröffentlichen“ behalten mobil
pl-[60px]und verschenken auf 320px viel Textbreite. - Credit-Pakete auf „Preise“ starten bereits mobil zweispaltig.
- Pagination und mehrere Modal-Schließen-Buttons liegen mit ca. 32–36px unter dem 44×44-Richtwert.
- FAQ/API fehlen in der mobilen Kopf-Navigation und sind mobil nur über den Footer direkt erreichbar.
Was mobil bereits gut wirkt
- Portal-
site-header: Suche als Icon-Modal, verkürzte Topbar, Burger für Rubriken - Preise: Tarif-Grid
grid-cols-1 sm:grid-cols-2 lg:grid-cols-4, kein Seiten-Overflow - Release-Detail: Padding-Pattern, Body-Breite ~358px, Share-Buttons in 2 Spalten
- Veröffentlichen: bei 390px kein H-Scroll; bei 320px stammen die gemessenen 6px Überbreite ausschließlich von der lokalen Debugbar, nicht vom Seitenlayout. FAQ-Zeilen als 3-Spalten-Grid bleiben eher ein Dichte-Thema
- Viele Unterseiten schon auf
px-4 sm:px-6 lg:px-8umgestellt
Empfohlene Bearbeitungsreihenfolge (noch nicht umsetzen)
- P0-01 / P0-02 – Hero-Overlays (Focus-Hero, Kategorie, Newsroom): Type + Overflow-Containment
- P0-03 – Quality-Summary responsive machen (behebt Portal-H-Scroll)
- P0-04 / P1-01 / P1-02 – Hub: Utility-Bar, Header (Mobile-Nav!), Footer-Grid, Architektur-Diagramm
- P1-04 – Sticky-Header-CSS bzw. gewünschtes Scroll-Verhalten herstellen
- P1-03 – Homepages/Shared:
px-8→px-4 sm:px-6 lg:px-8 - P2 – Kontextbanner, Industry-Index, FAQ-Dichte, Touch-Targets, flaches Detail-Hero, Feinschliff
Testmatrix für spätere Fixes
| Breakpoint | Geräte-Proxy |
|---|---|
| 320×568 | iPhone SE |
| 390×844 | iPhone 14/15 |
| 430×932 | große Phones |
| 768×1024 | Tablet |
Pro Fix mindestens: beide Portal-Homes + Hub + eine Kategorie + eine PM-Detailseite; document.documentElement.scrollWidth <= clientWidth.
Dateien mit höchster Hebelwirkung
resources/views/components/web/focus-hero.blade.phpresources/views/components/web/quality-summary.blade.phpresources/views/web/kategorie.blade.php/newsroom.blade.php(Hero-Blöcke)resources/views/components/web/hub/top-utility-bar.blade.phpresources/views/components/web/hub/site-header.blade.phpresources/views/components/web/hub/site-footer.blade.phpresources/views/web/pressekonto.blade.php(Architektur-Diagramm +px-8)resources/views/web/layouts/web-master.blade.php+ Web-CSS (Sticky-Header)resources/views/components/web/hub/brand-context-banner.blade.php
Ende der Bestandsaufnahme. Nächster Schritt nach Freigabe: Fixes in der Reihenfolge P0 → P1 → P2.