presseportale/resources/views/errors/layout.blade.php
Kevin Adametz 700f5e6131 dashboard/errors: Onboarding-Card „Erste Schritte" & Hub-Styling der Fehlerseiten
Neue aufklappbare "Erste Schritte"-Card als erste Card im Kunden-Dashboard,
die neue Nutzer durch Profil, Rechnungsadresse, Firma und erste PM führt und
sich ausblendet, sobald alle Schritte erledigt sind. Zusätzlich die
gemeinsame Fehlerseiten-Vorlage (404/403/419/500/503) an das Hub-Design
angepasst (Palette, Gold-Akzent, Hub-Blau-Button), weiterhin self-contained
ohne Vite-Assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 13:07:36 +00:00

128 lines
4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{--
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>
/* Hub-Palette gespiegelt aus resources/css/shared/design-tokens.css.
Bewusst als Inline-Kopie, damit die Fehlerseiten auch bei kaputtem
Asset-Build zuverlässig im richtigen Erscheinungsbild rendern. */
:root {
color-scheme: light dark;
--bg: #f6f4ef;
--panel: #ffffff;
--ink: #1a1f1c;
--ink-2: #3a413d;
--ink-3: #5a6360;
--rule: #e2ddd0;
--hub: #1a2540;
--hub-hover: #243152;
--accent: #b07a3a;
--accent-deep: #8a5e27;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #0e1218;
--panel: #181d27;
--ink: #ece9e0;
--ink-2: #c9c5b8;
--ink-3: #8e8b82;
--rule: #2a3142;
--hub: #5a78c2;
--hub-hover: #6d8ad3;
--accent: #d9a560;
--accent-deep: #d9a560;
}
}
* { 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 {
position: relative;
background: var(--panel);
border: 1px solid var(--rule);
border-radius: 6px;
padding: 48px 40px;
max-width: 460px;
width: 100%;
text-align: center;
overflow: hidden;
}
main::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: var(--accent);
}
.code {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.22em;
color: var(--accent-deep);
text-transform: uppercase;
}
h1 {
font-size: 24px;
font-weight: 700;
letter-spacing: -0.5px;
margin: 14px 0 10px;
}
p {
font-size: 14px;
line-height: 1.6;
color: var(--ink-3);
max-width: 340px;
margin: 0 auto;
}
a.home {
display: inline-block;
margin-top: 26px;
padding: 10px 22px;
border-radius: 5px;
background: var(--hub);
color: #fff;
font-size: 13.5px;
font-weight: 600;
text-decoration: none;
transition: background-color 0.15s ease;
}
a.home:hover { background: var(--hub-hover); }
.brand {
margin-top: 30px;
padding-top: 18px;
border-top: 1px solid var(--rule);
font-size: 11px;
letter-spacing: 0.14em;
color: var(--ink-3);
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>