diff --git a/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js b/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js index 86e935442a1..b4167a08675 100644 --- a/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js +++ b/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js @@ -91,10 +91,11 @@ export default { ); Session.currentProp( - "darkColorScheme", - getComputedStyle(document.documentElement) - .getPropertyValue("--scheme-type") - .trim() === "dark" + "defaultColorSchemeIsDark", + !window.matchMedia("(prefers-color-scheme: dark)").matches && + getComputedStyle(document.documentElement) + .getPropertyValue("--scheme-type") + .trim() === "dark" ); Session.currentProp("highlightJsPath", setupData.highlightJsPath); diff --git a/app/assets/javascripts/discourse/app/widgets/home-logo.js b/app/assets/javascripts/discourse/app/widgets/home-logo.js index 31a10fd4151..98b40d7bec7 100644 --- a/app/assets/javascripts/discourse/app/widgets/home-logo.js +++ b/app/assets/javascripts/discourse/app/widgets/home-logo.js @@ -85,7 +85,7 @@ export default createWidget("home-logo", { // try dark logos first when color scheme is dark // this is independent of browser dark mode // hence the fallback to normal logos - if (Session.currentProp("darkColorScheme")) { + if (Session.currentProp("defaultColorSchemeIsDark")) { return ( siteSettings[`site_${name}_dark_url`] || siteSettings[`site_${name}_url`] || diff --git a/test/javascripts/widgets/home-logo-test.js b/test/javascripts/widgets/home-logo-test.js index 130ff8b7e5e..32a18f900dc 100644 --- a/test/javascripts/widgets/home-logo-test.js +++ b/test/javascripts/widgets/home-logo-test.js @@ -202,10 +202,10 @@ widgetTest("dark color scheme and dark logo set", { beforeEach() { this.siteSettings.site_logo_url = bigLogo; this.siteSettings.site_logo_dark_url = darkLogo; - Session.currentProp("darkColorScheme", true); + Session.currentProp("defaultColorSchemeIsDark", true); }, afterEach() { - Session.currentProp("darkColorScheme", null); + Session.currentProp("defaultColorSchemeIsDark", null); }, test(assert) { assert.ok(find("img#site-logo.logo-big").length === 1); @@ -222,10 +222,10 @@ widgetTest("dark color scheme and dark logo not set", { beforeEach() { this.siteSettings.site_logo_url = bigLogo; this.siteSettings.site_logo_dark_url = ""; - Session.currentProp("darkColorScheme", true); + Session.currentProp("defaultColorSchemeIsDark", true); }, afterEach() { - Session.currentProp("darkColorScheme", null); + Session.currentProp("defaultColorSchemeIsDark", null); }, test(assert) { assert.ok(find("img#site-logo.logo-big").length === 1);