Changeset 0.25.3 (#163)

This commit is contained in:
2026-03-09 01:54:06 +00:00
parent 6c484fa7f8
commit 2f7a0fb027
11 changed files with 235 additions and 74 deletions

View File

@@ -1001,6 +1001,7 @@ function updateTabArrows(tabs) {
const Theme = {
_key: 'switchboard_theme',
_mqListener: null,
init() {
this.set(localStorage.getItem(this._key) || 'system');
@@ -1008,8 +1009,26 @@ const Theme = {
set(mode) {
localStorage.setItem(this._key, mode);
if (mode === 'system') document.documentElement.removeAttribute('data-theme');
else document.documentElement.setAttribute('data-theme', mode);
// Remove any prior system-preference listener
if (this._mqListener) {
window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', this._mqListener);
this._mqListener = null;
}
if (mode === 'system') {
// Resolve current OS preference and apply it
const resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
document.documentElement.setAttribute('data-theme', resolved);
// Listen for OS preference changes while in system mode
this._mqListener = (e) => {
// Only react if still in system mode
if (this.get() === 'system') {
document.documentElement.setAttribute('data-theme', e.matches ? 'dark' : 'light');
}
};
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', this._mqListener);
} else {
document.documentElement.setAttribute('data-theme', mode);
}
},
get() {