diff --git a/astro/astro.config.mjs b/astro/astro.config.mjs
index 6cdfd8d6..f5a30182 100644
--- a/astro/astro.config.mjs
+++ b/astro/astro.config.mjs
@@ -66,6 +66,8 @@ export default defineConfig({
'facebook', 'instagram', 'linkedin', 'rss-fill', 'tiktok', 'globe', 'mastodon', 'twitter',
// Descriptive
'gift-fill', 'pencil-fill', 'people-fill', 'person-fill', 'puzzle-fill', 'stopwatch-fill', 'tools',
+ // Theme toggle
+ 'sun-fill', 'moon-fill', 'circle-half', 'check-lg',
],
// CoreUI Brands
cib: [
diff --git a/astro/src/components/Header.astro b/astro/src/components/Header.astro
index 1b8b3009..fcff7449 100644
--- a/astro/src/components/Header.astro
+++ b/astro/src/components/Header.astro
@@ -77,7 +77,7 @@ const breadCrumbs: Breadcrumbs =
-
+
+
diff --git a/astro/src/components/navigation/NavSiteList.astro b/astro/src/components/navigation/NavSiteList.astro
index 72b2f94b..32617c9a 100644
--- a/astro/src/components/navigation/NavSiteList.astro
+++ b/astro/src/components/navigation/NavSiteList.astro
@@ -1,5 +1,6 @@
---
import NavDropdownMenu from "./NavDropdownMenu.astro";
+import ThemeToggle from "../ThemeToggle.astro";
interface Props {
main?: boolean;
@@ -42,13 +43,20 @@ const { main = false, class: classes = "" } = Astro.props;
{
main && (
-
- Donate
-
+
+
+
+ Donate
+
+ {/* Default: icon-only, to the right of Donate. Query params override
+ this client-side (static build): ?theme-loc=left|right and
+ ?theme-icon=icon|text. See ThemeToggle.astro. */}
+
+
)
}
diff --git a/astro/src/layouts/Layout.astro b/astro/src/layouts/Layout.astro
index 845e20a0..6fcc5a44 100644
--- a/astro/src/layouts/Layout.astro
+++ b/astro/src/layouts/Layout.astro
@@ -21,6 +21,39 @@ const { title, brandedTitle = false, crumbs, heading, metadata } = Astro.props;
+
+