Files
egfh-website/src/layouts/BaseLayout.astro
T
2026-05-12 12:12:24 -04:00

76 lines
2.0 KiB
Plaintext

---
import { homepageHighlights, site } from '../lib/site';
import '../styles/global.css';
type Props = {
title?: string;
description?: string;
};
const { title, description = 'A fast, static, operational website for Swansea Airport.' } = Astro.props as Props;
const pageTitle = title ? `${title} · ${site.name}` : site.name;
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content={description} />
<title>{pageTitle}</title>
</head>
<body>
<header class="topbar">
<div class="container topbar-inner">
<details class="mobile-nav">
<summary>Menu</summary>
<div class="mobile-nav-panel">
{site.navigation.map((item) => (
<a href={item.href}>{item.label}</a>
))}
</div>
</details>
</div>
</header>
<nav class="navshell" aria-label="Primary">
<div class="container nav-inner">
<a class="brand" href="/">Swansea Airport</a>
<div class="nav-links">
{site.navigation.map((item) => (
<a href={item.href}>{item.label}</a>
))}
</div>
</div>
</nav>
<main>
<slot />
</main>
<footer class="site-footer">
<div class="container footer-grid">
<section>
<p class="eyebrow">Airport essentials</p>
<p>{site.address}</p>
<p>{site.licensedHours}</p>
</section>
<section>
<p class="eyebrow">Operational highlights</p>
<ul class="compact-list">
{homepageHighlights.map((item) => (
<li>{item.title}</li>
))}
</ul>
</section>
<section>
<p class="eyebrow">Quick contact</p>
<p><a href={`tel:${site.phone.replace(/\s+/g, '')}`}>{site.phone}</a></p>
<p><a href={`mailto:info@swansea-airport.wales`}>info@swansea-airport.wales</a></p>
</section>
</div>
</footer>
</body>
</html>