forked from darkreader/darkreader
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfallback.ts
More file actions
28 lines (27 loc) · 1 KB
/
Copy pathfallback.ts
File metadata and controls
28 lines (27 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if (
document.documentElement instanceof HTMLHtmlElement &&
matchMedia('(prefers-color-scheme: dark)').matches &&
!document.querySelector('.darkreader--fallback')
) {
const css = 'html, body, body :not(iframe) { background-color: #181a1b !important; border-color: #776e62 !important; color: #e8e6e3 !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});
}
}