feat(themes): Theme-Wechsel mit View-Transition-Cross-Fade am Ausloeser
This commit is contained in:
+18
-1
@@ -23,6 +23,23 @@ function closeThemeModal() {
|
|||||||
overlay.classList.remove('active');
|
overlay.classList.remove('active');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wechselt das Theme mit nativem Cross-Fade (View Transitions API).
|
||||||
|
* Wrap sitzt bewusst hier am User-Ausloeser, NICHT in applyTheme(),
|
||||||
|
* sonst fadet jeder neue Tab beim Initial-Load (settings.js:101).
|
||||||
|
* Feature-Detection-Fallback: aeltere Browser (z.B. Firefox < 144)
|
||||||
|
* schalten instant um, ohne Bruch.
|
||||||
|
* @param {string} name - Theme-Name
|
||||||
|
*/
|
||||||
|
function switchTheme(name) {
|
||||||
|
const swap = () => applyTheme(name, false); // false: Theme-BG anwenden (kein User-bgUrl-Schutz hier noetig, bgUrl wurde geleert)
|
||||||
|
if (document.startViewTransition) {
|
||||||
|
document.startViewTransition(swap);
|
||||||
|
} else {
|
||||||
|
swap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prueft ob eine Background-URL sicher fuer CSS-Einbettung ist.
|
* Prueft ob eine Background-URL sicher fuer CSS-Einbettung ist.
|
||||||
* Erlaubt nur blob: und data:image/ Protokolle (aus File Upload).
|
* Erlaubt nur blob: und data:image/ Protokolle (aus File Upload).
|
||||||
@@ -129,7 +146,7 @@ function bindSettingsEvents() {
|
|||||||
settings.theme = name;
|
settings.theme = name;
|
||||||
settings.bgUrl = '';
|
settings.bgUrl = '';
|
||||||
document.getElementById('bgUrlInput').value = '';
|
document.getElementById('bgUrlInput').value = '';
|
||||||
applyTheme(name, false);
|
switchTheme(name);
|
||||||
await saveSettings();
|
await saveSettings();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user