// ==UserScript== // @name GitHub Reskin // @namespace https://github.com/sidebandstudio/GitHub-Reskin // @version 1.0.0 // @description Themes for GitHub, including the contribution graph. Pick a theme or your own colors. // @homepageURL https://github.com/sidebandstudio/GitHub-Reskin // @icon https://raw.githubusercontent.com/sidebandstudio/GitHub-Reskin/main/extension/icons/icon-128.png // @match https://github.com/* // @match https://gist.github.com/* // @run-at document-start // @inject-into content // @noframes // @grant GM.getValue // @grant GM.setValue // @grant GM.registerMenuCommand // @downloadURL https://raw.githubusercontent.com/sidebandstudio/GitHub-Reskin/main/userscript/github-reskin.user.js // @updateURL https://raw.githubusercontent.com/sidebandstudio/GitHub-Reskin/main/userscript/github-reskin.user.js // ==/UserScript== // Generated by scripts/userscript.mjs. Do not edit by hand. (function () { "use strict"; const POPUP_CSS = ":root {\n color-scheme: dark;\n font: 13px/1.4 ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n}\n* { box-sizing: border-box; }\nbody { margin: 0; width: 336px; background: var(--bg); color: var(--text); }\n.card { padding: 14px; }\nheader { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }\nh1 { flex: 1; margin: 0; font-size: 15px; font-weight: 600; }\nh2 { margin: 0 0 8px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }\nsection { margin-bottom: 14px; }\n.row-title { display: flex; justify-content: space-between; align-items: baseline; }\n\n.switch { position: relative; display: inline-flex; cursor: pointer; }\n.switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }\n.track { width: 34px; height: 20px; border-radius: 10px; background: var(--border); transition: background .15s; }\n.track::after { content: \"\"; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--text); transition: transform .15s; }\n.switch input:checked + .track { background: var(--strong); }\n.switch input:checked + .track::after { transform: translateX(14px); background: #fff; }\n.switch input:focus-visible + .track { outline: 2px solid var(--accent); outline-offset: 2px; }\n\n.themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }\n.theme { display: flex; flex-direction: column; gap: 5px; padding: 5px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--text); font: inherit; font-size: 11px; text-align: left; cursor: pointer; }\n.theme:hover { border-color: var(--muted); }\n.theme[aria-pressed=\"true\"] { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }\n.theme:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }\n.swatch { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; padding: 6px; border-radius: 5px; }\n.swatch i { aspect-ratio: 1; border-radius: 1.5px; }\n.name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }\n\n.colors { display: grid; gap: 6px; }\n.color { display: grid; grid-template-columns: 1fr auto 84px; align-items: center; gap: 8px; }\n.color input[type=\"color\"] { width: 28px; height: 24px; padding: 0; border: 1px solid var(--border); border-radius: 6px; background: none; cursor: pointer; }\n.color input[type=\"color\"]::-webkit-color-swatch-wrapper { padding: 2px; }\n.color input[type=\"color\"]::-webkit-color-swatch { border: none; border-radius: 4px; }\n.color input[type=\"text\"] { width: 100%; padding: 4px 6px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--text); font: 12px ui-monospace, SFMono-Regular, Consolas, monospace; }\n.color input[type=\"text\"][aria-invalid=\"true\"] { border-color: #e5534b; }\n.warning { margin: 8px 0 0; padding: 6px 8px; border: 1px solid #e5534b; border-radius: 6px; font-size: 12px; }\ninput:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }\n\n.link { padding: 0; border: none; background: none; color: var(--accent); font: inherit; font-size: 12px; cursor: pointer; }\n.link:disabled { color: var(--muted); cursor: default; opacity: .6; }\nfooter { display: flex; justify-content: space-between; gap: 8px; padding-top: 10px; border-top: 1px solid var(--border); font-size: 12px; color: var(--muted); }\nfooter a { color: var(--accent); text-decoration: none; }\nfooter a:hover { text-decoration: underline; }\n.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }\n.off .themes, .off .colors { opacity: .45; }\n"; const POPUP_HTML = "
\n
\n \"\"\n

GitHub Reskin

\n \n
\n\n
\n

Theme

\n
\n
\n\n
\n
\n

Colors

