dimensionlab-website/src/routes/+page.svelte
2026-06-18 17:29:01 +02:00

83 lines
1.9 KiB
Svelte

<script lang="ts">
import type { PageData } from "./$types";
let { data }: { data: PageData } = $props();
</script>
<svelte:head>
<title>{data.dashboard.title} | Dimension Lab</title>
<meta
name="description"
content="Standalone SvelteKit runtime for a model-driven system overview dashboard."
/>
</svelte:head>
<main class="shell" aria-labelledby="page-title">
<section class="hero">
<p class="eyebrow">{data.dashboard.subtitle}</p>
<h1 id="page-title">{data.dashboard.title}</h1>
<p class="message">{data.dashboard.message}</p>
<div class="status" data-state={data.dashboard.status}>
<span class="status__label">Runtime</span>
<strong>{data.dashboard.status}</strong>
</div>
</section>
</main>
<style>
.shell {
display: grid;
min-height: 100vh;
padding: clamp(1rem, 2vw, 2rem);
box-sizing: border-box;
}
.hero {
align-self: center;
max-width: 64rem;
border: 1px solid rgba(244, 244, 244, 0.24);
background: rgba(0, 0, 0, 0.72);
padding: clamp(1.25rem, 4vw, 3rem);
box-shadow: 0 0 0 1px rgba(207, 255, 0, 0.18) inset;
}
.eyebrow,
.status__label {
margin: 0;
color: #cfff00;
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
h1 {
margin: 0.35rem 0 0;
font-size: clamp(2.6rem, 9vw, 7rem);
line-height: 0.9;
text-transform: uppercase;
}
.message {
max-width: 42rem;
margin: 1.25rem 0 0;
color: rgba(244, 244, 244, 0.72);
font-size: clamp(0.9rem, 2vw, 1.08rem);
line-height: 1.6;
}
.status {
display: inline-grid;
grid-template-columns: auto auto;
gap: 0.75rem;
align-items: center;
margin-top: 2rem;
border: 1px solid rgba(207, 255, 0, 0.6);
padding: 0.7rem 0.85rem;
text-transform: uppercase;
}
.status strong {
color: #f4f4f4;
}
</style>