From 8437a9857d795c6b8e0050413b17e2bce16a756b Mon Sep 17 00:00:00 2001 From: JovannMC Date: Thu, 13 Feb 2025 23:57:35 +0300 Subject: [PATCH] feat: dynamically lock dark reader --- src/app.html | 7 +++++++ src/lib/store/index.svelte.ts | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/app.html b/src/app.html index 5eb841e..be3d242 100644 --- a/src/app.html +++ b/src/app.html @@ -44,6 +44,13 @@ console.log(`Applying theme: ${theme}`); document.documentElement.classList.add(theme); + + // Lock dark reader if it's set to dark mode + if (theme === "dark") { + const lock = document.createElement('meta'); + lock.name = 'darkreader-lock'; + document.head.appendChild(lock); + } })(); diff --git a/src/lib/store/index.svelte.ts b/src/lib/store/index.svelte.ts index 9cddb26..bda2065 100644 --- a/src/lib/store/index.svelte.ts +++ b/src/lib/store/index.svelte.ts @@ -215,6 +215,16 @@ export function setTheme(themeTo: "light" | "dark") { }); log(["theme"], `set to ${themeTo}`); theme.set(themeTo); + + // Lock dark reader if it's set to dark mode + if (themeTo === "dark") { + const lock = document.createElement('meta'); + lock.name = 'darkreader-lock'; + document.head.appendChild(lock); + } else { + const lock = document.querySelector('meta[name="darkreader-lock"]'); + if (lock) lock.remove(); + } } export function setEffects(effectsEnabled: boolean) {