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.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

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

})();