feat: Initialize new admin application with a landing page, cookie consent, and theme switching functionality.
This commit is contained in:
@@ -169,8 +169,7 @@ export default function DatenschutzPage() {
|
||||
Metadaten) verarbeitet werden. Die Speicherdauer der Analysedaten betraegt 12 Monate.
|
||||
</p>
|
||||
<p>
|
||||
PostHog wird in der EU-Region betrieben. Sollte im Einzelfall eine abweichende Region genutzt
|
||||
werden, informieren wir darueber vorab und holen ggf. erforderliche Einwilligungen ein.
|
||||
PostHog wird in der USA-Region betrieben. Die Daten werden gemäß EU-Standardvertragsklauseln (SCC) mit angemessenen Schutzmassnahmen uebermittelt.
|
||||
</p>
|
||||
<p>
|
||||
Ihre Consent-Entscheidung wird lokal auf Ihrem Geraet gespeichert und kann jederzeit ueber den Link
|
||||
|
||||
@@ -221,12 +221,13 @@ export default function RootPage() {
|
||||
|
||||
body { background: var(--bg); }
|
||||
|
||||
.page {
|
||||
background: var(--bg); color: var(--ink); min-height: 100vh;
|
||||
background-image:
|
||||
radial-gradient(circle at 15% 50%, var(--gold-faint), transparent 25%),
|
||||
.page {
|
||||
background: var(--bg); color: var(--ink); min-height: 100vh;
|
||||
background-image:
|
||||
radial-gradient(circle at 15% 50%, var(--gold-faint), transparent 25%),
|
||||
radial-gradient(circle at 85% 30%, var(--gold-faint), transparent 25%);
|
||||
transition: background 0.3s, color 0.3s;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
@@ -283,9 +284,12 @@ export default function RootPage() {
|
||||
color: var(--gold); margin-bottom: 32px; font-weight: 500;
|
||||
}
|
||||
.hero-h1 {
|
||||
font-weight: 800; font-size: clamp(3.25rem, 8vw, 7.5rem);
|
||||
font-weight: 800; font-size: clamp(1.75rem, 5vw, 7.5rem);
|
||||
line-height: 0.92; letter-spacing: -0.04em;
|
||||
margin: 0 0 48px; color: var(--ink);
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
hyphens: auto;
|
||||
}
|
||||
.hero-h1 em { color: var(--gold); font-style: normal; }
|
||||
|
||||
@@ -341,6 +345,7 @@ export default function RootPage() {
|
||||
display: grid; grid-template-columns: repeat(2, 1fr);
|
||||
justify-items: center;
|
||||
}
|
||||
@media (min-width: 480px) { .stats { grid-template-columns: repeat(2, 1fr); } }
|
||||
@media (min-width: 768px) { .stats { grid-template-columns: repeat(4, 1fr); } }
|
||||
.stat {
|
||||
padding: 28px 24px;
|
||||
@@ -350,11 +355,11 @@ export default function RootPage() {
|
||||
}
|
||||
.stat:last-child { border-right: none; }
|
||||
.stat-num {
|
||||
font-weight: 800; font-size: 2.25rem;
|
||||
font-weight: 800; font-size: clamp(1.5rem, 4vw, 2.25rem);
|
||||
color: var(--gold); letter-spacing: -0.03em; line-height: 1;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.stat-label { font-size: 0.8125rem; color: var(--ink-muted); font-family: 'Georgia', serif; }
|
||||
.stat-label { font-size: 0.75rem; color: var(--ink-muted); font-family: 'Georgia', serif; }
|
||||
|
||||
/* Features */
|
||||
.features { border-top: 1px solid var(--ink-faint); padding: 96px 0; }
|
||||
@@ -371,9 +376,12 @@ export default function RootPage() {
|
||||
.features-sticky { position: sticky; top: 88px; }
|
||||
}
|
||||
.features-h2 {
|
||||
font-weight: 800; font-size: clamp(2.5rem, 5vw, 4rem);
|
||||
font-weight: 800; font-size: clamp(1.5rem, 5vw, 4rem);
|
||||
letter-spacing: -0.04em; line-height: 1.0;
|
||||
margin: 24px 0 28px; color: var(--ink);
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
hyphens: auto;
|
||||
}
|
||||
.features-sub { color: var(--ink-muted); font-family: 'Georgia', serif; line-height: 1.65; font-size: 0.9375rem; }
|
||||
|
||||
@@ -458,7 +466,12 @@ export default function RootPage() {
|
||||
/* AEO / SEO Block */
|
||||
.aeo-section { padding: 96px 0; border-top: 1px solid var(--ink-faint); }
|
||||
.aeo-inner { max-width: 800px; margin: 0 auto; padding: 0 32px; }
|
||||
.aeo-text { color: var(--ink-muted); font-size: 1rem; line-height: 1.8; font-family: 'Georgia', serif; }
|
||||
.aeo-text {
|
||||
color: var(--ink-muted); font-size: 1rem; line-height: 1.8; font-family: 'Georgia', serif;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
hyphens: auto;
|
||||
}
|
||||
.aeo-text p { margin-bottom: 24px; }
|
||||
.aeo-text strong { color: var(--ink); font-weight: 600; }
|
||||
|
||||
@@ -499,8 +512,11 @@ export default function RootPage() {
|
||||
.cta-inner { flex-direction: row; align-items: flex-end; justify-content: space-between; }
|
||||
}
|
||||
.cta-h2 {
|
||||
font-weight: 800; font-size: clamp(2.25rem, 5vw, 4.5rem);
|
||||
font-weight: 800; font-size: clamp(1.5rem, 5vw, 4.5rem);
|
||||
letter-spacing: -0.04em; line-height: 1.0; color: var(--ink);
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
hyphens: auto;
|
||||
}
|
||||
.cta-h2 em { color: var(--gold); font-style: normal; }
|
||||
.cta-right { display: flex; flex-direction: column; gap: 10px; flex-shrink: 0; }
|
||||
@@ -658,10 +674,43 @@ export default function RootPage() {
|
||||
}
|
||||
|
||||
/* Improved Mobile Responsiveness */
|
||||
@media (max-width: 480px) {
|
||||
.nav-inner { padding: 0 12px; }
|
||||
.hero { padding: 100px 12px 40px; }
|
||||
.hero-body { gap: 20px; }
|
||||
.hero-image-wrapper { max-height: 400px; aspect-ratio: 1; }
|
||||
.stat { padding: 16px 12px; }
|
||||
.stat-label { font-size: 0.7rem; }
|
||||
.challenges-section { padding: 40px 0; }
|
||||
.challenges-inner { padding: 0 12px; }
|
||||
.challenges-grid { gap: 16px; }
|
||||
.challenge-card { padding: 16px; }
|
||||
.challenge-title { font-size: 1rem; }
|
||||
.features { padding: 40px 0; }
|
||||
.features-inner { padding: 0 12px; gap: 24px; }
|
||||
.feature-item { padding: 16px 12px; gap: 12px; }
|
||||
.feature-num { font-size: 1.5rem; }
|
||||
.feature-title { font-size: 1rem; }
|
||||
.feature-desc { font-size: 0.875rem; }
|
||||
.comparison-section { padding: 40px 0; }
|
||||
.comparison-inner { padding: 0 12px; }
|
||||
.comp-card { padding: 16px; }
|
||||
.comp-title { font-size: 1.125rem; }
|
||||
.cta-section { padding: 40px 0 60px; }
|
||||
.cta-inner { padding: 0 12px; }
|
||||
.aeo-section { padding: 40px 0; }
|
||||
.aeo-inner { padding: 0 12px; }
|
||||
.aeo-text { font-size: 0.9375rem; }
|
||||
.faq-section { padding: 40px 0; }
|
||||
.faq-inner { padding: 0 12px; }
|
||||
.faq-question { font-size: 1rem; padding: 16px 0; }
|
||||
.footer { padding: 20px 0; }
|
||||
.footer-inner { padding: 0 12px; }
|
||||
}
|
||||
|
||||
@media (max-width: 639px) {
|
||||
.nav-inner { padding: 0 16px; }
|
||||
.hero { padding: 120px 16px 60px; }
|
||||
.hero-h1 { font-size: clamp(2rem, 6vw, 3.25rem); }
|
||||
.hero-body { gap: 24px; }
|
||||
.hero-image-wrapper { aspect-ratio: 1; }
|
||||
.stats { grid-template-columns: repeat(2, 1fr); margin-top: 60px; }
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
'use client'
|
||||
|
||||
import '../instrumentation-client'
|
||||
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
import { httpBatchLink } from '@trpc/client'
|
||||
import { useState } from 'react'
|
||||
|
||||
Reference in New Issue
Block a user