Global Monospace Enforcer

Forces all code blocks and monospaced text to use your browser's default monospace font settings. Removes site-specific overrides (like ui-monospace, Menlo, Consolas) so you can enjoy your preferred font globally.

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name         Global Monospace Enforcer
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  Forces all code blocks and monospaced text to use your browser's default monospace font settings. Removes site-specific overrides (like ui-monospace, Menlo, Consolas) so you can enjoy your preferred font globally.
// @author       Xinde
// @match        *://*/*
// @grant        GM_addStyle
// @run-at       document-start
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    /* ==========================================================================
       CONFIGURATION
       Change 'monospace' below to a specific font name (e.g., 'Fira Code')
       if you want to force a specific font instead of the browser default.
       ========================================================================== */
    const PREFERRED_FONT = "monospace";

    /* ==========================================================================
       THE CSS PAYLOAD
       This is the CSS that will be injected into every page.
       ========================================================================== */
    const css = `
        /* CORE: Standard HTML Elements */
        pre, code, kbd, samp, var, tt {
            font-family: ${PREFERRED_FONT} !important;
            font-feature-settings: normal !important;
        }

        /* PLATFORMS: GitHub, GitLab, BitBucket */
        .blob-code, .blob-code-inner, .react-code-text, .file-content code, .gitlab-monaco-editor,
        
        /* IDEs: VS Code Web, Monaco Editor, Azure DevOps */
        .monaco-editor, .monaco-editor .view-lines, .monaco-workbench,
        
        /* FORUMS: StackOverflow, StackExchange */
        .s-prose code, .s-prose pre,

        /* EDITORS: CodeMirror, Ace, ProseMirror */
        .CodeMirror, .CodeMirror-lines,
        .ace_editor, .ace_text-layer,
        .ProseMirror code,
        
        /* APPS: Notion, Slack, Jira, ChatGPT */
        .notion-code-block,
        .c-mrkdwn__pre, .c-mrkdwn__code,
        .code-block, .code-content,
        .markdown prose pre, .markdown prose code,
        
        /* GENERAL: Fallbacks for other sites */
        [class*="monospace"],
        [class*="code-block"],
        [class*="highlight"] {
            font-family: ${PREFERRED_FONT} !important;
        }

        /* INPUTS: Textareas intended for code */
        textarea.source-code,
        textarea.code,
        textarea#read-only-cursor-text-area {
            font-family: ${PREFERRED_FONT} !important;
        }
    `;

    /* ==========================================================================
       INJECTION LOGIC
       Uses GM_addStyle for best performance and instant loading.
       ========================================================================== */
    if (typeof GM_addStyle !== "undefined") {
        GM_addStyle(css);
    } else {
        // Fallback for script managers that don't support GM_addStyle
        const style = document.createElement('style');
        style.textContent = css;
        (document.head || document.documentElement).appendChild(style);
    }

})();