89 lines
3.3 KiB
PHP
89 lines
3.3 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
|
<meta name="description" content="@yield('meta_description', $domainName ?? config('app.name', 'Laravel'))">
|
|
|
|
<title>@yield('title', $domainName ?? config('app.name', 'Laravel'))</title>
|
|
|
|
<!-- Domain-spezifisches Favicon -->
|
|
<link rel="icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
|
|
|
|
<!-- Fonts -->
|
|
<link rel="preconnect" href="https://fonts.bunny.net">
|
|
|
|
@php
|
|
$font = \App\Helpers\ThemeHelper::getFont();
|
|
$theme = config('app.theme', 'businessportal24');
|
|
@endphp
|
|
|
|
@vite([\App\Helpers\ThemeHelper::getThemeCssPath(), 'resources/js/app.js'], $domainConfig['assets_dir'] ?? 'build/web')
|
|
|
|
@if (in_array(($theme ?? null), ['businessportal24', 'presseecho', 'presseportale'], true))
|
|
<link rel="preconnect" href="https://fonts.bunny.net" crossorigin>
|
|
<link href="https://fonts.bunny.net/css?family=inter-tight:400,500,600,700|source-serif-4:400,500,600,700|jetbrains-mono:400,500,600" rel="stylesheet" />
|
|
@endif
|
|
|
|
<!-- Sticky Header Script -->
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const topbar = document.getElementById('topbar');
|
|
const header = document.getElementById('header');
|
|
|
|
if (!topbar || !header) return;
|
|
|
|
let topbarHeight = topbar.offsetHeight;
|
|
let isHeaderSticky = 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;
|
|
}
|
|
}
|
|
|
|
// Initial check
|
|
updateHeaderPosition();
|
|
|
|
// Listen for scroll events
|
|
window.addEventListener('scroll', updateHeaderPosition);
|
|
|
|
// Listen for resize events (in case topbar height changes)
|
|
window.addEventListener('resize', function() {
|
|
topbarHeight = topbar.offsetHeight;
|
|
updateHeaderPosition();
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<!-- Additional Styles -->
|
|
@stack('styles')
|
|
|
|
<!-- Domain-spezifische Fonts -->
|
|
@if (! in_array(($theme ?? null), ['businessportal24', 'presseecho', 'presseportale'], true))
|
|
<link href="https://fonts.bunny.net/css?family=montserrat:400,500,600,700" rel="stylesheet" />
|
|
@endif
|
|
</head>
|
|
|
|
<body class="antialiased" style="background-color: hsl(var(--background)); color: hsl(var(--foreground));">
|
|
|
|
<!-- TopBar - statisch oben -->
|
|
|
|
@yield('content')
|
|
<!-- Additional Scripts -->
|
|
@stack('scripts')
|
|
</body>
|
|
|
|
</html>
|