Messe-Landingpage /her-career/ zur herCAREER Expo 2026

Ziel des QR-Codes auf der Rückwandgrafik. Der gedruckte Code zeigt auf
https://her-career.anelia-wolf.com – die Adresse ist damit unveränderlich.
Die Seite liegt als /her-career/ im normalen Export, die Subdomain liefert
dieselbe Datei aus demselben Docroot aus; DNS, Zertifikat, Vhosts für nginx
und Apache und die Prüfbefehle stehen in docs/SUBDOMAIN-HERCAREER.md.

Aufbau in beiden Sprachen: Hero (ink) → 01 Messe-Special → 02 Themen →
03 Auf der Messe → 04 Kontakt mit dem Formular. Die vier Themenblöcke der
Rückwand liegen auf den drei Leistungsseiten, wie in der Navigation; jede
Zeile verlinkt absolut auf die Hauptdomain.

Der Wortlaut des Messe-Specials fehlt noch und steht sichtbar als „[…]“ auf
der Seite. Der Build-Guard hält den Launch-Flip an, bis er da ist
(CONTENT_TODO in src/lib/legal.ts, docs/OFFENE-DATEN.md Punkte 2.7–2.9).
Deadline ist nicht der Livegang, sondern der 22.10.2026.

- Canonical auf anelia-wolf.com/her-career/, damit die Subdomain-Kopie nicht
  ein zweites Mal im Index steht
- flags.showHerCareer trägt Termine-Ledger, Sitemap-Eintrag und die
  Meta-Beschreibung mit Stand und Uhrzeit. Ab dem 24.10.2026 auf false
- ServiceHero: facts und cta sind optional – ohne beides und ohne Foto
  entfällt die rechte Spalte
- ProcessContact: optionaler Zähler, die Messeseite nummeriert ihre Abschnitte
- Kopf-CTA auf dieser Seite ausgeblendet. Das macht eine Regel in globals.css,
  weil der Kopf außerhalb von <main> liegt und auf der Subdomain der Pfad
  ohnehin „/“ ist

Enthält außerdem die bis dahin nicht committeten Änderungen an Header,
LangSwitch, OverlayMenu, Wordmark und globals.css.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-07 22:39:26 +02:00
parent b9e1d4d15c
commit 33ec0df7e3
21 changed files with 941 additions and 50 deletions

View File

