diff --git a/package-lock.json b/package-lock.json
index 6b74b8d2..f65b42d2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
       "version": "6.6.3",
       "license": "MIT",
       "dependencies": {
-        "@cdransf/theme-toggle": "^1.0.8",
+        "@cdransf/theme-toggle": "^1.1.1",
         "@daviddarnes/mastodon-post": "^1.1.1",
         "@remy/webmention": "^1.5.0",
         "@zachleat/pagefind-search": "^1.0.3",
@@ -1230,9 +1230,9 @@
       }
     },
     "node_modules/@cdransf/theme-toggle": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/@cdransf/theme-toggle/-/theme-toggle-1.0.8.tgz",
-      "integrity": "sha512-i4/oFQ75GszVQuR8YF1hkA1AXSNQiIL7+7tbjTzVgEzZTacrfvuAGO1Wxk7RO2dunsusg/OKNpzsx6vwehmNOg=="
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/@cdransf/theme-toggle/-/theme-toggle-1.1.1.tgz",
+      "integrity": "sha512-WUUj8rr6tf2vegJNFL31afWfHe9t05Ow8C5uK/sNLN3TXcNLlsG2oaYGQAajXkP2XOoaYte83RYu0wTCpdF58Q=="
     },
     "node_modules/@daviddarnes/mastodon-post": {
       "version": "1.1.1",
diff --git a/package.json b/package.json
index e13b1e2a..92655594 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,7 @@
   "author": "Cory Dransfeldt",
   "license": "MIT",
   "dependencies": {
-    "@cdransf/theme-toggle": "^1.0.8",
+    "@cdransf/theme-toggle": "^1.1.1",
     "@daviddarnes/mastodon-post": "^1.1.1",
     "@remy/webmention": "^1.5.0",
     "@zachleat/pagefind-search": "^1.0.3",
diff --git a/src/_includes/base.liquid b/src/_includes/base.liquid
index e3232cb4..3a66d278 100644
--- a/src/_includes/base.liquid
+++ b/src/_includes/base.liquid
@@ -85,5 +85,22 @@
       <style>.client-side {display:none}</style>
     </noscript>
   </head>
-  <body>{{ content }}</body>
+  <body>
+    <script>
+      (() => {
+        const currentTheme = sessionStorage?.getItem('theme');
+        if (!currentTheme) sessionStorage?.setItem('theme', (this.prefersDarkScheme ? 'dark' : 'light'))
+        if (currentTheme === 'dark') {
+          document.body.classList.add('theme__dark')
+        } else if (currentTheme === 'light') {
+          document.body.classList.add('theme__light')
+        } else if (this.prefersDarkScheme) {
+          document.body.classList.add('theme__dark')
+        } else if (!this.prefersDarkScheme) {
+          document.body.classList.add('theme__light')
+        }
+      })();
+    </script>
+    {{ content }}
+  </body>
 </html>
\ No newline at end of file