YouTube Dark Mode Toggle

Adds a bottom-left toggle button for YouTube dark/light text mode

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         YouTube Dark Mode Toggle
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Adds a bottom-left toggle button for YouTube dark/light text mode
// @author       You
// @match        https://www.youtube.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Wait until YouTube body exists
    function addToggleButton() {
        if (document.body.querySelector('#yt-darkmode-toggle')) return; // already added

        const toggle = document.createElement('button');
        toggle.id = 'yt-darkmode-toggle';
        toggle.innerText = 'Toggle Dark Mode';
        toggle.style.position = 'fixed';
        toggle.style.bottom = '10px';
        toggle.style.left = '10px';
        toggle.style.zIndex = '9999';
        toggle.style.padding = '10px';
        toggle.style.backgroundColor = '#000';
        toggle.style.color = '#fff';
        toggle.style.border = 'none';
        toggle.style.borderRadius = '5px';
        toggle.style.cursor = 'pointer';
        document.body.appendChild(toggle);

        let darkMode = false;

        toggle.addEventListener('click', () => {
            darkMode = !darkMode;

            const textColor = darkMode ? '#fff' : '#000';
            const bgColor = darkMode ? '#111' : '#fff';

            document.body.style.backgroundColor = bgColor;
            document.body.style.color = textColor;

            document.querySelectorAll('*').forEach(el => {
                if (el.tagName !== 'SCRIPT' && el.tagName !== 'STYLE') {
                    el.style.color = textColor;
                }
            });
        });
    }

    // Try adding the button every second until it works
    const interval = setInterval(() => {
        if (document.body) {
            addToggleButton();
            clearInterval(interval);
        }
    }, 1000);

})();