MediaWiki:Common.js: mudanças entre as edições
Aparência
Botão de modo claro e escuro |
Botão de tema claro/escuro |
||
| Linha 3: | Linha 3: | ||
document.documentElement.setAttribute('data-td-theme', theme); | document.documentElement.setAttribute('data-td-theme', theme); | ||
localStorage.setItem('tdTheme', theme); | localStorage.setItem('tdTheme', theme); | ||
var btn = document.getElementById('td-theme-toggle'); | var btn = document.getElementById('td-theme-toggle'); | ||
if (btn) { | if (btn) { | ||
btn.textContent = theme === 'dark' ? '☀️ | btn.textContent = theme === 'dark' ? '☀️ Claro' : '🌙 Escuro'; | ||
} | } | ||
} | } | ||
function | function currentTheme() { | ||
var saved = localStorage.getItem('tdTheme'); | var saved = localStorage.getItem('tdTheme'); | ||
if (saved === 'dark' || saved === 'light') | if (saved === 'dark' || saved === 'light') return saved; | ||
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) return 'dark'; | |||
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) | |||
return 'light'; | return 'light'; | ||
} | } | ||
function | function mountBtn() { | ||
if (document.getElementById('td-theme-toggle')) | if (document.getElementById('td-theme-toggle')) return; | ||
var btn = document.createElement('button'); | var btn = document.createElement('button'); | ||
btn.id = 'td-theme-toggle'; | btn.id = 'td-theme-toggle'; | ||
btn.type = 'button'; | btn.type = 'button'; | ||
btn. | btn.addEventListener('click', function () { | ||
var | var active = document.documentElement.getAttribute('data-td-theme') || 'light'; | ||
applyTheme( | applyTheme(active === 'dark' ? 'light' : 'dark'); | ||
}; | }); | ||
document.body.appendChild(btn); | document.body.appendChild(btn); | ||
applyTheme( | applyTheme(currentTheme()); | ||
} | } | ||
applyTheme( | applyTheme(currentTheme()); | ||
if (document.readyState === 'loading') { | if (document.readyState === 'loading') { | ||
document.addEventListener('DOMContentLoaded', | document.addEventListener('DOMContentLoaded', mountBtn); | ||
} else { | } else { | ||
mountBtn(); | |||
} | } | ||
})(); | })(); | ||
Edição das 14h24min de 28 de junho de 2026
(function () {
function applyTheme(theme) {
document.documentElement.setAttribute('data-td-theme', theme);
localStorage.setItem('tdTheme', theme);
var btn = document.getElementById('td-theme-toggle');
if (btn) {
btn.textContent = theme === 'dark' ? '☀️ Claro' : '🌙 Escuro';
}
}
function currentTheme() {
var saved = localStorage.getItem('tdTheme');
if (saved === 'dark' || saved === 'light') return saved;
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) return 'dark';
return 'light';
}
function mountBtn() {
if (document.getElementById('td-theme-toggle')) return;
var btn = document.createElement('button');
btn.id = 'td-theme-toggle';
btn.type = 'button';
btn.addEventListener('click', function () {
var active = document.documentElement.getAttribute('data-td-theme') || 'light';
applyTheme(active === 'dark' ? 'light' : 'dark');
});
document.body.appendChild(btn);
applyTheme(currentTheme());
}
applyTheme(currentTheme());
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', mountBtn);
} else {
mountBtn();
}
})();