feat: core layout, UI atoms, homepage + behaviour modules

- UI atoms: Chip, Button, SplitCvButton, LangSwitch, ThemeToggle, Card,
  SectionLabel, TraceMotif, FramedImage
- core: Base/Seo/Header/MobileNav/Footer/HintBar/SkipLink/ThemeScript
- homepage sections: Hero, ProofStrip, SkillsGrid, ProjectCards,
  ExperienceTimeline, AboutTeaser, ContactBand + Homepage composition (EN/NO)
- behaviour modules: theme, nav (overlay/hint/copy/header), observer (reveal/spy),
  lightbox, form — progressive enhancement, fail-silent
- SEO head component: meta, hreflang from slug map, JSON-LD, OG references
- move content data to src/data (avoid Astro reserved content-collection folder)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
cesnimda
2026-07-04 01:20:46 +02:00
parent 2184a1892f
commit 1fce1b3cec
45 changed files with 1891 additions and 27 deletions
+2 -20
View File
@@ -1,23 +1,5 @@
---
import '@fontsource-variable/space-grotesk';
import '@fontsource-variable/inter';
import '@fontsource-variable/jetbrains-mono';
import '@styles/global.css';
import Homepage from '@components/home/Homepage.astro';
---
<!doctype html>
<html lang="en-GB" data-theme="dark">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Toolchain smoke test</title>
</head>
<body>
<main class="mx-auto max-w-[--content-max] p-8">
<p class="mono-label">Smoke test</p>
<h1 class="text-display font-display">Connor Babbington</h1>
<p class="text-body-lg text-ink-muted">Tokens, Tailwind and fonts are wired.</p>
<div class="mt-6 inline-flex rounded-sm bg-accent px-4 py-2 text-accent-ink">accent button</div>
</main>
</body>
</html>
<Homepage locale="en" />