@@ -26,6 +26,7 @@ Adressen, Englisch liegt vollstaendig unter `/en/`:
| `/leistungen/keynotes/` | Keynotes & Speaking |
| `/impressum/` | Impressum |
| `/datenschutz/` | Datenschutzerklärung |
| `/her-career/` | Messe-Landingpage zur herCAREER Expo 2026 Ziel des QR-Codes auf der Rückwandgrafik, ausgeliefert auch unter `her-career.anelia-wolf.com` (`docs/SUBDOMAIN-HERCAREER.md`) |
| 404 | „Diese Fährte endet hier.“ deutsch, mit englischem Zweizeiler darunter |
| `/en/` | English start page |
| `/en/services/coaching/` | Coaching & Assessments |
@@ -33,6 +34,7 @@ Adressen, Englisch liegt vollstaendig unter `/en/`:
| `/en/services/keynotes/` | Keynotes & Speaking |
| `/en/imprint/` | Imprint (Übersetzung, verbindlich bleibt `/impressum/`) |
| `/en/privacy/` | Privacy (Übersetzung, verbindlich bleibt `/datenschutz/`) |
| `/en/her-career/` | herCAREER Expo 2026 (englische Fassung der Messeseite) |
Dazu erzeugt der Build `sitemap.xml`, `robots.txt`, `icon.svg` und `apple-icon.png`.
@@ -154,12 +156,22 @@ Beides steht an genau einer Stelle: `routesByLang` in `src/lib/i18n.ts`.
Wer eine Adresse aendert, aendert sie dort Navigation, Fuss, Sitemap,
hreflang und der Sprachumschalter lesen alle aus dieser Tabelle.
**Umschalter.** Die beiden Flaggen im Kopf (`LangSwitch.tsx`) fuehren nicht
pauschal auf die Startseite, sondern auf das Gegenstueck derselben Seite
(`counterpart()`). Unter 1024 px ist im Kopf kein Platz; dort steht der
Umschalter im Overlay-Menue. Eine Flagge steht streng genommen fuer ein Land
und nicht fuer eine Sprache deshalb steht das Kuerzel DE/EN daneben und der
zugaengliche Name nennt die Sprache ausgeschrieben.
**Umschalter.** Der Umschalter (`LangSwitch.tsx`) steht auf jeder Breite im Kopf
und fuehrt nicht pauschal auf die Startseite, sondern auf das Gegenstueck
derselben Seite (`counterpart()`). Zwei Formen:
- ab 1024 px beide Sprachen nebeneinander, die aktive still in Gold,
- darunter nur die Zielsprache als ein Knopf ein Tipp, ein Wechsel. Neben
Wortmarke und „Menue“ hat auf einem Telefon kein Paar Platz.
Der Kopf liegt ueber dem Overlay-Menue, der Knopf bleibt also auch bei offenem
Menue erreichbar. Im Menue selbst steht er nicht mehr: Dort fiel er auf kurzen
Geraeten (iPhone SE, 667 px) unter die Kante, ohne dass man dem Menue ansah,
dass darunter noch etwas kommt.
Eine Flagge steht streng genommen fuer ein Land und nicht fuer eine Sprache
deshalb steht das Kuerzel DE/EN daneben und der zugaengliche Name nennt die
Sprache ausgeschrieben.
**Zwei Wurzel-Layouts.** `app/(de)/layout.tsx` schreibt `<html lang="de">`,
`app/en/layout.tsx` schreibt `<html lang="en">`. Im App Router schreibt nur das
@@ -240,6 +252,12 @@ Ressourcen lädt, ist eine sehr strenge Content-Security-Policy möglich.
speist Canonical-URLs, OpenGraph und `sitemap.xml`. Bei anderer Domain hier
ändern und neu bauen.
**Subdomain `her-career.anelia-wolf.com`**: Der QR-Code auf der Rückwandgrafik
zeigt auf diese Adresse gedruckt und damit unveränderlich. Sie braucht keinen
zweiten Build: derselbe Docroot, `/` liefert `her-career/index.html`, alles andere
geht per 301 auf die Hauptdomain. Vhost-Beispiele für nginx und Apache, DNS,
Zertifikat und Prüfbefehle stehen in **`docs/SUBDOMAIN-HERCAREER.md`**.
---
## 3. Bilder und Logo einspielen (Drop-in)
@@ -330,6 +348,7 @@ Freigaben vorliegen. Kein Flag verlangt eine Codeänderung an Komponenten.
| `show24hPromise` | `false` | Zusage „Antwort innerhalb von 24 Stunden“ |
| `showIndustry` | `false` | Branchennennung im Nebentätigkeits-Kontext |
| `showTwins` | `true` | Zwillinge-Satz in der Biografie |
| `showHerCareer` | `true` | Messeseite `/her-career/` trägt den Termine-Ledger („Auf der Messe“) und steht in der Sitemap; die Meta-Beschreibung nennt Stand und Uhrzeit. Ab dem 24.10.2026 auf `false` siehe Abschnitt 6. |
| `showLangSwitch` | `true` | Sprachumschalter im Kopf und im Overlay-Menü. Auf `false` verschwinden beide Flaggen, die englischen Seiten bleiben über ihre Adresse erreichbar. |
Nicht bestätigte Aussagen sind bewusst ausgeschaltet: eine Zusage, die nicht
@@ -414,7 +433,14 @@ vergangenes Event). Zu tun, mit Termin im Kalender:
3. Auch anpassen: `src/content/keynotes.ts` (Meta-Zeile
„Keynote · herCAREER Expo 2026 · 23.10. · 10:30“) und
`src/content/home.ts` (Marginalie „Bühne“, Fact-Zeile).
4. `npm run build`, `out/` hochladen.
4. **Messeseite `/her-career/`**: `flags.showHerCareer` auf `false` setzen. Damit
fällt der Termine-Ledger weg, die Meta-Beschreibung wechselt auf die Fassung ohne
Stand und Uhrzeit, und die Seite verschwindet aus der Sitemap; Hero, Messe-Special,
Themen und Kontakt bleiben stehen. Die Seite selbst bleibt erreichbar gedruckte
QR-Codes laufen weiter.
Ist das Messe-Special nach der Messe hinfällig, muss sein Text mit weg
(`src/content/her-career.ts`, `src/content/en/her-career.ts`).
5. `npm run build`, `out/` hochladen.
**Offen: Wer pflegt das, und wann?** Das ist Spec §12 Punkt 17 und muss mit
der Kundin geklärt werden am besten als feste Zuständigkeit plus
@@ -481,7 +507,7 @@ Produktions-Build.
| `npx tsc --noEmit -p tsconfig.json` | fehlerfrei |
| `npm run lint` (ESLint) | fehlerfrei |
| `npm run build` | erfolgreich, 12 statische Seiten |
| Routen in `out/` | `/`, `/leistungen/coaching/`, `/leistungen/trainings/`, `/leistungen/keynotes/`, `/impressum/`, `/datenschutz/`, `404.html` (+ `_not-found/`) alle vorhanden |
| Routen in `out/` | `/`, `/leistungen/coaching/`, `/leistungen/trainings/`, `/leistungen/keynotes/`, `/her-career/`, `/impressum/`, `/datenschutz/`, `404.html` (+ `_not-found/`) alle vorhanden |
| `localStorage` / `sessionStorage` / `document.cookie` in `out/` | **kein Treffer** (HTML, JS, CSS geprüft) |
| Externe Origins in den HTML-Dateien | nur `anelia-wolf.com`, `linkedin.com`, `her-career.com`, `bfdi.bund.de`, `schema.org`, `w3.org` (SVG-Namespace) |
| Externe Ressourcen | keine: 0 iframes, alle `<script src>` unter `/_next/`, alle 18 `@font-face` zeigen auf lokale `.woff2` in `_next/static/media/`. Die Treffer `nextjs.org`, `react.dev`, `gsap.com`, `github.com` liegen ausschließlich als Text in Fehlermeldungen und Lizenzkommentaren in Vendor-Bundles **keine Requests**. |
@@ -530,7 +556,8 @@ Produktions-Build aus `out/` ist er nicht vorhanden.
- [ ] Freigegebene Blöcke per Flag eingeschaltet (FAQ, Stimmen, Speaker-PDF …)
- [ ] `hostOutsideEu` korrekt gesetzt, AV-Verträge mit Hoster und E-Mail-Anbieter
- [ ] Domain in `src/lib/site.ts` stimmt, HTTPS aktiv, 404-Seite konfiguriert
- [ ] `out/` hochgeladen, alle zwölf Routen im Browser geprüft (sechs deutsch, sechs englisch)
- [ ] `out/` hochgeladen, alle vierzehn Routen im Browser geprüft (sieben deutsch, sieben englisch)
- [ ] Subdomain `her-career.anelia-wolf.com` eingerichtet und mit dem **gedruckten** QR-Code gescannt (`docs/SUBDOMAIN-HERCAREER.md`)
- [ ] Sprachumschalter auf jeder Seite geprüft: er führt auf dieselbe Seite in der anderen Sprache, nicht auf die Startseite
- [ ] Kalendereintrag für den 24.10.2026 (Termine-Block, Abschnitt 6)