Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

User:Isy/Sandbox/DarkMode-Experiment.js

From Loftia Community Wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
$(function() {
    // Only run on pages with our experiment
    const experimentPage = document.querySelector('.dark-mode-experiment');
    if (!experimentPage) return;

    // Create and add toggle button
    const toggleBtn = document.createElement('button');
    toggleBtn.className = 'dark-mode-toggle';
    toggleBtn.innerHTML = '🌙';
    document.body.appendChild(toggleBtn);

    // Theme management
    function setTheme(theme) {
        experimentPage.setAttribute('data-theme', theme);
        localStorage.setItem('darkModeExperiment', theme);
        toggleBtn.innerHTML = theme === 'dark' ? '☀️' : '🌙';
    }

    // Initialize theme
    const savedTheme = localStorage.getItem('darkModeExperiment');
    const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
    setTheme(savedTheme || (prefersDark ? 'dark' : 'light'));

    // Toggle on click
    toggleBtn.addEventListener('click', () => {
        const current = experimentPage.getAttribute('data-theme') || 'light';
        setTheme(current === 'dark' ? 'light' : 'dark');
    });
});