Bisher griffen die Laravel-Default-Seiten. Gemeinsames Inline-CSS-Layout ohne Vite-Abhaengigkeit (rendert auch bei kaputtem Asset-Build), nutzt die geteilte domainName-Variable mit Fallback, noindex, Dark-Mode via prefers-color-scheme. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
93 lines
2.9 KiB
PHP
93 lines
2.9 KiB
PHP
{{--
|
||
Gemeinsames Grundgerüst der Fehlerseiten. Bewusst self-contained
|
||
(Inline-CSS, keine Vite-Assets), damit die Seiten auch bei kaputtem
|
||
Asset-Build oder vor dem ersten `npm run build` zuverlässig rendern.
|
||
--}}
|
||
<!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="robots" content="noindex">
|
||
<title>@yield('code') · @yield('title') – {{ $domainName ?? 'Pressekonto' }}</title>
|
||
<style>
|
||
:root {
|
||
color-scheme: light dark;
|
||
--bg: #f6f7f8;
|
||
--panel: #ffffff;
|
||
--ink: #1c2427;
|
||
--ink-2: #5b6b70;
|
||
--rule: #e3e7e9;
|
||
--accent: #526266;
|
||
}
|
||
@media (prefers-color-scheme: dark) {
|
||
:root {
|
||
--bg: #161b1d;
|
||
--panel: #1f2629;
|
||
--ink: #e8ecee;
|
||
--ink-2: #9fb0b5;
|
||
--rule: #313b3f;
|
||
--accent: #82a0a7;
|
||
}
|
||
}
|
||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
body {
|
||
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
||
background: var(--bg);
|
||
color: var(--ink);
|
||
min-height: 100vh;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 24px;
|
||
}
|
||
main {
|
||
background: var(--panel);
|
||
border: 1px solid var(--rule);
|
||
border-radius: 8px;
|
||
padding: 48px 40px;
|
||
max-width: 460px;
|
||
width: 100%;
|
||
text-align: center;
|
||
}
|
||
.code {
|
||
font-size: 13px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.18em;
|
||
color: var(--ink-2);
|
||
text-transform: uppercase;
|
||
}
|
||
h1 { font-size: 22px; margin: 12px 0 10px; }
|
||
p { font-size: 14.5px; line-height: 1.6; color: var(--ink-2); }
|
||
a.home {
|
||
display: inline-block;
|
||
margin-top: 24px;
|
||
padding: 10px 22px;
|
||
border-radius: 6px;
|
||
background: var(--accent);
|
||
color: #fff;
|
||
font-size: 14px;
|
||
font-weight: 600;
|
||
text-decoration: none;
|
||
}
|
||
.brand {
|
||
margin-top: 28px;
|
||
padding-top: 18px;
|
||
border-top: 1px solid var(--rule);
|
||
font-size: 12px;
|
||
letter-spacing: 0.08em;
|
||
color: var(--ink-2);
|
||
text-transform: uppercase;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<main>
|
||
<div class="code">@yield('code')</div>
|
||
<h1>@yield('title')</h1>
|
||
<p>@yield('message')</p>
|
||
<a class="home" href="/">Zur Startseite</a>
|
||
<div class="brand">{{ $domainName ?? 'Pressekonto' }}</div>
|
||
</main>
|
||
</body>
|
||
</html>
|