\n \n
\n
\n \n
\n\n \n
"; // Runs GitHub Reskin as a userscript, for browsers that can't keep the extension installed. // scripts/userscript.mjs puts this first in github-reskin.user.js, then the extension's own // scripts, all inside one function. This chrome object stands in for the extension's storage, // so content.js and popup.js run unchanged. Like the extension, it keeps each setting under its // own key, so a save only writes what changed. const listeners = []; const notify = () => listeners.forEach((listener) => listener({}, "local")); const chrome = { storage: { local: { async get(defaults) { const keys = Object.keys(defaults); const values = await Promise.all(keys.map((key) => GM.getValue(key, defaults[key]))); return Object.fromEntries(keys.map((key, i) => [key, values[i]])); }, async set(patch) { await Promise.all(Object.entries(patch).map(([key, value]) => GM.setValue(key, value))); notify(); }, }, onChanged: { addListener: (listener) => listeners.push(listener) }, }, }; // The popup's card, in a frame over the page. Keys typed in a frame never reach the page, so // GitHub's shortcuts can't fire while you type a hex value, and popup.css styles it unchanged. const FRAME_CSS = `position: fixed; top: 16px; right: 16px; z-index: 2147483647; height: 0; width: 336px; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); border: 0; border-radius: 12px; box-shadow: 0 0 0 1px rgb(128 128 128 / .35), 0 8px 24px rgb(0 0 0 / .4);`; let panel = null; function open() { if (panel) return; const frame = (panel = document.createElement("iframe")); frame.title = "GitHub Reskin"; frame.style.cssText = FRAME_CSS; // The popup is 336px wide. The frame can be narrower on small phones, so the card fills it instead. frame.srcdoc = `${POPUP_HTML}`; frame.addEventListener("load", () => { const doc = frame.contentDocument; // The frame takes the card's height, which changes when the contrast warning shows. const fit = () => (frame.style.height = `${doc.body.offsetHeight}px`); new MutationObserver(fit).observe(doc.body, { subtree: true, childList: true, attributes: true }); doc.addEventListener("keydown", (e) => e.key === "Escape" && close()); globalThis.GitHubReskin.card(doc); fit(); }); document.documentElement.append(frame); } function close() { if (!panel) return; panel.remove(); panel = null; if (location.hash === "#reskin") history.replaceState(history.state, "", location.pathname + location.search); } // Tampermonkey, Violentmonkey and Greasemonkey list this command in their menu. if (typeof GM.registerMenuCommand === "function") GM.registerMenuCommand("Theme and colors", () => (panel ? close() : open())); // Userscripts in Safari has no menu, so github.com/#reskin opens the card too. A tab opened in // the background waits until you switch to it, so the card loads the settings current by then. const openFromHash = () => location.hash === "#reskin" && !document.hidden && open(); window.addEventListener("hashchange", openFromHash); // Wait for popup.js, which runs after this file. if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", openFromHash); else setTimeout(openFromHash); // A userscript can't hear another tab save, so a tab repaints when you switch back to it. // The card closes when you leave, like the extension's popup, so it never shows old settings. document.addEventListener("visibilitychange", () => { if (document.hidden) return close(); notify(); openFromHash(); }); // Clicks and keys inside the frame stay in the frame, so these only see the page. document.addEventListener("pointerdown", () => panel && close(), true); document.addEventListener("keydown", (e) => panel && e.key === "Escape" && close()); // Generated by scripts/github-modes.mjs from GitHub's CSS on 2026-10-31. Do not edit by hand. globalThis.GitHubReskinModes = { "dark": "--ansi-cyan:#39c5cf !important;--ansi-cyanBright:#56d4dd !important;--button-danger-fgColor-rest:#fa5e55 !important;--button-primary-bgColor-active:#2e9a40 !important;--button-primary-bgColor-disabled:#105823 !important;--button-primary-bgColor-hover:#29903b !important;--button-primary-borderColor-disabled:#105823 !important;--control-checked-bgColor-active:#3685f3 !important;--control-checked-bgColor-hover:#2a7aef !important;--fgColor-accent:#4493f8 !important;--reactionButton-selected-bgColor-hover:#3a8cfd5c !important;--ansi-black:#2f3742 !important;--ansi-blackBright:#656c76 !important;--ansi-blue:#58a6ff !important;--ansi-blueBright:#79c0ff !important;--ansi-gray:#656c76 !important;--ansi-green:#3fb950 !important;--ansi-greenBright:#56d364 !important;--ansi-magenta:#be8fff !important;--ansi-magentaBright:#d2a8ff !important;--ansi-red:#ff7b72 !important;--ansi-redBright:#ffa198 !important;--ansi-white:#f0f6fc !important;--ansi-yellow:#d29922 !important;--ansi-yellowBright:#e3b341 !important;--avatar-shadow:0 0 0 2px #0d1117 !important;--avatarStack-fade-bgColor-default:#3d444d !important;--avatarStack-fade-bgColor-muted:#2a313c !important;--bgColor-accent-emphasis:#1f6feb !important;--bgColor-accent-muted:#388bfd1a !important;--bgColor-attention-emphasis:#9e6a03 !important;--bgColor-attention-muted:#bb800926 !important;--bgColor-danger-emphasis:#da3633 !important;--bgColor-danger-muted:#f851491a !important;--bgColor-default:#0d1117 !important;--bgColor-disabled:#212830 !important;--bgColor-done-emphasis:#8957e5 !important;--bgColor-done-muted:#ab7df826 !important;--bgColor-emphasis:#3d444d !important;--bgColor-muted:#151b23 !important;--bgColor-neutral-emphasis:#656c76 !important;--bgColor-neutral-muted:#656c7633 !important;--bgColor-severe-emphasis:#bd561d !important;--bgColor-severe-muted:#db6d281a !important;--bgColor-sponsors-emphasis:#bf4b8a !important;--bgColor-sponsors-muted:#db61a21a !important;--bgColor-success-emphasis:#238636 !important;--bgColor-success-muted:#2ea04326 !important;--bgColor-transparent:#0000 !important;--borderColor-accent-emphasis:#1f6feb !important;--borderColor-accent-muted:#388bfd66 !important;--borderColor-attention-emphasis:#9e6a03 !important;--borderColor-attention-muted:#bb800966 !important;--borderColor-danger-emphasis:#da3633 !important;--borderColor-danger-muted:#f8514966 !important;--borderColor-default:#3d444d !important;--borderColor-disabled:#656c761a !important;--borderColor-done-emphasis:#8957e5 !important;--borderColor-done-muted:#ab7df866 !important;--borderColor-emphasis:#656c76 !important;--borderColor-severe-emphasis:#bd561d !important;--borderColor-severe-muted:#db6d2866 !important;--borderColor-sponsors-emphasis:#bf4b8a !important;--borderColor-sponsors-muted:#db61a266 !important;--borderColor-success-emphasis:#238636 !important;--borderColor-success-muted:#2ea04366 !important;--borderColor-transparent:#0000 !important;--button-danger-bgColor-hover:#b62324 !important;--button-danger-shadow-selected:0 0 0 0 #0000 !important;--button-default-shadow-resting:0 0 0 0 #0000 !important;--button-inactive-bgColor:#262c36 !important;--button-inactive-fgColor:#9198a1 !important;--button-invisible-bgColor-disabled:#0000 !important;--button-invisible-borderColor-disabled:#0000 !important;--button-outline-bgColor-active:#0d419d !important;--button-outline-bgColor-rest:#f0f6fc !important;--button-outline-fgColor-disabled:#4493f880 !important;--button-outline-fgColor-hover:#58a6ff !important;--button-outline-fgColor-rest:#388bfd !important;--button-outline-shadow-selected:0 0 0 0 #0000 !important;--button-primary-shadow-selected:0 0 0 0 #0000 !important;--button-star-iconColor:#e3b341 !important;--buttonCounter-danger-bgColor-rest:#49020233 !important;--buttonCounter-default-bgColor-rest:#2f3742 !important;--buttonCounter-outline-bgColor-hover:#051d4d33 !important;--buttonCounter-outline-bgColor-rest:#051d4d33 !important;--buttonCounter-outline-fgColor-disabled:#4493f880 !important;--buttonCounter-outline-fgColor-hover:#58a6ff !important;--buttonCounter-outline-fgColor-rest:#388bfd !important;--buttonCounter-primary-bgColor-rest:#04260f33 !important;--buttonKeybindingHint-danger-bgColor-active:#01040966 !important;--buttonKeybindingHint-danger-bgColor-hover:#01040933 !important;--buttonKeybindingHint-danger-borderColor-hover:#0104091a !important;--buttonKeybindingHint-default-bgColor-rest:#2a313c !important;--buttonKeybindingHint-inactive-bgColor:#2a313c !important;--buttonKeybindingHint-invisible-borderColor-rest:#0000 !important;--codeMirror-syntax-fgColor-comment:#656c76 !important;--codeMirror-syntax-fgColor-constant:#79c0ff !important;--codeMirror-syntax-fgColor-entity:#d2a8ff !important;--codeMirror-syntax-fgColor-keyword:#ff7b72 !important;--codeMirror-syntax-fgColor-storage:#ff7b72 !important;--codeMirror-syntax-fgColor-string:#a5d6ff !important;--codeMirror-syntax-fgColor-support:#79c0ff !important;--codeMirror-syntax-fgColor-variable:#ffa657 !important;--contribution-default-bgColor-0:#151b23 !important;--contribution-default-bgColor-1:#033a16 !important;--contribution-default-bgColor-2:#196c2e !important;--contribution-default-bgColor-3:#2ea043 !important;--contribution-default-bgColor-4:#56d364 !important;--contribution-default-borderColor-0:#0104090d !important;--contribution-halloween-bgColor-1:#fac68f !important;--contribution-halloween-bgColor-2:#c46212 !important;--contribution-halloween-bgColor-3:#984b10 !important;--contribution-halloween-bgColor-4:#e3d04f !important;--contribution-winter-bgColor-1:#0c2d6b !important;--contribution-winter-bgColor-2:#1158c7 !important;--contribution-winter-bgColor-3:#58a6ff !important;--contribution-winter-bgColor-4:#cae8ff !important;--control-bgColor-active:#2a313c !important;--control-bgColor-hover:#262c36 !important;--control-bgColor-rest:#212830 !important;--control-borderColor-selected:#f0f6fc !important;--control-checked-borderColor-active:var(--control-checked-bgColor-active) !important;--control-checked-borderColor-hover:var(--control-checked-bgColor-hover) !important;--control-danger-fgColor-hover:#ff7b72 !important;--control-transparent-bgColor-active:#656c7640 !important;--control-transparent-bgColor-hover:#656c7633 !important;--control-transparent-bgColor-rest:#0000 !important;--control-transparent-bgColor-selected:#656c7633 !important;--control-transparent-borderColor-active:#0000 !important;--control-transparent-borderColor-hover:#0000 !important;--control-transparent-borderColor-rest:#0000 !important;--controlKnob-bgColor-rest:#262c36 !important;--controlTrack-bgColor-active:#2f3742 !important;--controlTrack-bgColor-hover:#2a313c !important;--counter-borderColor:#0000 !important;--data-auburn-color-emphasis:#a86f6b !important;--data-auburn-color-muted:#271817 !important;--data-blue-color-emphasis:#0576ff !important;--data-blue-color-muted:#001a47 !important;--data-brown-color-emphasis:#94774c !important;--data-brown-color-muted:#241c14 !important;--data-coral-color-emphasis:#e1430e !important;--data-coral-color-muted:#351008 !important;--data-gray-color-emphasis:#576270 !important;--data-gray-color-muted:#1c1c1c !important;--data-green-color-emphasis:#2f6f37 !important;--data-green-color-muted:#122117 !important;--data-lemon-color-emphasis:#977b0c !important;--data-lemon-color-muted:#291d00 !important;--data-lime-color-emphasis:#5f892f !important;--data-lime-color-muted:#141f0f !important;--data-olive-color-emphasis:#7a8321 !important;--data-olive-color-muted:#171e0b !important;--data-orange-color-emphasis:#984b10 !important;--data-orange-color-muted:#311708 !important;--data-pine-color-emphasis:#18915e !important;--data-pine-color-muted:#082119 !important;--data-pink-color-emphasis:#d34591 !important;--data-pink-color-muted:#2d1524 !important;--data-plum-color-emphasis:#b643ef !important;--data-plum-color-muted:#2a0e3f !important;--data-purple-color-emphasis:#975bf1 !important;--data-purple-color-muted:#211047 !important;--data-red-color-emphasis:#eb3342 !important;--data-red-color-muted:#3c0614 !important;--data-teal-color-emphasis:#106c70 !important;--data-teal-color-muted:#041f25 !important;--data-yellow-color-emphasis:#895906 !important;--data-yellow-color-muted:#2e1a00 !important;--diffBlob-additionNum-bgColor:#3fb9504d !important;--diffBlob-additionWord-bgColor:#2ea04366 !important;--diffBlob-deletionNum-bgColor:#f851494d !important;--diffBlob-deletionWord-bgColor:#f8514966 !important;--diffBlob-hunkNum-bgColor-rest:#0c2d6b !important;--display-auburn-bgColor-emphasis:#87534f !important;--display-auburn-bgColor-muted:#271817 !important;--display-auburn-borderColor-emphasis:#a86f6b !important;--display-auburn-borderColor-muted:#3a2422 !important;--display-auburn-fgColor:#bf9592 !important;--display-auburn-scale-0:#271817 !important;--display-auburn-scale-1:#3a2422 !important;--display-auburn-scale-2:#543331 !important;--display-auburn-scale-3:#6d4340 !important;--display-auburn-scale-4:#87534f !important;--display-auburn-scale-5:#a86f6b !important;--display-auburn-scale-6:#bf9592 !important;--display-auburn-scale-7:#c6a19f !important;--display-auburn-scale-8:#d4b7b5 !important;--display-auburn-scale-9:#dfcac8 !important;--display-blue-bgColor-emphasis:#005bd1 !important;--display-blue-bgColor-muted:#001a47 !important;--display-blue-borderColor-emphasis:#0576ff !important;--display-blue-borderColor-muted:#002766 !important;--display-blue-fgColor:#4da0ff !important;--display-blue-scale-0:#001a47 !important;--display-blue-scale-1:#002766 !important;--display-blue-scale-2:#00378a !important;--display-blue-scale-3:#0046a8 !important;--display-blue-scale-4:#005bd1 !important;--display-blue-scale-5:#0576ff !important;--display-blue-scale-6:#4da0ff !important;--display-blue-scale-7:#61adff !important;--display-blue-scale-8:#85c2ff !important;--display-blue-scale-9:#a3d3ff !important;--display-brown-bgColor-emphasis:#755e3e !important;--display-brown-bgColor-muted:#241c14 !important;--display-brown-borderColor-emphasis:#94774c !important;--display-brown-borderColor-muted:#342a1d !important;--display-brown-fgColor:#b69a6d !important;--display-brown-scale-0:#241c14 !important;--display-brown-scale-1:#342a1d !important;--display-brown-scale-2:#483a28 !important;--display-brown-scale-3:#5d4a32 !important;--display-brown-scale-4:#755e3e !important;--display-brown-scale-5:#94774c !important;--display-brown-scale-6:#b69a6d !important;--display-brown-scale-7:#bfa77d !important;--display-brown-scale-8:#cdbb98 !important;--display-brown-scale-9:#dbceb3 !important;--display-coral-bgColor-emphasis:#c31328 !important;--display-coral-bgColor-muted:#3c0614 !important;--display-coral-borderColor-emphasis:#eb3342 !important;--display-coral-borderColor-muted:#58091a !important;--display-coral-fgColor:#f27d83 !important;--display-coral-scale-0:#351008 !important;--display-coral-scale-1:#51180b !important;--display-coral-scale-2:#72220d !important;--display-coral-scale-3:#902a0e !important;--display-coral-scale-4:#b3350f !important;--display-coral-scale-5:#e1430e !important;--display-coral-scale-6:#f7794b !important;--display-coral-scale-7:#fa8c61 !important;--display-coral-scale-8:#fdaa86 !important;--display-coral-scale-9:#ffc0a3 !important;--display-cyan-bgColor-emphasis:#036a8c !important;--display-cyan-bgColor-muted:#001f29 !important;--display-cyan-borderColor-emphasis:#0587b3 !important;--display-cyan-borderColor-muted:#002e3d !important;--display-cyan-fgColor:#07ace4 !important;--display-cyan-scale-0:#001f29 !important;--display-cyan-scale-1:#002e3d !important;--display-cyan-scale-2:#014156 !important;--display-cyan-scale-3:#02536f !important;--display-cyan-scale-4:#036a8c !important;--display-cyan-scale-5:#0587b3 !important;--display-cyan-scale-6:#07ace4 !important;--display-cyan-scale-7:#09b7f1 !important;--display-cyan-scale-8:#45cbf7 !important;--display-cyan-scale-9:#80dbf9 !important;--display-gray-bgColor-emphasis:#576270 !important;--display-gray-bgColor-muted:#1c1c1c !important;--display-gray-borderColor-emphasis:#6e7f96 !important;--display-gray-borderColor-muted:#2a2b2d !important;--display-gray-fgColor:#92a1b5 !important;--display-gray-scale-0:#1c1c1c !important;--display-gray-scale-1:#2a2b2d !important;--display-gray-scale-2:#393d41 !important;--display-gray-scale-3:#474e57 !important;--display-gray-scale-4:#576270 !important;--display-gray-scale-5:#6e7f96 !important;--display-gray-scale-6:#92a1b5 !important;--display-gray-scale-7:#9babbf !important;--display-gray-scale-8:#b3c0d1 !important;--display-gray-scale-9:#c4cfde !important;--display-green-bgColor-emphasis:#2f6f37 !important;--display-green-bgColor-muted:#122117 !important;--display-green-borderColor-emphasis:#388f3f !important;--display-green-borderColor-muted:#182f1f !important;--display-green-fgColor:#41b445 !important;--display-green-scale-0:#122117 !important;--display-green-scale-1:#182f1f !important;--display-green-scale-2:#214529 !important;--display-green-scale-3:#285830 !important;--display-green-scale-4:#2f6f37 !important;--display-green-scale-5:#388f3f !important;--display-green-scale-6:#41b445 !important;--display-green-scale-7:#46c144 !important;--display-green-scale-8:#75d36f !important;--display-green-scale-9:#99e090 !important;--display-indigo-bgColor-emphasis:#514ed4 !important;--display-indigo-bgColor-muted:#1b183f !important;--display-indigo-borderColor-emphasis:#7070e1 !important;--display-indigo-borderColor-muted:#25215f !important;--display-indigo-fgColor:#9899ec !important;--display-indigo-scale-0:#1b183f !important;--display-indigo-scale-1:#25215f !important;--display-indigo-scale-2:#312c90 !important;--display-indigo-scale-3:#3935c0 !important;--display-indigo-scale-4:#514ed4 !important;--display-indigo-scale-5:#7070e1 !important;--display-indigo-scale-6:#9899ec !important;--display-indigo-scale-7:#a2a5f1 !important;--display-indigo-scale-8:#b7baf6 !important;--display-indigo-scale-9:#c8cbf9 !important;--display-lemon-bgColor-emphasis:#786008 !important;--display-lemon-bgColor-muted:#291d00 !important;--display-lemon-borderColor-emphasis:#977b0c !important;--display-lemon-borderColor-muted:#372901 !important;--display-lemon-fgColor:#ba9b12 !important;--display-lemon-scale-0:#291d00 !important;--display-lemon-scale-1:#372901 !important;--display-lemon-scale-2:#4f3c02 !important;--display-lemon-scale-3:#614c05 !important;--display-lemon-scale-4:#786008 !important;--display-lemon-scale-5:#977b0c !important;--display-lemon-scale-6:#ba9b12 !important;--display-lemon-scale-7:#c4a717 !important;--display-lemon-scale-8:#d7bc1d !important;--display-lemon-scale-9:#e3d04f !important;--display-lime-bgColor-emphasis:#496c28 !important;--display-lime-bgColor-muted:#141f0f !important;--display-lime-borderColor-emphasis:#5f892f !important;--display-lime-borderColor-muted:#1f3116 !important;--display-lime-fgColor:#7dae37 !important;--display-lime-scale-0:#141f0f !important;--display-lime-scale-1:#1f3116 !important;--display-lime-scale-2:#2c441d !important;--display-lime-scale-3:#375421 !important;--display-lime-scale-4:#496c28 !important;--display-lime-scale-5:#5f892f !important;--display-lime-scale-6:#7dae37 !important;--display-lime-scale-7:#89ba36 !important;--display-lime-scale-8:#9fcc3e !important;--display-lime-scale-9:#bcda67 !important;--display-olive-bgColor-emphasis:#5e681d !important;--display-olive-bgColor-muted:#171e0b !important;--display-olive-borderColor-emphasis:#7a8321 !important;--display-olive-borderColor-muted:#252d10 !important;--display-olive-fgColor:#a2a626 !important;--display-olive-scale-0:#171e0b !important;--display-olive-scale-1:#252d10 !important;--display-olive-scale-2:#374115 !important;--display-olive-scale-3:#485219 !important;--display-olive-scale-4:#5e681d !important;--display-olive-scale-5:#7a8321 !important;--display-olive-scale-6:#a2a626 !important;--display-olive-scale-7:#b2af24 !important;--display-olive-scale-8:#cbc025 !important;--display-olive-scale-9:#e2d04b !important;--display-orange-bgColor-emphasis:#984b10 !important;--display-orange-bgColor-muted:#311708 !important;--display-orange-borderColor-emphasis:#c46212 !important;--display-orange-borderColor-muted:#43200a !important;--display-orange-fgColor:#ed8326 !important;--display-orange-scale-0:#311708 !important;--display-orange-scale-1:#43200a !important;--display-orange-scale-2:#632f0d !important;--display-orange-scale-3:#7b3c0e !important;--display-orange-scale-4:#984b10 !important;--display-orange-scale-5:#c46212 !important;--display-orange-scale-6:#ed8326 !important;--display-orange-scale-7:#f1933b !important;--display-orange-scale-8:#f6b06a !important;--display-orange-scale-9:#fac68f !important;--display-pine-bgColor-emphasis:#14714c !important;--display-pine-bgColor-muted:#082119 !important;--display-pine-borderColor-emphasis:#18915e !important;--display-pine-borderColor-muted:#0b3224 !important;--display-pine-fgColor:#1bb673 !important;--display-pine-scale-0:#082119 !important;--display-pine-scale-1:#0b3224 !important;--display-pine-scale-2:#0e4430 !important;--display-pine-scale-3:#115a3e !important;--display-pine-scale-4:#14714c !important;--display-pine-scale-5:#18915e !important;--display-pine-scale-6:#1bb673 !important;--display-pine-scale-7:#1ac176 !important;--display-pine-scale-8:#1bda81 !important;--display-pine-scale-9:#3eea97 !important;--display-pink-bgColor-emphasis:#ac2f74 !important;--display-pink-bgColor-muted:#2d1524 !important;--display-pink-borderColor-emphasis:#d34591 !important;--display-pink-borderColor-muted:#451c35 !important;--display-pink-fgColor:#e57bb2 !important;--display-pink-scale-0:#2d1524 !important;--display-pink-scale-1:#451c35 !important;--display-pink-scale-2:#65244a !important;--display-pink-scale-3:#842a5d !important;--display-pink-scale-4:#ac2f74 !important;--display-pink-scale-5:#d34591 !important;--display-pink-scale-6:#e57bb2 !important;--display-pink-scale-7:#ec8dbd !important;--display-pink-scale-8:#f4a9cd !important;--display-pink-scale-9:#f9bed9 !important;--display-plum-bgColor-emphasis:#9518d8 !important;--display-plum-bgColor-muted:#2a0e3f !important;--display-plum-borderColor-emphasis:#b643ef !important;--display-plum-borderColor-muted:#40125e !important;--display-plum-fgColor:#d07ef7 !important;--display-plum-scale-0:#2a0e3f !important;--display-plum-scale-1:#40125e !important;--display-plum-scale-2:#5c1688 !important;--display-plum-scale-3:#7517ab !important;--display-plum-scale-4:#9518d8 !important;--display-plum-scale-5:#b643ef !important;--display-plum-scale-6:#d07ef7 !important;--display-plum-scale-7:#d889fa !important;--display-plum-scale-8:#e4a5fd !important;--display-plum-scale-9:#edbdff !important;--display-purple-bgColor-emphasis:#7730e8 !important;--display-purple-bgColor-muted:#211047 !important;--display-purple-borderColor-emphasis:#975bf1 !important;--display-purple-borderColor-muted:#31146b !important;--display-purple-fgColor:#b687f7 !important;--display-purple-scale-0:#211047 !important;--display-purple-scale-1:#31146b !important;--display-purple-scale-2:#481a9e !important;--display-purple-scale-3:#5b1cca !important;--display-purple-scale-4:#7730e8 !important;--display-purple-scale-5:#975bf1 !important;--display-purple-scale-6:#b687f7 !important;--display-purple-scale-7:#c398fb !important;--display-purple-scale-8:#d2affd !important;--display-purple-scale-9:#e1c7ff !important;--display-red-bgColor-emphasis:#c31328 !important;--display-red-bgColor-muted:#3c0614 !important;--display-red-borderColor-emphasis:#eb3342 !important;--display-red-borderColor-muted:#58091a !important;--display-red-fgColor:#f27d83 !important;--display-red-scale-0:#3c0614 !important;--display-red-scale-1:#58091a !important;--display-red-scale-2:#790c20 !important;--display-red-scale-3:#990f24 !important;--display-red-scale-4:#c31328 !important;--display-red-scale-5:#eb3342 !important;--display-red-scale-6:#f27d83 !important;--display-red-scale-7:#f48b8d !important;--display-red-scale-8:#f7adab !important;--display-red-scale-9:#f9c1be !important;--display-teal-bgColor-emphasis:#106c70 !important;--display-teal-bgColor-muted:#041f25 !important;--display-teal-borderColor-emphasis:#158a8a !important;--display-teal-borderColor-muted:#073036 !important;--display-teal-fgColor:#1cb0ab !important;--display-teal-scale-0:#041f25 !important;--display-teal-scale-1:#073036 !important;--display-teal-scale-2:#0a464d !important;--display-teal-scale-3:#0c555a !important;--display-teal-scale-4:#106c70 !important;--display-teal-scale-5:#158a8a !important;--display-teal-scale-6:#1cb0ab !important;--display-teal-scale-7:#1fbdb2 !important;--display-teal-scale-8:#24d6c4 !important;--display-teal-scale-9:#5fe3d1 !important;--display-yellow-bgColor-emphasis:#895906 !important;--display-yellow-bgColor-muted:#2e1a00 !important;--display-yellow-borderColor-emphasis:#aa7109 !important;--display-yellow-borderColor-muted:#3d2401 !important;--display-yellow-fgColor:#d3910d !important;--display-yellow-scale-0:#2e1a00 !important;--display-yellow-scale-1:#3d2401 !important;--display-yellow-scale-2:#5a3702 !important;--display-yellow-scale-3:#6d4403 !important;--display-yellow-scale-4:#895906 !important;--display-yellow-scale-5:#aa7109 !important;--display-yellow-scale-6:#d3910d !important;--display-yellow-scale-7:#df9e11 !important;--display-yellow-scale-8:#edb431 !important;--display-yellow-scale-9:#f0ca6a !important;--fgColor-attention:#d29922 !important;--fgColor-danger:#f85149 !important;--fgColor-default:#f0f6fc !important;--fgColor-disabled:#656c76 !important;--fgColor-done:#ab7df8 !important;--fgColor-muted:#9198a1 !important;--fgColor-neutral:#9198a1 !important;--fgColor-severe:#db6d28 !important;--fgColor-sponsors:#db61a2 !important;--fgColor-success:#3fb950 !important;--header-bgColor:#151b23f2 !important;--header-borderColor-divider:#656c76 !important;--header-fgColor-logo:#f0f6fc !important;--headerSearch-bgColor:#0d1117 !important;--headerSearch-borderColor:#2a313c !important;--highlight-neutral-bgColor:#d2992266 !important;--label-auburn-bgColor-active:#543331 !important;--label-auburn-bgColor-hover:#3a2422 !important;--label-auburn-bgColor-rest:#271817 !important;--label-auburn-borderColor:#0000 !important;--label-auburn-fgColor-active:#d4b7b5 !important;--label-auburn-fgColor-hover:#c6a19f !important;--label-auburn-fgColor-rest:#bf9592 !important;--label-blue-bgColor-active:#00378a !important;--label-blue-bgColor-hover:#002766 !important;--label-blue-bgColor-rest:#001a47 !important;--label-blue-borderColor:#0000 !important;--label-blue-fgColor-active:#85c2ff !important;--label-blue-fgColor-hover:#61adff !important;--label-blue-fgColor-rest:#4da0ff !important;--label-brown-bgColor-active:#483a28 !important;--label-brown-bgColor-hover:#342a1d !important;--label-brown-bgColor-rest:#241c14 !important;--label-brown-borderColor:#0000 !important;--label-brown-fgColor-active:#cdbb98 !important;--label-brown-fgColor-hover:#bfa77d !important;--label-brown-fgColor-rest:#b69a6d !important;--label-coral-bgColor-active:#72220d !important;--label-coral-bgColor-hover:#51180b !important;--label-coral-bgColor-rest:#351008 !important;--label-coral-borderColor:#0000 !important;--label-coral-fgColor-active:#fdaa86 !important;--label-coral-fgColor-hover:#fa8c61 !important;--label-coral-fgColor-rest:#f7794b !important;--label-cyan-bgColor-active:#014156 !important;--label-cyan-bgColor-hover:#002e3d !important;--label-cyan-bgColor-rest:#001f29 !important;--label-cyan-borderColor:#0000 !important;--label-cyan-fgColor-active:#45cbf7 !important;--label-cyan-fgColor-hover:#09b7f1 !important;--label-cyan-fgColor-rest:#07ace4 !important;--label-gray-bgColor-active:#393d41 !important;--label-gray-bgColor-hover:#2a2b2d !important;--label-gray-bgColor-rest:#1c1c1c !important;--label-gray-borderColor:#0000 !important;--label-gray-fgColor-active:#b3c0d1 !important;--label-gray-fgColor-hover:#9babbf !important;--label-gray-fgColor-rest:#92a1b5 !important;--label-green-bgColor-active:#214529 !important;--label-green-bgColor-hover:#182f1f !important;--label-green-bgColor-rest:#122117 !important;--label-green-borderColor:#0000 !important;--label-green-fgColor-active:#75d36f !important;--label-green-fgColor-hover:#46c144 !important;--label-green-fgColor-rest:#41b445 !important;--label-indigo-bgColor-active:#312c90 !important;--label-indigo-bgColor-hover:#25215f !important;--label-indigo-bgColor-rest:#1b183f !important;--label-indigo-borderColor:#0000 !important;--label-indigo-fgColor-active:#b7baf6 !important;--label-indigo-fgColor-hover:#a2a5f1 !important;--label-indigo-fgColor-rest:#9899ec !important;--label-lemon-bgColor-active:#4f3c02 !important;--label-lemon-bgColor-hover:#372901 !important;--label-lemon-bgColor-rest:#291d00 !important;--label-lemon-borderColor:#0000 !important;--label-lemon-fgColor-active:#d7bc1d !important;--label-lemon-fgColor-hover:#c4a717 !important;--label-lemon-fgColor-rest:#ba9b12 !important;--label-lime-bgColor-active:#2c441d !important;--label-lime-bgColor-hover:#1f3116 !important;--label-lime-bgColor-rest:#141f0f !important;--label-lime-borderColor:#0000 !important;--label-lime-fgColor-active:#9fcc3e !important;--label-lime-fgColor-hover:#89ba36 !important;--label-lime-fgColor-rest:#7dae37 !important;--label-olive-bgColor-active:#374115 !important;--label-olive-bgColor-hover:#252d10 !important;--label-olive-bgColor-rest:#171e0b !important;--label-olive-borderColor:#0000 !important;--label-olive-fgColor-active:#cbc025 !important;--label-olive-fgColor-hover:#b2af24 !important;--label-olive-fgColor-rest:#a2a626 !important;--label-orange-bgColor-active:#632f0d !important;--label-orange-bgColor-hover:#43200a !important;--label-orange-bgColor-rest:#311708 !important;--label-orange-borderColor:#0000 !important;--label-orange-fgColor-active:#f6b06a !important;--label-orange-fgColor-hover:#f1933b !important;--label-orange-fgColor-rest:#ed8326 !important;--label-pine-bgColor-active:#0e4430 !important;--label-pine-bgColor-hover:#0b3224 !important;--label-pine-bgColor-rest:#082119 !important;--label-pine-borderColor:#0000 !important;--label-pine-fgColor-active:#1bda81 !important;--label-pine-fgColor-hover:#1ac176 !important;--label-pine-fgColor-rest:#1bb673 !important;--label-pink-bgColor-active:#65244a !important;--label-pink-bgColor-hover:#451c35 !important;--label-pink-bgColor-rest:#2d1524 !important;--label-pink-borderColor:#0000 !important;--label-pink-fgColor-active:#f4a9cd !important;--label-pink-fgColor-hover:#ec8dbd !important;--label-pink-fgColor-rest:#e57bb2 !important;--label-plum-bgColor-active:#5c1688 !important;--label-plum-bgColor-hover:#40125e !important;--label-plum-bgColor-rest:#2a0e3f !important;--label-plum-borderColor:#0000 !important;--label-plum-fgColor-active:#e4a5fd !important;--label-plum-fgColor-hover:#d889fa !important;--label-plum-fgColor-rest:#d07ef7 !important;--label-purple-bgColor-active:#481a9e !important;--label-purple-bgColor-hover:#31146b !important;--label-purple-bgColor-rest:#211047 !important;--label-purple-borderColor:#0000 !important;--label-purple-fgColor-active:#d2affd !important;--label-purple-fgColor-hover:#c398fb !important;--label-purple-fgColor-rest:#b687f7 !important;--label-red-bgColor-active:#790c20 !important;--label-red-bgColor-hover:#58091a !important;--label-red-bgColor-rest:#3c0614 !important;--label-red-borderColor:#0000 !important;--label-red-fgColor-active:#f7adab !important;--label-red-fgColor-hover:#f48b8d !important;--label-red-fgColor-rest:#f27d83 !important;--label-teal-bgColor-active:#0a464d !important;--label-teal-bgColor-hover:#073036 !important;--label-teal-bgColor-rest:#041f25 !important;--label-teal-borderColor:#0000 !important;--label-teal-fgColor-active:#24d6c4 !important;--label-teal-fgColor-hover:#1fbdb2 !important;--label-teal-fgColor-rest:#1cb0ab !important;--label-yellow-bgColor-active:#5a3702 !important;--label-yellow-bgColor-hover:#3d2401 !important;--label-yellow-bgColor-rest:#2e1a00 !important;--label-yellow-borderColor:#0000 !important;--label-yellow-fgColor-active:#edb431 !important;--label-yellow-fgColor-hover:#df9e11 !important;--label-yellow-fgColor-rest:#d3910d !important;--menu-bgColor-active:#151b23 !important;--overlay-backdrop-bgColor:#21283066 !important;--prettylights-syntax-bracketHighlighterAngle:#9198a1 !important;--prettylights-syntax-bracketHighlighterUnmatched:#f85149 !important;--prettylights-syntax-carriageReturn-bg:#b62324 !important;--prettylights-syntax-carriageReturn-text:#f0f6fc !important;--prettylights-syntax-comment:#9198a1 !important;--prettylights-syntax-constant:#79c0ff !important;--prettylights-syntax-constantOtherReferenceLink:#a5d6ff !important;--prettylights-syntax-entity:#d2a8ff !important;--prettylights-syntax-entityTag:#7ee787 !important;--prettylights-syntax-keyword:#ff7b72 !important;--prettylights-syntax-markup-bold:#f0f6fc !important;--prettylights-syntax-markup-changed-bg:#5a1e02 !important;--prettylights-syntax-markup-changed-text:#ffdfb6 !important;--prettylights-syntax-markup-deleted-bg:#67060c !important;--prettylights-syntax-markup-deleted-text:#ffdcd7 !important;--prettylights-syntax-markup-heading:#1f6feb !important;--prettylights-syntax-markup-ignored-bg:#1158c7 !important;--prettylights-syntax-markup-ignored-text:#f0f6fc !important;--prettylights-syntax-markup-inserted-bg:#033a16 !important;--prettylights-syntax-markup-inserted-text:#aff5b4 !important;--prettylights-syntax-markup-italic:#f0f6fc !important;--prettylights-syntax-markup-list:#f2cc60 !important;--prettylights-syntax-metaDiffRange:#d2a8ff !important;--prettylights-syntax-storageModifierImport:#f0f6fc !important;--prettylights-syntax-string:#a5d6ff !important;--prettylights-syntax-stringRegexp:#7ee787 !important;--prettylights-syntax-sublimeLinterGutterMark:#3d444d !important;--prettylights-syntax-variable:#ffa657 !important;--progressBar-track-borderColor:#0000 !important;--reactionButton-selected-bgColor-rest:#388bfd33 !important;--reactionButton-selected-fgColor-hover:#79c0ff !important;--selectMenu-bgColor-active:#0c2d6b !important;--sideNav-bgColor-selected:#212830 !important;--skeletonLoader-bgColor:#656c7633 !important;--timelineBadge-bgColor:#212830 !important;--topicTag-borderColor:#0000 !important;--underlineNav-borderColor-active:#f78166 !important;--ansi-whiteBright:#fff !important;--avatar-bgColor:#ffffff1a !important;--bgColor-black:#010409 !important;--bgColor-closed-emphasis:var(--bgColor-danger-emphasis) !important;--bgColor-closed-muted:var(--bgColor-danger-muted) !important;--bgColor-draft-muted:var(--bgColor-neutral-muted) !important;--bgColor-inset:#010409 !important;--bgColor-inverse:#fff !important;--bgColor-open-emphasis:var(--bgColor-success-emphasis) !important;--bgColor-open-muted:var(--bgColor-success-muted) !important;--bgColor-white:#fff !important;--borderColor-closed-emphasis:var(--borderColor-danger-emphasis) !important;--borderColor-closed-muted:var(--borderColor-danger-muted) !important;--borderColor-muted:#3d444db3 !important;--borderColor-neutral-emphasis:var(--borderColor-emphasis) !important;--borderColor-open-emphasis:var(--borderColor-success-emphasis) !important;--borderColor-open-muted:var(--borderColor-success-muted) !important;--borderColor-translucent:#ffffff26 !important;--button-danger-bgColor-active:var(--bgColor-danger-emphasis) !important;--button-danger-fgColor-disabled:#f8514980 !important;--button-danger-iconColor-hover:#fff !important;--button-invisible-bgColor-active:var(--control-transparent-bgColor-active) !important;--button-invisible-bgColor-hover:var(--control-transparent-bgColor-hover) !important;--button-invisible-iconColor-hover:var(--fgColor-muted) !important;--button-invisible-iconColor-rest:var(--fgColor-muted) !important;--button-outline-bgColor-hover:var(--control-bgColor-hover) !important;--button-outline-fgColor-active:#fff !important;--button-primary-bgColor-rest:var(--bgColor-success-emphasis) !important;--button-primary-fgColor-disabled:#fff6 !important;--buttonCounter-danger-bgColor-disabled:#da36330d !important;--buttonCounter-danger-bgColor-hover:#fff3 !important;--buttonCounter-danger-fgColor-disabled:#f8514980 !important;--buttonCounter-danger-fgColor-hover:#fff !important;--buttonCounter-danger-fgColor-rest:var(--fgColor-danger) !important;--buttonCounter-outline-bgColor-disabled:#1f6feb0d !important;--buttonKeybindingHint-primary-bgColor-disabled:#04260f1a !important;--buttonKeybindingHint-primary-borderColor-rest:#04260f1a !important;--card-bgColor:var(--bgColor-muted) !important;--codeMirror-selection-bgColor:var(--borderColor-accent-muted) !important;--control-borderColor-disabled:var(--borderColor-disabled) !important;--control-borderColor-rest:var(--borderColor-default) !important;--control-checked-fgColor-disabled:#010409 !important;--control-danger-bgColor-active:#f8514966 !important;--control-danger-bgColor-hover:var(--bgColor-danger-muted) !important;--control-fgColor-placeholder:var(--fgColor-muted) !important;--control-fgColor-rest:var(--fgColor-default) !important;--controlKnob-bgColor-checked:#fff !important;--controlTrack-bgColor-rest:#010409 !important;--controlTrack-borderColor-rest:var(--borderColor-default) !important;--controlTrack-fgColor-rest:var(--fgColor-muted) !important;--diffBlob-additionLine-bgColor:var(--bgColor-success-muted) !important;--diffBlob-additionLine-fgColor:var(--fgColor-default) !important;--diffBlob-additionWord-fgColor:var(--fgColor-default) !important;--diffBlob-deletionLine-bgColor:var(--bgColor-danger-muted) !important;--diffBlob-deletionLine-fgColor:var(--fgColor-default) !important;--diffBlob-deletionWord-fgColor:var(--fgColor-default) !important;--diffBlob-expander-iconColor:var(--fgColor-muted) !important;--diffBlob-hunkLine-bgColor:var(--bgColor-accent-muted) !important;--diffBlob-hunkNum-bgColor-hover:var(--bgColor-accent-emphasis) !important;--fgColor-black:#010409 !important;--fgColor-closed:var(--fgColor-danger) !important;--fgColor-onEmphasis:#fff !important;--fgColor-onInverse:#010409 !important;--fgColor-open:var(--fgColor-success) !important;--fgColor-upsell:var(--fgColor-done) !important;--fgColor-white:#fff !important;--header-fgColor-default:#ffffffb3 !important;--overlay-bgColor:#010409 !important;--page-header-bgColor:var(--bgColor-default) !important;--progressBar-bgColor-neutral:var(--bgColor-neutral-emphasis) !important;--progressBar-track-bgColor:var(--borderColor-default) !important;--selectMenu-borderColor:var(--borderColor-default) !important;--selection-bgColor:#1f6febb3 !important;--shadow-inset:inset 0 1px 0 0 #0104093d !important;--shadow-resting-medium:0 1px 1px 0 #01040966, 0 3px 6px 0 #010409cc !important;--shadow-resting-small:0 1px 1px 0 #01040999, 0 1px 3px 0 #01040999 !important;--shadow-resting-xsmall:0 1px 1px 0 #010409cc !important;--tooltip-bgColor:var(--bgColor-emphasis) !important;--treeViewItem-leadingVisual-iconColor-rest:var(--fgColor-muted) !important;--avatar-borderColor:var(--borderColor-translucent) !important;--borderColor-neutral-muted:var(--borderColor-muted) !important;--button-invisible-fgColor-hover:var(--control-fgColor-rest) !important;--button-outline-bgColor-disabled:var(--control-bgColor-disabled) !important;--button-primary-borderColor-rest:var(--borderColor-translucent) !important;--button-primary-fgColor-rest:var(--fgColor-white) !important;--button-primary-iconColor-rest:var(--fgColor-white) !important;--control-checked-borderColor-rest:var(--control-checked-bgColor-rest) !important;--controlKnob-borderColor-rest:var(--control-borderColor-rest) !important;--dashboard-bgColor:var(--bgColor-inset) !important;--diffBlob-hunkNum-fgColor-hover:var(--fgColor-onEmphasis) !important;--overlay-borderColor:var(--borderColor-muted) !important;--tooltip-fgColor:var(--fgColor-onEmphasis) !important;--borderColor-draft-muted:var(--borderColor-neutral-muted) !important;--button-danger-borderColor-hover:var(--button-primary-borderColor-rest) !important;--button-default-borderColor-active:var(--button-default-borderColor-rest) !important;--shadow-floating-large:0 0 0 1px #3d444d, 0 24px 48px 0 #010409 !important;--shadow-floating-medium:0 0 0 1px #3d444d, 0 8px 16px -4px #01040966, 0 4px 32px -4px #01040966, 0 24px 48px -12px #01040966, 0 48px 96px -24px #01040966 !important;--shadow-floating-small:0 0 0 1px #3d444d, 0 6px 12px -3px #01040966, 0 6px 18px 0 #01040966 !important;--shadow-floating-xlarge:0 0 0 1px #3d444d, 0 32px 64px 0 #010409 !important;--underlineNav-borderColor-hover:var(--borderColor-neutral-muted) !important;--button-danger-borderColor-active:var(--button-danger-borderColor-hover) !important;--button-outline-borderColor-hover:var(--button-default-borderColor-hover) !important;", "light": "--ansi-cyan:#1b7c83 !important;--ansi-cyanBright:#3192aa !important;--button-danger-fgColor-rest:var(--fgColor-danger) !important;--button-primary-bgColor-active:#197935 !important;--button-primary-bgColor-disabled:#95d8a6 !important;--button-primary-bgColor-hover:#1c8139 !important;--button-primary-borderColor-disabled:var(--button-primary-bgColor-disabled) !important;--control-checked-bgColor-active:#0757ba !important;--control-checked-bgColor-hover:#0860ca !important;--fgColor-accent:#0969da !important;--reactionButton-selected-bgColor-hover:#caecff !important;--ansi-black:#1f2328 !important;--ansi-blackBright:#393f46 !important;--ansi-blue:#0969da !important;--ansi-blueBright:#218bff !important;--ansi-gray:#59636e !important;--ansi-green:#116329 !important;--ansi-greenBright:#1a7f37 !important;--ansi-magenta:#8250df !important;--ansi-magentaBright:#a475f9 !important;--ansi-red:#cf222e !important;--ansi-redBright:#a40e26 !important;--ansi-white:#59636e !important;--ansi-yellow:#4d2d00 !important;--ansi-yellowBright:#633c01 !important;--avatar-shadow:0 0 0 2px #fffc !important;--avatarStack-fade-bgColor-default:#c8d1da !important;--avatarStack-fade-bgColor-muted:#dae0e7 !important;--bgColor-accent-emphasis:#0969da !important;--bgColor-accent-muted:#ddf4ff !important;--bgColor-attention-emphasis:#9a6700 !important;--bgColor-attention-muted:#fff8c5 !important;--bgColor-danger-emphasis:#cf222e !important;--bgColor-danger-muted:#ffebe9 !important;--bgColor-default:#fff !important;--bgColor-disabled:#eff2f5 !important;--bgColor-done-emphasis:#8250df !important;--bgColor-done-muted:#fbefff !important;--bgColor-emphasis:#25292e !important;--bgColor-muted:#f6f8fa !important;--bgColor-neutral-emphasis:#59636e !important;--bgColor-neutral-muted:#818b981f !important;--bgColor-severe-emphasis:#bc4c00 !important;--bgColor-severe-muted:#fff1e5 !important;--bgColor-sponsors-emphasis:#bf3989 !important;--bgColor-sponsors-muted:#ffeff7 !important;--bgColor-success-emphasis:#1f883d !important;--bgColor-success-muted:#dafbe1 !important;--bgColor-transparent:#fff0 !important;--borderColor-accent-emphasis:#0969da !important;--borderColor-accent-muted:#54aeff66 !important;--borderColor-attention-emphasis:#9a6700 !important;--borderColor-attention-muted:#d4a72c66 !important;--borderColor-danger-emphasis:#cf222e !important;--borderColor-danger-muted:#ff818266 !important;--borderColor-default:#d1d9e0 !important;--borderColor-disabled:#818b981a !important;--borderColor-done-emphasis:#8250df !important;--borderColor-done-muted:#c297ff66 !important;--borderColor-emphasis:#818b98 !important;--borderColor-severe-emphasis:#bc4c00 !important;--borderColor-severe-muted:#fb8f4466 !important;--borderColor-sponsors-emphasis:#bf3989 !important;--borderColor-sponsors-muted:#ff80c866 !important;--borderColor-success-emphasis:#1a7f37 !important;--borderColor-success-muted:#4ac26b66 !important;--borderColor-transparent:#fff0 !important;--button-danger-bgColor-hover:var(--bgColor-danger-emphasis) !important;--button-danger-shadow-selected:inset 0 1px 0 0 #4c001433 !important;--button-default-shadow-resting:0 1px 0 0 #1f23280a !important;--button-inactive-bgColor:#e6eaef !important;--button-inactive-fgColor:#59636e !important;--button-invisible-bgColor-disabled:#fff0 !important;--button-invisible-borderColor-disabled:#fff0 !important;--button-outline-bgColor-active:#0757ba !important;--button-outline-bgColor-rest:var(--control-bgColor-rest) !important;--button-outline-fgColor-disabled:#0969da80 !important;--button-outline-fgColor-hover:#fff !important;--button-outline-fgColor-rest:var(--fgColor-accent) !important;--button-outline-shadow-selected:inset 0 1px 0 0 #00215533 !important;--button-primary-shadow-selected:inset 0 1px 0 0 #002d114d !important;--button-star-iconColor:#eac54f !important;--buttonCounter-danger-bgColor-rest:#cf222e1a !important;--buttonCounter-default-bgColor-rest:var(--bgColor-neutral-muted) !important;--buttonCounter-outline-bgColor-hover:#fff3 !important;--buttonCounter-outline-bgColor-rest:#0969da1a !important;--buttonCounter-outline-fgColor-disabled:#0969da80 !important;--buttonCounter-outline-fgColor-hover:#fff !important;--buttonCounter-outline-fgColor-rest:#0550ae !important;--buttonCounter-primary-bgColor-rest:#002d1133 !important;--buttonKeybindingHint-danger-bgColor-active:#1f232866 !important;--buttonKeybindingHint-danger-bgColor-hover:#1f232833 !important;--buttonKeybindingHint-danger-borderColor-hover:var(--borderColor-translucent) !important;--buttonKeybindingHint-default-bgColor-rest:#eff2f5 !important;--buttonKeybindingHint-inactive-bgColor:#eff2f5 !important;--buttonKeybindingHint-invisible-borderColor-rest:#fff0 !important;--codeMirror-syntax-fgColor-comment:#1f2328 !important;--codeMirror-syntax-fgColor-constant:#0550ae !important;--codeMirror-syntax-fgColor-entity:#8250df !important;--codeMirror-syntax-fgColor-keyword:#cf222e !important;--codeMirror-syntax-fgColor-storage:#cf222e !important;--codeMirror-syntax-fgColor-string:#0a3069 !important;--codeMirror-syntax-fgColor-support:#0550ae !important;--codeMirror-syntax-fgColor-variable:#953800 !important;--contribution-default-bgColor-0:#eff2f5 !important;--contribution-default-bgColor-1:#aceebb !important;--contribution-default-bgColor-2:#4ac26b !important;--contribution-default-bgColor-3:#2da44e !important;--contribution-default-bgColor-4:#116329 !important;--contribution-default-borderColor-0:#1f23280d !important;--contribution-halloween-bgColor-1:#f0db3d !important;--contribution-halloween-bgColor-2:#ffd642 !important;--contribution-halloween-bgColor-3:#f68c41 !important;--contribution-halloween-bgColor-4:#1f2328 !important;--contribution-winter-bgColor-1:#b6e3ff !important;--contribution-winter-bgColor-2:#54aeff !important;--contribution-winter-bgColor-3:#0969da !important;--contribution-winter-bgColor-4:#0a3069 !important;--control-bgColor-active:#e6eaef !important;--control-bgColor-hover:#eff2f5 !important;--control-bgColor-rest:#f6f8fa !important;--control-borderColor-selected:var(--control-bgColor-selected) !important;--control-checked-borderColor-active:var(--control-checked-bgColor-active) !important;--control-checked-borderColor-hover:var(--control-checked-bgColor-hover) !important;--control-danger-fgColor-hover:var(--fgColor-danger) !important;--control-transparent-bgColor-active:#818b9826 !important;--control-transparent-bgColor-hover:#818b981a !important;--control-transparent-bgColor-rest:#fff0 !important;--control-transparent-bgColor-selected:#818b9826 !important;--control-transparent-borderColor-active:#fff0 !important;--control-transparent-borderColor-hover:#fff0 !important;--control-transparent-borderColor-rest:#fff0 !important;--controlKnob-bgColor-rest:#fff !important;--controlTrack-bgColor-active:#dae0e7 !important;--controlTrack-bgColor-hover:#e0e6eb !important;--counter-borderColor:#fff0 !important;--data-auburn-color-emphasis:#9d615c !important;--data-auburn-color-muted:#f2e9e9 !important;--data-blue-color-emphasis:#006edb !important;--data-blue-color-muted:#d1f0ff !important;--data-brown-color-emphasis:#856d4c !important;--data-brown-color-muted:#eeeae2 !important;--data-coral-color-emphasis:#d43511 !important;--data-coral-color-muted:#ffe5db !important;--data-gray-color-emphasis:#808fa3 !important;--data-gray-color-muted:#e8ecf2 !important;--data-green-color-emphasis:#30a147 !important;--data-green-color-muted:#caf7ca !important;--data-lemon-color-emphasis:#866e04 !important;--data-lemon-color-muted:#f7eea1 !important;--data-lime-color-emphasis:#527a29 !important;--data-lime-color-muted:#e3f2b5 !important;--data-olive-color-emphasis:#64762d !important;--data-olive-color-muted:#f0f0ad !important;--data-orange-color-emphasis:#eb670f !important;--data-orange-color-muted:#ffe7d1 !important;--data-pine-color-emphasis:#167e53 !important;--data-pine-color-muted:#bff8db !important;--data-pink-color-emphasis:#ce2c85 !important;--data-pink-color-muted:#ffe5f1 !important;--data-plum-color-emphasis:#a830e8 !important;--data-plum-color-muted:#f8e5ff !important;--data-purple-color-emphasis:#894ceb !important;--data-purple-color-muted:#f1e5ff !important;--data-red-color-emphasis:#df0c24 !important;--data-red-color-muted:#ffe2e0 !important;--data-teal-color-emphasis:#179b9b !important;--data-teal-color-muted:#c7f5ef !important;--data-yellow-color-emphasis:#b88700 !important;--data-yellow-color-muted:#ffec9e !important;--diffBlob-additionNum-bgColor:#aceebb !important;--diffBlob-additionWord-bgColor:#aceebb !important;--diffBlob-deletionNum-bgColor:#ffcecb !important;--diffBlob-deletionWord-bgColor:#ffcecb !important;--diffBlob-hunkNum-bgColor-rest:#b6e3ff !important;--display-auburn-bgColor-emphasis:#9d615c !important;--display-auburn-bgColor-muted:#f2e9e9 !important;--display-auburn-borderColor-emphasis:#9d615c !important;--display-auburn-borderColor-muted:#e6d6d5 !important;--display-auburn-fgColor:#8a5551 !important;--display-auburn-scale-0:#f2e9e9 !important;--display-auburn-scale-1:#e6d6d5 !important;--display-auburn-scale-2:#d4b7b5 !important;--display-auburn-scale-3:#c59e9b !important;--display-auburn-scale-4:#b4827e !important;--display-auburn-scale-5:#9d615c !important;--display-auburn-scale-6:#8a5551 !important;--display-auburn-scale-7:#744744 !important;--display-auburn-scale-8:#5d3937 !important;--display-auburn-scale-9:#432928 !important;--display-blue-bgColor-emphasis:#006edb !important;--display-blue-bgColor-muted:#d1f0ff !important;--display-blue-borderColor-emphasis:#006edb !important;--display-blue-borderColor-muted:#ade1ff !important;--display-blue-fgColor:#005fcc !important;--display-blue-scale-0:#d1f0ff !important;--display-blue-scale-1:#ade1ff !important;--display-blue-scale-2:#75c8ff !important;--display-blue-scale-3:#47afff !important;--display-blue-scale-4:#0f8fff !important;--display-blue-scale-5:#006edb !important;--display-blue-scale-6:#005fcc !important;--display-blue-scale-7:#004db3 !important;--display-blue-scale-8:#003d99 !important;--display-blue-scale-9:#002b75 !important;--display-brown-bgColor-emphasis:#856d4c !important;--display-brown-bgColor-muted:#eeeae2 !important;--display-brown-borderColor-emphasis:#856d4c !important;--display-brown-borderColor-muted:#dfd7c8 !important;--display-brown-fgColor:#755f43 !important;--display-brown-scale-0:#eeeae2 !important;--display-brown-scale-1:#dfd7c8 !important;--display-brown-scale-2:#cbbda4 !important;--display-brown-scale-3:#b8a484 !important;--display-brown-scale-4:#a68b64 !important;--display-brown-scale-5:#856d4c !important;--display-brown-scale-6:#755f43 !important;--display-brown-scale-7:#64513a !important;--display-brown-scale-8:#51412f !important;--display-brown-scale-9:#3a2e22 !important;--display-coral-bgColor-emphasis:#d43511 !important;--display-coral-bgColor-muted:#ffe5db !important;--display-coral-borderColor-emphasis:#d43511 !important;--display-coral-borderColor-muted:#fecebe !important;--display-coral-fgColor:#ba2e12 !important;--display-coral-scale-0:#ffe5db !important;--display-coral-scale-1:#fecebe !important;--display-coral-scale-2:#fcab92 !important;--display-coral-scale-3:#f88768 !important;--display-coral-scale-4:#f25f3a !important;--display-coral-scale-5:#d43511 !important;--display-coral-scale-6:#ba2e12 !important;--display-coral-scale-7:#9b2712 !important;--display-coral-scale-8:#7e2011 !important;--display-coral-scale-9:#5d180e !important;--display-cyan-bgColor-emphasis:#007b94 !important;--display-cyan-bgColor-muted:#bdf4ff !important;--display-cyan-borderColor-emphasis:#007b94 !important;--display-cyan-borderColor-muted:#7ae9ff !important;--display-cyan-fgColor:#006a80 !important;--display-cyan-scale-0:#bdf4ff !important;--display-cyan-scale-1:#7ae9ff !important;--display-cyan-scale-2:#00d0fa !important;--display-cyan-scale-3:#00b7db !important;--display-cyan-scale-4:#0099b8 !important;--display-cyan-scale-5:#007b94 !important;--display-cyan-scale-6:#006a80 !important;--display-cyan-scale-7:#00596b !important;--display-cyan-scale-8:#004857 !important;--display-cyan-scale-9:#003742 !important;--display-gray-bgColor-emphasis:#647182 !important;--display-gray-bgColor-muted:#e8ecf2 !important;--display-gray-borderColor-emphasis:#647182 !important;--display-gray-borderColor-muted:#d2dae4 !important;--display-gray-fgColor:#5c6570 !important;--display-gray-scale-0:#e8ecf2 !important;--display-gray-scale-1:#d2dae4 !important;--display-gray-scale-2:#b4c0cf !important;--display-gray-scale-3:#9ba9bb !important;--display-gray-scale-4:#808fa3 !important;--display-gray-scale-5:#647182 !important;--display-gray-scale-6:#5c6570 !important;--display-gray-scale-7:#4e535a !important;--display-gray-scale-8:#424448 !important;--display-gray-scale-9:#303031 !important;--display-green-bgColor-emphasis:#2c8141 !important;--display-green-bgColor-muted:#caf7ca !important;--display-green-borderColor-emphasis:#2c8141 !important;--display-green-borderColor-muted:#9ceda0 !important;--display-green-fgColor:#2b6e3f !important;--display-green-scale-0:#caf7ca !important;--display-green-scale-1:#9ceda0 !important;--display-green-scale-2:#54d961 !important;--display-green-scale-3:#31bf46 !important;--display-green-scale-4:#30a147 !important;--display-green-scale-5:#2c8141 !important;--display-green-scale-6:#2b6e3f !important;--display-green-scale-7:#285c3b !important;--display-green-scale-8:#254b34 !important;--display-green-scale-9:#1d3528 !important;--display-indigo-bgColor-emphasis:#5a61e7 !important;--display-indigo-bgColor-muted:#e5e9ff !important;--display-indigo-borderColor-emphasis:#5a61e7 !important;--display-indigo-borderColor-muted:#d2d7fe !important;--display-indigo-fgColor:#494edf !important;--display-indigo-scale-0:#e5e9ff !important;--display-indigo-scale-1:#d2d7fe !important;--display-indigo-scale-2:#b1b9fb !important;--display-indigo-scale-3:#979ff7 !important;--display-indigo-scale-4:#7a82f0 !important;--display-indigo-scale-5:#5a61e7 !important;--display-indigo-scale-6:#494edf !important;--display-indigo-scale-7:#393cd5 !important;--display-indigo-scale-8:#2d2db4 !important;--display-indigo-scale-9:#25247b !important;--display-lemon-bgColor-emphasis:#866e04 !important;--display-lemon-bgColor-muted:#f7eea1 !important;--display-lemon-borderColor-emphasis:#866e04 !important;--display-lemon-borderColor-muted:#f0db3d !important;--display-lemon-fgColor:#786002 !important;--display-lemon-scale-0:#f7eea1 !important;--display-lemon-scale-1:#f0db3d !important;--display-lemon-scale-2:#d8bd0e !important;--display-lemon-scale-3:#c2a60a !important;--display-lemon-scale-4:#a68c07 !important;--display-lemon-scale-5:#866e04 !important;--display-lemon-scale-6:#786002 !important;--display-lemon-scale-7:#654f01 !important;--display-lemon-scale-8:#523f00 !important;--display-lemon-scale-9:#3d2e00 !important;--display-lime-bgColor-emphasis:#527a29 !important;--display-lime-bgColor-muted:#e3f2b5 !important;--display-lime-borderColor-emphasis:#527a29 !important;--display-lime-borderColor-muted:#c7e580 !important;--display-lime-fgColor:#476c28 !important;--display-lime-scale-0:#e3f2b5 !important;--display-lime-scale-1:#c7e580 !important;--display-lime-scale-2:#9bd039 !important;--display-lime-scale-3:#80b530 !important;--display-lime-scale-4:#6c9d2f !important;--display-lime-scale-5:#527a29 !important;--display-lime-scale-6:#476c28 !important;--display-lime-scale-7:#3a5b25 !important;--display-lime-scale-8:#2f4a21 !important;--display-lime-scale-9:#213319 !important;--display-olive-bgColor-emphasis:#64762d !important;--display-olive-bgColor-muted:#f0f0ad !important;--display-olive-borderColor-emphasis:#64762d !important;--display-olive-borderColor-muted:#dbe170 !important;--display-olive-fgColor:#56682c !important;--display-olive-scale-0:#f0f0ad !important;--display-olive-scale-1:#dbe170 !important;--display-olive-scale-2:#b9c832 !important;--display-olive-scale-3:#9bae32 !important;--display-olive-scale-4:#819532 !important;--display-olive-scale-5:#64762d !important;--display-olive-scale-6:#56682c !important;--display-olive-scale-7:#495a2b !important;--display-olive-scale-8:#3b4927 !important;--display-olive-scale-9:#2a331f !important;--display-orange-bgColor-emphasis:#b8500f !important;--display-orange-bgColor-muted:#ffe7d1 !important;--display-orange-borderColor-emphasis:#b8500f !important;--display-orange-borderColor-muted:#fecfaa !important;--display-orange-fgColor:#a24610 !important;--display-orange-scale-0:#ffe7d1 !important;--display-orange-scale-1:#fecfaa !important;--display-orange-scale-2:#fbaf74 !important;--display-orange-scale-3:#f68c41 !important;--display-orange-scale-4:#eb670f !important;--display-orange-scale-5:#b8500f !important;--display-orange-scale-6:#a24610 !important;--display-orange-scale-7:#8d3c11 !important;--display-orange-scale-8:#70300f !important;--display-orange-scale-9:#54230d !important;--display-pine-bgColor-emphasis:#167e53 !important;--display-pine-bgColor-muted:#bff8db !important;--display-pine-borderColor-emphasis:#167e53 !important;--display-pine-borderColor-muted:#80efb9 !important;--display-pine-fgColor:#156f4b !important;--display-pine-scale-0:#bff8db !important;--display-pine-scale-1:#80efb9 !important;--display-pine-scale-2:#1dd781 !important;--display-pine-scale-3:#1dbf76 !important;--display-pine-scale-4:#1aa267 !important;--display-pine-scale-5:#167e53 !important;--display-pine-scale-6:#156f4b !important;--display-pine-scale-7:#135d41 !important;--display-pine-scale-8:#114b36 !important;--display-pine-scale-9:#0d3627 !important;--display-pink-bgColor-emphasis:#ce2c85 !important;--display-pink-bgColor-muted:#ffe5f1 !important;--display-pink-borderColor-emphasis:#ce2c85 !important;--display-pink-borderColor-muted:#fdc9e2 !important;--display-pink-fgColor:#b12f79 !important;--display-pink-scale-0:#ffe5f1 !important;--display-pink-scale-1:#fdc9e2 !important;--display-pink-scale-2:#f8a5cf !important;--display-pink-scale-3:#f184bc !important;--display-pink-scale-4:#e55da5 !important;--display-pink-scale-5:#ce2c85 !important;--display-pink-scale-6:#b12f79 !important;--display-pink-scale-7:#8e2e66 !important;--display-pink-scale-8:#6e2b53 !important;--display-pink-scale-9:#4d233d !important;--display-plum-bgColor-emphasis:#a830e8 !important;--display-plum-bgColor-muted:#f8e5ff !important;--display-plum-borderColor-emphasis:#a830e8 !important;--display-plum-borderColor-muted:#f0cdfe !important;--display-plum-fgColor:#961edc !important;--display-plum-scale-0:#f8e5ff !important;--display-plum-scale-1:#f0cdfe !important;--display-plum-scale-2:#e2a7fb !important;--display-plum-scale-3:#d487f7 !important;--display-plum-scale-4:#c264f2 !important;--display-plum-scale-5:#a830e8 !important;--display-plum-scale-6:#961edc !important;--display-plum-scale-7:#7d1eb8 !important;--display-plum-scale-8:#651d96 !important;--display-plum-scale-9:#471769 !important;--display-purple-bgColor-emphasis:#894ceb !important;--display-purple-bgColor-muted:#f1e5ff !important;--display-purple-borderColor-emphasis:#894ceb !important;--display-purple-borderColor-muted:#e6d2fe !important;--display-purple-fgColor:#783ae4 !important;--display-purple-scale-0:#f1e5ff !important;--display-purple-scale-1:#e6d2fe !important;--display-purple-scale-2:#d1b1fc !important;--display-purple-scale-3:#bc91f8 !important;--display-purple-scale-4:#a672f3 !important;--display-purple-scale-5:#894ceb !important;--display-purple-scale-6:#783ae4 !important;--display-purple-scale-7:#6223d7 !important;--display-purple-scale-8:#4f21ab !important;--display-purple-scale-9:#391b79 !important;--display-red-bgColor-emphasis:#df0c24 !important;--display-red-bgColor-muted:#ffe2e0 !important;--display-red-borderColor-emphasis:#df0c24 !important;--display-red-borderColor-muted:#fecdcd !important;--display-red-fgColor:#c50d28 !important;--display-red-scale-0:#ffe2e0 !important;--display-red-scale-1:#fecdcd !important;--display-red-scale-2:#fda5a7 !important;--display-red-scale-3:#fb8389 !important;--display-red-scale-4:#f85461 !important;--display-red-scale-5:#df0c24 !important;--display-red-scale-6:#c50d28 !important;--display-red-scale-7:#a60c29 !important;--display-red-scale-8:#880c27 !important;--display-red-scale-9:#610a20 !important;--display-teal-bgColor-emphasis:#127e81 !important;--display-teal-bgColor-muted:#c7f5ef !important;--display-teal-borderColor-emphasis:#127e81 !important;--display-teal-borderColor-muted:#89ebe1 !important;--display-teal-fgColor:#106e75 !important;--display-teal-scale-0:#c7f5ef !important;--display-teal-scale-1:#89ebe1 !important;--display-teal-scale-2:#22d3c7 !important;--display-teal-scale-3:#1db9b4 !important;--display-teal-scale-4:#179b9b !important;--display-teal-scale-5:#127e81 !important;--display-teal-scale-6:#106e75 !important;--display-teal-scale-7:#0d5b63 !important;--display-teal-scale-8:#0a4852 !important;--display-teal-scale-9:#073740 !important;--display-yellow-bgColor-emphasis:#946a00 !important;--display-yellow-bgColor-muted:#ffec9e !important;--display-yellow-borderColor-emphasis:#946a00 !important;--display-yellow-borderColor-muted:#ffd642 !important;--display-yellow-fgColor:#805900 !important;--display-yellow-scale-0:#ffec9e !important;--display-yellow-scale-1:#ffd642 !important;--display-yellow-scale-2:#ebb400 !important;--display-yellow-scale-3:#d19d00 !important;--display-yellow-scale-4:#b88700 !important;--display-yellow-scale-5:#946a00 !important;--display-yellow-scale-6:#805900 !important;--display-yellow-scale-7:#704d00 !important;--display-yellow-scale-8:#5c3d00 !important;--display-yellow-scale-9:#422b00 !important;--fgColor-attention:#9a6700 !important;--fgColor-danger:#d1242f !important;--fgColor-default:#1f2328 !important;--fgColor-disabled:#818b98 !important;--fgColor-done:#8250df !important;--fgColor-muted:#59636e !important;--fgColor-neutral:#59636e !important;--fgColor-severe:#bc4c00 !important;--fgColor-sponsors:#bf3989 !important;--fgColor-success:#1a7f37 !important;--header-bgColor:#25292e !important;--header-borderColor-divider:#818b98 !important;--header-fgColor-logo:#fff !important;--headerSearch-bgColor:#25292e !important;--headerSearch-borderColor:#818b98 !important;--highlight-neutral-bgColor:#fff8c5 !important;--label-auburn-bgColor-active:#d4b7b5 !important;--label-auburn-bgColor-hover:#e6d6d5 !important;--label-auburn-bgColor-rest:#f2e9e9 !important;--label-auburn-borderColor:#fff0 !important;--label-auburn-fgColor-active:#5d3937 !important;--label-auburn-fgColor-hover:#744744 !important;--label-auburn-fgColor-rest:#8a5551 !important;--label-blue-bgColor-active:#75c8ff !important;--label-blue-bgColor-hover:#ade1ff !important;--label-blue-bgColor-rest:#d1f0ff !important;--label-blue-borderColor:#fff0 !important;--label-blue-fgColor-active:#003d99 !important;--label-blue-fgColor-hover:#004db3 !important;--label-blue-fgColor-rest:#005fcc !important;--label-brown-bgColor-active:#cbbda4 !important;--label-brown-bgColor-hover:#dfd7c8 !important;--label-brown-bgColor-rest:#eeeae2 !important;--label-brown-borderColor:#fff0 !important;--label-brown-fgColor-active:#51412f !important;--label-brown-fgColor-hover:#64513a !important;--label-brown-fgColor-rest:#755f43 !important;--label-coral-bgColor-active:#fcab92 !important;--label-coral-bgColor-hover:#fecebe !important;--label-coral-bgColor-rest:#ffe5db !important;--label-coral-borderColor:#fff0 !important;--label-coral-fgColor-active:#7e2011 !important;--label-coral-fgColor-hover:#9b2712 !important;--label-coral-fgColor-rest:#ba2e12 !important;--label-cyan-bgColor-active:#00d0fa !important;--label-cyan-bgColor-hover:#7ae9ff !important;--label-cyan-bgColor-rest:#bdf4ff !important;--label-cyan-borderColor:#fff0 !important;--label-cyan-fgColor-active:#004857 !important;--label-cyan-fgColor-hover:#00596b !important;--label-cyan-fgColor-rest:#006a80 !important;--label-gray-bgColor-active:#b4c0cf !important;--label-gray-bgColor-hover:#d2dae4 !important;--label-gray-bgColor-rest:#e8ecf2 !important;--label-gray-borderColor:#fff0 !important;--label-gray-fgColor-active:#424448 !important;--label-gray-fgColor-hover:#4e535a !important;--label-gray-fgColor-rest:#5c6570 !important;--label-green-bgColor-active:#54d961 !important;--label-green-bgColor-hover:#9ceda0 !important;--label-green-bgColor-rest:#caf7ca !important;--label-green-borderColor:#fff0 !important;--label-green-fgColor-active:#254b34 !important;--label-green-fgColor-hover:#285c3b !important;--label-green-fgColor-rest:#2b6e3f !important;--label-indigo-bgColor-active:#b1b9fb !important;--label-indigo-bgColor-hover:#d2d7fe !important;--label-indigo-bgColor-rest:#e5e9ff !important;--label-indigo-borderColor:#fff0 !important;--label-indigo-fgColor-active:#2d2db4 !important;--label-indigo-fgColor-hover:#393cd5 !important;--label-indigo-fgColor-rest:#494edf !important;--label-lemon-bgColor-active:#d8bd0e !important;--label-lemon-bgColor-hover:#f0db3d !important;--label-lemon-bgColor-rest:#f7eea1 !important;--label-lemon-borderColor:#fff0 !important;--label-lemon-fgColor-active:#523f00 !important;--label-lemon-fgColor-hover:#654f01 !important;--label-lemon-fgColor-rest:#786002 !important;--label-lime-bgColor-active:#9bd039 !important;--label-lime-bgColor-hover:#c7e580 !important;--label-lime-bgColor-rest:#e3f2b5 !important;--label-lime-borderColor:#fff0 !important;--label-lime-fgColor-active:#2f4a21 !important;--label-lime-fgColor-hover:#3a5b25 !important;--label-lime-fgColor-rest:#476c28 !important;--label-olive-bgColor-active:#b9c832 !important;--label-olive-bgColor-hover:#dbe170 !important;--label-olive-bgColor-rest:#f0f0ad !important;--label-olive-borderColor:#fff0 !important;--label-olive-fgColor-active:#3b4927 !important;--label-olive-fgColor-hover:#495a2b !important;--label-olive-fgColor-rest:#56682c !important;--label-orange-bgColor-active:#fbaf74 !important;--label-orange-bgColor-hover:#fecfaa !important;--label-orange-bgColor-rest:#ffe7d1 !important;--label-orange-borderColor:#fff0 !important;--label-orange-fgColor-active:#70300f !important;--label-orange-fgColor-hover:#8d3c11 !important;--label-orange-fgColor-rest:#a24610 !important;--label-pine-bgColor-active:#1dd781 !important;--label-pine-bgColor-hover:#80efb9 !important;--label-pine-bgColor-rest:#bff8db !important;--label-pine-borderColor:#fff0 !important;--label-pine-fgColor-active:#114b36 !important;--label-pine-fgColor-hover:#135d41 !important;--label-pine-fgColor-rest:#156f4b !important;--label-pink-bgColor-active:#f8a5cf !important;--label-pink-bgColor-hover:#fdc9e2 !important;--label-pink-bgColor-rest:#ffe5f1 !important;--label-pink-borderColor:#fff0 !important;--label-pink-fgColor-active:#6e2b53 !important;--label-pink-fgColor-hover:#8e2e66 !important;--label-pink-fgColor-rest:#b12f79 !important;--label-plum-bgColor-active:#e2a7fb !important;--label-plum-bgColor-hover:#f0cdfe !important;--label-plum-bgColor-rest:#f8e5ff !important;--label-plum-borderColor:#fff0 !important;--label-plum-fgColor-active:#651d96 !important;--label-plum-fgColor-hover:#7d1eb8 !important;--label-plum-fgColor-rest:#961edc !important;--label-purple-bgColor-active:#d1b1fc !important;--label-purple-bgColor-hover:#e6d2fe !important;--label-purple-bgColor-rest:#f1e5ff !important;--label-purple-borderColor:#fff0 !important;--label-purple-fgColor-active:#4f21ab !important;--label-purple-fgColor-hover:#6223d7 !important;--label-purple-fgColor-rest:#783ae4 !important;--label-red-bgColor-active:#fda5a7 !important;--label-red-bgColor-hover:#fecdcd !important;--label-red-bgColor-rest:#ffe2e0 !important;--label-red-borderColor:#fff0 !important;--label-red-fgColor-active:#880c27 !important;--label-red-fgColor-hover:#a60c29 !important;--label-red-fgColor-rest:#c50d28 !important;--label-teal-bgColor-active:#22d3c7 !important;--label-teal-bgColor-hover:#89ebe1 !important;--label-teal-bgColor-rest:#c7f5ef !important;--label-teal-borderColor:#fff0 !important;--label-teal-fgColor-active:#0a4852 !important;--label-teal-fgColor-hover:#0d5b63 !important;--label-teal-fgColor-rest:#106e75 !important;--label-yellow-bgColor-active:#ebb400 !important;--label-yellow-bgColor-hover:#ffd642 !important;--label-yellow-bgColor-rest:#ffec9e !important;--label-yellow-borderColor:#fff0 !important;--label-yellow-fgColor-active:#5c3d00 !important;--label-yellow-fgColor-hover:#704d00 !important;--label-yellow-fgColor-rest:#805900 !important;--menu-bgColor-active:#fff0 !important;--overlay-backdrop-bgColor:#c8d1da66 !important;--prettylights-syntax-bracketHighlighterAngle:#59636e !important;--prettylights-syntax-bracketHighlighterUnmatched:#82071e !important;--prettylights-syntax-carriageReturn-bg:#cf222e !important;--prettylights-syntax-carriageReturn-text:#f6f8fa !important;--prettylights-syntax-comment:#59636e !important;--prettylights-syntax-constant:#0550ae !important;--prettylights-syntax-constantOtherReferenceLink:#0a3069 !important;--prettylights-syntax-entity:#6639ba !important;--prettylights-syntax-entityTag:#0550ae !important;--prettylights-syntax-keyword:#cf222e !important;--prettylights-syntax-markup-bold:#1f2328 !important;--prettylights-syntax-markup-changed-bg:#ffd8b5 !important;--prettylights-syntax-markup-changed-text:#953800 !important;--prettylights-syntax-markup-deleted-bg:#ffebe9 !important;--prettylights-syntax-markup-deleted-text:#82071e !important;--prettylights-syntax-markup-heading:#0550ae !important;--prettylights-syntax-markup-ignored-bg:#0550ae !important;--prettylights-syntax-markup-ignored-text:#d1d9e0 !important;--prettylights-syntax-markup-inserted-bg:#dafbe1 !important;--prettylights-syntax-markup-inserted-text:#116329 !important;--prettylights-syntax-markup-italic:#1f2328 !important;--prettylights-syntax-markup-list:#3b2300 !important;--prettylights-syntax-metaDiffRange:#8250df !important;--prettylights-syntax-storageModifierImport:#1f2328 !important;--prettylights-syntax-string:#0a3069 !important;--prettylights-syntax-stringRegexp:#116329 !important;--prettylights-syntax-sublimeLinterGutterMark:#818b98 !important;--prettylights-syntax-variable:#953800 !important;--progressBar-track-borderColor:#fff0 !important;--reactionButton-selected-bgColor-rest:#ddf4ff !important;--reactionButton-selected-fgColor-hover:#0550ae !important;--selectMenu-bgColor-active:#b6e3ff !important;--sideNav-bgColor-selected:#fff !important;--skeletonLoader-bgColor:#818b981a !important;--timelineBadge-bgColor:var(--bgColor-muted) !important;--topicTag-borderColor:#fff0 !important;--underlineNav-borderColor-active:#fd8c73 !important;--ansi-whiteBright:#818b98 !important;--avatar-bgColor:#fff !important;--bgColor-black:#1f2328 !important;--bgColor-closed-emphasis:var(--bgColor-danger-emphasis) !important;--bgColor-closed-muted:var(--bgColor-danger-muted) !important;--bgColor-draft-muted:var(--bgColor-neutral-muted) !important;--bgColor-inset:var(--bgColor-muted) !important;--bgColor-inverse:#25292e !important;--bgColor-open-emphasis:var(--bgColor-success-emphasis) !important;--bgColor-open-muted:var(--bgColor-success-muted) !important;--bgColor-white:#fff !important;--borderColor-closed-emphasis:var(--borderColor-danger-emphasis) !important;--borderColor-closed-muted:var(--borderColor-danger-muted) !important;--borderColor-muted:#d1d9e0b3 !important;--borderColor-neutral-emphasis:#59636e !important;--borderColor-open-emphasis:var(--borderColor-success-emphasis) !important;--borderColor-open-muted:var(--borderColor-success-muted) !important;--borderColor-translucent:#1f232826 !important;--button-danger-bgColor-active:#a40e26 !important;--button-danger-fgColor-disabled:#d1242f80 !important;--button-danger-iconColor-hover:#fff !important;--button-invisible-bgColor-active:var(--control-transparent-bgColor-active) !important;--button-invisible-bgColor-hover:var(--control-transparent-bgColor-hover) !important;--button-invisible-iconColor-hover:var(--fgColor-muted) !important;--button-invisible-iconColor-rest:var(--fgColor-muted) !important;--button-outline-bgColor-hover:var(--bgColor-accent-emphasis) !important;--button-outline-fgColor-active:#fff !important;--button-primary-bgColor-rest:var(--bgColor-success-emphasis) !important;--button-primary-fgColor-disabled:#fffc !important;--buttonCounter-danger-bgColor-disabled:#cf222e0d !important;--buttonCounter-danger-bgColor-hover:#fff3 !important;--buttonCounter-danger-fgColor-disabled:#d1242f80 !important;--buttonCounter-danger-fgColor-hover:#fff !important;--buttonCounter-danger-fgColor-rest:#c21c2c !important;--buttonCounter-outline-bgColor-disabled:#0969da0d !important;--buttonKeybindingHint-primary-bgColor-disabled:#002d111a !important;--buttonKeybindingHint-primary-borderColor-rest:var(--borderColor-translucent) !important;--card-bgColor:var(--bgColor-default) !important;--codeMirror-selection-bgColor:var(--borderColor-accent-muted) !important;--control-borderColor-disabled:var(--borderColor-disabled) !important;--control-borderColor-rest:var(--borderColor-default) !important;--control-checked-fgColor-disabled:var(--fgColor-onEmphasis) !important;--control-danger-bgColor-active:#ffebe966 !important;--control-danger-bgColor-hover:var(--bgColor-danger-muted) !important;--control-fgColor-placeholder:var(--fgColor-muted) !important;--control-fgColor-rest:#25292e !important;--controlKnob-bgColor-checked:#fff !important;--controlTrack-bgColor-rest:#e6eaef !important;--controlTrack-borderColor-rest:var(--borderColor-default) !important;--controlTrack-fgColor-rest:#59636e !important;--diffBlob-additionLine-bgColor:var(--bgColor-success-muted) !important;--diffBlob-additionLine-fgColor:var(--fgColor-default) !important;--diffBlob-additionWord-fgColor:var(--fgColor-default) !important;--diffBlob-deletionLine-bgColor:var(--bgColor-danger-muted) !important;--diffBlob-deletionLine-fgColor:var(--fgColor-default) !important;--diffBlob-deletionWord-fgColor:var(--fgColor-default) !important;--diffBlob-expander-iconColor:var(--fgColor-muted) !important;--diffBlob-hunkLine-bgColor:var(--bgColor-accent-muted) !important;--diffBlob-hunkNum-bgColor-hover:var(--bgColor-accent-emphasis) !important;--fgColor-black:#1f2328 !important;--fgColor-closed:var(--fgColor-danger) !important;--fgColor-onEmphasis:#fff !important;--fgColor-onInverse:#fff !important;--fgColor-open:var(--fgColor-success) !important;--fgColor-upsell:var(--fgColor-done) !important;--fgColor-white:#fff !important;--header-fgColor-default:#ffffffb3 !important;--overlay-bgColor:#fff !important;--page-header-bgColor:var(--bgColor-muted) !important;--progressBar-bgColor-neutral:var(--bgColor-neutral-emphasis) !important;--progressBar-track-bgColor:var(--borderColor-default) !important;--selectMenu-borderColor:#fff0 !important;--selection-bgColor:#0969da33 !important;--shadow-inset:inset 0 1px 0 0 #1f23280a !important;--shadow-resting-medium:0 1px 1px 0 #25292e1a, 0 3px 6px 0 #25292e1f !important;--shadow-resting-small:0 1px 1px 0 #1f23280a, 0 1px 2px 0 #1f232808 !important;--shadow-resting-xsmall:0 1px 1px 0 #1f23280d !important;--tooltip-bgColor:var(--bgColor-emphasis) !important;--treeViewItem-leadingVisual-iconColor-rest:#54aeff !important;--avatar-borderColor:var(--borderColor-translucent) !important;--borderColor-neutral-muted:var(--borderColor-muted) !important;--button-invisible-fgColor-hover:var(--control-fgColor-rest) !important;--button-outline-bgColor-disabled:var(--control-bgColor-disabled) !important;--button-primary-borderColor-rest:var(--borderColor-translucent) !important;--button-primary-fgColor-rest:var(--fgColor-white) !important;--button-primary-iconColor-rest:#fffc !important;--control-checked-borderColor-rest:var(--control-checked-bgColor-rest) !important;--controlKnob-borderColor-rest:var(--control-borderColor-rest) !important;--dashboard-bgColor:var(--bgColor-default) !important;--diffBlob-hunkNum-fgColor-hover:var(--fgColor-onEmphasis) !important;--overlay-borderColor:#d1d9e080 !important;--tooltip-fgColor:var(--fgColor-onEmphasis) !important;--borderColor-draft-muted:var(--borderColor-neutral-muted) !important;--button-danger-borderColor-hover:var(--button-primary-borderColor-rest) !important;--button-default-borderColor-active:var(--control-borderColor-rest) !important;--shadow-floating-large:0 0 0 1px #d1d9e000, 0 40px 80px 0 #25292e3d !important;--shadow-floating-medium:0 0 0 1px #d1d9e000, 0 8px 16px -4px #25292e14, 0 4px 32px -4px #25292e14, 0 24px 48px -12px #25292e14, 0 48px 96px -24px #25292e14 !important;--shadow-floating-small:0 0 0 1px #d1d9e040, 0 6px 12px -3px #25292e0a, 0 6px 18px 0 #25292e1f !important;--shadow-floating-xlarge:0 0 0 1px #d1d9e000, 0 56px 112px 0 #25292e52 !important;--underlineNav-borderColor-hover:var(--borderColor-muted) !important;--button-danger-borderColor-active:var(--button-danger-borderColor-hover) !important;--button-outline-borderColor-hover:var(--button-primary-borderColor-hover) !important;" }; // Themes and the CSS that applies them. Shared by the popup and the content script. (function () { "use strict"; // Each theme sets four colors you can edit in the popup. Optional surface, border // and muted values follow the original palette and drop away once you edit. // palette() shifts muted text and links toward the text color when they'd be hard to read. // Palettes are from their open source projects, credited in the README. const THEMES = [ { id: "editing-suite", name: "Editing Suite", bg: "#0a0a0b", text: "#ededea", accent: "#f2a93b", graph: "#f2a93b" }, { id: "dracula", name: "Dracula", bg: "#282a36", text: "#f8f8f2", accent: "#bd93f9", graph: "#ff79c6", surface: "#21222c", border: "#44475a", muted: "#6272a4" }, { id: "nord", name: "Nord", bg: "#2e3440", text: "#eceff4", accent: "#88c0d0", graph: "#88c0d0", surface: "#3b4252", border: "#4c566a", muted: "#616e88" }, { id: "catppuccin-mocha", name: "Catppuccin Mocha", bg: "#1e1e2e", text: "#cdd6f4", accent: "#cba6f7", graph: "#a6e3a1", surface: "#181825", border: "#313244", muted: "#a6adc8" }, { id: "gruvbox", name: "Gruvbox", bg: "#282828", text: "#ebdbb2", accent: "#fabd2f", graph: "#b8bb26", surface: "#32302f", border: "#504945", muted: "#a89984" }, { id: "tokyo-night", name: "Tokyo Night", bg: "#1a1b26", text: "#c0caf5", accent: "#7aa2f7", graph: "#bb9af7", surface: "#16161e", border: "#292e42", muted: "#565f89" }, { id: "rose-pine", name: "Rosé Pine", bg: "#191724", text: "#e0def4", accent: "#c4a7e7", graph: "#ebbcba", surface: "#1f1d2e", border: "#403d52", muted: "#908caa" }, { id: "one-dark", name: "One Dark", bg: "#282c34", text: "#abb2bf", accent: "#61afef", graph: "#98c379", surface: "#21252b", border: "#3e4451", muted: "#5c6370" }, { id: "solarized-dark", name: "Solarized Dark", bg: "#002b36", text: "#93a1a1", accent: "#268bd2", graph: "#2aa198", surface: "#073642", border: "#174652", muted: "#586e75" }, { id: "catppuccin-latte", name: "Catppuccin Latte", bg: "#eff1f5", text: "#4c4f69", accent: "#8839ef", graph: "#40a02b", surface: "#e6e9ef", border: "#ccd0da", muted: "#6c6f85" }, { id: "rose-pine-dawn", name: "Rosé Pine Dawn", bg: "#faf4ed", text: "#575279", accent: "#907aa9", graph: "#d7827e", surface: "#fffaf3", border: "#dfdad9", muted: "#797593" }, { id: "solarized-light", name: "Solarized Light", bg: "#fdf6e3", text: "#073642", accent: "#268bd2", graph: "#2aa198", surface: "#eee8d5", border: "#ddd6c1", muted: "#657b83" }, ]; const DEFAULTS = { enabled: true, theme: THEMES[0].id, custom: null }; const EDITABLE = ["bg", "text", "accent", "graph"]; function rgb(color) { const n = parseInt(color.slice(1), 16); return [n >> 16, (n >> 8) & 255, n & 255]; } // Moves color a toward color b. t = 0 gives a, t = 1 gives b. function mix(a, b, t) { const [x, y] = [rgb(a), rgb(b)]; return "#" + x.map((v, i) => Math.round(v + (y[i] - v) * t).toString(16).padStart(2, "0")).join(""); } function luminance(color) { const [r, g, b] = rgb(color).map((v) => { v /= 255; return v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4; }); return 0.2126 * r + 0.7152 * g + 0.0722 * b; } function contrast(a, b) { const [x, y] = [luminance(a), luminance(b)].sort((m, n) => n - m); return (x + 0.05) / (y + 0.05); } // GitHub puts white text on accent buttons. Darken the accent until that text reads. function darkenForWhiteText(color) { let t = 0; while (contrast(mix(color, "#000000", t), "#ffffff") < 4.5 && t < 1) t += 0.05; return mix(color, "#000000", Math.min(t, 1)); } // Mixes color toward the text color until it reads on the background. function readable(color, bg, text) { let t = 0; while (contrast(mix(color, text, t), bg) < 4.5 && t < 1) t += 0.05; return mix(color, text, Math.min(t, 1)); } function isHex(value) { return typeof value === "string" && /^#[0-9a-f]{6}$/i.test(value); } // Settings from storage -> the full set of colors to paint. function palette(settings) { const theme = THEMES.find((t) => t.id === settings.theme) || THEMES[0]; const custom = settings.custom && EDITABLE.every((k) => isHex(settings.custom[k])) ? settings.custom : null; const { bg, text, accent, graph } = custom || theme; const dark = luminance(bg) < 0.18; // If the chosen text color doesn't read on the background, derived colors and the // popup use black or white instead. One of the two always reaches 4.5:1. const ink = contrast(text, bg) >= 4.5 ? text : contrast("#000000", bg) > contrast("#ffffff", bg) ? "#000000" : "#ffffff"; return { dark, bg, text, ink, accent, graph, surface: (!custom && theme.surface) || mix(bg, ink, 0.05), border: (!custom && theme.border) || mix(bg, ink, 0.18), muted: readable((!custom && theme.muted) || mix(bg, ink, 0.65), bg, ink), link: readable(accent, bg, ink), inset: mix(bg, "#000000", dark ? 0.3 : 0.03), raised: mix(bg, ink, 0.08), hover: mix(bg, ink, 0.12), strong: darkenForWhiteText(accent), shades: [mix(bg, ink, 0.09), ...[0.35, 0.55, 0.78, 1].map((t) => mix(bg, graph, t))], }; } function css(p) { const vars = { "--bgColor-default": p.bg, "--bgColor-muted": p.surface, "--bgColor-inset": p.inset, "--bgColor-accent-emphasis": p.strong, "--bgColor-accent-muted": mix(p.bg, p.accent, 0.16), "--bgColor-neutral-muted": mix(p.bg, p.text, 0.12), "--fgColor-default": p.text, "--fgColor-muted": p.muted, "--fgColor-accent": p.link, "--fgColor-link": p.link, "--borderColor-default": p.border, "--borderColor-muted": mix(p.bg, p.border, 0.7), "--borderColor-accent-emphasis": p.accent, "--borderColor-accent-muted": mix(p.bg, p.accent, 0.4), "--header-bgColor": p.inset, "--header-fgColor-default": p.muted, "--header-fgColor-logo": p.text, "--header-borderColor-divider": p.border, "--headerSearch-bgColor": p.bg, "--headerSearch-borderColor": p.border, "--page-header-bgColor": p.bg, "--card-bgColor": p.bg, "--overlay-bgColor": p.raised, "--overlay-borderColor": p.border, "--control-bgColor-rest": p.surface, "--control-bgColor-hover": p.hover, "--control-borderColor-rest": p.border, "--control-fgColor-rest": p.text, "--button-default-bgColor-rest": p.raised, "--button-default-bgColor-hover": p.hover, "--button-default-bgColor-active": mix(p.bg, p.text, 0.16), "--button-default-borderColor-rest": p.border, "--button-default-borderColor-hover": p.border, "--button-default-fgColor-rest": p.text, "--button-primary-bgColor-rest": p.strong, "--button-primary-bgColor-hover": mix(p.strong, "#000000", 0.12), "--button-primary-bgColor-active": mix(p.strong, "#000000", 0.2), "--button-primary-borderColor-rest": p.strong, "--button-primary-fgColor-rest": "#ffffff", "--buttonCounter-default-bgColor-rest": mix(p.bg, p.text, 0.14), "--underlineNav-borderColor-active": p.accent, "--sideNav-bgColor-selected": p.raised, "--selection-bgColor": mix(p.bg, p.accent, 0.35), "--focus-outlineColor": p.accent, }; // GitHub swaps in holiday palettes (Halloween, winter) for the graph and activity chart. for (const season of ["default", "halloween", "winter"]) { p.shades.forEach((shade, level) => (vars[`--contribution-${season}-bgColor-${level}`] = shade)); } const declarations = Object.entries(vars).map(([name, value]) => `${name}:${value} !important;`).join(""); const days = p.shades .map( (shade, level) => `.ContributionCalendar-day[data-level="${level}"]{fill:${shade} !important;background-color:${shade} !important;border-color:transparent !important}`, ) .join("\n"); // The activity overview's shape has its holiday color in a fill attribute. const blob = `.js-highlight-blob{fill:${p.graph} !important;stroke:${p.graph} !important}`; // GitHub's own colors for the matching mode go first, so code, diffs and labels suit the background. const mode = (globalThis.GitHubReskinModes || {})[p.dark ? "dark" : "light"] || ""; return `${blob}\n:root,[data-color-mode],[data-light-theme],[data-dark-theme]{${mode}${declarations}color-scheme:${p.dark ? "dark" : "light"} !important}\n${days}\n`; } globalThis.GitHubReskin = { THEMES, DEFAULTS, EDITABLE, palette, css, mix, contrast, isHex }; })(); // Paints GitHub with the chosen theme. Runs at document_start on github.com. (function () { "use strict"; const { DEFAULTS, palette, css } = globalThis.GitHubReskin; const CACHE = "github-reskin-css"; const style = document.createElement("style"); style.id = "github-reskin"; // The cache is optional. Some browsers block site storage, so failures are ignored. const cache = (action) => { try { return action(); } catch { return null; } }; // Paint the last theme right away so full page loads don't flash GitHub's colors. style.textContent = cache(() => localStorage.getItem(CACHE)) || ""; document.documentElement.append(style); function apply(settings) { const text = settings.enabled ? css(palette(settings)) : ""; style.textContent = text; cache(() => (text ? localStorage.setItem(CACHE, text) : localStorage.removeItem(CACHE))); } chrome.storage.local.get(DEFAULTS).then(apply); chrome.storage.onChanged.addListener((changes, area) => { if (area === "local") chrome.storage.local.get(DEFAULTS).then(apply); }); })(); // The color card. Saves to storage.local, and the content script repaints GitHub on change. // The extension's popup shows it on its own page, and the userscript in a frame on GitHub. (function () { "use strict"; const { THEMES, DEFAULTS, EDITABLE, palette, isHex } = globalThis.GitHubReskin; const LABELS = { bg: "Background", text: "Text", accent: "Accent", graph: "Contribution graph" }; // doc is the popup's page or the userscript's frame. function card(doc) { const $ = (id) => doc.getElementById(id); const currentTheme = () => THEMES.find((t) => t.id === settings.theme) || THEMES[0]; let settings = { ...DEFAULTS }; function save(patch) { settings = { ...settings, ...patch }; render(); chrome.storage.local.set(patch); } function setColor(key, value) { const p = palette(settings); const custom = Object.fromEntries(EDITABLE.map((k) => [k, p[k]])); save({ custom: { ...custom, [key]: value.toLowerCase() } }); } for (const theme of THEMES) { const button = doc.createElement("button"); button.type = "button"; button.className = "theme"; button.dataset.id = theme.id; const swatch = doc.createElement("span"); swatch.className = "swatch"; swatch.style.background = theme.bg; const { shades } = palette({ theme: theme.id }); // Two weeks of the theme's graph shades. for (const level of [0, 1, 3, 2, 4, 1, 0, 2, 4, 3, 1, 0, 3, 4]) { const day = doc.createElement("i"); day.style.background = shades[level]; swatch.append(day); } const name = doc.createElement("span"); name.className = "name"; name.textContent = theme.name; button.append(swatch, name); button.addEventListener("click", () => save({ theme: theme.id, custom: null })); $("themes").append(button); } for (const key of EDITABLE) { const row = doc.createElement("label"); row.className = "color"; const label = doc.createElement("span"); label.textContent = LABELS[key]; const picker = doc.createElement("input"); picker.type = "color"; picker.setAttribute("aria-label", `${LABELS[key]} color`); const hex = doc.createElement("input"); hex.type = "text"; hex.spellcheck = false; hex.maxLength = 7; hex.setAttribute("aria-label", `${LABELS[key]} hex value`); picker.dataset.key = hex.dataset.key = key; picker.addEventListener("input", () => setColor(key, picker.value)); hex.addEventListener("input", () => { const value = "#" + hex.value.trim().replace(/^#/, ""); const ok = isHex(value); hex.setAttribute("aria-invalid", String(!ok)); if (ok) setColor(key, value); }); row.append(label, picker, hex); $("colors").append(row); } $("enabled").addEventListener("change", (e) => save({ enabled: e.target.checked })); $("reset").addEventListener("click", () => save({ custom: null })); function render() { const p = palette(settings); const style = doc.documentElement.style; for (const key of ["bg", "surface", "border", "muted", "strong"]) style.setProperty(`--${key}`, p[key]); style.setProperty("--accent", p.link); // The card keeps readable text even while you try a text color that isn't. style.setProperty("--text", p.ink); $("warning").hidden = p.ink === p.text; style.colorScheme = p.dark ? "dark" : "light"; $("enabled").checked = settings.enabled; doc.body.classList.toggle("off", !settings.enabled); for (const button of $("themes").children) { button.setAttribute("aria-pressed", String(button.dataset.id === currentTheme().id)); } for (const input of $("colors").querySelectorAll("input")) { // Leave the field you're typing in alone. if (doc.activeElement === input) continue; input.value = p[input.dataset.key]; input.removeAttribute("aria-invalid"); } $("reset").disabled = !settings.custom; const name = currentTheme().name; $("status").textContent = settings.enabled ? (settings.custom ? `${name}, edited` : name) : "Off"; } // The card stays inert until settings load, so the load can't overwrite an early click. chrome.storage.local.get(DEFAULTS).then((stored) => { settings = stored; render(); doc.querySelector("main").inert = false; }); } globalThis.GitHubReskin.card = card; // Extension pages have chrome-extension:, moz-extension: or safari-web-extension: addresses. if (location.protocol.endsWith("-extension:")) card(document); })(); })();