feat: centralize layout cta path defaults

This commit is contained in:
syntaxbullet
2026-06-22 13:09:20 +02:00
parent c389997f06
commit c5feeaee16

View File

@@ -380,12 +380,12 @@ const Layout: React.FC<LayoutProps> = ({ children, header = defaultHeaderData, f
</div> </div>
<div style={{ display:'flex', flexDirection:'column', gap:10 }}> <div style={{ display:'flex', flexDirection:'column', gap:10 }}>
<Link to={headerCtas[0]?.path || '/teilnahme#bewerben'} onClick={() => setOpen(false)} <Link to={headerCtas[0]?.path || fallbackHeaderCtas[0].path} onClick={() => setOpen(false)}
style={{ display:'inline-block', background:'#EFBF04', color:'#101828', fontSize: 15, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', padding:'11px 24px', textDecoration:'none', transition:'background .2s, box-shadow .2s', borderRadius:0, fontFamily:FF_DISPLAY }} style={{ display:'inline-block', background:'#EFBF04', color:'#101828', fontSize: 15, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', padding:'11px 24px', textDecoration:'none', transition:'background .2s, box-shadow .2s', borderRadius:0, fontFamily:FF_DISPLAY }}
onMouseEnter={e=>{ e.currentTarget.style.background='#FFD130'; e.currentTarget.style.boxShadow='0 0 18px rgba(239,191,4,0.65), 0 0 40px rgba(239,191,4,0.3)'; }} onMouseEnter={e=>{ e.currentTarget.style.background='#FFD130'; e.currentTarget.style.boxShadow='0 0 18px rgba(239,191,4,0.65), 0 0 40px rgba(239,191,4,0.3)'; }}
onMouseLeave={e=>{ e.currentTarget.style.background='#EFBF04'; e.currentTarget.style.boxShadow='none'; }} onMouseLeave={e=>{ e.currentTarget.style.background='#EFBF04'; e.currentTarget.style.boxShadow='none'; }}
>{headerCtas[0]?.label || fallbackHeaderCtas[0].label}</Link> >{headerCtas[0]?.label || fallbackHeaderCtas[0].label}</Link>
<Link to={headerCtas[1]?.path || '/mitglied-werden'} onClick={() => setOpen(false)} <Link to={headerCtas[1]?.path || fallbackHeaderCtas[1].path} onClick={() => setOpen(false)}
style={{ display:'inline-block', background:'transparent', color:MUTED, fontSize: 15, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', padding:'10px 24px', textDecoration:'none', transition:'border-color .2s, color .2s', borderRadius:0, fontFamily:FF_DISPLAY, border:'1.5px solid rgba(239,191,4,0.35)' }} style={{ display:'inline-block', background:'transparent', color:MUTED, fontSize: 15, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', padding:'10px 24px', textDecoration:'none', transition:'border-color .2s, color .2s', borderRadius:0, fontFamily:FF_DISPLAY, border:'1.5px solid rgba(239,191,4,0.35)' }}
onMouseEnter={e=>{ e.currentTarget.style.borderColor='#EFBF04'; e.currentTarget.style.color='#EFBF04'; }} onMouseEnter={e=>{ e.currentTarget.style.borderColor='#EFBF04'; e.currentTarget.style.color='#EFBF04'; }}
onMouseLeave={e=>{ e.currentTarget.style.borderColor='rgba(239,191,4,0.35)'; e.currentTarget.style.color=MUTED; }} onMouseLeave={e=>{ e.currentTarget.style.borderColor='rgba(239,191,4,0.35)'; e.currentTarget.style.color=MUTED; }}
@@ -393,7 +393,7 @@ const Layout: React.FC<LayoutProps> = ({ children, header = defaultHeaderData, f
<div style={{ height:'1px', background:'rgba(239,191,4,0.12)', margin:'4px 0' }} /> <div style={{ height:'1px', background:'rgba(239,191,4,0.12)', margin:'4px 0' }} />
<Link to={headerCtas[2]?.path || '/formular-hochladen'} onClick={() => setOpen(false)} <Link to={headerCtas[2]?.path || fallbackHeaderCtas[2].path} onClick={() => setOpen(false)}
style={{ style={{
display:'flex', alignItems:'center', gap:10, display:'flex', alignItems:'center', gap:10,
background:'rgba(255,255,255,0.04)', background:'rgba(255,255,255,0.04)',
@@ -557,13 +557,13 @@ const Layout: React.FC<LayoutProps> = ({ children, header = defaultHeaderData, f
{/* CTAs */} {/* CTAs */}
<div style={{ padding:'24px 24px 8px', display:'flex', flexDirection:'column', gap:12 }}> <div style={{ padding:'24px 24px 8px', display:'flex', flexDirection:'column', gap:12 }}>
<Link to={headerCtas[0]?.path || '/teilnahme#bewerben'} onClick={() => setMobileOpen(false)} <Link to={headerCtas[0]?.path || fallbackHeaderCtas[0].path} onClick={() => setMobileOpen(false)}
style={{ display:'flex', alignItems:'center', justifyContent:'center', minHeight:52, background:GOLD, color:'#101828', fontSize:14, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', textDecoration:'none', fontFamily:FF_DISPLAY }} style={{ display:'flex', alignItems:'center', justifyContent:'center', minHeight:52, background:GOLD, color:'#101828', fontSize:14, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', textDecoration:'none', fontFamily:FF_DISPLAY }}
>{headerCtas[0]?.label || fallbackHeaderCtas[0].label}</Link> >{headerCtas[0]?.label || fallbackHeaderCtas[0].label}</Link>
<Link to={headerCtas[1]?.path || '/mitglied-werden'} onClick={() => setMobileOpen(false)} <Link to={headerCtas[1]?.path || fallbackHeaderCtas[1].path} onClick={() => setMobileOpen(false)}
style={{ display:'flex', alignItems:'center', justifyContent:'center', minHeight:50, background:'transparent', color:'#fff', fontSize:14, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', textDecoration:'none', fontFamily:FF_DISPLAY, border:`1.5px solid ${LINE}` }} style={{ display:'flex', alignItems:'center', justifyContent:'center', minHeight:50, background:'transparent', color:'#fff', fontSize:14, fontWeight:700, textTransform:'uppercase', letterSpacing:'.12em', textDecoration:'none', fontFamily:FF_DISPLAY, border:`1.5px solid ${LINE}` }}
>{headerCtas[1]?.label || fallbackHeaderCtas[1].label}</Link> >{headerCtas[1]?.label || fallbackHeaderCtas[1].label}</Link>
<Link to={headerCtas[2]?.path || '/formular-hochladen'} onClick={() => setMobileOpen(false)} <Link to={headerCtas[2]?.path || fallbackHeaderCtas[2].path} onClick={() => setMobileOpen(false)}
style={{ display:'flex', alignItems:'center', justifyContent:'center', gap:8, minHeight:46, background:'none', color:'rgba(255,255,255,0.5)', fontSize:11, fontWeight:700, textTransform:'uppercase', letterSpacing:'.14em', textDecoration:'none', fontFamily:FF_DISPLAY, border:'1px dashed rgba(255,255,255,0.2)' }} style={{ display:'flex', alignItems:'center', justifyContent:'center', gap:8, minHeight:46, background:'none', color:'rgba(255,255,255,0.5)', fontSize:11, fontWeight:700, textTransform:'uppercase', letterSpacing:'.14em', textDecoration:'none', fontFamily:FF_DISPLAY, border:'1px dashed rgba(255,255,255,0.2)' }}
><Upload size={13} strokeWidth={2} /> {headerCtas[2]?.label || fallbackHeaderCtas[2].label}</Link> ><Upload size={13} strokeWidth={2} /> {headerCtas[2]?.label || fallbackHeaderCtas[2].label}</Link>
</div> </div>
@@ -745,7 +745,7 @@ const Layout: React.FC<LayoutProps> = ({ children, header = defaultHeaderData, f
gap: 8, gap: 8,
}}> }}>
<Link <Link
to={footerCtas[0]?.path || '/teilnahme#bewerben'} to={footerCtas[0]?.path || fallbackFooterCtas[0].path}
style={{ style={{
fontFamily: FF_DISPLAY, fontFamily: FF_DISPLAY,
fontSize: 16, fontSize: 16,
@@ -771,7 +771,7 @@ const Layout: React.FC<LayoutProps> = ({ children, header = defaultHeaderData, f
>{footerCtas[0]?.label || fallbackFooterCtas[0].label}</Link> >{footerCtas[0]?.label || fallbackFooterCtas[0].label}</Link>
<Link <Link
to={footerCtas[1]?.path || '/mitglied-werden'} to={footerCtas[1]?.path || fallbackFooterCtas[1].path}
style={{ style={{
fontFamily: FF_DISPLAY, fontFamily: FF_DISPLAY,
fontSize: 16, fontSize: 16,
@@ -797,7 +797,7 @@ const Layout: React.FC<LayoutProps> = ({ children, header = defaultHeaderData, f
>{footerCtas[1]?.label || fallbackFooterCtas[1].label}</Link> >{footerCtas[1]?.label || fallbackFooterCtas[1].label}</Link>
<Link <Link
to={footerCtas[2]?.path || '/netzwerk#sponsoring'} to={footerCtas[2]?.path || fallbackFooterCtas[2].path}
style={{ style={{
fontFamily: FF_DISPLAY, fontFamily: FF_DISPLAY,
fontSize: 16, fontSize: 16,