USOS dark mode

dark mode of USOS

当前为 2024-12-07 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name USOS dark mode
  3. // @namespace https://greasyfork.org/en/users/901750-gooseob
  4. // @version 1.7.2
  5. // @description dark mode of USOS
  6. // @author GooseOb
  7. // @license MIT
  8. // @match https://usosweb.uni.lodz.pl/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=usosweb.uni.lodz.pl
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function(){// index.ts
  14. var applyStyles = (el, cssText) => {
  15. if (!el)
  16. return;
  17. const styles = new CSSStyleSheet;
  18. styles.replace(cssText).then(() => {
  19. el.adoptedStyleSheets.push(styles);
  20. });
  21. };
  22. var applyStylesForEach = (selector, styles) => {
  23. for (const el of document.querySelectorAll(selector))
  24. applyStyles(el.shadowRoot, styles);
  25. };
  26. var getShadowRoot = (selector, parent = document) => parent.querySelector(selector)?.shadowRoot;
  27. applyStyles(document, ":root { --font-color-reverse: #000; --background-reverse: #ccc; --background: #222; --background-secondary: #333; --font-color: #fff; --grey: #999; } html, main-panel, #uwb-main-column .uwb-white-content, .ua-tooltip.ua-tooltip-badge .tooltipster-box, .ua-tooltip.ua-tooltip-default .tooltipster-box, .uwb-sidepanel, .wrtext table.grey > * > :is(tr.even, tr.strong) > td, .usos-ui table.grey > * > tr > td, .usos-ui table.wrnav tr.even_row td { background-color: var(--background); color: #fff; } .well, .sticky-element, .panel { background: #222; } body, usos-module-link-tile, .panel select, .panel input, .panel-heading.panel-heading { background: #111; color: #fff; } #footer-logo, #search_logo, .radio { filter: contrast(0.5); } usos-module-link-tile:hover, #uwb-side-column, .wrtext table.grey > * > tr > td, .usos-ui table.grey > * > :is(tr.even, tr.strong) > td, .usos-ui table.grey > *.autostrong > tr:nth-child(odd) > td, .usos-ui table.wrnav tr.odd_row td { background-color: var(--background-secondary); } .schedimg { filter: invert(1); } .usos-ui :is( input[type=");
  28. applyStyles(getShadowRoot("menu-top-hamburger", getShadowRoot("menu-top")), "#hamburger { filter: invert(1); } ");
  29. applyStyles(getShadowRoot("usos-copyright"), "#layoutCopyright { color: #fff; } ");
  30. applyStylesForEach("usos-selector", "input { background-color: #000; } ");
  31. applyStyles(getShadowRoot("usos-timetable"), "#timetable { --timetable-color-6: #222; } ");
  32. applyStylesForEach("timetable-day", ":host { background: black; } ");
  33. var tableColors = {
  34. "rgb(236, 236, 236)": "#555",
  35. "rgb(216, 216, 216)": "#444",
  36. "rgb(238, 238, 221)": "#444",
  37. "rgb(222, 222, 205)": "#333",
  38. "rgb(156, 164, 152)": "#222",
  39. "rgb(255, 255, 255)": "#333"
  40. };
  41. setTimeout(() => {
  42. for (const td of document.querySelectorAll("tbody > tr > td, tbody > tr > th"))
  43. td.style.backgroundColor = tableColors[td.style.backgroundColor] || "#000";
  44. }, 100);
  45. })()