Auto set dark or light mode for reddit
当前为
// ==UserScript==
// @name Reddit - Auto Color Scheme
// @namespace Kyan Violentmonkey Scripts
// @match *://*.reddit.com/*
// @grant none
// @version 1.1.2
// @license MIT
// @author Kyan
// @description Auto set dark or light mode for reddit
// @run-at document-start
// ==/UserScript==
;(function () {
'use strict';
/* Functions */
const is_dark = () => document.querySelector("html.theme-beta").classList.contains('theme-dark');
const is_light = () => document.querySelector("html.theme-beta").classList.contains('theme-light');
const to_dark = () => {
if (is_light()) {
document.querySelector("html.theme-beta").classList.remove("theme-light");
document.querySelector("html.theme-beta").classList.add("theme-dark");
}
};
const to_light = () => {
if (is_dark()) {
document.querySelector("html.theme-beta").classList.remove("theme-dark");
document.querySelector("html.theme-beta").classList.add("theme-light");
}
};
const is_prefer_dark = () => window.matchMedia("(prefers-color-scheme: dark)").matches;
const is_prefer_light = () => window.matchMedia("(prefers-color-scheme: light)").matches;
/* Main */
console.log("[Auto Color Scheme] Loaded")
if (document.querySelector("html.theme-beta")) {
console.log(`[Auto Color Scheme] Theme Element Detected: ${document.querySelector("html.theme-beta")}`)
} else {
console.error("[Auto Color Scheme] Theme Element Not Found!")
}
console.log(`[Auto Color Scheme] Prefer: ${is_prefer_light()?"[✓ Light]":"✗ Light"}, ${is_prefer_dark()?"[✓ Dark]":"✗ Dark"}`)
console.log(`[Auto Color Scheme] Current: ${is_light()?"[✓ Light]":"✗ Light"}, ${is_dark()?"[✓ Dark]":"✗ Dark"}`)
if (is_dark() && is_prefer_light()) {
to_light()
console.log("[Auto Color Scheme] Switched to Light")
} else if (is_light() && is_prefer_dark()) {
to_dark()
console.log("[Auto Color Scheme] Switched to Dark")
} else {
console.log("[Auto Color Scheme] No need to switch")
}
})()