atashdotdev/src/layouts/Layout.astro
2025-01-22 22:38:19 -06:00

66 lines
1.9 KiB
Plaintext

---
import Header from "../components/Header.astro";
import Footer from "../components/Footer.astro";
import { siteConfig } from "../config/site";
interface Props {
title?: string;
description?: string;
}
const { title = siteConfig.name, description = siteConfig.description } =
Astro.props;
const metaTitle =
title === siteConfig.name ? title : `${title} | ${siteConfig.name}`;
---
<!doctype html>
<html lang="en" data-theme="sunset">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<meta name="description" content={description} />
<title>{metaTitle}</title>
<style>
.skip-to-content {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.skip-to-content:focus {
position: fixed;
top: 1rem;
left: 50%;
transform: translateX(-50%);
width: auto;
height: auto;
clip: auto;
padding: 1rem;
background-color: white;
color: black;
z-index: 999;
border-radius: 0.5rem;
outline: 2px solid currentColor;
}
</style>
</head>
<body class="min-h-screen flex flex-col">
<a href="#main-content" class="skip-to-content">Skip to main content</a>
<Header />
<main id="main-content" class="container mx-auto px-4 py-8 flex-grow">
<slot />
</main>
<Footer />
</body>
</html>