diff --git a/public/toggle-theme.js b/public/toggle-theme.js
index bea85d7..146af33 100644
--- a/public/toggle-theme.js
+++ b/public/toggle-theme.js
@@ -50,14 +50,21 @@ function reflectPreference() {
reflectPreference();
window.onload = () => {
- // set on load so screen readers can get the latest value on the button
- reflectPreference();
+ function setThemeFeature() {
+ // set on load so screen readers can get the latest value on the button
+ reflectPreference();
- // now this script can find and listen for clicks on the control
- document.querySelector("#theme-btn")?.addEventListener("click", () => {
- themeValue = themeValue === "light" ? "dark" : "light";
- setPreference();
- });
+ // now this script can find and listen for clicks on the control
+ document.querySelector("#theme-btn")?.addEventListener("click", () => {
+ themeValue = themeValue === "light" ? "dark" : "light";
+ setPreference();
+ });
+ }
+
+ setThemeFeature();
+
+ // Runs on view transitions navigation
+ document.addEventListener("astro:after-swap", setThemeFeature);
};
// sync with system changes
diff --git a/src/components/Card.astro b/src/components/Card.astro
new file mode 100644
index 0000000..97fdeac
--- /dev/null
+++ b/src/components/Card.astro
@@ -0,0 +1,22 @@
+---
+import Datetime from "@components/Datetime";
+import type { BlogFrontmatter } from "@content/_schemas";
+
+export interface Props {
+ href?: string;
+ frontmatter: BlogFrontmatter;
+ secHeading?: boolean;
+}
+
+const { href, frontmatter, secHeading = true } = Astro.props;
+
+const { title, pubDatetime, description } = frontmatter;
+---
+
+