32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
if (document.documentElement instanceof HTMLHtmlElement &&
|
|
matchMedia('(prefers-color-scheme: dark)').matches &&
|
|
!document.querySelector('.darkreader--fallback')) {
|
|
const css = 'html, body, body :not(iframe):not(div[style^="position:absolute;top:0;left:-"]) { background-color: #181a1b !important; border-color: #776e62 !important; color: #e8e6e3 !important; } html, body { opacity: 1 !important; transition: none !important; }';
|
|
const fallback = document.createElement('style');
|
|
fallback.classList.add('darkreader');
|
|
fallback.classList.add('darkreader--fallback');
|
|
fallback.media = 'screen';
|
|
fallback.textContent = css;
|
|
if (document.head) {
|
|
document.head.append(fallback);
|
|
}
|
|
else {
|
|
const root = document.documentElement;
|
|
root.append(fallback);
|
|
const observer = new MutationObserver(() => {
|
|
if (document.head) {
|
|
observer.disconnect();
|
|
if (fallback.isConnected) {
|
|
document.head.append(fallback);
|
|
}
|
|
}
|
|
});
|
|
observer.observe(root, { childList: true });
|
|
}
|
|
}
|
|
|
|
})();
|