Force UI Sans-Serif & Clear Text

Override every element’s font and smoothing settings

目前為 2025-06-01 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Force UI Sans-Serif & Clear Text
// @description  Override every element’s font and smoothing settings
// @match        *://*/*
// @run-at       document-start
// @version 0.0.1.20250601040220
// @namespace https://gf.qytechs.cn/users/1435046
// ==/UserScript==

(function () {

  // MutationObserver to handle dynamically added elements
  document.fonts.ready.then(() => {

    // Apply to existing DOM once fonts are ready
    for (const element of document.querySelectorAll('*')) {
      const computedFont = getComputedStyle(element).fontFamily;
      if (computedFont.includes("Material Icons Extended")) continue;
      if (element.matches('[class*="fa-"], [class*="icon-"], [class*="material-"], [class*="fa"], [class*="icon"], [class*="material"]')) continue;

      element.style.fontFamily = 'ui-rounded, ui-sans-serif, system-ui, sans-serif';
      element.style.textRendering = 'optimizeLegibility';
    }


    const observer = new MutationObserver((mutations) => {
      for (const mutation of mutations) {
        for (const node of mutation.addedNodes) {
          if (node.nodeType !== Node.ELEMENT_NODE) continue;

          // Check the added node itself
          const computedFont = getComputedStyle(node).fontFamily;
          if (!computedFont.includes("Material Icons Extended") &&
            !node.matches('[class*="fa-"], [class*="icon-"], [class*="material-"], [class*="fa"], [class*="icon"], [class*="material"]')) {
            node.style.fontFamily = 'ui-rounded, ui-sans-serif, system-ui, sans-serif';
            node.style.textRendering = 'optimizeLegibility';
          }

          // Check all its descendants
          for (const descendant of node.querySelectorAll('*')) {
            const descFont = getComputedStyle(descendant).fontFamily;
            if (descFont.includes("Material Icons Extended")) continue;
            if (descendant.matches('[class*="fa-"], [class*="icon-"], [class*="material-"], [class*="fa"], [class*="icon"], [class*="material"]')) continue;

            descendant.style.fontFamily = 'ui-rounded, ui-sans-serif, system-ui, sans-serif';
            descendant.style.textRendering = 'optimizeLegibility';
          }
        }
      }
    });

    observer.observe(document.documentElement, { childList: true, subtree: true });
  });
})();

QingJ © 2025

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