您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Toggles dark mode with Ctrl+Shift+D.
- // ==UserScript==
- // @name Toggle dark mode with Ctrl+Shift+D
- // @namespace https://github.com/yookibooki/userscripts
- // @description Toggles dark mode with Ctrl+Shift+D.
- // @version 1.0
- // @match *://*/*
- // @grant GM_addStyle
- // @grant GM_getValue
- // @grant GM_setValue
- // ==/UserScript==
- (function() {
- 'use strict';
- const STORAGE_KEY = 'universal-dark-mode-enabled';
- const CSS_CLASS = 'universal-dark-mode-active';
- GM_addStyle(`
- html {
- transition: filter 0.3s ease !important;
- min-height: 100vh !important;
- }
- .${CSS_CLASS} img,
- .${CSS_CLASS} video,
- .${CSS_CLASS} iframe,
- .${CSS_CLASS} canvas {
- filter: invert(1) hue-rotate(180deg) !important;
- }
- .${CSS_CLASS}::selection {
- background: #fff !important;
- color: #000 !important;
- }
- `);
- function toggleDarkMode() {
- const html = document.documentElement;
- const isActive = html.classList.toggle(CSS_CLASS);
- GM_setValue(STORAGE_KEY, isActive);
- }
- function handleShortcut(e) {
- if (e.ctrlKey && e.shiftKey && e.keyCode === 68) { // Ctrl+Shift+D
- toggleDarkMode();
- e.preventDefault();
- e.stopPropagation();
- }
- }
- if (GM_getValue(STORAGE_KEY, false)) {
- document.documentElement.classList.add(CSS_CLASS);
- }
- document.addEventListener('keydown', handleShortcut, true);
- const style = document.createElement('style');
- style.textContent = `
- .${CSS_CLASS} {
- filter: invert(1) hue-rotate(180deg) !important;
- background: #fff !important; /* Create inversion base */
- }
- `;
- document.head.appendChild(style);
- })();