{
 "$schema": "../../schema.json",
 "schema": "fundus/1",
 "id": "vollbild-overlay-menue-bildvorschau",
 "name": "Vollbild-Overlay-Menü mit Riesentypo und Bildvorschau",
 "name_en": "Fullscreen overlay menu with hover image reveal",
 "kurz": "Ein Wort öffnet eine dunkle Bühne: Riesige Links steigen aus ihren Masken, und jeder Hover zeigt sein Bild, als kippendes Cursor-Thumbnail, als vollflächiger Wipe oder als Daumen in der Zeile.",
 "kategorie": "Navigation",
 "kategorie_slug": "navigation",
 "kategorie_nr": 3,
 "bau_chat": "C3",
 "prioritaet": "A",
 "trendstatus": "etabliert",
 "belegstatus": "belegt",
 "website_belege": 3,
 "stimmung": [
  "editorial",
  "luxuriös",
  "filmisch",
  "laut"
 ],
 "stimmung_roh": [
  "editorial",
  "luxuriös",
  "laut",
  "kinematisch"
 ],
 "technik": [
  "css",
  "gsap",
  "splittext",
  "vanilla-js",
  "dialog"
 ],
 "technik_gruppen": [
  "css",
  "js",
  "gsap"
 ],
 "leistungskosten": "mittel",
 "steckbrief": {
  "beschreibung": "1) Ein Textknopf „Menü“ rechts oben öffnet eine Ebene über den ganzen Viewport. Der Knopf bleibt sichtbar und wird zu „Schließen“. 2) Die Ebene zeigt drei bis sechs Hauptlinks in sehr großer Schrift (etwa 8–14vw), oft nummeriert und mit hochgestellten Zählern. Daneben steht eine Spalte mit Kontakt, Adresse, Newsletter oder Social-Links. 3) Die Links steigen zeilenweise aus einer Maske auf (overflow: hidden, translateY 100 % → 0, gestaffelt). 4) Beim Hover erscheint ein Bild zum Link: als Thumbnail, das der Maus verzögert folgt und je nach Tempo kippt und aufhellt, als vollflächiger Hintergrund oder als kleines Bild in der Zeile. 5) Die übrigen Links treten zurück, der gezeigte steht im Fokus. 6) Geschlossen wird über den Knopf, mit Escape oder per Klick auf einen Link, meist mit Seitenübergang.",
  "warum_es_wirkt": "Die Navigation wird selbst zur Bühne und zum Markenmoment. Große Typo und Bildvorschau wecken für jeden Bereich eine Erwartung, bevor man klickt. Geschlossen ist die Navigation nur ein Wort, der Hero bleibt frei.",
  "wann_einsetzen": "Portfolios, Studios und Marken mit wenigen Hauptbereichen (bis etwa sieben) und starkem Bildmaterial. Passt zu Kulturinstitutionen, Mode und Architektur.",
  "wann_nicht": "Shops und Produktseiten mit tiefer Informationsarchitektur. Seiten, auf denen Nutzer oft zwischen vielen Unterseiten wechseln: Ein verstecktes Menü kostet jedes Mal einen Klick.",
  "varianten": [
   "Cursor-Thumbnail: Das Bild folgt der Maus per Lerp, kippt und hellt auf, je schneller die Maus ist (Codrops-Technik)",
   "Hintergrund: Das Bild füllt die ganze Fläche und wechselt per Crossfade oder Clip-Wipe",
   "Daumenleiste: kleine Bilder direkt neben den Links (Lando Norris)",
   "Menü mit Newsletter-Feld und Kontakt-CTA (Lusion)",
   "Nummerierte Einträge mit hochgestellter Anzahl (basement.studio: Showcase 26, Blog 29)"
  ],
  "umsetzung": "Overlay als <nav> in einem Container mit position: fixed; inset: 0, Zustand über aria-expanded am Knopf. Jede Zeile bekommt overflow: hidden (oder clip-path: inset(0)) und einen inneren Span, der von yPercent 100 auf 0 fährt. Braucht die Maske unten Luft für Unterlängen, muss der Startwert höher liegen (in der Demo 120). Cursor-Variante: ein Reveal-Element je Link mit pointer-events: none. Position, Rotation und filter: brightness() in requestAnimationFrame per Lerp (Faktor 0,08) nachführen. Rotation und Helligkeit aus dem horizontalen Mausweg seit dem letzten Frame ableiten. Für das Aufdecken von der Seite laufen Innenwrapper und Bild gegenläufig von ±100 % auf 0. Bilder vorladen, sonst flackert der erste Hover. Laufende Tweens beim schnellen Wechsel abbrechen (overwrite bzw. killTweensOf). Die Seite dahinter sperren (overflow: hidden am html, Lenis stoppen). Fallstrick: Geschlossen darf das Overlay nicht im Tab-Fluss liegen (inert oder visibility: hidden). Seitenübergang: In der Demo wechselt der Inhalt, solange das Overlay deckt, danach schließt es. Bei echten Seitenwechseln übernimmt das ein Cross-Document-View-Transition (@view-transition { navigation: auto; }) oder ein Router mit Übergang.",
  "mobil": "Ohne Hover wird die Bildvorschau zum festen Daumenbild je Eintrag oder entfällt. Typo etwa 12–16vw, Kontaktblock unten in Daumenreichweite.",
  "reduzierte_bewegung": "Overlay nur einblenden (opacity 150–200 ms), keine Zeilen-Slides, kein Cursor-Folgen. Das Bild steht fest und wechselt per Crossfade oder gar nicht.",
  "barrierefreiheit": "Echter <button> mit aria-expanded, aria-controls und Textlabel. Im offenen Menü den Rest der Seite inert setzen (oder <dialog> nutzen), damit der Fokus im Menü bleibt. Beim Öffnen per Tastatur Fokus auf den ersten Link. Escape schließt, der Fokus kehrt auf den Knopf zurück. Vorschaubilder sind dekorativ (alt=\"\" bzw. aria-hidden). Zähler wie „26“ für Screenreader mit verstecktem Text ergänzen („Projekte“)."
 },
 "messwerte": {
  "easing": "Bild-Reveal Sine.easeOut; Intro der Menüzeilen Expo.easeOut",
  "dauer_ms": "Bild-Show/Hide 200; Zeilen-Intro 1200",
  "stagger_ms": "60 je Zeile (pos * 0.06 s)",
  "distanz": "Bild-Innenwrapper ±100 % zur Eintrittsseite; Rotation 0 bis ±60° je nach Mausdistanz (0–100 px pro Frame)",
  "sonstiges": "Lerp-Faktor 0.08 für Position, Rotation und Helligkeit; brightness 1–4 nach Mausgeschwindigkeit. Typische Schriftgröße der Links 8–14vw (Erfahrungswert).",
  "herkunft": "beobachtet",
  "quelle": "https://tympanus.net/codrops/2020/07/01/creating-a-menu-image-animation-on-hover/"
 },
 "kurve": {
  "bezier": [
   0.16,
   1,
   0.3,
   1
  ],
  "css": "cubic-bezier(0.16, 1, 0.3, 1)",
  "name": "expo.out",
  "dauer_ms": 1200
 },
 "gesehen_bei": [
  {
   "seite": "Lusion",
   "url": "https://lusion.co",
   "auszeichnung": "Lusion v3: Awwwards Site of the Year 2023 (laut Awwwards-SOTM/SOTY-Liste)",
   "beobachtung": "Menü-Toggle wechselt zu „Close“; Menü enthält Home/About/Projects, Contact, Labs, Newsletter-Anmeldung und „Let’s talk“.",
   "art": "website",
   "browser_gemessen": true
  },
  {
   "seite": "basement.studio",
   "url": "https://basement.studio",
   "auszeichnung": "",
   "beobachtung": "Menü-Overlay mit „Close [ESC]“-Hinweis, Hauptlinks mit Zählern (Showcase 26, Blog 29), Contact-CTA.",
   "art": "website",
   "browser_gemessen": true
  },
  {
   "seite": "Lando Norris",
   "url": "https://landonorris.com",
   "auszeichnung": "",
   "beobachtung": "Menübereich mit kleinen Bild-Thumbnails neben vier Hauptlinks, Social-Icons und Business-Enquiries-Link.",
   "art": "website",
   "browser_gemessen": true
  },
  {
   "seite": "Awwwards Inspiration: Full screen menu with hover animated images",
   "url": "https://www.awwwards.com/inspiration/full-screen-menu-with-hover-animated-images",
   "auszeichnung": "Awwwards Inspiration (Element-Sammlung, keine Auszeichnung)",
   "beobachtung": "Nur Titel in Suchergebnissen gesehen (Seite für Abruf gesperrt): Vollbildmenü mit animierten Hover-Bildern.",
   "art": "website-ungeprueft"
  },
  {
   "seite": "Awwwards Inspiration: Fullscreen menu with background image on hover",
   "url": "https://www.awwwards.com/inspiration/fullscreen-menu-with-background-image-on-hover",
   "auszeichnung": "Awwwards Inspiration (Element-Sammlung)",
   "beobachtung": "Nur Titel gesehen: Hintergrundbild wechselt beim Hover.",
   "art": "website-ungeprueft"
  }
 ],
 "tutorials": [
  {
   "titel": "Codrops: Creating a Menu Image Animation on Hover",
   "url": "https://tympanus.net/codrops/2020/07/01/creating-a-menu-image-animation-on-hover/"
  },
  {
   "titel": "Osmo: Bold Full Screen Navigation (Ressource, Inhalt nicht abrufbar)",
   "url": "https://www.osmo.supply/resource/bold-full-screen-navigation"
  },
  {
   "titel": "Codrops: Fullscreen Overlay Effects (Klassiker)",
   "url": "https://tympanus.net/codrops/2014/02/06/fullscreen-overlay-effects/comment-page-1"
  }
 ],
 "kombinierbar_mit": [
  "menue-choreografie-wipe-clip",
  "menue-icon-und-label-morph",
  "live-uhr-und-standort",
  "listen-hover-bildvorschau"
 ],
 "urls": {
  "detail": "https://cecodesign.de/lab/fundus/navigation/vollbild-overlay-menue-bildvorschau/",
  "meta": "https://cecodesign.de/lab/fundus/navigation/vollbild-overlay-menue-bildvorschau/meta.json",
  "demo": "https://cecodesign.de/lab/fundus/navigation/vollbild-overlay-menue-bildvorschau/demo"
 },
 "herkunft": {
  "quelldateien": [
   "navigation.json"
  ]
 },
 "bau": {
  "status": "fertig",
  "kurz": "Ein Wort öffnet eine dunkle Bühne: Riesige Links steigen aus ihren Masken, und jeder Hover zeigt sein Bild, als kippendes Cursor-Thumbnail, als vollflächiger Wipe oder als Daumen in der Zeile.",
  "demo": true,
  "abhaengigkeiten": [
   "gsap@3.15.0"
  ],
  "werte": {
   "easing": "Zeilen, Fläche, Nebenspalte, Daumen und Knopf expo.out cubic-bezier(0.16, 1, 0.3, 1). Bild-Reveal (Cursor), Abdunkeln und UI sine.out cubic-bezier(0.61, 1, 0.88, 1). Schließen: Zeilen power3.in, Fläche expo.inOut",
   "dauer_ms": "Zeilen-Intro 1200 · Fläche (clip-path) 800 · Nebenspalte 800 · Cursor-Bild Show/Hide 200 · Hintergrund-Wipe 1000 · Hintergrund ausblenden 400 · Daumen 800 · Abdunkeln 200 · Knopf-Label und Icon 600 · Schließen: Zeilen 450, Fades 200, Fläche 700",
   "stagger_ms": "Zeilen 60 · Nebenspalte 60 · Zeilen beim Schließen 30",
   "start_ms": "Öffnen: Fläche 0 · Zeilen 150 · Nebenspalte 500. Schließen: Zeilen und Fades 0 · Fläche 250. Knopffarbe hell nach 120, dunkel nach 500",
   "distanz": "Zeilen yPercent 120 → 0 aus overflow:hidden-Maske (Maske unten 0,16em Luft für Unterlängen, darum 120 statt 100), Schließen 0 → -120. Fläche clip-path inset(0% 0% 100% 0%) → inset(0%), Schließen → inset(100% 0% 0% 0%). Nebenspalte y 16 px → 0, autoAlpha 0 → 1",
   "cursor": "ein Bild je Link, clamp(170px, 17vw, 260px), 4:5, mittig am Zeiger, hinter dem Text; Innenwrapper xPercent ±100 → 0 von der Seite, aus der die Maus kam, Bild gegenläufig. Lerp 0,08 (bei 60 Hz, mit 1 - (1 - 0,08)^dt bildratenunabhängig) für Position, Rotation und Helligkeit. Mausweg pro Frame 0–100 px → Rotation 0 bis ±60° und brightness 1–4. Linktext mix-blend-mode: difference",
   "hintergrund": "Bild vollflächig object-fit: cover, saturate(.7); clip-path inset(100% 0% 0% 0%) → inset(0%) und scale 1,12 → 1; neues Bild per z-index obenauf. Schleier linear-gradient(90deg, rgba(18,17,16,.9), rgba(18,17,16,.76) 50%, rgba(18,17,16,.88)). Verlassen der Liste: opacity 0 in 400 ms sine.out",
   "leiste": "Daumen in der Zeile vor dem Wort: Breite 0,5em → 1,3em (gezeigter Link), Höhe 0,7em, Bild 1,3em breit mittig beschnitten; width-Transition 800 ms expo.out",
   "abdunkeln": "nicht gezeigte Links opacity .26, 200 ms sine.out; zwischen zwei Zeilen bleibt der letzte Link aktiv, zurückgesetzt wird erst beim Verlassen der Liste",
   "typo": "Links clamp(46px, min(9.4vw, 13.6vh), 148px), unter 600 px clamp(40px, 14vw, 72px); Instrument Sans 500, line-height .96, letter-spacing -.05em. Nummern und Zähler Geist Mono 11 px, Zähler in Messing",
   "farben": "Overlay #121110, Text #f2eee6, Akzent Messing #e3bf78, Seite #ebe6dc",
   "reduziert": "Overlay opacity 150 ms linear in beide Richtungen; Bilder 150 ms linear überblenden, fest neben dem Wort"
  },
  "ausloeser": "klick",
  "touch": "Kein Hover: Jede Zeile zeigt ihr Daumenbild fest (0,5em), keine Cursor- und keine Hintergrundvorschau, die Variantenwahl ist ausgeblendet. Tippen auf einen Link wechselt die simulierte Seite und schließt das Menü. Links in 14vw, Kontaktblock unten in Daumenreichweite.",
  "reduziert": "Das Menü blendet in 150 ms ein und aus, ohne Zeilen-Slides und Clip-Wipe. Das Cursor-Bild steht ohne Folgen und Kippen rechts neben dem Wort und blendet in 150 ms über, der Hintergrund wechselt per 150-ms-Überblendung, die Daumen springen ohne Transition.",
  "korrekturen": {
   "beschreibung": "1) Ein Textknopf „Menü“ rechts oben öffnet eine Ebene über den ganzen Viewport. Der Knopf bleibt sichtbar und wird zu „Schließen“. 2) Die Ebene zeigt drei bis sechs Hauptlinks in sehr großer Schrift (etwa 8–14vw), oft nummeriert und mit hochgestellten Zählern. Daneben steht eine Spalte mit Kontakt, Adresse, Newsletter oder Social-Links. 3) Die Links steigen zeilenweise aus einer Maske auf (overflow: hidden, translateY 100 % → 0, gestaffelt). 4) Beim Hover erscheint ein Bild zum Link: als Thumbnail, das der Maus verzögert folgt und je nach Tempo kippt und aufhellt, als vollflächiger Hintergrund oder als kleines Bild in der Zeile. 5) Die übrigen Links treten zurück, der gezeigte steht im Fokus. 6) Geschlossen wird über den Knopf, mit Escape oder per Klick auf einen Link, meist mit Seitenübergang.",
   "warum_es_wirkt": "Die Navigation wird selbst zur Bühne und zum Markenmoment. Große Typo und Bildvorschau wecken für jeden Bereich eine Erwartung, bevor man klickt. Geschlossen ist die Navigation nur ein Wort, der Hero bleibt frei.",
   "wann_einsetzen": "Portfolios, Studios und Marken mit wenigen Hauptbereichen (bis etwa sieben) und starkem Bildmaterial. Passt zu Kulturinstitutionen, Mode und Architektur.",
   "wann_nicht": "Shops und Produktseiten mit tiefer Informationsarchitektur. Seiten, auf denen Nutzer oft zwischen vielen Unterseiten wechseln: Ein verstecktes Menü kostet jedes Mal einen Klick.",
   "varianten": [
    "Cursor-Thumbnail: Das Bild folgt der Maus per Lerp, kippt und hellt auf, je schneller die Maus ist (Codrops-Technik)",
    "Hintergrund: Das Bild füllt die ganze Fläche und wechselt per Crossfade oder Clip-Wipe",
    "Daumenleiste: kleine Bilder direkt neben den Links (Lando Norris)",
    "Menü mit Newsletter-Feld und Kontakt-CTA (Lusion)",
    "Nummerierte Einträge mit hochgestellter Anzahl (basement.studio: Showcase 26, Blog 29)"
   ],
   "umsetzung": "Overlay als <nav> in einem Container mit position: fixed; inset: 0, Zustand über aria-expanded am Knopf. Jede Zeile bekommt overflow: hidden (oder clip-path: inset(0)) und einen inneren Span, der von yPercent 100 auf 0 fährt. Braucht die Maske unten Luft für Unterlängen, muss der Startwert höher liegen (in der Demo 120). Cursor-Variante: ein Reveal-Element je Link mit pointer-events: none. Position, Rotation und filter: brightness() in requestAnimationFrame per Lerp (Faktor 0,08) nachführen. Rotation und Helligkeit aus dem horizontalen Mausweg seit dem letzten Frame ableiten. Für das Aufdecken von der Seite laufen Innenwrapper und Bild gegenläufig von ±100 % auf 0. Bilder vorladen, sonst flackert der erste Hover. Laufende Tweens beim schnellen Wechsel abbrechen (overwrite bzw. killTweensOf). Die Seite dahinter sperren (overflow: hidden am html, Lenis stoppen). Fallstrick: Geschlossen darf das Overlay nicht im Tab-Fluss liegen (inert oder visibility: hidden). Seitenübergang: In der Demo wechselt der Inhalt, solange das Overlay deckt, danach schließt es. Bei echten Seitenwechseln übernimmt das ein Cross-Document-View-Transition (@view-transition { navigation: auto; }) oder ein Router mit Übergang.",
   "mobil": "Ohne Hover wird die Bildvorschau zum festen Daumenbild je Eintrag oder entfällt. Typo etwa 12–16vw, Kontaktblock unten in Daumenreichweite.",
   "reduzierte_bewegung": "Overlay nur einblenden (opacity 150–200 ms), keine Zeilen-Slides, kein Cursor-Folgen. Das Bild steht fest und wechselt per Crossfade oder gar nicht.",
   "barrierefreiheit": "Echter <button> mit aria-expanded, aria-controls und Textlabel. Im offenen Menü den Rest der Seite inert setzen (oder <dialog> nutzen), damit der Fokus im Menü bleibt. Beim Öffnen per Tastatur Fokus auf den ersten Link. Escape schließt, der Fokus kehrt auf den Knopf zurück. Vorschaubilder sind dekorativ (alt=\"\" bzw. aria-hidden). Zähler wie „26“ für Screenreader mit verstecktem Text ergänzen („Projekte“)."
  },
  "geprueft": "31.10.2026",
  "notiz": "Erfundenes Leipziger Büro „Lindner & Kiesel“ mit Arbeiten aus medien/. Das Menü öffnet nach dem Laden einmal von selbst. Umschalter Cursor / Hintergrund / Leiste; Cursor nutzt die Codrops-Messwerte (Lerp 0,08, 0–60°, brightness 1–4), der Linktext liegt mit mix-blend-mode: difference über dem Bild. Ein Klick auf einen Link simuliert den Seitenwechsel: Der Seiteninhalt wechselt unter dem Overlay, dann schließt es. Tastatur: Fokus öffnet das Bild fest neben dem Wort. Vorführung: gedachter Zeiger öffnet, fährt die Zeilen ab, klickt einen Link, dann folgt die nächste Variante (je etwa 9 s). Bilder 01.11.2026: eigene Bilder statt Portfolio. Zugang 02.11.2026: --leise Alpha .58 → .66 (5,4:1 auf #ebe6dc), --messing-dunkel #8a6420 → #7f5c1d (4,9:1). Kontaktlinks im Menü mit padding-block 2px und margin-block −2px: Zielhöhe 25 px bei gleichem Satz. Kontrastmodus: Knöpfe mit Rahmen ButtonText. Offen (Fehlalarm): die übrigen Kontrasttreffer misst die Prüfung während des automatisch öffnenden Menüs, wenn die dunkle Fläche (.grund, clip-path) noch nicht im Ebenenstapel liegt."
 }
}
