1,813
edits
mNo edit summary |
mNo edit summary |
||
Line 21: | Line 21: | ||
$(function() { | $(function() { | ||
if ( | if (!getCookie('darkTheme')) { | ||
if (window.matchMedia('(prefers-color-scheme: dark)').matches) { | |||
$('body').addClass('dark'); | $('body').addClass('dark'); | ||
$('body').removeClass('light'); | $('body').removeClass('light'); | ||
} | } | ||
window.matchMedia('(prefers-color-scheme: dark)').addListener(function(e) { | |||
if (e.matches) { | |||
$('body').addClass('dark'); | |||
$('body').removeClass('light'); | |||
} else { | |||
$('body').addClass('light'); | |||
$('body').removeClass('dark'); | |||
} | |||
}); | |||
} | |||
var isDark = false; | var isDark = false; | ||
var toggleText = 'Dark mode'; | var toggleText = 'Dark mode'; | ||
if (getCookie('darkTheme') == 'on') { | if (getCookie('darkTheme') == 'on' || window.matchMedia('(prefers-color-scheme: dark)').matches && getCookie('darkTheme') != 'off') { | ||
toggleText = 'Light mode'; | toggleText = 'Light mode'; | ||
isDark = true; | isDark = true; | ||
} | } | ||
var footerList = $('#footer-places'); | |||
if (mw.config.get('skin') == 'nimbus') | if (mw.config.get('skin') == 'nimbus') | ||
$('#wiki-login').prepend('<div id="toggleContainer" style="float:left;position:relative;right:5px;cursor:pointer"><img id="themeToggle" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png" title="Toggle night theme"/></div>'); | $('#wiki-login').prepend('<div id="toggleContainer" style="float:left;position:relative;right:5px;cursor:pointer"><img id="themeToggle" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png" title="Toggle night theme"/></div>'); | ||
else if (mw.config.get('skin') == 'minerva') | else if (mw.config.get('skin') == 'minerva') | ||
footerList.after('<ul id="toggleContainer" class="minerva-toggle hlist"><li><a id="themeToggle" href="javascript:;">Toggle night theme</a></li></ul>'); | |||
else | else | ||
footerList.append('<li id="toggleContainer"><a id="themeToggle" href="javascript:;">' + toggleText + '</a></li>'); | |||
$('#themeToggle').click(function() { | $('#themeToggle').click(function() { | ||
if (isDark) | if (window.matchMedia('(prefers-color-scheme: dark)').matches) { | ||
setCookie('darkTheme', '', -1); | if (isDark) | ||
else | setCookie('darkTheme', 'off', 999); | ||
setCookie('darkTheme', 'on', 999); | else | ||
setCookie('darkTheme', '', -1); | |||
} else { | |||
if (isDark) | |||
setCookie('darkTheme', '', -1); | |||
else | |||
setCookie('darkTheme', 'on', 999); | |||
} | |||
if (mw.config.get('wgUserId') || location.href.includes('?')) | if (mw.config.get('wgUserId') || location.href.includes('?')) | ||
location.reload(); | location.reload(); |