Ein fertiger, kopierfähiger Header mit Milchglas-Verdichtung beim Scrollen
(JS setzt ab ~12 px die Klasse .scrolled): Blur, feine Linie, weicher Schatten. In der Leiste
unter der Vorschau lassen sich Layout, Logo, Höhe,
Menü-Hover, Scroll-Stil (Glas/Solid) und eine optionale Ankündigungs-Leiste live umstellen — im kopierten Code steuern das data-Attribute am
<header>. Im Kasten mit dem Beispiel-Hero nach unten scrollen. Vorbild: Bernstein, Hauszeit.
Überschrift des Hero-Bereichs
Kurzer Beispieltext unter dem Header — er zeigt nur, wie der Header über echtem Inhalt wirkt und beim Scrollen zu Milchglas wird.
Beispiel-Buttonweiterer Beispielinhalt …
weiterer Beispielinhalt …
weiterer Beispielinhalt …
<!-- Achsen am <header>:
data-layout = rechts | mittig | burger | zentriert
data-marke = logoname | logo
data-hoehe = kompakt | standard | gross
data-hover = underline | zoom | farbe (Hover der Menüpunkte)
data-scroll = glas | solid (Verhalten beim Scrollen)
data-hb = klassik | spin | squeeze | pfeil (Hamburger-Icon-Animation)
data-menu = ausklappen | einblenden | vollbild (Aufklappen des Mobil-Menüs)
data-mlogo = links | mittig | rechts (Logo-Position mobil)
data-mburger= links | rechts (Menü-Knopf-Position mobil; nie dieselbe Seite wie das Logo) -->
<!-- Optional: Ankündigungs-Leiste ÜBER dem Header (einfach weglassen, wenn nicht gewünscht) -->
<div class="site-head__annbar" role="region" aria-label="Ankündigung">
<span class="site-head__annbar-text">Neu: kostenlose Erstberatung im Juli — <a href="#">jetzt Termin sichern</a></span>
<button type="button" class="site-head__annbar-close" aria-label="Hinweis schließen">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18"/></svg>
</button>
</div>
<header class="site-head" data-layout="rechts" data-marke="logoname" data-hoehe="standard" data-hover="underline" data-hb="klassik" data-menu="ausklappen" data-mlogo="links" data-mburger="rechts" data-scroll="glas">
<a href="#" class="site-head__brand" aria-label="Marke – zur Startseite">
<span class="site-head__mark" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20V9l8-5 8 5v11"/><path d="M9 20v-6h6v6"/></svg>
</span>
<span class="site-head__name">Marke</span>
</a>
<nav class="site-head__nav" aria-label="Hauptmenü"><a href="#">Start</a><a href="#">Leistungen</a><a href="#">Referenzen</a><a href="#">Kontakt</a></nav>
<!-- geteilte Nav nur für data-layout="zentriert" (Logo mittig, nur Symbol) -->
<nav class="site-head__navside site-head__navside--left" aria-label="Menü links"><a href="#">Start</a><a href="#">Leistungen</a></nav>
<nav class="site-head__navside site-head__navside--right" aria-label="Menü rechts"><a href="#">Referenzen</a><a href="#">Kontakt</a></nav>
<a href="#" class="site-head__cta">Anfragen</a>
<button type="button" class="site-head__burger" aria-label="Menü öffnen" aria-expanded="false" aria-controls="site-drawer">
<span class="site-head__hb" aria-hidden="true"><span></span><span></span><span></span></span>
</button>
<div class="site-head__drawer" id="site-drawer">
<a href="#">Start</a><a href="#">Leistungen</a><a href="#">Referenzen</a><a href="#">Kontakt</a>
</div>
</header>
<style>
/* Ein Header, per data-Attribut umschaltbar. Akzentfarbe über --akzent. In echten
Projekten position:sticky am Fenster (kein Scrollbox-Wrapper wie in der Demo). */
/* Optionale Ankündigungs-Leiste über dem Header */
.site-head__annbar{display:flex;align-items:center;gap:.8rem;padding:.55rem 1.1rem;font-size:.82rem;color:#0d0d10;
background:linear-gradient(90deg,var(--akzent,#7c87ff),color-mix(in srgb,var(--akzent,#7c87ff) 62%,#fff))}
.site-head__annbar-text{flex:1;min-width:0;font-weight:600}
.site-head__annbar-text a{color:#0d0d10;text-decoration:underline;text-underline-offset:2px;font-weight:700}
.site-head__annbar-close{flex:0 0 auto;width:26px;height:26px;display:grid;place-items:center;border:0;cursor:pointer;
border-radius:7px;background:rgba(13,13,16,.12);color:#0d0d10;transition:background .2s ease}
.site-head__annbar-close:hover,.site-head__annbar-close:focus-visible{background:rgba(13,13,16,.24);outline:none}
.site-head__annbar-close:focus-visible{outline:2px solid #0d0d10;outline-offset:2px}
.site-head__annbar-close svg{width:15px;height:15px}
.site-head__annbar.is-hidden{display:none}
.site-head{position:sticky;top:0;z-index:50;display:grid;align-items:center;gap:.5rem 1.2rem;
--sh-pad:.95rem 1.4rem;--sh-mark:38px;--sh-nav:#a1a1aa;--sh-nav-hover:#f4f4f5;padding:var(--sh-pad);
background:transparent;border-bottom:1px solid transparent;
transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,
-webkit-backdrop-filter .3s ease,backdrop-filter .3s ease}
.site-head.scrolled{background:rgba(22,22,26,.6);
-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);
border-bottom-color:#2c2c34;box-shadow:0 8px 24px -18px rgba(0,0,0,.85)}
/* Scroll-Stil "solid": feste Fläche + Schatten statt Milchglas (data-scroll="solid") */
.site-head[data-scroll="solid"]{background:#1c1c22;border-bottom-color:#26262c}
.site-head[data-scroll="solid"].scrolled{background:#1c1c22;
-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 6px 22px rgba(0,0,0,.55)}
.site-head__brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;
color:#f4f4f5;font-weight:700;font-size:1rem;white-space:nowrap}
.site-head__mark{width:var(--sh-mark);height:var(--sh-mark);flex:0 0 auto;border-radius:10px;
display:grid;place-items:center;overflow:hidden;color:#fff;
background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(0,0,0,.16)),var(--akzent,#7c87ff);
border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 12px rgba(0,0,0,.35)}
.site-head__mark svg{width:56%;height:56%}
.site-head__mark:has(img){background:none;box-shadow:none;border-color:transparent;padding:2px}
.site-head__mark img{width:100%;height:100%;object-fit:contain}
.site-head__nav{display:inline-flex;gap:1.4rem;font-size:.86rem}
.site-head__navside{display:none;gap:1.4rem;font-size:.86rem}
/* Menü-Links (Haupt- und geteilte Nav) */
.site-head nav a{position:relative;color:var(--sh-nav);text-decoration:none;padding-bottom:2px;
transition:color .2s ease,transform .2s ease}
.site-head nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
background:var(--akzent,#7c87ff);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
.site-head nav a:hover,.site-head nav a:focus-visible{color:var(--sh-nav-hover);outline:none}
.site-head nav a:focus-visible{outline:2px solid var(--akzent,#7c87ff);outline-offset:4px;border-radius:2px}
/* Menü-Hover-Achse (data-hover): Unterstrich · Zoom · Farbe */
.site-head[data-hover="underline"] nav a:hover::after,
.site-head[data-hover="underline"] nav a:focus-visible::after{transform:scaleX(1)}
.site-head[data-hover="zoom"] nav a:hover,
.site-head[data-hover="zoom"] nav a:focus-visible{transform:scale(1.09)}
/* "farbe" = adaptiver Hintergrund beim Hover (hell auf dunkel, dunkel auf hell) — auf hellen Seiten --sh-nav-bg:#141418;--sh-nav-ink:#fff setzen */
.site-head[data-hover="farbe"] nav a{padding:.34rem .6rem;border-radius:8px;transition:background-color .2s ease,color .2s ease}
.site-head[data-hover="farbe"] nav a:hover,
.site-head[data-hover="farbe"] nav a:focus-visible{background:var(--sh-nav-bg,#f4f4f5);color:var(--sh-nav-ink,#141418)}
.site-head__cta{justify-self:end;font-size:.82rem;font-weight:600;color:#0d0d10;text-decoration:none;
padding:.55rem 1rem;border-radius:99px;white-space:nowrap;background:var(--akzent,#7c87ff);transition:filter .2s ease}
.site-head__cta:hover,.site-head__cta:focus-visible{filter:brightness(1.1);outline:none}
.site-head__cta:focus-visible{outline:2px solid var(--akzent,#7c87ff);outline-offset:2px}
.site-head__burger{justify-self:end;width:44px;height:44px;display:none;place-items:center;touch-action:manipulation;
border:1px solid #2c2c34;border-radius:10px;background:#1c1c22;color:#f4f4f5;cursor:pointer;transition:background .2s ease}
.site-head__burger:hover{background:#24242c}
.site-head__burger:focus-visible{outline:2px solid var(--akzent,#7c87ff);outline-offset:2px}
.site-head__burger svg{width:20px;height:20px}
.site-head__drawer{position:absolute;left:0;right:0;top:100%;z-index:40;display:none;flex-direction:column;gap:.2rem;
padding:.6rem;background:rgba(22,22,26,.97);border-bottom:1px solid #2c2c34;
-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.site-head__drawer a{color:#e4e4e7;text-decoration:none;font-size:.9rem;padding:.7rem .8rem;border-radius:8px}
.site-head__drawer a:hover,.site-head__drawer a:focus-visible{background:rgba(255,255,255,.06);color:#fff;outline:none}
.site-head__drawer a:focus-visible{outline:2px solid var(--akzent,#7c87ff);outline-offset:-2px}
.site-head.is-open .site-head__drawer{display:flex}
/* ── Mobil-Menü: Hamburger-Stil (data-hb) + Aufklapp-Animation (data-menu) ── */
.site-head__hb{position:relative;width:22px;height:16px;pointer-events:none}
.site-head__hb span{position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor;
transition:transform .3s cubic-bezier(.4,0,.2,1),width .3s ease,opacity .2s ease,top .3s ease}
.site-head__hb span:nth-child(1){top:0}.site-head__hb span:nth-child(2){top:7px}.site-head__hb span:nth-child(3){top:14px}
.site-head[data-hb="klassik"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(1){top:7px;transform:rotate(45deg)}
.site-head[data-hb="klassik"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(2){opacity:0}
.site-head[data-hb="klassik"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(3){top:7px;transform:rotate(-45deg)}
.site-head[data-hb="spin"] .site-head__hb{transition:transform .42s cubic-bezier(.4,0,.2,1)}
.site-head[data-hb="spin"] .site-head__burger[aria-expanded="true"] .site-head__hb{transform:rotate(180deg)}
.site-head[data-hb="spin"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(1){top:7px;transform:rotate(45deg)}
.site-head[data-hb="spin"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(2){opacity:0}
.site-head[data-hb="spin"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(3){top:7px;transform:rotate(-45deg)}
.site-head[data-hb="squeeze"] .site-head__hb span{transition-timing-function:cubic-bezier(.5,-.4,.35,1.4);transition-duration:.34s}
.site-head[data-hb="squeeze"] .site-head__hb span:nth-child(2){transition-delay:.05s}
.site-head[data-hb="squeeze"] .site-head__hb span:nth-child(3){transition-delay:.1s}
.site-head[data-hb="squeeze"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(1){top:7px;transform:rotate(45deg)}
.site-head[data-hb="squeeze"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(2){opacity:0}
.site-head[data-hb="squeeze"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(3){top:7px;transform:rotate(-45deg)}
.site-head[data-hb="pfeil"] .site-head__hb span{transform-origin:left center}
.site-head[data-hb="pfeil"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(1){top:7px;width:11px;transform:rotate(-45deg)}
.site-head[data-hb="pfeil"] .site-head__burger[aria-expanded="true"] .site-head__hb span:nth-child(3){top:7px;width:11px;transform:rotate(45deg)}
/* Aufklapp-Animation: Drawer immer gerendert, per Sichtbarkeit/Transform gesteuert (display animiert nicht) */
.site-head__drawer{display:flex;visibility:hidden;pointer-events:none;opacity:0;
transition:opacity .28s ease,transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}
.site-head.is-open .site-head__drawer{visibility:visible;pointer-events:auto;opacity:1}
.site-head[data-menu="ausklappen"] .site-head__drawer{transform:translateY(-10px)}
.site-head[data-menu="ausklappen"].is-open .site-head__drawer{transform:translateY(0)}
.site-head[data-menu="einblenden"] .site-head__drawer{transform:scaleY(.96);transform-origin:top}
.site-head[data-menu="einblenden"].is-open .site-head__drawer{transform:scaleY(1)}
.site-head[data-menu="vollbild"] .site-head__drawer{position:fixed;inset:0;z-index:60;transform:none;
justify-content:center;align-items:center;gap:.4rem;padding:2rem;border-bottom:0;
background:rgba(13,13,16,.62);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}
.site-head[data-menu="vollbild"] .site-head__drawer a{font-size:1.35rem;padding:.6rem 1.2rem}
.site-head[data-menu="vollbild"] .site-head__brand,.site-head[data-menu="vollbild"] .site-head__burger{position:relative;z-index:61}
@media (prefers-reduced-motion:reduce){.site-head__hb span,.site-head[data-hb="spin"] .site-head__hb,.site-head__drawer{transition:none}}
/* Layout */
.site-head[data-layout="rechts"]{grid-template-columns:auto 1fr auto}
.site-head[data-layout="rechts"] .site-head__nav{grid-column:3;justify-self:end}
.site-head[data-layout="rechts"] .site-head__cta{display:none}
.site-head[data-layout="mittig"]{grid-template-columns:1fr auto 1fr}
.site-head[data-layout="mittig"] .site-head__brand{grid-column:1;grid-row:1;justify-self:start}
.site-head[data-layout="mittig"] .site-head__nav{grid-column:2;grid-row:1;justify-self:center}
.site-head[data-layout="mittig"] .site-head__cta{grid-column:3;grid-row:1;justify-self:end}
.site-head[data-layout="burger"]{grid-template-columns:1fr auto}
.site-head[data-layout="burger"] .site-head__nav,.site-head[data-layout="burger"] .site-head__cta{display:none}
.site-head[data-layout="burger"] .site-head__burger{display:grid}
.site-head[data-layout="zentriert"]{grid-template-columns:1fr auto 1fr;column-gap:1.8rem}
.site-head[data-layout="zentriert"] .site-head__nav,.site-head[data-layout="zentriert"] .site-head__cta{display:none}
.site-head[data-layout="zentriert"] .site-head__name{display:none}
.site-head[data-layout="zentriert"] .site-head__navside--left{display:inline-flex;grid-column:1;grid-row:1;justify-self:end}
.site-head[data-layout="zentriert"] .site-head__brand{grid-column:2;grid-row:1;justify-self:center}
.site-head[data-layout="zentriert"] .site-head__navside--right{display:inline-flex;grid-column:3;grid-row:1;justify-self:start}
/* Logo */
.site-head[data-marke="logo"] .site-head__name{display:none}
/* Höhe */
.site-head[data-hoehe="kompakt"]{--sh-pad:.55rem 1.3rem;--sh-mark:32px}
.site-head[data-hoehe="gross"]{--sh-pad:1.35rem 1.5rem;--sh-mark:46px}
/* Mobil: einzeilige Layouts weichen auf den Burger aus */
@media (max-width:640px){
.site-head[data-layout="rechts"],.site-head[data-layout="mittig"],
.site-head[data-layout="zentriert"]{grid-template-columns:1fr auto}
.site-head[data-layout="rechts"] .site-head__nav,
.site-head[data-layout="mittig"] .site-head__nav,
.site-head[data-layout="mittig"] .site-head__cta,
.site-head[data-layout="zentriert"] .site-head__navside--left,
.site-head[data-layout="zentriert"] .site-head__navside--right{display:none}
.site-head[data-layout="zentriert"] .site-head__brand{grid-column:1;justify-self:start}
.site-head[data-layout="rechts"] .site-head__burger,
.site-head[data-layout="mittig"] .site-head__burger,
.site-head[data-layout="zentriert"] .site-head__burger{display:grid}
}
/* ── Mobil-Anordnung: Logo links/mittig/rechts · Menü-Knopf links/rechts (data-mlogo/data-mburger) ── */
@media (max-width:640px){
.site-head[data-layout="rechts"],.site-head[data-layout="mittig"],
.site-head[data-layout="zentriert"],.site-head[data-layout="burger"]{grid-template-columns:1fr auto 1fr}
.site-head[data-layout] .site-head__brand{grid-row:1;grid-column:1;justify-self:start}
.site-head[data-layout][data-mlogo="mittig"] .site-head__brand{grid-column:2;justify-self:center}
.site-head[data-layout][data-mlogo="rechts"] .site-head__brand{grid-column:3;justify-self:end}
.site-head[data-layout] .site-head__burger{grid-row:1;grid-column:3;justify-self:end}
.site-head[data-layout][data-mburger="links"] .site-head__burger{grid-column:1;justify-self:start}
}
@media (prefers-reduced-motion:reduce){
.site-head,.site-head nav a,.site-head nav a::after,.site-head__cta,.site-head__burger{transition:none}
}
</style>
<script>
/* Milchglas beim Scrollen + Burger-Menü. Im Projekt am Fenster-Scroll hängen. */
(function(){
var head=document.querySelector('.site-head');
if(!head) return;
window.addEventListener('scroll',function(){head.classList.toggle('scrolled',window.scrollY>12);},{passive:true});
var burger=head.querySelector('.site-head__burger');
if(burger) burger.addEventListener('click',function(){
var open=head.classList.toggle('is-open');
burger.setAttribute('aria-expanded',open?'true':'false');
});
var annClose=document.querySelector('.site-head__annbar-close');
if(annClose) annClose.addEventListener('click',function(){
var bar=annClose.closest('.site-head__annbar');
if(bar) bar.classList.add('is-hidden');
/* Im Projekt merken: localStorage.setItem('annbar-dismissed','1'); */
});
})();
</script>