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.

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

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

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==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);
    }

})();