From 904a164dbfcc11c103f0b89e8e25b8a2346caaf8 Mon Sep 17 00:00:00 2001 From: Hikari Date: Thu, 26 Feb 2026 21:34:36 -0800 Subject: [PATCH] feat: add witchy dark theme --- .vscode/launch.json | 13 ++ package.json | 5 + themes/witchy-dark.json | 463 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 481 insertions(+) create mode 100644 .vscode/launch.json create mode 100644 themes/witchy-dark.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b184ba5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension Development Host", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] + } + ] +} diff --git a/package.json b/package.json index 1457d9b..1031560 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,11 @@ "label": "Trans Pride", "uiTheme": "vs", "path": "./themes/trans-pride.json" + }, + { + "label": "Witchy Dark", + "uiTheme": "vs-dark", + "path": "./themes/witchy-dark.json" } ] }, diff --git a/themes/witchy-dark.json b/themes/witchy-dark.json new file mode 100644 index 0000000..ba7bda6 --- /dev/null +++ b/themes/witchy-dark.json @@ -0,0 +1,463 @@ +{ + "name": "Witchy Dark", + "type": "dark", + "colors": { + "editor.background": "#0A0009", + "editor.foreground": "#E8D5E8", + "activityBar.background": "#150A1E", + "activityBar.foreground": "#E8D5E8", + "activityBarBadge.background": "#A8577E", + "activityBarBadge.foreground": "#F5F5F5", + "sideBar.background": "#150A1E", + "sideBar.foreground": "#E8D5E8", + "sideBarTitle.foreground": "#D4A5C7", + "titleBar.activeBackground": "#2B1B3D", + "titleBar.activeForeground": "#E8D5E8", + "statusBar.background": "#44275A", + "statusBar.foreground": "#E8D5E8", + "statusBar.noFolderBackground": "#0A0009", + "tab.activeBackground": "#2B1B3D", + "tab.activeForeground": "#E8D5E8", + "tab.inactiveBackground": "#150A1E", + "tab.inactiveForeground": "#D4A5C7", + "editorGroupHeader.tabsBackground": "#150A1E", + "button.background": "#44275A", + "button.foreground": "#E8D5E8", + "dropdown.background": "#2B1B3D", + "dropdown.foreground": "#E8D5E8", + "input.background": "#150A1E", + "input.foreground": "#E8D5E8", + "input.placeholderForeground": "#D4A5C7", + "focusBorder": "#A8577E", + "list.activeSelectionBackground": "#44275A", + "list.activeSelectionForeground": "#E8D5E8", + "list.hoverBackground": "#2B1B3D", + "list.hoverForeground": "#E8D5E8", + "editor.selectionBackground": "#A8577E", + "editor.selectionHighlightBackground": "#A8577E50", + "editor.wordHighlightBackground": "#A8577E40", + "editor.lineHighlightBackground": "#2B1B3D", + "editorCursor.foreground": "#A8577E", + "editorWhitespace.foreground": "#44275A", + "editorIndentGuide.background": "#44275A", + "editorIndentGuide.activeBackground": "#A8577E", + "terminal.background": "#0A0009", + "terminal.foreground": "#E8D5E8", + "terminal.ansiBlack": "#2B1B3D", + "terminal.ansiBrightBlack": "#44275A", + "terminal.ansiRed": "#A8577E", + "terminal.ansiBrightRed": "#C96B8E", + "terminal.ansiGreen": "#8A7A9E", + "terminal.ansiBrightGreen": "#A898C0", + "terminal.ansiYellow": "#D4A5C7", + "terminal.ansiBrightYellow": "#E8D5E8", + "terminal.ansiBlue": "#7B5EA8", + "terminal.ansiBrightBlue": "#9B7EC8", + "terminal.ansiMagenta": "#A8577E", + "terminal.ansiBrightMagenta": "#D4A5C7", + "terminal.ansiCyan": "#B8A0D0", + "terminal.ansiBrightCyan": "#D0B8E8", + "terminal.ansiWhite": "#D4A5C7", + "terminal.ansiBrightWhite": "#F5F5F5" + }, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#7A5A8A", + "fontStyle": "italic" + } + }, + { + "scope": [ + "string", + "string.quoted.single", + "string.quoted.double", + "string.quoted.triple", + "string.template", + "constant.character", + "constant.other.symbol" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "constant.numeric", + "constant.language", + "constant.character.escape", + "constant.other", + "support.constant" + ], + "settings": { + "foreground": "#C88FA8" + } + }, + { + "scope": [ + "variable", + "variable.other", + "variable.parameter", + "variable.language", + "variable.object.property" + ], + "settings": { + "foreground": "#E8D5E8" + } + }, + { + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other", + "storage.type", + "storage.modifier", + "punctuation.decorator" + ], + "settings": { + "foreground": "#A8577E" + } + }, + { + "scope": [ + "entity.name.function", + "entity.name.method", + "support.function", + "meta.function-call", + "meta.method-call", + "meta.function.dart" + ], + "settings": { + "foreground": "#C070A0" + } + }, + { + "scope": [ + "entity.name.type", + "entity.name.class", + "entity.name.struct", + "entity.name.enum", + "entity.name.union", + "entity.name.trait", + "entity.name.interface", + "support.class", + "support.type", + "meta.return-type" + ], + "settings": { + "foreground": "#D4A5C7", + "fontStyle": "bold" + } + }, + { + "scope": [ + "meta.decorator", + "meta.annotation", + "punctuation.definition.annotation" + ], + "settings": { + "foreground": "#9B5878" + } + }, + { + "scope": ["entity.name.tag", "punctuation.definition.tag"], + "settings": { + "foreground": "#A8577E" + } + }, + { + "scope": [ + "entity.other.attribute-name", + "entity.other.attribute-name.html", + "entity.other.attribute-name.css", + "support.type.property-name.css", + "entity.other.attribute-name.class" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "support.type.primitive", + "support.type.builtin", + "keyword.type", + "storage.type.primitive", + "storage.type.built-in", + "support.type.primitive.dart" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": ["string.regexp", "constant.character.escape.regex"], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": ["markup.heading", "entity.name.section"], + "settings": { + "foreground": "#A8577E", + "fontStyle": "bold" + } + }, + { + "scope": ["markup.bold"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["markup.italic"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code", "markup.raw"], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "support.type.property-name.json", + "support.type.property-name.jsonc" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "keyword.operator.expression", + "keyword.operator.new", + "keyword.operator.optional", + "keyword.operator.comparison", + "keyword.operator.arithmetic", + "keyword.operator.assignment", + "keyword.operator.logical" + ], + "settings": { + "foreground": "#CF8FAE" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "meta.template.expression" + ], + "settings": { + "foreground": "#E8D5E8" + } + }, + { + "scope": [ + "meta.object-literal.key", + "variable.object.property", + "variable.other.property", + "variable.other.object.property" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "support.variable.property", + "support.variable.object.process", + "support.variable.object.node" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "source.rust storage.type.rust", + "source.rust entity.name.type.rust", + "source.rust entity.name.type.struct.rust" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "source.rust keyword.operator", + "source.rust keyword.operator.arithmetic", + "source.rust keyword.operator.logical" + ], + "settings": { + "foreground": "#CF8FAE" + } + }, + { + "scope": [ + "source.python support.type.python", + "source.python support.function.builtin.python" + ], + "settings": { + "foreground": "#C070A0" + } + }, + { + "scope": [ + "source.cs entity.name.type.class.cs", + "source.cs storage.type.cs" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "source.dart support.class.dart", + "source.dart support.type.dart" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "source.prisma keyword.operator", + "source.prisma constant.language", + "source.prisma keyword.type" + ], + "settings": { + "foreground": "#A8577E" + } + }, + { + "scope": [ + "source.graphql support.type", + "source.graphql constant.character" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": ["source.sql keyword.other", "source.sql storage.type"], + "settings": { + "foreground": "#A8577E" + } + }, + { + "scope": [ + "meta.jsx.children", + "meta.embedded.block.tsx", + "meta.embedded.block.jsx" + ], + "settings": { + "foreground": "#E8D5E8" + } + }, + { + "scope": [ + "meta.decorator.ts", + "meta.decorator.tsx", + "meta.decorator.angular" + ], + "settings": { + "foreground": "#9B5878" + } + }, + { + "scope": [ + "entity.name.tag.yaml", + "string.unquoted.plain.out.yaml" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "support.type.property-name.toml", + "entity.name.tag.toml" + ], + "settings": { + "foreground": "#D4A5C7" + } + }, + { + "scope": [ + "markup.underline.link", + "string.other.link.title.markdown", + "meta.link.inline.markdown" + ], + "settings": { + "foreground": "#A8577E" + } + }, + { + "scope": ["markup.quote"], + "settings": { + "foreground": "#7A5A8A", + "fontStyle": "italic" + } + }, + { + "scope": [ + "punctuation.definition.list.begin.markdown", + "beginning.punctuation.definition.list.markdown" + ], + "settings": { + "foreground": "#A8577E" + } + }, + { + "scope": [ + "variable.css", + "variable.other.custom-property.css", + "support.type.custom-property.css" + ], + "settings": { + "foreground": "#CF8FAE" + } + }, + { + "scope": [ + "support.macro.rust", + "entity.name.function.macro.rust", + "meta.macro.rust entity.name.function.rust" + ], + "settings": { + "foreground": "#C070A0" + } + }, + { + "scope": [ + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "punctuation.definition.lifetime.rust" + ], + "settings": { + "foreground": "#9B5878" + } + }, + { + "scope": ["entity.name.package.go"], + "settings": { + "foreground": "#C88FA8" + } + }, + { + "scope": [ + "entity.name.package.java", + "support.other.package.java", + "entity.name.package.kotlin" + ], + "settings": { + "foreground": "#C88FA8" + } + } + ] + }