Global Darkmode

Turn in bright websites to dark.

目前為 2021-10-26 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Global Darkmode
  3. // @description Turn in bright websites to dark.
  4.  
  5. // @name:ko 글로벌 다크모드
  6. // @description:ko 밝은 색의 웹 사이트들을 어둡게 만듭니다.
  7.  
  8. // @namespace https://ndaesik.tistory.com/
  9. // @version 2021.10.27.05:49
  10. // @author ndaesik
  11. // @icon data:image/webp;base64,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
  12. // @include /^(?!.*youtube.com).*/
  13. // ==/UserScript==
  14.  
  15. // Turn light page to dark
  16. var styles = `
  17. html[gd="tw"] {background:#FFF!important}
  18. html:not([gd="d"]):not([gd="f"]) body {background:unset!important}
  19. html:not([gd="d"]):not([gd="f"]) * {text-shadow:0 0 .1px}
  20. html:not([gd="d"]):not([gd="f"]),
  21. html:not([gd="d"]):not([gd="f"]):after,
  22. html:not([gd="d"]):not([gd="f"]) :is(i, img, image, embed, video, canvas, option, object, frame, :fullscreen:not(iframe), iframe:not(:fullscreen), body frameset) {filter:invert(1)hue-rotate(180deg)!important}
  23.  
  24. html:not([gd="d"]):not([gd="f"]):not(#a) :is(canvas, option, object, frame, body frameset) :is(i, img, image, embed, video),
  25. html:not([gd="d"]):not([gd="f"]) video:fullscreen{filter:unset!important}
  26.  
  27. // invert back image divs
  28. html:not([gd="d"]):not([gd="f"]) body>* [style*="url("]:not([style*="cursor:"]):not([type="text"]){filter:invert(1)hue-rotate(180deg)!important}
  29. html:not([gd="d"]):not([gd="f"]) video:fullscreen,
  30. html:not([gd="d"]):not([gd="f"]) body>* [style*="url("]:not([style*="cursor:"]) :not(#⁠){filter:unset!important}
  31. `
  32.  
  33. const styleSheet = document.createElement("style")
  34. styleSheet.type = "text/css"
  35. styleSheet.innerText = styles
  36. document.head.appendChild(styleSheet)
  37.  
  38. // Detect page is whether light or dark
  39. const v = getComputedStyle(document.body, null).getPropertyValue("background-color");
  40. const m = v.match(/\d+/g);
  41. const r = parseInt(m[0]);
  42. const g = parseInt(m[1]);
  43. const b = parseInt(m[2]);
  44. const checkDark = (r + g + b) < 500 && v !== 'rgba(0, 0, 0, 0)';
  45. function n(n){document.documentElement.setAttribute("gd", n);}
  46.  
  47. // set attribute
  48. if ( self === top ) {
  49. if ( checkDark ) {
  50. n("d");
  51. } else {
  52. n("tw");
  53. }
  54. };
  55.  
  56. if ( self !== top ) {
  57. if (window.parent.document.querySelector('html[gd="tw"]') === null || checkDark) {
  58. n("f");
  59. } else {
  60. n("w");
  61. }
  62. };

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址