extra.js dark mode fix (#17707)
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
This commit is contained in:
parent
d57781aec0
commit
9ca990c303
1 changed files with 26 additions and 11 deletions
|
|
@ -1,24 +1,39 @@
|
||||||
// Apply theme colors based on dark/light mode -------------------------------------------------------------------------
|
// Apply theme colors based on dark/light mode
|
||||||
document.body.setAttribute('data-md-color-scheme', isDark ? 'slate' : 'default');
|
const applyTheme = (isDark) => {
|
||||||
document.body.setAttribute('data-md-color-primary', isDark ? 'black' : 'indigo');
|
document.body.setAttribute(
|
||||||
|
"data-md-color-scheme",
|
||||||
|
isDark ? "slate" : "default",
|
||||||
|
);
|
||||||
|
document.body.setAttribute(
|
||||||
|
"data-md-color-primary",
|
||||||
|
isDark ? "black" : "indigo",
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Check and apply appropriate theme based on system/user preference
|
// Check and apply appropriate theme based on system/user preference
|
||||||
const checkTheme = () => {
|
const checkTheme = () => {
|
||||||
const palette = JSON.parse(localStorage.getItem('.__palette') || '{}');
|
const palette = JSON.parse(localStorage.getItem(".__palette") || "{}");
|
||||||
if (palette.index === 0) { // Auto mode is selected
|
if (palette.index === 0) {
|
||||||
applyTheme(window.matchMedia('(prefers-color-scheme: dark)').matches);
|
// Auto mode is selected
|
||||||
|
applyTheme(window.matchMedia("(prefers-color-scheme: dark)").matches);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Watch for system theme changes
|
// Watch for system theme changes
|
||||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', checkTheme);
|
window
|
||||||
|
.matchMedia("(prefers-color-scheme: dark)")
|
||||||
|
.addEventListener("change", checkTheme);
|
||||||
|
|
||||||
// Initialize theme handling on page load
|
// Initialize theme handling on page load
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
document.getElementById('__palette_1')?.addEventListener('change', e =>
|
// Watch for theme toggle changes
|
||||||
e.target.checked && setTimeout(checkTheme)
|
document
|
||||||
);
|
.getElementById("__palette_1")
|
||||||
|
?.addEventListener(
|
||||||
|
"change",
|
||||||
|
(e) => e.target.checked && setTimeout(checkTheme),
|
||||||
|
);
|
||||||
|
// Initial theme check
|
||||||
checkTheme();
|
checkTheme();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue