mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-09-06 09:56:09 +00:00
[matrix] Dark Theme
* Apply width restructions to modals and images * Dark theme 2.0 * Add webkit scrollbar * Use Object.keys instead of Object.entries where applicable
This commit is contained in:
36
docs/_static/custom.js
vendored
36
docs/_static/custom.js
vendored
@ -28,17 +28,28 @@ function updateSetting(element) {
|
||||
}
|
||||
}
|
||||
|
||||
function getBodyClassToggle(className) {
|
||||
function toggleBodyClass(add) {
|
||||
document.body.classList.toggle(className, add);
|
||||
function getRootAttributeToggle(attributeName, valueName) {
|
||||
function toggleRootAttribute(set) {
|
||||
document.documentElement.setAttribute(`data-${attributeName}`, set ? valueName : null);
|
||||
}
|
||||
return toggleBodyClass;
|
||||
return toggleRootAttribute;
|
||||
}
|
||||
|
||||
const settings = {
|
||||
useSansFont: getBodyClassToggle('sans')
|
||||
useSansFont: getRootAttributeToggle('font', 'sans'),
|
||||
useDarkTheme: getRootAttributeToggle('theme', 'dark')
|
||||
};
|
||||
|
||||
Object.entries(settings).forEach(([name, setter]) => {
|
||||
let value = JSON.parse(localStorage.getItem(name));
|
||||
try {
|
||||
setter(value);
|
||||
} catch (error) {
|
||||
console.error(`Failed to apply setting "${name}" With value:`, value);
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
bottomHeightThreshold = document.documentElement.scrollHeight - 30;
|
||||
@ -81,18 +92,11 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
parent.insertBefore(table, element.nextSibling);
|
||||
});
|
||||
|
||||
Object.entries(settings).forEach(([name, setter]) => {
|
||||
Object.keys(settings).forEach(name => {
|
||||
let value = JSON.parse(localStorage.getItem(name));
|
||||
|
||||
try {
|
||||
setter(value);
|
||||
let element = document.querySelector(`input[name=${name}]`);
|
||||
if (element) {
|
||||
element.checked = value === true;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Failed to apply setting "${name}" With value:`, value);
|
||||
console.error(error);
|
||||
let element = document.querySelector(`input[name=${name}]`);
|
||||
if (element) {
|
||||
element.checked = value === true;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user