CluPilotCloud/resources/views/errors/503.blade.php

46 lines
2.7 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="robots" content="noindex, nofollow">
{{-- Comes back on its own: an update takes a minute, and nobody should have
to guess whether to keep hitting reload. --}}
<meta http-equiv="refresh" content="20">
<title>{{ config('app.name') }}</title>
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
{{-- Self-contained on purpose: this page is shown while the application is
mid-deploy or freshly installed, which is exactly when the Vite
manifest may not exist. Pulling it in through @vite would throw an
exception instead of rendering the reassurance the visitor came for. --}}
<style>
:root { color-scheme: light dark; --bg: #f6f7f9; --fg: #0f172a; --muted: #64748b; --accent: #f97316; --card: #ffffff; --line: #e2e8f0; }
@media (prefers-color-scheme: dark) { :root { --bg: #0b0f19; --fg: #e2e8f0; --muted: #94a3b8; --card: #111827; --line: #1f2937; } }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 4rem 1.5rem; text-align: center;
background: var(--bg); color: var(--fg);
font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif; }
main { max-width: 30rem; }
.mark { width: 2.5rem; height: 2.5rem; margin: 0 auto; border-radius: 0.75rem; background: var(--accent); }
h1 { margin: 1.75rem 0 0; font-size: 1.5rem; line-height: 1.25; letter-spacing: -0.01em; }
p { margin: 0.75rem 0 0; font-size: 0.9rem; line-height: 1.65; color: var(--muted); }
.badge { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.25rem; padding: 0.25rem 0.75rem;
border: 1px solid var(--line); border-radius: 9999px; background: var(--card);
font-size: 0.72rem; font-weight: 600; color: var(--accent); }
.dot { width: 0.5rem; height: 0.5rem; border-radius: 9999px; background: var(--accent); animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: 0.35; } }
@media (prefers-reduced-motion: reduce) { .dot { animation: none; } }
.foot { margin-top: 2rem; font-size: 0.75rem; color: var(--muted); }
</style>
</head>
<body>
<main>
<div class="mark"></div>
<div class="badge"><span class="dot"></span>{{ __('updating.badge') }}</div>
<h1>{{ __('updating.title') }}</h1>
<p>{{ __('updating.body') }}</p>
<p class="foot">{{ __('updating.auto') }}</p>
</main>
</body>
</html>