Raw Source
sjehuda / Toggle CSS Style

// ==UserScript==
// @name        Toggle CSS Style
// @namespace   i2p.schimon.toggle-style
// @description Toggle CSS Stylesheets. Hotkey: Command + Shift + F3
// @homepageURL https://openuserjs.org/scripts/sjehuda/Toggle_Style
// @supportURL  https://openuserjs.org/scripts/sjehuda/Toggle_Style/issues
// @updateURL   https://openuserjs.org/meta/sjehuda/Toggle_Style.meta.js
// @copyright   2023, Schimon Jehudah (http://schimon.i2p)
// @license     MIT; https://opensource.org/licenses/MIT
// @icon        data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48dGV4dCB5PSIuOWVtIiBmb250LXNpemU9IjkwIj7wn5SbPC90ZXh0Pjwvc3ZnPgo=
// @match       *://*/*
// @version     23.06
// @run-at      document-end
// ==/UserScript==

var docHead, styleSheets = [];
document.addEventListener('keyup', hotkey, false);

function hotkey(e) {
  // set hotkey Command + Shift + F3
  if (e.metaKey && e.shiftKey && e.which == 114) {
    toggleStylesheets();
    //toggleHead();
  }
}

function toggleStylesheets() {
  if (document.head.querySelector('link[rel="stylesheet"]') ||
      document.head.querySelector('style')) {
    for (const style of document.head.querySelectorAll('link[rel="stylesheet"]')) {
      styleSheets.push(style);
      style.remove();
    }
    for (const style of document.head.querySelectorAll('style')) {
      styleSheets.push(style);
      style.remove();
    }
  } else {
    for (const style of styleSheets) {
      document.head.append(style);
    }
  }
}

function toggleHead() {
  if (document.head) {
    docHead = document.head;
    document.head.remove();
  } else {
    document.documentElement.prepend(docHead);
  }
}