Clean Font Weights

Make website font-weights standard (400) if below 400

  1. // ==UserScript==
  2. // @name Clean Font Weights
  3. // @namespace cleanFonts_kk
  4. // @description Make website font-weights standard (400) if below 400
  5. // @version 0.7
  6. // @author Kai Krause <kaikrause95@gmail.com>
  7. // @include *
  8. // @run-at document-idle
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. var cachedElements = [];
  13. var fontCheck = '';
  14. function font() {
  15. if (fontCheck.length < 1) {
  16. var fontOverride_kk = document.createElement("style");
  17. fontOverride_kk.innerText = ".fontOverride_kk{font-weight: 400 !important;}";
  18. document.head.appendChild(fontOverride_kk);
  19. fontCheck = document.getElementsByClassName("fontOverride_kk");
  20. }
  21.  
  22. var allElements = document.querySelectorAll('*');
  23. for (var i = 0; i < allElements.length; i++) {
  24. if (cachedElements.indexOf(allElements[i]) > -1) continue;
  25. cachedElements.push(allElements[i]);
  26. applyFont(allElements, i);
  27. }
  28. }
  29.  
  30. function applyFont (allElements, i) {
  31. setTimeout(function(){
  32. var css = window.getComputedStyle(allElements[i], null);
  33. var fontWeight = css.getPropertyValue("font-weight");
  34. if (fontWeight && fontWeight < 400) {
  35. allElements[i].classList.add("fontOverride_kk");
  36. }
  37. }, Math.random(4,12));
  38. }
  39.  
  40. // Page Load
  41. font();
  42.  
  43. // Peformant Dynamic function wrapper
  44. var oldScrollPos = 0;
  45. function dynamicScroll (f) {
  46. window.addEventListener("scroll", (function(){
  47. var scrollDifference = Math.abs(oldScrollPos-window.scrollY);
  48. if (scrollDifference > 500) {
  49. window.requestAnimationFrame(f);
  50. oldScrollPos = window.scrollY;
  51. }
  52. }), false);
  53. }
  54. dynamicScroll(font);