diff --git a/src/client/dark.js b/src/client/dark.js index 22543aabc..f8832e76e 100644 --- a/src/client/dark.js +++ b/src/client/dark.js @@ -1,7 +1,9 @@ import {Generators} from "observablehq:stdlib"; -for await (const dark of Generators.dark()) { - const {classList} = document.body; - classList.toggle("dark", dark); - classList.toggle("light", !dark); -} +(async () => { + for await (const dark of Generators.dark()) { + const {classList} = document.body; + classList.toggle("dark", dark); + classList.toggle("light", !dark); + } +})(); diff --git a/src/client/stdlib/generators/dark.ts b/src/client/stdlib/generators/dark.ts index 97dfcba0d..bd9457751 100644 --- a/src/client/stdlib/generators/dark.ts +++ b/src/client/stdlib/generators/dark.ts @@ -5,10 +5,10 @@ export function dark() { return observe((notify: (dark: boolean) => void) => { let dark: boolean | undefined; const probe = document.createElement("div"); - probe.style.setProperty("transition-property", "color"); - probe.style.setProperty("transition-duration", "0.001s"); + probe.style.transitionProperty = "color"; + probe.style.transitionDuration = "0.001s"; const changed = () => { - const d = getComputedStyle(probe).getPropertyValue("color-scheme") === "dark"; + const d = getComputedStyle(probe).getPropertyValue("color-scheme") === "dark"; // TODO "light dark"? if (dark === d) return; // only notify if changed notify((dark = d)); };