10-04-2026

This commit is contained in:
Kevin Adametz 2026-04-10 17:18:17 +02:00
parent 4d6b4930b2
commit 4bb89aad8c
836 changed files with 52961 additions and 5950 deletions

View file

@ -8,15 +8,42 @@
<title>@yield('title', $domainName ?? config('app.name', 'Laravel'))</title>
<!-- Domain-spezifisches Favicon -->
<link rel="icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
<meta name="description" content="@yield('meta_description', 'B2in Connecting Design and Property. Exklusive Immobilien in Dubai & europäisches Einrichtungsnetzwerk.')">
@hasSection('meta_image')
<meta property="og:image" content="@yield('meta_image')">
@else
<meta property="og:image" content="{{ asset('img/assets/b2in-og-default.jpg') }}">
@endif
<meta property="og:title" content="@yield('title', $domainName ?? config('app.name', 'Laravel'))">
<meta property="og:description" content="@yield('meta_description', 'B2in Connecting Design and Property. Exklusive Immobilien in Dubai & europäisches Einrichtungsnetzwerk.')">
<meta property="og:type" content="website">
<meta property="og:url" content="{{ url()->current() }}">
<meta property="og:locale" content="de_DE">
<meta name="twitter:card" content="summary_large_image">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
@stack('meta')
<!-- Favicons (wie Backend) -->
<link rel="apple-touch-icon" sizes="57x57" href="/favicon/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/favicon/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/favicon/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/favicon/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/favicon/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/favicon/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/favicon/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/favicon/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/favicon/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png">
<link rel="shortcut icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
<link rel="manifest" href="/favicon/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/favicon/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
@php
$primaryFont = \App\Helpers\ThemeHelper::getPrimaryFont();
$secondaryFont = \App\Helpers\ThemeHelper::getSecondaryFont();
$theme = config('app.theme', 'b2in');
@endphp
@ -35,63 +62,59 @@
let topbarHeight = topbar.offsetHeight;
let isHeaderSticky = false;
let ticking = false;
function updateHeaderPosition() {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
if (scrollTop >= topbarHeight && !isHeaderSticky) {
// TopBar ist nicht mehr sichtbar - Header wird sticky
header.classList.remove('header-normal');
header.classList.add('header-sticky');
isHeaderSticky = true;
} else if (scrollTop < topbarHeight && isHeaderSticky) {
// TopBar ist wieder sichtbar - Header wird normal
header.classList.remove('header-sticky');
header.classList.add('header-normal');
isHeaderSticky = false;
}
ticking = false;
}
// Initial check
updateHeaderPosition();
// Listen for scroll events
window.addEventListener('scroll', updateHeaderPosition);
window.addEventListener('scroll', function() {
if (!ticking) {
requestAnimationFrame(updateHeaderPosition);
ticking = true;
}
}, { passive: true });
// Listen for resize events (in case topbar height changes)
window.addEventListener('resize', function() {
topbarHeight = topbar.offsetHeight;
updateHeaderPosition();
});
}, { passive: true });
});
</script>
<!-- Additional Styles -->
@stack('styles')
<!-- Domain-spezifische Fonts -->
@if ($primaryFont === 'Inter' && $secondaryFont === 'IBM Plex Sans')
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ibm-plex-sans:400,500,600,700"
rel="stylesheet" />
@elseif($primaryFont === 'Inter' && $secondaryFont === 'Merriweather')
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|merriweather:400,700" rel="stylesheet" />
@elseif($primaryFont === 'Inter' && $secondaryFont === 'Ephesis')
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ephesis:400" rel="stylesheet" />
@elseif($primaryFont === 'Inter' && $secondaryFont === 'EB Garamond')
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|eb-garamond:400,500,600,700"
rel="stylesheet" />
@else
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ibm-plex-sans:400,500,600,700"
rel="stylesheet" />
@endif
</head>
<body class="antialiased bg-background text-foreground">
<!-- TopBar - statisch oben -->
<livewire:web.components.ui.top-bar />
{{-- GTM noscript (nur bei GTM-Nutzung) --}}
<x-cookie-consent::gtm-noscript />
<!-- Announcement Bar -->
<livewire:web.components.ui.announcement-bar />
{{-- TopBar (Backup: Sprachwechsel & Social Icons folgt später) --}}
{{-- <livewire:web.components.ui.top-bar /> --}}
@yield('content')
{{-- Cookie Consent Manager (vor Livewire-Scripts) --}}
<x-cookie-consent::manager />
<!-- Additional Scripts -->
@stack('scripts')
</body>