Files
projectreshoot/view/layout/global.templ

54 lines
1.9 KiB
Plaintext

package layout
import "projectreshoot/view/component/nav"
import "projectreshoot/view/component/footer"
// Global page layout. Includes HTML document settings, header tags
// navbar and footer
templ Global() {
<!DOCTYPE html>
<html
lang="en"
x-data="{
theme: localStorage.getItem('theme')
|| localStorage.setItem('theme', 'system')}"
x-init="$watch('theme', (val) => localStorage.setItem('theme', val))"
x-bind:class="{'dark': theme === 'dark' || (theme === 'system' &&
window.matchMedia('(prefers-color-scheme: dark)').matches)}"
>
<head>
<script>
(function () {
let theme = localStorage.getItem("theme") || "system";
if (theme === "system") {
theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
}
if (theme === "dark") {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
})();
</script>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Project Reshoot</title>
<link href="/static/css/output.css" rel="stylesheet"/>
<script src="https://unpkg.com/htmx.org@2.0.4" integrity="sha384-HGfztofotfshcF7+8n44JQL2oJmowVChPTg48S+jvZoztPfvwD79OC/LTtG6dMp+" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/persist@3.x.x/dist/cdn.min.js"></script>
<script src="https://unpkg.com/alpinejs" defer></script>
</head>
<body
class="bg-base text-text ubuntu-mono-regular"
>
<div id="main-content" class="flex flex-col h-screen justify-between">
@nav.Navbar()
<div id="page-content" class="mb-auto">
{ children... }
</div>
@footer.Footer()
</div>
</body>
</html>
}