Created
June 2, 2025 18:53
-
-
Save jaames/00d7c68150df157b2b61b55615288b37 to your computer and use it in GitHub Desktop.
Custom Shiki.js theme that uses CSS variables for highlighting - used for my personal site (https://jaames.co.uk)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"colors": {}, | |
"displayName": "jaames.co.uk", | |
"name": "", | |
"semanticHighlighting": true, | |
"tokenColors": [ | |
{ | |
"settings": { | |
"background": "var(--syntax-bg)", | |
"foreground": "var(--syntax-text)" | |
} | |
}, | |
{ | |
"scope": "string", | |
"settings": { | |
"foreground": "var(--syntax-string)" | |
} | |
}, | |
{ | |
"scope": "punctuation, constant.other.symbol", | |
"settings": { | |
"foreground": "var(--syntax-punctuation)" | |
} | |
}, | |
{ | |
"scope": "constant.character.escape, text.html constant.character.entity.named", | |
"settings": { | |
"foreground": "var(--syntax-escape)" | |
} | |
}, | |
{ | |
"scope": "constant.language.boolean", | |
"settings": { | |
"foreground": "var(--syntax-bool)" | |
} | |
}, | |
{ | |
"scope": "constant.numeric", | |
"settings": { | |
"foreground": "var(--syntax-number)" | |
} | |
}, | |
{ | |
"scope": "variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments", | |
"settings": { | |
"foreground": "var(--syntax-variable)" | |
} | |
}, | |
{ | |
"scope": "keyword.other", | |
"settings": { | |
"foreground": "var(--syntax-other)" | |
} | |
}, | |
{ | |
"scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", | |
"settings": { | |
"foreground": "var(--syntax-keyword)" | |
} | |
}, | |
{ | |
"scope": "entity.name.function, support.function", | |
"settings": { | |
"foreground": "var(--syntax-function)" | |
} | |
}, | |
{ | |
"scope": "storage.type, storage.modifier, storage.control", | |
"settings": { | |
"foreground": "var(--syntax-modifier)" | |
} | |
}, | |
{ | |
"scope": "support.module, support.node", | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-module)" | |
} | |
}, | |
{ | |
"scope": "support.type, constant.other.key", | |
"settings": { | |
"foreground": "var(--syntax-name)" | |
} | |
}, | |
{ | |
"scope": "entity.name.type, entity.other.inherited-class, entity.other", | |
"settings": { | |
"foreground": "var(--syntax-type)" | |
} | |
}, | |
{ | |
"scope": "comment", | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-comment)" | |
} | |
}, | |
{ | |
"scope": "comment punctuation.definition.comment, string.quoted.docstring", | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-comment)" | |
} | |
}, | |
{ | |
"scope": "punctuation", | |
"settings": { | |
"foreground": "var(--syntax-punctuation)" | |
} | |
}, | |
{ | |
"scope": "entity.name, entity.name.type.class, support.type, support.class, meta.use", | |
"settings": { | |
"foreground": "var(--syntax-name)" | |
} | |
}, | |
{ | |
"scope": "variable.object.property, meta.field.declaration entity.name.function", | |
"settings": { | |
"foreground": "var(--syntax-property)" | |
} | |
}, | |
{ | |
"scope": "meta.definition.method entity.name.function", | |
"settings": { | |
"foreground": "var(--syntax-property)" | |
} | |
}, | |
{ | |
"scope": "meta.function entity.name.function", | |
"settings": { | |
"foreground": "var(--syntax-function)" | |
} | |
}, | |
{ | |
"scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", | |
"settings": { | |
"foreground": "var(--syntax-template)" | |
} | |
}, | |
{ | |
"scope": "meta.embedded, source.groovy.embedded, meta.template.expression", | |
"settings": { | |
"foreground": "var(--syntax-embedded)" | |
} | |
}, | |
{ | |
"scope": "entity.name.tag.yaml", | |
"settings": { | |
"foreground": "var(--syntax-literal)" | |
} | |
}, | |
{ | |
"scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", | |
"settings": { | |
"foreground": "var(--syntax-literal)" | |
} | |
}, | |
{ | |
"scope": "constant.language.json", | |
"settings": { | |
"foreground": "var(--syntax-json)" | |
} | |
}, | |
{ | |
"scope": "entity.other.attribute-name.class", | |
"settings": { | |
"foreground": "var(--syntax-type)" | |
} | |
}, | |
{ | |
"scope": "entity.other.attribute-name.id", | |
"settings": { | |
"foreground": "var(--syntax-other)" | |
} | |
}, | |
{ | |
"scope": "source.css entity.name.tag", | |
"settings": { | |
"foreground": "var(--syntax-name)" | |
} | |
}, | |
{ | |
"scope": "support.type.property-name.css", | |
"settings": { | |
"foreground": "var(--syntax-css-property)" | |
} | |
}, | |
{ | |
"scope": "meta.tag, punctuation.definition.tag", | |
"settings": { | |
"foreground": "var(--syntax-markup)" | |
} | |
}, | |
{ | |
"scope": "entity.name.tag", | |
"settings": { | |
"foreground": "var(--syntax-tag)" | |
} | |
}, | |
{ | |
"scope": "entity.other.attribute-name", | |
"settings": { | |
"foreground": "var(--syntax-modifier)" | |
} | |
}, | |
{ | |
"scope": "punctuation.definition.entity.html", | |
"settings": { | |
"foreground": "var(--syntax-embedded)" | |
} | |
}, | |
{ | |
"scope": "markup.heading", | |
"settings": { | |
"foreground": "var(--syntax-markup)" | |
} | |
}, | |
{ | |
"scope": "text.html.markdown meta.link.inline, meta.link.reference", | |
"settings": { | |
"foreground": "var(--syntax-literal)" | |
} | |
}, | |
{ | |
"scope": "text.html.markdown beginning.punctuation.definition.list", | |
"settings": { | |
"foreground": "var(--syntax-markup)" | |
} | |
}, | |
{ | |
"scope": "markup.italic", | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-literal)" | |
} | |
}, | |
{ | |
"scope": "markup.bold", | |
"settings": { | |
"fontStyle": "bold", | |
"foreground": "var(--syntax-literal)" | |
} | |
}, | |
{ | |
"scope": "markup.bold markup.italic, markup.italic markup.bold", | |
"settings": { | |
"fontStyle": "italic bold", | |
"foreground": "var(--syntax-literal)" | |
} | |
}, | |
{ | |
"scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", | |
"settings": { | |
"foreground": "var(--syntax-raw)" | |
} | |
}, | |
{ | |
"scope": "markup.inline.raw.string.markdown", | |
"settings": { | |
"foreground": "var(--syntax-raw)" | |
} | |
}, | |
{ | |
"scope": "meta.jsx.children, SXNested", | |
"settings": { | |
"foreground": "var(--syntax-embedded)" | |
} | |
}, | |
{ | |
"scope": "support.class.component", | |
"settings": { | |
"foreground": "var(--syntax-type)" | |
} | |
}, | |
{ | |
"scope": "source.cpp meta.block variable.other", | |
"settings": { | |
"foreground": "var(--syntax-embedded)" | |
} | |
}, | |
{ | |
"scope": "source.python meta.member.access.python", | |
"settings": { | |
"foreground": "var(--syntax-module)" | |
} | |
}, | |
{ | |
"scope": "source.python meta.function-call.python, meta.function-call.arguments", | |
"settings": { | |
"foreground": "var(--syntax-function)" | |
} | |
}, | |
{ | |
"scope": "meta.block", | |
"settings": { | |
"foreground": "var(--syntax-block)" | |
} | |
}, | |
{ | |
"scope": "entity.name.function.call", | |
"settings": { | |
"foreground": "var(--syntax-function)" | |
} | |
}, | |
{ | |
"scope": "source.php support.other.namespace, source.php meta.use support.class", | |
"settings": { | |
"foreground": "var(--syntax-embedded)" | |
} | |
}, | |
{ | |
"scope": "constant.keyword", | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-keyword)" | |
} | |
}, | |
{ | |
"scope": [ | |
"constant.other.placeholder" | |
], | |
"settings": { | |
"foreground": "var(--syntax-placeholder)" | |
} | |
}, | |
{ | |
"scope": [ | |
"markup.deleted" | |
], | |
"settings": { | |
"foreground": "var(--syntax-markup-deleted)" | |
} | |
}, | |
{ | |
"scope": [ | |
"markup.inserted" | |
], | |
"settings": { | |
"foreground": "var(--syntax-markup-inserted)" | |
} | |
}, | |
{ | |
"scope": [ | |
"markup.underline" | |
], | |
"settings": { | |
"fontStyle": "underline" | |
} | |
}, | |
{ | |
"scope": [ | |
"keyword.control" | |
], | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-keyword)" | |
} | |
}, | |
{ | |
"scope": [ | |
"variable.parameter" | |
], | |
"settings": { | |
"fontStyle": "italic" | |
} | |
}, | |
{ | |
"scope": [ | |
"variable.parameter.function.language.special.self.python" | |
], | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-property)" | |
} | |
}, | |
{ | |
"scope": [ | |
"constant.character.format.placeholder.other.python" | |
], | |
"settings": { | |
"foreground": "var(--syntax-other)" | |
} | |
}, | |
{ | |
"scope": [ | |
"markup.quote" | |
], | |
"settings": { | |
"fontStyle": "italic", | |
"foreground": "var(--syntax-markup)" | |
} | |
}, | |
{ | |
"scope": [ | |
"markup.fenced_code.block" | |
], | |
"settings": { | |
"foreground": "var(--syntax-markup-fenced)" | |
} | |
}, | |
{ | |
"scope": [ | |
"punctuation.definition.quote" | |
], | |
"settings": { | |
"foreground": "var(--syntax-quote)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-0)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-1)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-2)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-3)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-0)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-1)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-2)" | |
} | |
}, | |
{ | |
"scope": [ | |
"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" | |
], | |
"settings": { | |
"foreground": "var(--syntax-json-3)" | |
} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment