108 lines
4.2 KiB
Plaintext
108 lines
4.2 KiB
Plaintext
---
|
|
import '@/styles/global.css';
|
|
import ThemeToggle from '@/components/ThemeToggle';
|
|
|
|
interface Props {
|
|
title: string;
|
|
description?: string;
|
|
}
|
|
|
|
const { title, description = "Classic electronics reference notebooks from Forrest M. Mims III" } = Astro.props;
|
|
---
|
|
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content={description} />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<link rel="manifest" href="/manifest.json" />
|
|
<meta name="theme-color" content="#3b5998" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
|
|
<title>{title} | Electronics Reference Library</title>
|
|
<script is:inline>
|
|
(function() {
|
|
const theme = localStorage.getItem('theme');
|
|
if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
document.documentElement.classList.add('dark');
|
|
}
|
|
})();
|
|
</script>
|
|
</head>
|
|
<body class="min-h-screen graph-paper-large">
|
|
<header class="border-b border-border bg-card/80 backdrop-blur-sm sticky top-0 z-50">
|
|
<div class="container mx-auto px-4 py-4">
|
|
<nav class="flex items-center justify-between">
|
|
<a href="/" class="flex items-center gap-3 hover:opacity-80 transition-opacity">
|
|
<div class="w-10 h-10 rounded-lg bg-primary flex items-center justify-center">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-primary-foreground">
|
|
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/>
|
|
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/>
|
|
</svg>
|
|
</div>
|
|
<div>
|
|
<h1 class="text-lg font-semibold title-accent text-foreground">Electronics Library</h1>
|
|
<p class="text-xs text-muted-foreground">Classic Reference Collection</p>
|
|
</div>
|
|
</a>
|
|
|
|
<div class="flex items-center gap-4">
|
|
<a
|
|
href="/mims"
|
|
class="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
Mims
|
|
</a>
|
|
<a
|
|
href="/uglys"
|
|
class="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
Ugly's
|
|
</a>
|
|
<ThemeToggle client:load />
|
|
<a
|
|
href="https://archive.org"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
class="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors flex items-center gap-1"
|
|
>
|
|
Archive.org
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>
|
|
<polyline points="15 3 21 3 21 9"/>
|
|
<line x1="10" x2="21" y1="14" y2="3"/>
|
|
</svg>
|
|
</a>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="container mx-auto px-4 py-8">
|
|
<slot />
|
|
</main>
|
|
|
|
<footer class="border-t border-border bg-card/50 mt-16">
|
|
<div class="container mx-auto px-4 py-8">
|
|
<div class="flex flex-col md:flex-row items-center justify-between gap-4 text-sm text-muted-foreground">
|
|
<p>
|
|
Preserving classic electronics and electrical references
|
|
</p>
|
|
<p>
|
|
Materials sourced from <a href="https://archive.org" target="_blank" rel="noopener noreferrer" class="underline hover:text-foreground">Archive.org</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<script is:inline>
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', function() {
|
|
navigator.serviceWorker.register('/sw.js');
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|