From 33d374e7917e3ff424d328c11c1a393a5c6e5c0d Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Thu, 21 Apr 2022 01:40:06 +0100 Subject: [PATCH] feat(userstyles): add One Dark theme for GitHub --- .../one-dark-github-syntax-highlight.user.js | 423 ++++++++++++++++++ 1 file changed, 423 insertions(+) create mode 100644 userscripts/one-dark-github-syntax-highlight.user.js diff --git a/userscripts/one-dark-github-syntax-highlight.user.js b/userscripts/one-dark-github-syntax-highlight.user.js new file mode 100644 index 0000000..90953f4 --- /dev/null +++ b/userscripts/one-dark-github-syntax-highlight.user.js @@ -0,0 +1,423 @@ +// ==UserScript== +// @name One Dark GitHub Syntax Highlight +// @description Apply One Dark theme to syntax highlighting on GitHub +// @version 1.0.0 +// @namespace jimeh.me +// @downloadURL https://github.com/jimeh/dotfiles/raw/main/userscripts/one-dark-github-syntax-highlight.user.js +// @updateURL https://github.com/jimeh/dotfiles/raw/main/userscripts/one-dark-github-syntax-highlight.user.js +// @inject-into content +// @run-at document-end +// @match *://*githubusercontent.com/* +// @match *://*githubstatus.com/* +// @match *://github.com/* +// ==/UserScript== +(function () { + if ( + window.location.hostname == "githubusercontent.com" || + window.location.hostname == "githubstatus.com" || + window.location.href.match("^https?://((education|graphql|guides|raw|resources|status|developer|support|vscode-auth)\\.)?github\\.com/((?!(sponsors)).)*$") + ) { + const css = ` +/* borrowed from https://github.com/StylishThemes/GitHub-Dark/blob/master/src/themes/github/one-dark.css */ + +/*! GitHub: One Dark */ +/* adapted from: https://github.com/atom/one-dark-syntax & https://github.com/Aerobird98/codemirror-one-dark-theme */ +/* by https://github.com/sparcut */ +:root { + --ghd-code-background: hsl(0, 0%, 8%); + --ghd-code-color: hsl(220, 14%, 71%); +} +/* comment, punctuation.definition.comment, string.comment */ +.pl-c, +.pl-c span { + color: hsl(220, 10%, 40%) !important; + font-style: italic !important; +} +/* constant, entity.name.constant, variable.other.constant, variable.language, + support, meta.property-name, support.constant, support.variable, + meta.module-reference, markup.raw, meta.diff.header */ +.pl-c1 { + color: hsl(29, 54%, 61%) !important; +} +/* string.regexp constant.character.escape */ +.pl-sr .pl-cce { + color: hsl(187, 47%, 55%) !important; + font-weight: normal !important; +} +.pl-cn { + color: hsl(29, 54%, 61%) !important; +} +.pl-e { + /* entity */ + color: hsl(29, 54%, 61%) !important; +} +.pl-ef { + /* entity.function */ + color: hsl(207, 82%, 66%) !important; +} +.pl-en { + /* entity.name */ + color: hsl(29, 54%, 61%) !important; +} +.pl-enc { + /* entity.name.class */ + color: hsl(39, 67%, 69%) !important; +} +.pl-enf { + /* entity.name.function */ + color: hsl(207, 82%, 66%) !important; +} +.pl-enm { + /* entity.name.method-name */ + color: hsl(220, 14%, 71%) !important; +} +.pl-ens { + /* entity.name.section */ + color: hsl(5, 48%, 51%) !important; +} +.pl-ent { + /* entity.name.tag */ + color: hsl(355, 65%, 65%) !important; +} +.pl-entc { + /* entity.name.type.class */ + color: hsl(39, 67%, 69%) !important; +} +.pl-enti { + /* entity.name.type.instance */ + color: hsl(187, 47%, 55%) !important; +} +.pl-entm { + /* entity.name.type.module */ + color: hsl(355, 65%, 65%) !important; +} +.pl-eoa { + /* entity.other.attribute-name */ + color: hsl(29, 54%, 61%) !important; +} +.pl-eoac { + /* entity.other.attribute-name.class */ + color: hsl(29, 54%, 61%) !important; +} +.pl-eoac .pl-pde { + /* punctuation.definition.entity */ + color: hsl(29, 54%, 61%) !important; +} +.pl-eoai { + /* entity.other.attribute-name.id */ + color: hsl(207, 82%, 66%) !important; +} +.pl-eoi { + /* entity.other.inherited-class */ + color: hsl(95, 38%, 62%) !important; +} +.pl-k { + /* keyword, storage, storage.type */ + color: hsl(286, 60%, 67%) !important; +} +.pl-ko { + /* keyword.operator */ + color: hsl(220, 14%, 71%) !important; +} +.pl-kolp { + /* keyword.operator.logical.python */ + color: hsl(286, 60%, 67%) !important; +} +.pl-kos { + /* keyword.other.special-method */ + color: hsl(207, 82%, 66%) !important; +} +.pl-kou { + /* keyword.other.unit */ + color: hsl(29, 54%, 61%) !important; +} +.pl-mai .pl-sf { + /* support.function */ + color: hsl(187, 47%, 55%) !important; +} +.pl-mb { + /* markup.bold */ + color: hsl(29, 54%, 61%) !important; + font-weight: bold !important; +} +.pl-mc { + /* markup.changed, punctuation.definition.changed */ + color: hsl(286, 60%, 67%) !important; +} +.pl-mh { + /* markup.heading */ + color: hsl(355, 65%, 65%) !important; +} +/* markup.heading punctuation.definition.heading */ +.pl-mh .pl-pdh { + color: hsl(207, 82%, 66%) !important; +} +.pl-mi { + /* markup.italic */ + color: hsl(286, 60%, 67%) !important; + font-style: italic !important; +} +.pl-ml { + /* markup.list */ + color: hsl(187, 47%, 55%) !important; +} +.pl-mm { + /* meta.module-reference */ + color: hsl(29, 54%, 61%) !important; +} +.pl-mp { + /* meta.property-name */ + color: hsl(220, 9%, 55%) !important; +} +.pl-mp1 .pl-sf { + /* meta.property-value support.function */ + color: hsl(220, 14%, 71%) !important; +} +.pl-mq { + /* markup.quote */ + color: hsl(29, 54%, 61%) !important; +} +.pl-mr { + /* meta.require */ + color: hsl(207, 82%, 66%) !important; +} +.pl-ms { + /* meta.separator */ + color: hsl(220, 14%, 71%) !important; +} +/* punctuation.definition.bold */ +.pl-pdb { + color: hsl(39, 67%, 69%) !important; + font-weight: bold !important; +} +/* punctuation.definition.comment */ +.pl-pdc { + color: hsl(220, 10%, 40%) !important; + font-style: italic !important; +} +.pl-pdc1 { + /* punctuation.definition.constant */ + color: hsl(220, 14%, 71%) !important; +} +.pl-pde { + /* punctuation.definition.entity */ + color: hsl(286, 60%, 67%) !important; +} +/* punctuation.definition.italic */ +.pl-pdi { + color: hsl(286, 60%, 67%) !important; + font-style: italic !important; +} +/* punctuation.definition.string, source.regexp, string.regexp.character-class */ +.pl-pds { + color: hsl(95, 38%, 62%) !important; +} +.pl-pdv { + /* punctuation.definition.variable */ + color: hsl(355, 65%, 65%) !important; +} +/* string punctuation.section.embedded source */ +.pl-pse .pl-s1 { + color: hsl(95, 38%, 62%) !important; +} +.pl-pse .pl-s2 { + /* punctuation.section.embedded source */ + color: hsl(39, 67%, 69%) !important; +} +.pl-s { + /* string */ + color: hsl(95, 38%, 62%) !important; +} +.pl-s1 { + /* string */ + color: hsl(95, 38%, 62%) !important; +} +.pl-s2 { + /* source */ + color: hsl(39, 67%, 69%) !important; +} +.pl-mp .pl-s3 { + /* support */ + color: hsl(29, 54%, 61%) !important; +} +.pl-s3 { + /* support */ + color: hsl(29, 54%, 61%) !important; +} +.pl-sc { + /* support.class */ + color: hsl(39, 67%, 69%) !important; +} +.pl-scp { + /* support.constant.property-value */ + color: hsl(220, 14%, 71%) !important; +} +.pl-sf { + /* support.function */ + color: hsl(187, 47%, 55%) !important; +} +.pl-smc { + /* storage.modifier.c */ + color: hsl(220, 14%, 71%) !important; +} +/* variable.parameter.function, storage.modifier.package, +storage.modifier.import, storage.type.java, variable.other */ +.pl-smi { + color: hsl(355, 65%, 65%) !important; +} +.pl-smp { + /* storage.modifier.package */ + color: hsl(39, 67%, 69%) !important; +} +.pl-sok { + /* support.other.keyword */ + color: hsl(29, 54%, 61%) !important; +} +.pl-sol { + /* string.other.link */ + color: hsl(355, 65%, 65%) !important; +} +.pl-som { + /* support.other.module */ + color: hsl(220, 14%, 71%) !important; +} +.pl-sr { + /* string.regexp */ + color: hsl(187, 47%, 55%) !important; +} +/* string.regexp string.regexp.arbitrary-repitition */ +.pl-sr .pl-sra { + color: hsl(187, 47%, 55%) !important; +} +.pl-src { + /* string.regexp.character-class */ + color: hsl(187, 47%, 55%) !important; +} +.pl-sr .pl-sre { + /* string.regexp source.ruby.embedded */ + color: hsl(39, 67%, 69%) !important; +} +.pl-st { + /* support.type */ + color: hsl(187, 47%, 55%) !important; +} +.pl-stj { + /* storage.type.java */ + color: hsl(39, 67%, 69%) !important; +} +.pl-stp { + /* support.type.property-name */ + color: hsl(220, 9%, 55%) !important; +} +.pl-sv { + /* support.variable */ + color: hsl(29, 54%, 61%) !important; +} +.pl-v { + /* variable */ + color: hsl(39, 67%, 69%) !important; +} +.pl-vi { + /* variable.interpolation */ + color: hsl(5, 48%, 51%) !important; +} +.pl-vo { + /* variable.other */ + color: hsl(187, 47%, 55%) !important; +} +.pl-vpf { + /* variable.parameter.function */ + color: hsl(220, 14%, 71%) !important; +} +/* markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted */ +.pl-mi1 { + color: hsl(95, 38%, 62%) !important; + background: #020 !important; +} +/* meta.diff.header.to-file */ +.pl-mdht { + color: hsl(95, 38%, 62%) !important; + background: #020 !important; +} +/* markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted */ +.pl-md { + color: hsl(355, 65%, 65%) !important; + background: #200 !important; +} +/* meta.diff.header.from-file */ +.pl-mdhf { + color: hsl(355, 65%, 65%) !important; + background: #200 !important; +} +/* meta.diff.range */ +.pl-mdr { + color: hsl(220, 14%, 71%) !important; + font-weight: normal !important; +} +.pl-mdh { + /* meta.diff.header */ + color: hsl(355, 65%, 65%) !important; + font-weight: normal !important; +} +.pl-mdi { + /* meta.diff.index */ + color: hsl(355, 65%, 65%) !important; + font-weight: normal !important; +} +/* constant.other.reference.link, string.other.link */ +.pl-corl { + color: hsl(355, 65%, 65%) !important; + text-decoration: underline !important; +} +.pl-ib { + /* invalid.broken */ + background-color: hsl(355, 65%, 65%) !important; +} +/* invalid.broken, invalid.deprecated, invalid.unimplemented, message.error, + brackethighlighter.unmatched, sublimelinter.mark.error */ +.pl-bu, +.pl-ii { + /* invalid.illegal */ + background-color: hsl(0, 70%, 60%) !important; +} +.pl-mo { + /* meta.output */ + color: hsl(220, 14%, 71%) !important; +} +.pl-mri { + /* markup.raw.inline */ + color: hsl(95, 38%, 62%) !important; +} +.pl-ms1 { + /* meta.separator */ + color: hsl(220, 14%, 71%) !important; + background-color: #373b41 !important; +} +.pl-va { + /* variable.assignment */ + color: hsl(220, 14%, 71%) !important; +} +.pl-vpu { + /* variable.parameter.url */ + color: hsl(220, 14%, 71%) !important; +} +.pl-entl { + /* entity.name.tag.label */ + color: hsl(355, 65%, 65%) !important; +} +.pl-token.active, +.pl-token:hover { + background: hsl(207, 82%, 66%) !important; + color: hsl(0, 0%, 8%) !important; +} + `; + + let styleElm = document.createElement('style'); + if (styleElm.styleSheet) { + styleElm.styleSheet.cssText = css; // Support for IE + } else { + styleElm.appendChild(document.createTextNode(css)); + } + document.getElementsByTagName("head")[0].appendChild(styleElm); + } +})();