Stable Website before landingpage
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
// Simple maintenance page for FlixCooks
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>FlixCooks | Wartungsmodus</title>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&family=Playfair+Display:wght@600&display=swap');
|
||||
:root {
|
||||
--bg-1: #12141c;
|
||||
--bg-2: #1c1f2a;
|
||||
--text: #dce1eb;
|
||||
--muted: #8c93a3;
|
||||
--accent: #6c7ea0;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
background: radial-gradient(circle at 20% 20%, rgba(255,255,255,0.05), transparent 35%),
|
||||
radial-gradient(circle at 80% 0%, rgba(255,255,255,0.04), transparent 30%),
|
||||
linear-gradient(135deg, var(--bg-1), var(--bg-2));
|
||||
color: var(--text);
|
||||
font-family: 'Montserrat', system-ui, sans-serif;
|
||||
overflow: hidden;
|
||||
}
|
||||
.grain {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 0);
|
||||
background-size: 22px 22px;
|
||||
opacity: 0.35;
|
||||
pointer-events: none;
|
||||
mix-blend-mode: screen;
|
||||
}
|
||||
.wrap {
|
||||
text-align: center;
|
||||
padding: 32px 18px 48px;
|
||||
}
|
||||
h1 {
|
||||
font-family: 'Playfair Display', serif;
|
||||
font-size: clamp(42px, 6vw, 68px);
|
||||
margin: 0 0 18px;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
.sub {
|
||||
margin: 0 0 10px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.24em;
|
||||
font-weight: 600;
|
||||
color: var(--muted);
|
||||
}
|
||||
.copy { color: var(--muted); margin: 0 0 22px; }
|
||||
.countdown {
|
||||
margin-top: -6px;
|
||||
color: var(--ink);
|
||||
}
|
||||
.divider { width: 90px; height: 1px; background: rgba(255,255,255,0.18); margin: 16px auto 12px; }
|
||||
.dots { display: inline-flex; gap: 8px; align-items: center; justify-content: center; }
|
||||
.dot {
|
||||
width: 10px; height: 10px;
|
||||
border-radius: 50%;
|
||||
background: rgba(255,255,255,0.32);
|
||||
animation: pulse 1.4s infinite ease-in-out;
|
||||
}
|
||||
.dot:nth-child(2) { animation-delay: 0.15s; }
|
||||
.dot:nth-child(3) { animation-delay: 0.3s; }
|
||||
@keyframes pulse {
|
||||
0%, 80%, 100% { opacity: 0.2; transform: translateY(0); }
|
||||
40% { opacity: 1; transform: translateY(-4px); }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="grain"></div>
|
||||
<div class="wrap">
|
||||
<h1>FlixCooks</h1>
|
||||
<div class="divider"></div>
|
||||
<p class="sub">Website in Bearbeitung</p>
|
||||
<p class="copy">Wird in Kürze veröffentlicht</p>
|
||||
<p id="countdown" class="copy countdown" aria-live="polite">Countdown lädt...</p>
|
||||
<div class="dots" aria-label="Lädt">
|
||||
<span class="dot"></span>
|
||||
<span class="dot"></span>
|
||||
<span class="dot"></span>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
function nextTarget() {
|
||||
const now = new Date();
|
||||
const target = new Date(now);
|
||||
// Aim for today at 18:00; if already passed, roll to tomorrow.
|
||||
target.setHours(18, 0, 0, 0);
|
||||
if (now > target) {
|
||||
target.setDate(target.getDate() + 1);
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
function updateCountdown() {
|
||||
const el = document.getElementById('countdown');
|
||||
if (!el) return;
|
||||
const now = new Date();
|
||||
let target = nextTarget();
|
||||
if (now > target) {
|
||||
target = nextTarget();
|
||||
}
|
||||
const diff = target - now;
|
||||
if (diff <= 0) {
|
||||
el.textContent = 'Live now';
|
||||
return;
|
||||
}
|
||||
const hours = Math.floor(diff / 36e5);
|
||||
const minutes = Math.floor((diff % 36e5) / 6e4);
|
||||
const seconds = Math.floor((diff % 6e4) / 1000);
|
||||
el.textContent = `Countdown: ${hours.toString().padStart(2,'0')}:${minutes.toString().padStart(2,'0')}:${seconds.toString().padStart(2,'0')}`;
|
||||
}
|
||||
|
||||
updateCountdown();
|
||||
setInterval(updateCountdown, 1000);
|
||||
</script>
|
||||
</html>
|
||||
Reference in New Issue
Block a user