diff --git a/README.md b/README.md index 892944e..4a8054e 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,8 @@ exec zsh ### `darwin-breeze` + `helium` (theme and colors) The Darwin Breeze Dark KDE color scheme and global theme, and the Helium, T3 -Code and Ghostty themes generated from it. After stowing, apply it once: +Code, Ghostty, VS Code and Telegram themes generated from it. After stowing, apply it +once (Telegram imports its theme by hand): ```sh ./darwin-breeze/apply.sh diff --git a/darwin-breeze/.gitignore b/darwin-breeze/.gitignore index f5d370a..536a28d 100644 --- a/darwin-breeze/.gitignore +++ b/darwin-breeze/.gitignore @@ -1,3 +1,6 @@ # Helium caches the built theme next to the manifest. Cached Theme.pak __pycache__/ +# Binary packages built by build.py. +*.vsix +*.tdesktop-theme diff --git a/darwin-breeze/.stow-local-ignore b/darwin-breeze/.stow-local-ignore index b266ff1..6fcd543 100644 --- a/darwin-breeze/.stow-local-ignore +++ b/darwin-breeze/.stow-local-ignore @@ -5,3 +5,5 @@ __pycache__ ^/\.gitignore ^/t3 +^/telegram +^/vscode diff --git a/darwin-breeze/README.md b/darwin-breeze/README.md index 2e82544..95c52cc 100644 --- a/darwin-breeze/README.md +++ b/darwin-breeze/README.md @@ -1,7 +1,7 @@ # Darwin Breeze -Breeze for KDE Plasma 6 in the macOS dark system colors, with Helium, T3 Code -and Ghostty themed from the same colors. +Breeze for KDE Plasma 6 in the macOS dark system colors, with Helium, T3 Code, +Ghostty, VS Code and Telegram themed from the same colors. Only the colors change. Breeze still draws the widgets and the title bar, and the window buttons stay on the right. @@ -24,7 +24,15 @@ stow darwin-breeze helium `apply.sh` regenerates the app themes, applies the global theme, hides the line under the title bar, turns off the wallpaper accent color and publishes -the T3 Code theme. Restart Helium afterwards; T3 Code switches on its own. +the T3 Code theme and installs the VS Code extension. Restart Helium +afterwards; T3 Code switches on its own. In VS Code, pick "Darwin Breeze Dark" +once under Preferences → Color Theme; after later color changes, run Developer: +Reload Window. + +Telegram has to import its theme by hand: Settings → Chat Settings → Chat +background → Choose from file, then pick +`darwin-breeze/telegram/DarwinBreezeDark.tdesktop-theme` and Apply. Import it +again after the colors change. ## Changing colors @@ -44,9 +52,12 @@ Edit it, then run `./darwin-breeze/apply.sh` again. Everything else follows: | Helium | `.local/share/helium-themes/`, generated by `build.py` | | T3 Code | `t3/darwin-breeze.json`, generated by `build.py` and published with `t3 theme set` | | Ghostty | `.config/ghostty/themes/`, generated by `build.py` | +| VS Code | `vscode/package.json` and `vscode/themes/`, generated by `build.py`, packed into `darwin-breeze.vsix` and installed by `apply.sh` | +| Telegram | `telegram/DarwinBreezeDark.tdesktop-theme`, built by `build.py` and imported by hand | -The generated files are committed so that `stow` alone gives a working setup; -don't edit them by hand. +The generated text files are committed so that `stow` alone gives a working +setup; the binary packages (Telegram's `.tdesktop-theme`, VS Code's `.vsix`) +are built by `build.py` instead. Don't edit generated files by hand. ## T3 Code notes @@ -56,6 +67,39 @@ don't edit them by hand. `build.py`), so a new slot or a different mapping is a change there, not a hand-edited color. +## VS Code notes + +- The workbench colors start from VS Code's own default dark theme, Dark 2026 + (vendored in `vscode/base/` with the themes it includes). It already lays + out its grays as the scheme does: the editor darkest, the chrome around it + lighter, widgets lighter still. Each of those becomes the matching scheme + gray and the grays between them are interpolated. Other colors take the + hue of the matching Apple color and keep their lightness and saturation. + Keys with an exact role, such as buttons, badges, the active tab's top + border and the git colors, are set directly (`vscode()` in `build.py`). +- Syntax colors are Pierre Dark's, the theme T3 Code highlights code with + (`vscode/base/pierre-dark.json`, taken from T3 Code). They are used as they + are, without gamma compensation, so code looks the same in both apps. +- The terminal uses the same 16 colors as Ghostty. +- VS Code is Electron, so its workbench colors get the same gamma + compensation as Helium and T3 Code. +- The `.vsix` isn't committed; `build.py` packs it from `vscode/`. + +## Telegram notes + +- Telegram has some 600 color keys and the scheme has roles for only a few + dozen of them (`telegram()` in `build.py`). The rest start from Telegram's + own night theme, vendored as `telegram/night.tdesktop-palette`: its + blue-tinted grays become scheme grays of the same brightness and its blues + take the macOS blue's hue. Other colors, such as the reds, greens and name + colors, are kept as night has them. +- The chat list, top bar and compose bar use the window color; the chat + behind the bubbles and the folder strip use the darker view color. +- Telegram is a Qt app, so unlike Helium and T3 Code it needs no gamma + compensation. +- The `.tdesktop-theme` is a zip, so it isn't committed; `build.py` builds it + from the night palette and the color scheme. + ## Helium notes - Helium loads the theme from `~/.local/share/helium-themes/darwinbreeze` diff --git a/darwin-breeze/apply.sh b/darwin-breeze/apply.sh index 59922c8..af62ae8 100755 --- a/darwin-breeze/apply.sh +++ b/darwin-breeze/apply.sh @@ -37,6 +37,12 @@ if [ -x "$t3" ]; then "$t3" theme set "$here/t3/darwin-breeze.json" >/dev/null fi +# VS Code only loads themes from installed extensions. --force reinstalls the +# same version, so color changes land without a version bump. +if command -v code >/dev/null; then + code --install-extension "$here/vscode/darwin-breeze.vsix" --force >/dev/null 2>&1 +fi + echo "Applied Darwin Breeze" if pgrep -x helium >/dev/null; then echo "Restart Helium to pick up its theme" diff --git a/darwin-breeze/build.py b/darwin-breeze/build.py index dd42679..fd0a5a0 100755 --- a/darwin-breeze/build.py +++ b/darwin-breeze/build.py @@ -7,10 +7,18 @@ are defined. This script derives from it: .local/share/helium-themes/darwinbreeze/manifest.json .config/ghostty/themes/DarwinBreezeDark t3/darwin-breeze.json (published to T3 Code by apply.sh) + telegram/DarwinBreezeDark.tdesktop-theme (not committed; imported into Telegram by hand) + vscode/ (packed into vscode/darwin-breeze.vsix, installed by apply.sh) """ +import colorsys import configparser +import io import json +import re +import struct +import zipfile +import zlib from pathlib import Path PKG = Path(__file__).resolve().parent @@ -18,6 +26,20 @@ SCHEME = PKG / ".local/share/color-schemes/DarwinBreezeDark.colors" HELIUM = PKG / ".local/share/helium-themes/darwinbreeze" GHOSTTY = PKG / ".config/ghostty/themes/DarwinBreezeDark" T3 = PKG / "t3/darwin-breeze.json" +# Telegram Desktop's built-in night theme, used as the base for every key the +# scheme has no role for: the colors file from telegramdesktop/tdesktop at +# 837b256, Telegram/Resources/night.tdesktop-theme. +TELEGRAM_BASE = PKG / "telegram/night.tdesktop-palette" +TELEGRAM = PKG / "telegram/DarwinBreezeDark.tdesktop-theme" +VSCODE = PKG / "vscode" +VSCODE_THEME = "themes/DarwinBreezeDark-color-theme.json" +# VS Code's default dark theme, Dark 2026 (which includes Dark Modern, Dark+ +# and Visual Studio Dark), from Code - OSS 1.138 extensions/theme-defaults. +# The workbench colors start from it. +VSCODE_UI = PKG / "vscode/base/2026-dark.json" +# Pierre Dark, the syntax theme T3 Code highlights code with (from T3 Code +# 0.1.4). The editor uses its token colors as they are. +VSCODE_SYNTAX = PKG / "vscode/base/pierre-dark.json" WHITE = (255, 255, 255) @@ -48,7 +70,8 @@ def mix(a, b, t): def hexc(c): - return "#{:02x}{:02x}{:02x}".format(*c) + """#rrggbb, or #rrggbbaa when c carries an alpha.""" + return "#" + "".join(f"{v:02x}" for v in c) def kwin_compensate(c): @@ -101,12 +124,10 @@ def helium(color): return {k: kwin_compensate(v) for k, v in colors.items()} -def ghostty(color): +def ansi(color): + """The 16 terminal colors, shared by Ghostty and the VS Code terminal.""" bg = color("View", "BackgroundNormal") fg = color("View", "ForegroundNormal") - accent = color("Selection", "BackgroundNormal") - accent_text = color("Selection", "ForegroundNormal") - normal = [ mix(bg, fg, 0.15), color("View", "ForegroundNegative"), @@ -122,6 +143,14 @@ def ghostty(color): *(mix(c, WHITE, 0.25) for c in normal[1:7]), mix(fg, WHITE, 0.6), ] + return normal + bright + + +def ghostty(color): + bg = color("View", "BackgroundNormal") + fg = color("View", "ForegroundNormal") + accent = color("Selection", "BackgroundNormal") + accent_text = color("Selection", "ForegroundNormal") lines = [ f"# Generated by darwin-breeze/build.py from {SCHEME.name}", @@ -132,7 +161,7 @@ def ghostty(color): f"selection-background = {hexc(accent)}", f"selection-foreground = {hexc(accent_text)}", ] - lines += [f"palette = {i}={hexc(c)}" for i, c in enumerate(normal + bright)] + lines += [f"palette = {i}={hexc(c)}" for i, c in enumerate(ansi(color))] return "\n".join(lines) + "\n" @@ -218,11 +247,404 @@ def t3(color): return {k: hexc(kwin_compensate(v)) for k, v in colors.items()} -def write(path, text): +def telegram(color): + """Telegram keys mapped onto a scheme role; the rest come from night.""" + window, window_text = color("Window", "BackgroundNormal"), color("Window", "ForegroundNormal") + view, view_text = color("View", "BackgroundNormal"), color("View", "ForegroundNormal") + header, header_text = color("Header", "BackgroundNormal"), color("Header", "ForegroundNormal") + title_inactive = color("Header][Inactive", "BackgroundNormal") + title_inactive_text = color("Header][Inactive", "ForegroundNormal") + tooltip, tooltip_text = color("Tooltip", "BackgroundNormal"), color("Tooltip", "ForegroundNormal") + accent, accent_text = color("Selection", "BackgroundNormal"), color("Selection", "ForegroundNormal") + accent_hover = color("Selection", "BackgroundAlternate") + muted = color("Window", "ForegroundInactive") + negative = color("Window", "ForegroundNegative") + positive = color("Window", "ForegroundPositive") + link = color("Window", "ForegroundLink") + hover = mix(window, window_text, 0.115) + ripple = mix(window, window_text, 0.18) + control = mix(window, window_text, 0.3) + msg_in = mix(view, view_text, 0.1) + msg_out = mix(view, accent, 0.5) + + return { + "windowBg": window, + "windowFg": window_text, + "windowBgOver": hover, + "windowBgRipple": ripple, + "windowFgOver": window_text, + "windowSubTextFg": muted, + "windowSubTextFgOver": mix(muted, window_text, 0.2), + "windowBoldFg": window_text, + "windowBoldFgOver": window_text, + "windowBgActive": accent, + "windowFgActive": accent_text, + "windowActiveTextFg": link, + "windowShadowFgFallback": window, + "activeButtonBg": accent, + "activeButtonBgOver": accent_hover, + "activeButtonBgRipple": mix(accent, WHITE, 0.2), + "activeButtonFg": accent_text, + "activeButtonFgOver": accent_text, + "activeButtonSecondaryFg": mix(accent, accent_text, 0.75), + "activeLineFg": accent, + "activeLineFgError": negative, + "lightButtonBg": window, + "lightButtonBgOver": mix(window, accent, 0.12), + "lightButtonBgRipple": mix(window, accent, 0.2), + "lightButtonFg": link, + "attentionButtonFg": negative, + "attentionButtonFgOver": negative, + "attentionButtonBgOver": mix(window, negative, 0.12), + "attentionButtonBgRipple": mix(window, negative, 0.2), + "outlineButtonOutlineFg": accent, + "menuBg": window, + "menuBgOver": hover, + "menuBgRipple": ripple, + "menuIconFg": muted, + "menuIconFgOver": mix(muted, window_text, 0.3), + "menuSubmenuArrowFg": muted, + "menuFgDisabled": control, + "menuSeparatorFg": hover, + "checkboxFg": muted, + "sliderBgInactive": control, + "sliderBgActive": accent, + "inputBorderFg": control, + # Breeze draws text fields in the view color with a blue focus ring. + "filterInputActiveBg": view, + "filterInputInactiveBg": view, + "filterInputBorderFg": accent, + "tooltipBg": tooltip, + "tooltipFg": tooltip_text, + "tooltipBorderFg": mix(tooltip, tooltip_text, 0.115), + "titleBg": title_inactive, + "titleBgActive": header, + "titleFg": title_inactive_text, + "titleFgActive": header_text, + "topBarBg": header, + "boxBg": window, + "boxTitleFg": window_text, + "boxTextFgGood": positive, + "boxTextFgError": negative, + # Folder strip in the view color, so the selected folder merges into + # the chat list next to it. + "sideBarBg": view, + "sideBarBgActive": window, + "sideBarBgRipple": mix(view, window_text, 0.1), + "sideBarTextFg": muted, + "sideBarTextFgActive": link, + "sideBarIconFg": muted, + "sideBarIconFgActive": link, + "sideBarBadgeBg": accent, + "sideBarBadgeBgMuted": control, + "sideBarBadgeFg": accent_text, + "dialogsBg": window, + "dialogsBgOver": hover, + "dialogsRippleBg": ripple, + "dialogsBgActive": accent, + "dialogsRippleBgActive": accent_hover, + "dialogsNameFg": window_text, + "dialogsTextFg": muted, + "dialogsTextFgOver": muted, + "dialogsTextFgService": link, + "dialogsTextFgServiceOver": link, + "dialogsDateFg": muted, + "dialogsDateFgOver": muted, + "dialogsDraftFg": negative, + "dialogsOnlineBadgeFg": positive, + "dialogsVerifiedIconBg": link, + "dialogsVerifiedIconFg": window, + "dialogsUnreadBg": accent, + "dialogsUnreadBgOver": accent, + "dialogsUnreadFg": accent_text, + "dialogsUnreadBgMuted": control, + "dialogsUnreadBgMutedOver": mix(window, window_text, 0.35), + "dialogsUnreadBgActive": accent_text, + "dialogsUnreadFgActive": accent, + "dialogsUnreadBgMutedActive": mix(accent, accent_text, 0.55), + "historyComposeAreaBg": window, + "historyComposeAreaFg": window_text, + "historyComposeButtonBgOver": hover, + "historyComposeButtonBgRipple": ripple, + "historyTextInFg": view_text, + "historyTextOutFg": view_text, + "historyLinkInFg": link, + "msgInBg": msg_in, + "msgInBgSelected": mix(msg_in, accent, 0.3), + "msgOutBg": msg_out, + "msgOutBgSelected": mix(msg_out, accent, 0.3), + "msgInDateFg": muted, + "msgOutDateFg": mix(msg_out, WHITE, 0.55), + "msgSelectOverlay": (*accent, 0x4C), + "msgStickerOverlay": (*accent, 0x7F), + } + + +def luma(c): + return 0.299 * c[0] + 0.587 * c[1] + 0.114 * c[2] + + +def interp(points, x): + for (x0, y0), (x1, y1) in zip(points, points[1:]): + if x <= x1: + return y0 + (y1 - y0) * (x - x0) / (x1 - x0) + return points[-1][1] + + +def parse_hex(v): + h = v[1:] + if len(h) in (3, 4): + h = "".join(ch * 2 for ch in h) + return tuple(int(h[i:i + 2], 16) for i in range(0, len(h), 2)) + + +def telegram_theme(color): + """The night theme, recolored onto the scheme. + + Night tints everything blue. Its tinted grays become scheme grays of + matching brightness, its blues take the accent's hue and saturation, and + other hues (reds, greens, name colors) stay. telegram() then pins every + key that has a scheme role. + """ + base = TELEGRAM_BASE.read_text() + line_re = re.compile(r"^(\w+):\s*(#[0-9a-fA-F]+)\s*;") + night = {m[1]: parse_hex(m[2]) for m in map(line_re.match, base.splitlines()) if m} + + window, muted = color("Window", "BackgroundNormal"), color("Window", "ForegroundInactive") + grays = sorted({ + (0, 0), + (luma(night["windowBg"]), window[0]), + (luma(night["windowSubTextFg"]), muted[0]), + (255, 255), + }) + accent_h, _, accent_s = colorsys.rgb_to_hls(*(v / 255 for v in color("Selection", "BackgroundNormal"))) + + def recolor(c): + rgb, alpha = c[:3], c[3:] + chroma = max(rgb) - min(rgb) + h, l, _ = colorsys.rgb_to_hls(*(v / 255 for v in rgb)) + if chroma <= 4 or not 195 <= h * 360 <= 225: + return c + if chroma <= 55: + g = round(interp(grays, luma(rgb))) + return (g, g, g, *alpha) + return (*(round(v * 255) for v in colorsys.hls_to_rgb(accent_h, l, accent_s)), *alpha) + + pinned = telegram(color) + seen = set() + out = [f"// Generated by darwin-breeze/build.py from {SCHEME.name}"] + for line in base.splitlines(): + m = line_re.match(line) + if m: + key = m[1] + seen.add(key) + c = pinned[key] if key in pinned else recolor(night[key]) + line = f"{key}: {hexc(c)};" + line[m.end():] + elif re.match(r"^(\w+):", line) and line.split(":")[0] in pinned: + key = line.split(":")[0] + seen.add(key) + line = f"{key}: {hexc(pinned[key])};" + out.append(line) + out += [f"{k}: {hexc(c)};" for k, c in pinned.items() if k not in seen] + return "\n".join(out) + "\n" + + +def vscode_base_colors(): + """Dark 2026's colors with its include chain resolved.""" + chain, path = [], VSCODE_UI + while path: + theme = json.loads(path.read_text()) + chain.append(theme.get("colors", {})) + path = path.parent / theme["include"] if "include" in theme else None + colors = {} + for layer in reversed(chain): + colors.update(layer) + return {k: parse_hex(v) for k, v in colors.items()} + + +def vscode(color): + """Workbench colors: Dark 2026, recolored onto the scheme. + + Dark 2026 lays out its grays the way the scheme does: the chrome lighter + than the editor, widgets lighter still. Each of those grays becomes the + scheme gray in the same place, and the grays in between are interpolated. + Each hue takes the hue of the matching scheme color but keeps its own + lightness and saturation, so a muted dark red background stays one. pins + then sets the keys that have an exact scheme role, which is where the full + macOS blue shows. + """ + window, window_text = color("Window", "BackgroundNormal"), color("Window", "ForegroundNormal") + view, view_text = color("View", "BackgroundNormal"), color("View", "ForegroundNormal") + accent, accent_text = color("Selection", "BackgroundNormal"), color("Selection", "ForegroundNormal") + muted = color("Window", "ForegroundInactive") + negative = color("View", "ForegroundNegative") + neutral = color("View", "ForegroundNeutral") + positive = color("View", "ForegroundPositive") + link = color("View", "ForegroundLink") + base = vscode_base_colors() + + grays = sorted({ + (0, 0), + (luma(base["editor.background"]), view[0]), + (luma(base["sideBar.background"]), window[0]), + (luma(base["editorWidget.background"]), color("Window", "BackgroundAlternate")[0]), + (luma(base["sideBar.border"]), mix(window, window_text, 0.115)[0]), + (luma(base["descriptionForeground"]), muted[0]), + (luma(base["foreground"]), window_text[0]), + (255, 255), + }) + assert all(a[1] <= b[1] for a, b in zip(grays, grays[1:])), grays + + def hls(c): + return colorsys.rgb_to_hls(*(v / 255 for v in c)) + + # (hue range in degrees, scheme color whose hue it takes) + families = [ + ((0, 15), negative), + ((15, 70), neutral), + ((70, 170), positive), + ((170, 250), accent), + ((250, 330), color("View", "ForegroundVisited")), + ((330, 360), negative), + ] + + def recolor(c): + rgb, alpha = c[:3], c[3:] + if max(rgb) - min(rgb) <= 10: + g = round(interp(grays, luma(rgb))) + return (g, g, g, *alpha) + h, l, sat = hls(rgb) + target = next(t for (lo, hi), t in families if lo <= h * 360 < hi) + return (*(round(v * 255) for v in colorsys.hls_to_rgb(hls(target)[0], l, sat)), *alpha) + + pins = { + "editor.background": view, + "editor.foreground": view_text, + "titleBar.inactiveBackground": color("Header][Inactive", "BackgroundNormal"), + "titleBar.inactiveForeground": color("Header][Inactive", "ForegroundNormal"), + "focusBorder": (*accent, 0xB3), + "quickInputList.focusBackground": accent, + "button.background": accent, + "button.border": accent, + "button.hoverBackground": color("Selection", "BackgroundAlternate"), + "button.foreground": accent_text, + "badge.background": accent, + "badge.foreground": accent_text, + "activityBarBadge.background": accent, + "activityBarBadge.foreground": accent_text, + "tab.activeBorderTop": accent, + "panelTitle.activeBorder": accent, + "textLink.foreground": link, + "textLink.activeForeground": link, + } + names = ["Black", "Red", "Green", "Yellow", "Blue", "Magenta", "Cyan", "White"] + for i, c in enumerate(ansi(color)): + pins[f"terminal.ansi{'Bright' if i >= 8 else ''}{names[i % 8]}"] = c + + colors = {k: pins.get(k) or recolor(c) for k, c in base.items()} + colors.update(pins) + # Electron is Chromium, so it needs the same KWin compensation as Helium. + return {k: hexc(kwin_compensate(c[:3]) + list(c[3:])) for k, c in sorted(colors.items())} + + +def vscode_files(color): + """The extension files, keyed by their path inside it.""" + name = "Darwin Breeze Dark" + # Syntax colors as T3 Code shows them. T3 Code doesn't compensate them + # either, so the two render the same. + syntax = json.loads(VSCODE_SYNTAX.read_text()) + theme = { + "$schema": "vscode://schemas/color-theme", + "name": name, + "type": "dark", + "semanticHighlighting": True, + "colors": vscode(color), + "tokenColors": syntax["tokenColors"], + "semanticTokenColors": syntax["semanticTokenColors"], + } + package = { + "name": "darwin-breeze", + "displayName": "Darwin Breeze", + "description": f"Generated by darwin-breeze/build.py from {SCHEME.name}", + "publisher": "trivk", + "version": "1.0.0", + "engines": {"vscode": "^1.70.0"}, + "categories": ["Themes"], + "contributes": { + "themes": [{"label": name, "uiTheme": "vs-dark", "path": f"./{VSCODE_THEME}"}], + }, + } + return { + "package.json": json.dumps(package, indent=2) + "\n", + VSCODE_THEME: json.dumps(theme, indent=2) + "\n", + } + + +def vsix(files): + """Pack the extension the way vsce does, for code --install-extension.""" + manifest = """ + + + + Darwin Breeze + Darwin Breeze Dark color theme + Themes + + + + + + + + + + + + +""" + content_types = """ + +""" + return zip_bytes({ + "[Content_Types].xml": content_types, + "extension.vsixmanifest": manifest, + **{f"extension/{path}": text for path, text in files.items()}, + }) + + +def solid_png(c): + """A 1x1 PNG; Telegram stretches it over the chat as a plain background.""" + + def chunk(kind, data): + return struct.pack(">I", len(data)) + kind + data + struct.pack(">I", zlib.crc32(kind + data)) + + return ( + b"\x89PNG\r\n\x1a\n" + + chunk(b"IHDR", struct.pack(">IIBBBBB", 1, 1, 8, 2, 0, 0, 0)) + + chunk(b"IDAT", zlib.compress(bytes([0, *c]))) + + chunk(b"IEND", b"") + ) + + +def zip_bytes(files): + """A zip with fixed timestamps, so an unchanged theme rebuilds byte-identical.""" + buf = io.BytesIO() + with zipfile.ZipFile(buf, "w", zipfile.ZIP_DEFLATED) as z: + for name, data in files.items(): + info = zipfile.ZipInfo(name, (1980, 1, 1, 0, 0, 0)) + info.compress_type = zipfile.ZIP_DEFLATED + info.external_attr = 0o644 << 16 + z.writestr(info, data) + return buf.getvalue() + + +def write(path, data): path.parent.mkdir(parents=True, exist_ok=True) - if path.exists() and path.read_text() == text: + if isinstance(data, str): + data = data.encode() + if path.exists() and path.read_bytes() == data: return False - path.write_text(text) + path.write_bytes(data) print(f"wrote {path.relative_to(PKG)}") return True @@ -245,6 +667,16 @@ def main(): theme = {"version": 1, "name": "Darwin Breeze", "appearance": "dark", "colors": t3(color)} write(T3, json.dumps(theme, indent=2) + "\n") + write(TELEGRAM, zip_bytes({ + "colors.tdesktop-theme": telegram_theme(color), + "background.png": solid_png(color("View", "BackgroundNormal")), + })) + + files = vscode_files(color) + for path, text in files.items(): + write(VSCODE / path, text) + write(VSCODE / "darwin-breeze.vsix", vsix(files)) + if __name__ == "__main__": main() diff --git a/darwin-breeze/telegram/night.tdesktop-palette b/darwin-breeze/telegram/night.tdesktop-palette new file mode 100644 index 0000000..7744add --- /dev/null +++ b/darwin-breeze/telegram/night.tdesktop-palette @@ -0,0 +1,467 @@ +windowBg: #17212b; // white: fallback for background +windowFg: #f5f5f5; // black: fallback for text +windowBgOver: #232e3c; // light gray: fallback for background with mouse over +windowBgRipple: #24303d; // darker gray: fallback for ripple effect +windowFgOver: #e9ecf0; // black: fallback for text with mouse over +windowSubTextFg: #708499; // gray: fallback for additional text +windowSubTextFgOver: #7c90a4; // darker gray: fallback for additional text with mouse over +windowBoldFg: #e9e8e8; // dark gray: fallback for bold text +windowBoldFgOver: #e9e9e9; // dark gray: fallback for bold text with mouse over +windowBgActive: #5288c1; // bright blue: fallback for blue filled active areas +windowFgActive: #ffffff; // white: fallback for text on active areas +windowActiveTextFg: #6ab3f3; // online blue: fallback for active text like online status +windowShadowFg: #000000; // black: fallback for shadow +windowShadowFgFallback: #17212b; // gray: fallback for shadow without opacity +shadowFg: #04080e56; // most shadows (including opacity) +slideFadeOutBg: #0000003c; // slide animation (chat to profile) fade out filling +slideFadeOutShadowFg: windowShadowFg; // slide animation (chat to profile) fade out right section shadow +imageBg: #000000; // image background fallback (when photo size is less than minimum allowed) +imageBgTransparent: #ffffff; // image background when displaying an image with opacity where no opacity is needed +activeButtonBg: #2f6ea5; // default active button background +activeButtonBgOver: #3476ab; // default active button background with mouse over +activeButtonBgRipple: #3b7cb1; // default active button ripple effect +activeButtonFg: #ffffff; // default active button text +activeButtonFgOver: #ffffff; // default active button text with mouse over +activeButtonSecondaryFg: #9abfe7; // default active button additional text (selected messages counter in forward / delete buttons) +activeButtonSecondaryFgOver: activeButtonSecondaryFg; // default active button additional text with mouse over +activeLineFg: #6396cb; // default active line (like code input field bottom border when you log in and field is focused) +activeLineFgError: #ef5959; // default active line for error state (like code input field bottom border when you log in and you've entered incorrect code) +lightButtonBg: #17212b; // default light button background (like buttons in boxes) +lightButtonBgOver: #1d2a39; // default light button background with mouse over +lightButtonBgRipple: #223143; // default light button ripple effect +lightButtonFg: #6ab2f2; // default light button text +lightButtonFgOver: lightButtonFg; // default light button text with mouse over +attentionButtonFg: #ec3942; // default attention button text (like confirm button on log out) +attentionButtonFgOver: #ec3942; // default attention button text with mouse over +attentionButtonBgOver: #592a2a64; // default attention button background with mouse over +attentionButtonBgRipple: #68323264; // default attention button ripple effect +outlineButtonBg: windowBg; // default left outlined button background (like shared media links in profiles) +outlineButtonBgOver: #202b37; // default left outlined button background with mouse over +outlineButtonOutlineFg: #3983c3; // default left outlined button left outline border +outlineButtonBgRipple: #27323f; // default left outlined button ripple effect +menuBg: #17212b; // default popup menu background +menuBgOver: #ffffff; // default popup menu item background with mouse over +menuBgRipple: #1f2934; // default popup menu item ripple effect +menuIconFg: #6c7883; // default popup menu item icon (like main menu) +menuIconFgOver: #dcdcdc; // default popup menu item icon with mouse over +menuSubmenuArrowFg: #637c95; // default popup menu submenu arrow icon (like in message field context menu in case of RTL system language) +menuFgDisabled: #3d4e5c; // default popup menu item disabled text (like unavailable items in message field context menu) +menuSeparatorFg: #232f39; // default popup menu separator (like in message field context menu) +scrollBarBg: #ffffff53; // default scroll bar current rectangle, the bar itself (like in chats list) +scrollBarBgOver: #ffffff7a; // default scroll bar current rectangle with mouse over it +scrollBg: #ffffff1a; // default scroll bar background +scrollBgOver: #ffffff2c; // default scroll bar background with mouse over the scroll bar +smallCloseIconFg: #55616c; // small X icon (like in Show all sessions box to the right for sessions termination) +smallCloseIconFgOver: #a3a3a3; // small X icon with mouse over +radialFg: windowFgActive; // default radial loader line (like in Media Viewer when loading a photo) +radialBg: #00000056; // default radial loader background (like in Media Viewer when loading a photo) +placeholderFg: #6d7883; // default input field placeholder when field is not focused (like in phone input field when you log in) +placeholderFgActive: #4f5b67; // default input field placeholder when field is focused +inputBorderFg: #313c49; // default input field bottom border (like in code input field when you log in and field is not focused) +filterInputBorderFg: #242f3d; // default rounded input field border (like in chats list search field when field is focused) +filterInputInactiveBg: #242f3d; // default rounded input field background (like in chats list search field when field is inactive) +checkboxFg: #4f6276; // default unchecked checkbox rounded rectangle (and also emoji category icons) +sliderBgInactive: #364554; // default slider not active bar (like in Settings when you choose interface scale or custom notifications count) +sliderBgActive: #4a81bc; // default slider active bar (like in Settings when you choose interface scale or custom notifications count) +tooltipBg: #16222d; // tooltip background (like when you put mouse over the message timestamp and wait) +tooltipFg: #d4e0ea; // tooltip text +tooltipBorderFg: #16222d; // tooltip border +titleShadow: #00000000; // one pixel line shadow at the bottom of custom window title +titleBg: #1f2936; // custom window title background when window is inactive +titleBgActive: #242f3d; // custom window title background when window is active +titleButtonBg: titleBg; // custom window title minimize/maximize/restore button background when window is inactive (Windows only) +titleButtonFg: #576673; // custom window title minimize/maximize/restore button icon when window is inactive (Windows only) +titleButtonBgOver: #25303e; // custom window title minimize/maximize/restore button background with mouse over when window is inactive (Windows only) +titleButtonFgOver: #e0e0e0; // custom window title minimize/maximize/restore button icon with mouse over when window is inactive (Windows only) +titleButtonBgActive: #242f3d; // custom window title minimize/maximize/restore button background when window is active (Windows only) +titleButtonFgActive: titleButtonFg; // custom window title minimize/maximize/restore button icon when window is active (Windows only) +titleButtonBgActiveOver: #2c3847; // custom window title minimize/maximize/restore button background with mouse over when window is active (Windows only) +titleButtonFgActiveOver: titleButtonFgOver; // custom window title minimize/maximize/restore button icon with mouse over when window is active (Windows only) +titleButtonCloseBg: titleButtonBg; // custom window title close button background when window is inactive (Windows only) +titleButtonCloseFg: titleButtonFg; // custom window title close button icon when window is inactive (Windows only) +titleButtonCloseBgOver: #e92539; // custom window title close button background with mouse over when window is inactive (Windows only) +titleButtonCloseFgOver: windowFgActive; // custom window title close button icon with mouse over when window is inactive (Windows only) +titleButtonCloseBgActive: #242f3d; // custom window title close button background when window is active (Windows only) +titleButtonCloseFgActive: titleButtonCloseFg; // custom window title close button icon when window is active (Windows only) +titleButtonCloseBgActiveOver: #e92539; // custom window title close button background with mouse over when window is active (Windows only) +titleButtonCloseFgActiveOver: titleButtonCloseFgOver; // custom window title close button icon with mouse over when window is active (Windows only) +titleFg: #6a7680; // custom window title text when window is inactive (macOS only) +titleFgActive: #91a3b3; // custom window title text when window is active (macOS only) +trayCounterBg: #f23c34; // tray icon counter background +trayCounterBgMute: #888888; // tray icon counter background if all unread messages are muted +trayCounterFg: #ffffff; // tray icon counter text +trayCounterBgMacInvert: #ffffff; // tray icon counter background when tray icon is pressed or when dark theme of macOS is used (macOS only) +trayCounterFgMacInvert: #ffffff01; // tray icon counter text when tray icon is pressed or when dark theme of macOS is used (macOS only) +layerBg: #0000007f; // box and main menu background layer fade +cancelIconFg: #737e87; // default for settings close icon and box search cancel icon +cancelIconFgOver: #dcdcdc; // default for settings close icon and box search cancel icon with mouse over +boxBg: #17212b; // box background +boxTextFg: windowFg; // box text +boxTextFgGood: #5598db; // accepted box text (like when choosing username that is not occupied) +boxTextFgError: #dc3d3d; // rejecting box text (like when choosing username that is occupied) +boxTitleFg: #ebebeb; // box title text +boxSearchBg: #17212b; // box search field background (like in contacts box) +boxTitleAdditionalFg: #6d7f8f; // box title additional text (like in create group box when you see chosen members count) +boxTitleCloseFg: cancelIconFg; // settings close icon and box search cancel icon (like in contacts box) +boxTitleCloseFgOver: cancelIconFgOver; // settings close icon and box search cancel icon (like in contacts box) with mouse over +membersAboutLimitFg: #677a8b; // text in channel members box about the limit (max 200 last members are shown) +contactsBg: #17212b; // contacts (and some other) box row background +contactsBgOver: #1f2c39; // contacts (and some other) box row background with mouse over +contactsNameFg: boxTextFg; // contacts (and some other) box row name text +contactsStatusFg: #677a8b; // contacts (and some other) box row additional text (like last seen stamp) +contactsStatusFgOver: #677a8b; // contacts (and some other) box row additional text (like last seen stamp) with mouse over +contactsStatusFgOnline: #559be0; // contacts (and some other) box row active additional text (like online status) +photoCropFadeBg: layerBg; // avatar crop box fade background (when choosing a new photo in Settings or for a group) +photoCropPointFg: #ffffff7f; // avatar crop box corner rectangles (when choosing a new photo in Settings or for a group) +callArrowFg: #49a2f0; // received phone call arrow (in calls list box) +callArrowMissedFg: #ed5050; // missed phone call arrow (in calls list box) +introBg: windowBg; // login background +introTitleFg: #eeeeee; // login title text +introDescriptionFg: #72879b; // login description text +introErrorFg: #e94040; // login error text (like when providing a wrong log in code) +introCoverTopBg: #124a82; // intro gradient top (from) +introCoverBottomBg: #23659f; // intro gradient bottom (to) +introCoverIconsFg: #3b7cbd; // intro cloud graphics +introCoverPlaneTrace: #3870a8; // intro plane traces +introCoverPlaneInner: #ced9e2; // intro plane part +introCoverPlaneOuter: #97a9b5; // intro plane part +introCoverPlaneTop: #ffffff; // intro plane part +dialogsMenuIconFg: menuIconFg; // main menu and lock telegram icon +dialogsMenuIconFgOver: menuIconFgOver; // main menu and lock telegram icon with mouse over +dialogsBg: windowBg; // chat list background +dialogsNameFg: #f5f5f5; // chat list name text +dialogsChatIconFg: dialogsNameFg; // chat list group or channel icon +dialogsDateFg: #8696a8; // chat list date text +dialogsTextFg: #7f91a4; // chat list message text +dialogsTextFgService: #73b9f5; // chat list group sender name text (or media message type text) +dialogsDraftFg: #ff525d; // chat list draft label +dialogsVerifiedIconBg: #6ab3f3; // chat list verified icon background +dialogsVerifiedIconFg: #17212b; // chat list verified icon check +dialogsSendingIconFg: #647d96; // chat list sending message icon (clock) +dialogsSentIconFg: #72bcfd; // chat list sent message tick / double tick icon +dialogsUnreadBg: #4082bc; // chat list unread badge background for not muted chat +dialogsUnreadBgMuted: #3e546a; // chat list unread badge background for muted chat +dialogsUnreadFg: #ffffff; // chat list unread badge text +dialogsBgOver: #202b36; // chat list background with mouse over +dialogsOnlineBadgeFg: #63b6ff; // chat list online status +dialogsNameFgOver: windowBoldFgOver; // chat list name text with mouse over +dialogsChatIconFgOver: dialogsNameFgOver; // chat list group or channel icon with mouse over +dialogsDateFgOver: #8495a9; // chat list date text with mouse over +dialogsTextFgOver: #91a3b5; // chat list message text with mouse over +dialogsTextFgServiceOver: #73b9f5; // chat list group sender name text with mouse over +dialogsDraftFgOver: dialogsDraftFg; // chat list draft label with mouse over +dialogsVerifiedIconBgOver: #6ab3f3; // chat list verified icon background with mouse over +dialogsVerifiedIconFgOver: dialogsVerifiedIconFg; // chat list verified icon check with mouse over +dialogsSendingIconFgOver: dialogsSendingIconFg; // chat list sending message icon (clock) with mouse over +dialogsSentIconFgOver: #72bcfd; // chat list sent message tick / double tick icon with mouse over +dialogsUnreadBgOver: #4082bc; // chat list unread badge background for not muted chat with mouse over +dialogsUnreadBgMutedOver: #4d5762; // chat list unread badge background for muted chat with mouse over +dialogsUnreadFgOver: dialogsUnreadFg; // chat list unread badge text with mouse over +dialogsBgActive: #2b5278; // chat list background for current (active) chat +dialogsNameFgActive: windowFgActive; // chat list name text for current (active) chat +dialogsChatIconFgActive: dialogsNameFgActive; // chat list group or channel icon for current (active) chat +dialogsDateFgActive: windowFgActive; // chat list date text for current (active) chat +dialogsTextFgActive: windowFgActive; // chat list message text for current (active) chat +dialogsTextFgServiceActive: dialogsTextFgActive; // chat list group sender name text for current (active) chat +dialogsDraftFgActive: #a9caf0; // chat list draft label for current (active) chat +dialogsVerifiedIconBgActive: dialogsTextFgActive; // chat list verified icon background for current (active) chat +dialogsVerifiedIconFgActive: dialogsBgActive; // chat list verified icon check for current (active) chat +dialogsSendingIconFgActive: #ffffff99; // chat list sending message icon (clock) for current (active) chat +dialogsSentIconFgActive: dialogsTextFgActive; // chat list sent message tick / double tick icon for current (active) chat +dialogsUnreadBgActive: dialogsTextFgActive; // chat list unread badge background for not muted chat for current (active) chat +dialogsUnreadBgMutedActive: #7aa3ca; // chat list unread badge background for muted chat for current (active) chat +dialogsUnreadFgActive: #2a5378; // chat list unread badge text for current (active) chat +dialogsOnlineBadgeFgActive: #ffffff; // chat list online status for current (active) chat +dialogsRippleBg: #25313d; // +dialogsRippleBgActive: #315a80; // +dialogsForwardBg: dialogsBgActive; // forwarding panel background (when forwarding messages in the smallest window size) +dialogsForwardFg: dialogsNameFgActive; // forwarding panel text (when forwarding messages in the smallest window size) +searchedBarBg: #202b38; // search results bar background (in chats list, contacts box..) +searchedBarFg: #8c98a4; // search results bar text (in chats list, contacts box..) +topBarBg: #17212b; // top bar background (in chat view, media overview..) +emojiPanBg: windowBg; // emoji panel background +emojiPanCategories: #17212b; // emoji panel categories background +emojiPanHeaderFg: #7c8d9e; // emoji panel section header text +emojiPanHeaderBg: #fffffff2; // emoji panel section header background +stickerPanDeleteBg: #000000cc; // delete X button background for custom sent stickers in stickers panel (legacy) +stickerPanDeleteFg: windowFgActive; // delete X button icon for custom sent stickers in stickers panel (legacy) +stickerPreviewBg: #000000b0; // sticker and GIF preview background (when you press and hold on a sticker) +historyTextInFg: windowFg; // inbox message text +historyTextInFgSelected: #ffffff; // inbox message selected text or text in a selected message +historyTextOutFg: #e4ecf2; // outbox message text +historyTextOutFgSelected: #ffffff; // outbox message selected text or text in a selected message +historyLinkInFg: #70baf5; // inbox message link +historyLinkInFgSelected: #aadcff; // inbox message link in a selected text or message +historyLinkOutFg: #83caff; // outbox message link +historyLinkOutFgSelected: #aadcff; // outbox message link in a selected text or message +historyFileNameInFg: historyTextInFg; // inbox media filename text +historyFileNameInFgSelected: #ffffff; // inbox media filename text in a selected message +historyFileNameOutFg: historyTextOutFg; // outbox media filename text +historyFileNameOutFgSelected: #ffffff; // outbox media filename text in a selected message +historyOutIconFg: #6bbfff; // outbox message tick / double tick icon +historyOutIconFgSelected: #ffffff; // outbox message tick / double tick icon in a selected message +historyIconFgInverted: #ffffffe5; // media message tick / double tick icon (like in sent photo) +historySendingOutIconFg: #70a4d2; // outbox sending message icon (clock) +historySendingInIconFg: #76838b; // inbox sending message icon (clock) (like in sent messages to yourself or in sent messages to a channel) +historySendingInvertedIconFg: #ffffffc8; // media sending message icon (clock) (like in sent photo) +historyCallArrowInFg: #5093d6; // received phone call arrow +historyCallArrowInFgSelected: #ffffff; // received phone call arrow in a selected message +historyCallArrowMissedInFg: callArrowMissedFg; // missed phone call arrow +historyCallArrowMissedInFgSelected: #ffffff; // missed phone call arrow in a selected message +historyCallArrowOutFg: #ffffff; // outgoing phone call arrow +historyCallArrowOutFgSelected: #ffffff; // outgoing phone call arrow +historyUnreadBarBg: #182433; // new unread messages bar background +historyUnreadBarBorder: #03080d00; // new unread messages bar shadow +historyUnreadBarFg: #ffffff; // new unread messages bar text +historyForwardChooseBg: #0000004c; // forwarding messages in a large window size "choose recipient" background +historyForwardChooseFg: windowFgActive; // forwarding messages in a large window size "choose recipient" text +historyPeer1NameFg: #fb6169; // red group member name +historyPeer1NameFgSelected: #ffffff; // red group member name in a selected message +historyPeer1UserpicBg: #ff845e; // red userpic background +historyPeer2NameFg: #85de85; // green group member name +historyPeer2NameFgSelected: #ffffff; // green group member name in a selected message +historyPeer2UserpicBg: #9ad164; // green userpic background +historyPeer3NameFg: #f3bc5c; // yellow group member name +historyPeer3NameFgSelected: #ffffff; // yellow group member name in a selected message +historyPeer3UserpicBg: #e5ca77; // yellow userpic background (actually unused) +historyPeer4NameFg: #65bdf3; // blue group member name +historyPeer4NameFgSelected: #ffffff; // blue group member name in a selected message +historyPeer4UserpicBg: #5caffa; // blue userpic background +historyPeer5NameFg: #b48bf2; // purple group member name +historyPeer5NameFgSelected: #ffffff; // purple group member name in a selected message +historyPeer5UserpicBg: #b694f9; // purple userpic background +historyPeer6NameFg: #ff5694; // pink group member name +historyPeer6NameFgSelected: #ffffff; // pink group member name in a selected message +historyPeer6UserpicBg: #ff8aac; // pink userpic background +historyPeer7NameFg: #62d4e3; // sea group member name +historyPeer7NameFgSelected: #ffffff; // sea group member name in a selected message +historyPeer7UserpicBg: #5bcbe3; // sea userpic background +historyPeer8NameFg: #faa357; // orange group member name +historyPeer8NameFgSelected: #ffffff; // orange group member name in a selected message +historyPeer8UserpicBg: #febb5b; // orange userpic background +historyPeerUserpicFg: windowFgActive; // default userpic initials +historyPeer1UserpicBg2: #d45246; // the second red userpic background +historyPeer2UserpicBg2: #46ba43; // the second green userpic background +historyPeer3UserpicBg2: #e5ca77; // the second yellow userpic background (actually unused) +historyPeer4UserpicBg2: #408acf; // the second blue userpic background +historyPeer5UserpicBg2: #6c61df; // the second purple userpic background +historyPeer6UserpicBg2: #d95574; // the second pink userpic background +historyPeer7UserpicBg2: #359ad4; // the second sea userpic background +historyPeer8UserpicBg2: #f68136; // the second orange userpic background +historyPeerSavedMessagesBg2: historyPeer4UserpicBg2; // the second saved messages userpic background +historyScrollBarBg: #7f84897a; // scroll bar current rectangle, the bar itself in the chat view (adjusted) +historyScrollBarBgOver: #64686cbc; // scroll bar current rectangle with mouse over it in the chat view (adjusted) +historyScrollBg: #565a5e4c; // scroll bar background (adjusted) +historyScrollBgOver: #5a5d616b; // scroll bar background with mouse over the scroll bar (adjusted) +msgInBg: #182533; // inbox message background +msgInBgSelected: #2e70a5; // inbox selected message background (and background of selected text in those messages) +msgOutBg: #2b5278; // outbox message background +msgOutBgSelected: #2e70a5; // outbox selected message background (and background of selected text in those messages) +msgSelectOverlay: #3585d44c; // overlay which is filling the media parts of selected messages (like in selected photo message) +msgStickerOverlay: #3585d47f; // overlay which is filling the selected sticker message +msgInServiceFg: #71bafa; // inbox message information text (like information about a forwarded message original sender) +msgInServiceFgSelected: #ffffff; // inbox selected message information text (like information about a forwarded message original sender) +msgOutServiceFg: #90caff; // outbox message information text (like information about a forwarded message original sender) +msgOutServiceFgSelected: #ffffff; // outbox message information text (like information about a forwarded message original sender) +msgInShadow: #748ea200; // inbox message shadow (below the bubble) +msgInShadowSelected: #538ebb00; // inbox selected message shadow (below the bubble) +msgOutShadow: #00000000; // outbox message shadow (below the bubble) +msgOutShadowSelected: #366ea600; // outbox selected message shadow (below the bubble) +msgInDateFg: #6d7f8f; // inbox message time text +msgInDateFgSelected: #ffffff; // inbox selected message time text +msgOutDateFg: #7da8d3; // outbox message time text +msgOutDateFgSelected: #ffffff; // outbox selected message time text +msgServiceFg: windowFgActive; // service message text (like date dividers or service message about the group title being changed) +msgServiceBg: #213040d5; // service message background (like in a service message about group title being changed) (adjusted) +msgServiceBgSelected: #2e7ab4; // service message selected text background (like in a service message about group title being changed) (adjusted) +msgInReplyBarColor: #429bdb; // inbox message reply outline +msgInReplyBarSelColor: #ffffff; // inbox selected message reply outline +msgOutReplyBarColor: #65b9f4; // outbox message reply outline +msgOutReplyBarSelColor: #ffffff; // outbox selected message reply outline +msgImgReplyBarColor: msgServiceFg; // sticker message reply outline +msgInMonoFg: #5a8cb7; // inbox message monospace text (like a message sent with `test` text) +msgOutMonoFg: #aed1f3; // outbox message monospace text +msgInMonoFgSelected: #a3cdf7; // inbox message monospace text in a selected text or message +msgOutMonoFgSelected: #a3cdf7; // outbox message monospace text in a selected text or message +msgDateImgFg: #fffffff2; // media message time text (like time text in a sent photo) +msgDateImgBg: #00000054; // media message time bubble background (like time bubble in a sent photo) or file with thumbnail download icon circle background +msgDateImgBgOver: #00000074; // media message download icon circle background with mouse over (like file with thumbnail download icon) +msgDateImgBgSelected: #204f7887; // selected media message time bubble background +msgFileThumbLinkInFg: lightButtonFg; // inbox media file message with thumbnail download / open with button text +msgFileThumbLinkInFgSelected: #ffffff; // inbox selected media file message with thumbnail download / open with button text +msgFileThumbLinkOutFg: #6c9ecf; // outbox media file message with thumbnail download / open with button text +msgFileThumbLinkOutFgSelected: #ffffff; // outbox selected media file message with thumbnail download / open with button text +msgFileInBg: #3f96d0; // inbox audio file download circle background +msgFileInBgOver: #489ed7; // inbox audio file download circle background with mouse over +msgFileInBgSelected: #6ab4f4; // inbox selected audio file download circle background +msgFileOutBg: #4c9ce2; // outbox audio file download circle background +msgFileOutBgOver: #54a4e9; // outbox audio file download circle background with mouse over +msgFileOutBgSelected: #58abf3; // outbox selected audio file download circle background +msgFile1Bg: #3e7eba; // blue shared links / files without image square thumbnail +msgFile1BgDark: #24679e; // blue shared files without image download circle background +msgFile1BgOver: #1d5e93; // blue shared files without image download circle background with mouse over +msgFile1BgSelected: #ffffff; // blue shared files without image download circle background if file is selected +msgFile2Bg: #3ea34a; // green shared links / shared files without image square thumbnail +msgFile2BgDark: #298835; // green shared files without image download circle background +msgFile2BgOver: #1b7725; // green shared files without image download circle background with mouse over +msgFile2BgSelected: #1b7725; // green shared files without image download circle background if file is selected +msgFile3Bg: #d6454c; // red shared links / shared files without image square thumbnail +msgFile3BgDark: #bf333a; // red shared files without image download circle background +msgFile3BgOver: #b2282f; // red shared files without image download circle background with mouse over +msgFile3BgSelected: #b2282f; // red shared files without image download circle background if file is selected +msgFile4Bg: #d99546; // yellow shared links / shared files without image square thumbnail +msgFile4BgDark: #c17d39; // yellow shared files without image download circle background +msgFile4BgOver: #ac6b29; // yellow shared files without image download circle background with mouse over +msgFile4BgSelected: #ac6b29; // yellow shared files without image download circle background if file is selected +historyFileInIconFg: #ffffff; // inbox file without thumbnail (like audio file) download arrow icon +historyFileInIconFgSelected: #ffffff; // inbox selected file without thumbnail (like audio file) download arrow icon +historyFileInRadialFg: #ffffff; // inbox file without thumbnail (like audio file) radial download animation line +historyFileInRadialFgSelected: historyFileInIconFgSelected; // inbox selected file without thumbnail (like audio file) radial download animation line +historyFileOutIconFg: #ffffff; // outbox file without thumbnail (like audio file) download arrow icon +historyFileOutIconFgSelected: #ffffff; // outbox selected file without thumbnail (like audio file) download arrow icon +historyFileOutRadialFg: #ffffff; // outbox file without thumbnail (like audio file) radial download animation line +historyFileOutRadialFgSelected: #ffffff; // outbox selected file without thumbnail (like audio file) radial download animation line +historyFileThumbIconFg: #efefef; // file with thumbnail (or photo / video) download arrow icon +historyFileThumbIconFgSelected: #ffffff; // selected file with thumbnail (or photo / video) download arrow icon +historyFileThumbRadialFg: historyFileThumbIconFg; // file with thumbnail (or photo / video) radial download animation line +historyFileThumbRadialFgSelected: #ffffff; // selected file with thumbnail (or photo / video) radial download animation line +historyVideoMessageProgressFg: historyFileThumbIconFg; // radial playback progress in round video messages +msgWaveformInActive: #549cd7; // inbox voice message active waveform lines (like played part of currently playing voice message) +msgWaveformInActiveSelected: #ffffff; // inbox selected voice message active waveform lines (like played part of currently playing voice message) +msgWaveformInInactive: #3a4d61; // inbox voice message inactive waveform lines (like upcoming part of currently playing voice message) +msgWaveformInInactiveSelected: #6fa5d4; // inbox selected voice message inactive waveform lines (like upcoming part of currently playing voice message) +msgWaveformOutActive: #62b2fd; // outbox voice message active waveform lines (like played part of currently playing voice message) +msgWaveformOutActiveSelected: #ffffff; // outbox selected voice message active waveform lines (like played part of currently playing voice message) +msgWaveformOutInactive: #4b7fb3; // outbox voice message inactive waveform lines (like upcoming part of currently playing voice message) +msgWaveformOutInactiveSelected: #6fa5d4; // outbox selected voice message inactive waveform lines (like upcoming part of currently playing voice message) +msgBotKbOverBgAdd: #80b1db0f; // this is painted over a bot inline keyboard button (which has msgServiceBg background) when mouse is over that button +msgBotKbIconFg: msgServiceFg; // bot inline keyboard button icon in the top-right corner (like in @vote bot when a poll is ready to be shared) +msgBotKbRippleBg: #92c0e50b; // bot inline keyboard button ripple effect +mediaInFg: msgInDateFg; // inbox media message status text (like in file that is being downloaded) +mediaInFgSelected: msgInDateFgSelected; // inbox selected media message status text (like in file that is being downloaded) +mediaOutFg: msgOutDateFg; // outbox media message status text (like in file that is being downloaded) +mediaOutFgSelected: msgOutDateFgSelected; // outbox selected media message status text (like in file that is being downloaded) +youtubePlayIconBg: #e83131c8; // youtube play icon background (when a link to a youtube video with a webpage preview is sent) +youtubePlayIconFg: windowFgActive; // youtube play icon arrow (when a link to a youtube video with a webpage preview is sent) +videoPlayIconBg: #0000007f; // other video play icon background (like when a link to a vimeo video with a webpage preview is sent) +videoPlayIconFg: #ffffff; // other video play icon arrow (like when a link to a vimeo video with a webpage preview is sent) +toastBg: #000000b2; // toast notification background (like when you click on your t.me link when editing your username) +toastFg: windowFgActive; // toast notification text (like when you click on your t.me link when editing your username) +reportSpamBg: #363c42; // report spam panel background (like a non contact user writes your for the first time) +reportSpamFg: windowFg; // report spam panel text (when you send a report from that panel) +historyToDownBg: #1d2b3a; // arrow button background (to scroll to the end of the viewed chat) +historyToDownBgOver: #243446; // arrow button background with mouse over +historyToDownBgRipple: #2b3c4f; // arrow button ripple effect +historyToDownFg: #adb4ba; // arrow button icon +historyToDownFgOver: menuIconFgOver; // arrow button icon with mouse over +historyToDownShadow: #00000040; // arrow button shadow +historyComposeAreaBg: #17212b; // history compose area background (message write area / reply information / forwarding information) +historyComposeAreaFg: historyTextInFg; // history compose area text +historyComposeAreaFgService: msgInDateFg; // history compose area text when replying to a media message +historyComposeIconFg: menuIconFg; // history compose area icon (like emoji, attach, bot command..) +historyComposeIconFgOver: menuIconFgOver; // history compose area icon with mouse over +historySendIconFg: windowBgActive; // send message icon +historySendIconFgOver: windowBgActive; // send message icon with mouse over +historyPinnedBg: #1b2734; // pinned message area background +historyReplyBg: historyComposeAreaBg; // reply / forward / edit message area background +historyReplyIconFg: windowBgActive; // reply / forward / edit message left icon +historyReplyCancelFg: cancelIconFg; // reply / forward / edit message cancel button +historyReplyCancelFgOver: cancelIconFgOver; // reply / forward / edit message cancel button with mouse over +historyComposeButtonBg: historyComposeAreaBg; // unblock / join channel / mute channel button background +historyComposeButtonBgOver: #1c2835; // unblock / join channel / mute channel button background with mouse over +historyComposeButtonBgRipple: #222f3e; // unblock / join channel / mute channel button ripple effect +overviewCheckBg: #00000040; // shared files / links checkbox background for not selected rows when some rows are selected +overviewCheckFg: #ffffff; // shared files / links checkbox icon for not selected rows when some rows are selected +overviewCheckFgActive: #ffffff; // shared files / links checkbox icon for selected rows +overviewPhotoSelectOverlay: #3fa2e333; // shared photos / videos / links fill for selected rows +profileStatusFgOver: #677a8b; // group members list in group profile user last seen text with mouse over +profileVerifiedCheckBg: windowBgActive; // profile verified check icon background +profileVerifiedCheckFg: #ffffff; // profile verified check icon tick +profileAdminStartFg: #62a9e6; // group members list admin star icon +notificationsBoxMonitorFg: windowFg; // custom notifications settings box monitor color +notificationsBoxScreenBg: dialogsBgActive; // #6389a8; // custom notifications settings box monitor screen background +notificationSampleUserpicFg: windowBgActive; // custom notifications settings box small sample userpic placeholder +notificationSampleCloseFg: #d7d7d7; // custom notifications settings box small sample close button placeholder +notificationSampleTextFg: #d7d7d7; // custom notifications settings box small sample text placeholder +notificationSampleNameFg: #939393; // custom notifications settings box small sample name placeholder +changePhoneSimcardFrom: notificationSampleTextFg; // change phone number box left simcard icon +changePhoneSimcardTo: notificationSampleNameFg; // change phone number box right simcard and plane icons +mainMenuBg: windowBg; // main menu background +mainMenuCoverBg: #276899; // main menu top cover background +mainMenuCoverFg: windowFgActive; // main menu top cover text +mainMenuCloudFg: activeButtonFg; // +mainMenuCloudBg: #185680; // +mediaPlayerBg: windowBg; // audio file player background +mediaPlayerActiveFg: windowBgActive; // audio file player playback progress already played part +mediaPlayerInactiveFg: sliderBgInactive; // audio file player playback progress upcoming (not played yet) part with mouse over +mediaPlayerDisabledFg: #9dd1ef; // audio file player loading progress (when you're playing an audio file and switch to the previous one which is not loaded yet) +mediaviewFileBg: windowBg; // file rectangle background (when you view a png file in Media Viewer and go to a previous, not loaded yet, file) +mediaviewFileNameFg: windowFg; // file name in file rectangle +mediaviewFileSizeFg: windowSubTextFg; // file size text in file rectangle +mediaviewFileRedCornerFg: #d55959; // red file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .pdf) +mediaviewFileYellowCornerFg: #e8a659; // yellow file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .zip) +mediaviewFileGreenCornerFg: #49a957; // green file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .exe) +mediaviewFileBlueCornerFg: #599dcf; // blue file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .dmg) +mediaviewFileExtFg: activeButtonFg; // file extension text in file thumbnail placeholder in file rectangle +mediaviewMenuBg: #383838; // context menu in Media Viewer background +mediaviewMenuBgOver: #505050; // context menu item background with mouse over +mediaviewMenuBgRipple: #676767; // context menu item ripple effect +mediaviewMenuFg: windowFgActive; // context menu item text +mediaviewBg: #222222eb; // Media Viewer background +mediaviewVideoBg: imageBg; // Media Viewer background when viewing a video in full screen +mediaviewControlBg: #0000003c; // controls background (like next photo / previous photo) +mediaviewControlFg: windowFgActive; // controls icon (like next photo / previous photo) +mediaviewCaptionBg: #11111180; // caption text background (when viewing photo with caption) +mediaviewCaptionFg: mediaviewControlFg; // caption text +mediaviewTextLinkFg: #70baf5; // caption text link +mediaviewSaveMsgBg: toastBg; // save to file toast message background in Media Viewer +mediaviewSaveMsgFg: toastFg; // save to file toast message text +mediaviewPlaybackActive: #c7c7c7; // video playback progress already played part +mediaviewPlaybackInactive: #252525; // video playback progress upcoming (not played yet) part +mediaviewPlaybackActiveOver: #ffffff; // video playback progress already played part with mouse over +mediaviewPlaybackInactiveOver: #474747; // video playback progress upcoming (not played yet) part with mouse over +mediaviewPlaybackProgressFg: #ffffffc7; // video playback progress text +mediaviewPlaybackIconFg: mediaviewPlaybackActive; // video playback controls icon +mediaviewPlaybackIconFgOver: mediaviewPlaybackActiveOver; // video playback controls icon with mouse over +mediaviewTransparentBg: #ffffff; // transparent filling part (when viewing a transparent .png file in Media Viewer) +mediaviewTransparentFg: #cccccc; // another transparent filling part +notificationBg: windowBg; // custom notification window background +callBg: #14191ff5; // phone call popup background +callNameFg: #ffffff; // phone call popup name text +callFingerprintBg: #00000066; // phone call popup emoji fingerprint background +callStatusFg: #aaabac; // phone call popup status text +callIconFg: #ffffff; // phone call popup answer, hangup and mute mic icon +callAnswerBg: #488fc9; // phone call popup answer button background +callAnswerRipple: #4286c2; // phone call popup answer button ripple effect +callAnswerBgOuter: #3f95eb26; // phone call popup answer button outer ripple effect +callHangupBg: #cc4646; // phone call popup hangup button background +callHangupRipple: #ca4141; // phone call popup hangup button ripple effect +callCancelBg: #ffffff; // phone call popup line busy cancel button background +callCancelFg: #536271; // phone call popup line busy cancel button icon +callCancelRipple: #435363; // phone call popup line busy cancel button ripple effect +callMuteRipple: #ffffff12; // phone call popup mute mic ripple effect +callBarBg: #366693; // active phone call bar background +callBarMuteRipple: #4b7dab; // active phone call bar mute and hangup button ripple effect +callBarBgMuted: #35495d; // phone call bar with muted mic background +callBarUnmuteRipple: #435b73; // phone call bar with muted mic mute and hangup button ripple effect +callBarFg: dialogsNameFgActive; // phone call bar text and icons +importantTooltipBg: toastBg; // +importantTooltipFg: toastFg; // +importantTooltipFgLink: #65b6fc; // +filterInputActiveBg: #242f3d; // default rounded input field active background (like in chats list search field when field is focused) +botKbBg: #242f3d; // bot keyboard button background +botKbDownBg: #2d3a49; // bot keyboard button ripple effect +emojiIconFg: #6c7883; // emoji category icon +emojiIconFgActive: #51a0e5; // active emoji category icon +overviewCheckBorder: #e4eaef; // shared media round checkbox border +sideBarBg: #0e1621; // filters side bar background +sideBarBgActive: #25303e; // filters side bar active background +sideBarBgRipple: #1e2733; // filters side bar ripple effect +sideBarTextFg: #768c9e; // filters side bar text +sideBarTextFgActive: #64b9fa; // filters side bar active item text +sideBarIconFg: #768c9e; // filters side bar icon +sideBarIconFgActive: #5eb5f7; // filters side bar active item icon +sideBarBadgeBg: #5eb5f7; // filters side bar badge background +sideBarBadgeBgMuted: #768c9e; // filters side bar unimportant badge background +statisticsChartInactive: #313d4cc8; // inactive area in footer of statistic charts +statisticsChartActive: #526679d8; // sides in footer of statistic charts diff --git a/darwin-breeze/vscode/base/2026-dark.json b/darwin-breeze/vscode/base/2026-dark.json new file mode 100644 index 0000000..22231db --- /dev/null +++ b/darwin-breeze/vscode/base/2026-dark.json @@ -0,0 +1,710 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "2026 Dark", + "include": "./dark_modern.json", + "type": "dark", + "colors": { + "foreground": "#bfbfbf", + "disabledForeground": "#555555", + "errorForeground": "#f48771", + "descriptionForeground": "#8C8C8C", + "icon.foreground": "#8C8C8C", + "focusBorder": "#3994BCB3", + "textBlockQuote.background": "#242526", + "textBlockQuote.border": "#2A2B2C", + "textCodeBlock.background": "#242526", + "textLink.foreground": "#48A0C7", + "textLink.activeForeground": "#53A5CA", + "textPreformat.background": "#262626", + "textPreformat.foreground": "#8C8C8C", + "textSeparator.foreground": "#2a2a2a", + "button.background": "#297AA0", + "button.foreground": "#FFFFFF", + "button.hoverBackground": "#2B7DA3", + "button.border": "#297AA0", + "button.secondaryHoverBackground": "#FFFFFF10", + "button.secondaryBorder": "#333536", + "checkbox.background": "#242526", + "checkbox.border": "#707070", + "checkbox.foreground": "#8C8C8C", + "dropdown.background": "#191A1B", + "dropdown.border": "#333536", + "dropdown.foreground": "#bfbfbf", + "dropdown.listBackground": "#191A1B", + "input.background": "#191A1B", + "input.border": "#333536", + "input.foreground": "#bfbfbf", + "input.placeholderForeground": "#555555", + "inputOption.activeBackground": "#313233", + "inputOption.activeForeground": "#bfbfbf", + "inputOption.activeBorder": "#2A2B2C", + "inputValidation.infoBackground": "#1E3A47", + "inputValidation.infoBorder": "#3994BC", + "inputValidation.infoForeground": "#bfbfbf", + "inputValidation.warningBackground": "#352A05", + "inputValidation.warningBorder": "#B89500", + "inputValidation.warningForeground": "#bfbfbf", + "inputValidation.errorBackground": "#3A1D1D", + "inputValidation.errorBorder": "#BE1100", + "inputValidation.errorForeground": "#bfbfbf", + "scrollbar.shadow": "#191B1D4D", + "scrollbarSlider.background": "#A8A9AA85", + "scrollbarSlider.hoverBackground": "#A8A9AA90", + "scrollbarSlider.activeBackground": "#A8A9AA9C", + "badge.background": "#307E9F", + "badge.foreground": "#FFFFFF", + "progressBar.background": "#878889", + "list.activeSelectionBackground": "#FFFFFF22", + "list.activeSelectionForeground": "#ededed", + "list.inactiveSelectionBackground": "#2C2D2E", + "list.inactiveSelectionForeground": "#ededed", + "list.hoverBackground": "#FFFFFF14", + "list.hoverForeground": "#bfbfbf", + "list.dropBackground": "#3994BC1A", + "toolbar.activeBackground": "#FFFFFF33", + "list.focusBackground": "#FFFFFF22", + "list.focusForeground": "#bfbfbf", + "list.focusOutline": "#3994BCB3", + "list.highlightForeground": "#48A0C7", + "list.invalidItemForeground": "#444444", + "list.errorForeground": "#f48771", + "list.warningForeground": "#e5ba7d", + "activityBar.background": "#191A1B", + "activityBar.foreground": "#bfbfbf", + "activityBar.inactiveForeground": "#8C8C8C", + "activityBar.activeBackground": "#313233", + "activityBar.border": "#2A2B2C", + "activityBar.activeBorder": "#bfbfbf", + "activityBar.activeFocusBorder": "#3994BCB3", + "activityBarBadge.background": "#307E9F", + "activityBarBadge.foreground": "#FFFFFF", + "activityBarTop.activeBorder": "#bfbfbf", + "sideBar.background": "#191A1B", + "sideBar.foreground": "#bfbfbf", + "sideBar.border": "#2A2B2C", + "sideBarTitle.foreground": "#bfbfbf", + "sideBarSectionHeader.background": "#191A1B", + "sideBarSectionHeader.foreground": "#bfbfbf", + "sideBarSectionHeader.border": "#2A2B2C", + "titleBar.activeBackground": "#191A1B", + "titleBar.activeForeground": "#8C8C8C", + "titleBar.inactiveBackground": "#121314", + "titleBar.inactiveForeground": "#8C8C8C", + "titleBar.border": "#2A2B2C", + "menubar.selectionBackground": "#242526", + "menubar.selectionForeground": "#bfbfbf", + "menu.background": "#202122", + "menu.foreground": "#bfbfbf", + "menu.selectionBackground": "#3994BC26", + "menu.selectionForeground": "#bfbfbf", + "menu.selectionBorder": "#3994BC", + "menu.separatorBackground": "#2A2B2C", + "menu.border": "#2A2B2C", + "commandCenter.foreground": "#bfbfbf", + "commandCenter.activeForeground": "#bfbfbf", + "commandCenter.background": "#191A1B", + "commandCenter.activeBackground": "#FFFFFF0F", + "commandCenter.border": "#2E3031", + "editor.background": "#121314", + "editor.foreground": "#BBBEBF", + "editorStickyScroll.background": "#121314", + "editorStickyScrollHover.background": "#202122", + "editorStickyScroll.border": "#2A2B2C", + "editorLineNumber.foreground": "#858889", + "editorLineNumber.activeForeground": "#BBBEBF", + "editorCursor.foreground": "#BBBEBF", + "editor.selectionBackground": "#276782dd", + "editor.inactiveSelectionBackground": "#27678260", + "editor.selectionHighlightBackground": "#27678260", + "editor.wordHighlightBackground": "#27678250", + "editor.wordHighlightStrongBackground": "#27678280", + "editor.findMatchBackground": "#27678290", + "editor.findMatchHighlightBackground": "#27678280", + "editor.findRangeHighlightBackground": "#FFFFFF13", + "editor.hoverHighlightBackground": "#FFFFFF13", + "editor.lineHighlightBackground": "#242526", + "editor.rangeHighlightBackground": "#FFFFFF13", + "editorLink.activeForeground": "#3a94bc", + "editorWhitespace.foreground": "#8C8C8C4D", + "editorIndentGuide.background1": "#8384854D", + "editorIndentGuide.activeBackground1": "#838485", + "editorRuler.foreground": "#848484", + "editorCodeLens.foreground": "#8C8C8C", + "editorBracketMatch.background": "#3994BC55", + "editorBracketMatch.border": "#2A2B2C", + "editorWidget.background": "#202122", + "editorWidget.border": "#2A2B2C", + "editorWidget.foreground": "#bfbfbf", + "editorSuggestWidget.background": "#202122", + "editorSuggestWidget.border": "#2A2B2C", + "editorSuggestWidget.foreground": "#bfbfbf", + "editorSuggestWidget.highlightForeground": "#bfbfbf", + "editorSuggestWidget.selectedBackground": "#FFFFFF26", + "editorSuggestWidget.focusOutline": "#3994BCB3", + "editorHoverWidget.background": "#202122", + "editorHoverWidget.border": "#2A2B2C", + "widget.border": "#2A2B2C", + "peekView.border": "#2A2B2C", + "peekViewEditor.background": "#191A1B", + "peekViewEditor.matchHighlightBackground": "#3994BC33", + "peekViewResult.background": "#191A1B", + "peekViewResult.fileForeground": "#bfbfbf", + "peekViewResult.lineForeground": "#8C8C8C", + "peekViewResult.matchHighlightBackground": "#3994BC33", + "peekViewResult.selectionBackground": "#3994BC26", + "peekViewResult.selectionForeground": "#bfbfbf", + "peekViewTitle.background": "#242526", + "peekViewTitleDescription.foreground": "#8C8C8C", + "peekViewTitleLabel.foreground": "#bfbfbf", + "editorGutter.background": "#121314", + "editorGutter.addedBackground": "#72C892", + "editorGutter.deletedBackground": "#F28772", + "diffEditor.insertedLineBackground": "#347d3926", + "diffEditor.insertedTextBackground": "#57ab5a4d", + "diffEditor.removedLineBackground": "#c93c3726", + "diffEditor.removedTextBackground": "#f470674d", + "editorOverviewRuler.border": "#2A2B2C", + "editorOverviewRuler.findMatchForeground": "#3a94bc99", + "editorOverviewRuler.modifiedForeground": "#6ab890", + "editorOverviewRuler.addedForeground": "#73c991", + "editorOverviewRuler.deletedForeground": "#f48771", + "editorOverviewRuler.errorForeground": "#f48771", + "editorOverviewRuler.warningForeground": "#e5ba7d", + "panel.background": "#191A1B", + "panel.border": "#2A2B2C", + "panelSection.border": "#2A2B2C", + "panelSectionHeader.border": "#2A2B2C", + "panelTitle.activeBorder": "#3994BC", + "panelTitle.activeForeground": "#bfbfbf", + "panelTitle.inactiveForeground": "#8C8C8C", + "statusBar.background": "#191A1B", + "statusBar.inactiveBackground": "#121314", + "statusBar.foreground": "#8C8C8C", + "statusBar.border": "#2A2B2C", + "statusBar.focusBorder": "#3994BCB3", + "statusBar.debuggingBackground": "#3994BC", + "statusBar.debuggingForeground": "#FFFFFF", + "statusBar.noFolderBackground": "#191A1B", + "statusBar.noFolderForeground": "#8C8C8C", + "statusBarItem.activeBackground": "#4B4C4D", + "statusBarItem.hoverBackground": "#323233", + "statusBarItem.focusBorder": "#3994BCB3", + "statusBarItem.prominentBackground": "#3994BC", + "statusBarItem.prominentForeground": "#FFFFFF", + "statusBarItem.prominentHoverBackground": "#3994BC", + "tab.activeBackground": "#121314", + "tab.activeForeground": "#bfbfbf", + "tab.inactiveBackground": "#191A1B", + "tab.inactiveForeground": "#8C8C8C", + "tab.border": "#2A2B2C", + "tab.lastPinnedBorder": "#2A2B2C", + "tab.activeBorderTop": "#3994BC", + "tab.hoverBackground": "#121314", + "tab.hoverForeground": "#bfbfbf", + "tab.unfocusedActiveBackground": "#121314", + "tab.unfocusedActiveForeground": "#8C8C8C", + "tab.unfocusedInactiveBackground": "#191A1B", + "tab.unfocusedInactiveForeground": "#444444", + "editorGroupHeader.tabsBackground": "#191A1B", + "tab.activeBorder": "#121314", + "editorGroupHeader.tabsBorder": "#2A2B2C", + "breadcrumb.foreground": "#8C8C8C", + "breadcrumb.background": "#121314", + "breadcrumb.focusForeground": "#bfbfbf", + "breadcrumb.activeSelectionForeground": "#bfbfbf", + "breadcrumbPicker.background": "#202122", + "notificationCenter.border": "#2A2B2C", + "notificationCenterHeader.foreground": "#bfbfbf", + "notificationCenterHeader.background": "#242526", + "notificationToast.border": "#2A2B2C", + "notifications.foreground": "#bfbfbf", + "notifications.background": "#202122", + "notifications.border": "#2A2B2C", + "notificationLink.foreground": "#3a94bc", + "notificationsWarningIcon.foreground": "#CCA700", + "notificationsErrorIcon.foreground": "#f48771", + "notificationsInfoIcon.foreground": "#3a94bc", + "activityWarningBadge.foreground": "#202020", + "activityWarningBadge.background": "#CCA700", + "activityErrorBadge.foreground": "#FFFFFF", + "activityErrorBadge.background": "#f48771", + "extensionButton.prominentBackground": "#297AA0", + "extensionButton.prominentForeground": "#FFFFFF", + "extensionButton.prominentHoverBackground": "#2B7DA3", + "pickerGroup.border": "#2A2B2C", + "pickerGroup.foreground": "#bfbfbf", + "quickInput.background": "#202122", + "quickInput.foreground": "#bfbfbf", + "quickInputList.focusBackground": "#297AA0", + "quickInputList.focusForeground": "#FFFFFF", + "quickInputList.focusIconForeground": "#FFFFFF", + "quickInputList.focusHighlightForeground": "#FFFFFF", + "terminal.selectionBackground": "#3994BC33", + "terminal.background": "#191A1B", + "terminal.border": "#2A2B2C", + "terminal.tab.activeBorder": "#3994BC00", + "terminalCursor.foreground": "#bfbfbf", + "terminalCursor.background": "#191A1B", + "gitDecoration.addedResourceForeground": "#73c991", + "gitDecoration.modifiedResourceForeground": "#e5ba7d", + "gitDecoration.deletedResourceForeground": "#f48771", + "gitDecoration.untrackedResourceForeground": "#73c991", + "gitDecoration.ignoredResourceForeground": "#8C8C8C", + "gitDecoration.conflictingResourceForeground": "#f48771", + "gitDecoration.stageModifiedResourceForeground": "#e5ba7d", + "gitDecoration.stageDeletedResourceForeground": "#f48771", + "quickInputTitle.background": "#202122", + "commandCenter.activeBorder": "#333536", + "chat.requestBubbleBackground": "#ffffff13", + "chat.requestBubbleHoverBackground": "#ffffff22", + "chat.inputWorkingBorderColor1": "#297AA0", + "editorCommentsWidget.rangeBackground": "#488FAE26", + "editorCommentsWidget.rangeActiveBackground": "#488FAE46", + "charts.foreground": "#CCCCCC", + "charts.lines": "#C8CACC80", + "charts.blue": "#57A3F8", + "charts.red": "#EF8773", + "charts.yellow": "#E0B97F", + "charts.orange": "#CD861A", + "charts.green": "#86CF86", + "charts.purple": "#AD80D7", + "inlineChat.border": "#00000000", + "minimapSlider.background": "#A8A9AA85", + "minimapSlider.hoverBackground": "#A8A9AA90", + "minimapSlider.activeBackground": "#A8A9AA9C", + "agents.background": "#121314", + "agentsPanel.background": "#191A1B", + "agentsPanel.foreground": "#bfbfbf", + "agentsPanel.border": "#2A2B2C", + "surface.background": "#191A1B", + "surface.foreground": "#bfbfbf", + "surface.border": "#2A2B2C", + "agentsGradient.tintColor": "#297AA0", + "agentsChatInput.background": "#202122", + "agentsChatInput.foreground": "#bfbfbf", + "agentsChatInput.border": "#333536", + "agentsChatInput.focusBorder": "#3994BCB3", + "agentsChatInput.placeholderForeground": "#555555", + "agentsNewSessionButton.background": "#00000000", + "agentsNewSessionButton.foreground": "#bfbfbf", + "agentsNewSessionButton.border": "#333536", + "agentsNewSessionButton.hoverBackground": "#FFFFFF18", + "agentsBadge.background": "#307E9F", + "agentsBadge.foreground": "#FFFFFF", + "agentsUnreadBadge.background": "#307E9F", + "agentsUnreadBadge.foreground": "#FFFFFF", + "agentsBottomPanel.border": "#00000000" + }, + "tokenColors": [ + { + "scope": [ + "comment", + "punctuation.definition.comment", + "string.comment" + ], + "settings": { + "foreground": "#8b949e" + } + }, + { + "scope": [ + "constant.other.placeholder", + "constant.character" + ], + "settings": { + "foreground": "#ff7b72" + } + }, + { + "scope": [ + "constant", + "entity.name.constant", + "variable.other.constant", + "variable.other.enummember", + "variable.language", + "entity" + ], + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": [ + "entity.name", + "meta.export.default", + "meta.definition.variable" + ], + "settings": { + "foreground": "#ffa657" + } + }, + { + "scope": [ + "variable.parameter.function", + "meta.jsx.children", + "meta.block", + "meta.tag.attributes", + "entity.name.constant", + "meta.object.member", + "meta.embedded.expression" + ], + "settings": { + "foreground": "#c9d1d9" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#d2a8ff" + } + }, + { + "scope": [ + "entity.name.tag", + "support.class.component" + ], + "settings": { + "foreground": "#7ee787" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#ff7b72" + } + }, + { + "scope": [ + "storage", + "storage.type" + ], + "settings": { + "foreground": "#ff7b72" + } + }, + { + "scope": [ + "storage.modifier.package", + "storage.modifier.import", + "storage.type.java" + ], + "settings": { + "foreground": "#c9d1d9" + } + }, + { + "scope": [ + "string", + "string punctuation.section.embedded source" + ], + "settings": { + "foreground": "#a5d6ff" + } + }, + { + "scope": "support", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": "meta.property-name", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": "variable", + "settings": { + "foreground": "#ffa657" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#c9d1d9" + } + }, + { + "scope": "invalid.broken", + "settings": { + "foreground": "#ffa198", + "fontStyle": "italic" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffa198", + "fontStyle": "italic" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffa198", + "fontStyle": "italic" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#ffa198", + "fontStyle": "italic" + } + }, + { + "scope": "carriage-return", + "settings": { + "foreground": "#f0f6fc", + "fontStyle": "italic underline" + } + }, + { + "scope": "message.error", + "settings": { + "foreground": "#ffa198" + } + }, + { + "scope": "string variable", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": [ + "source.regexp", + "string.regexp" + ], + "settings": { + "foreground": "#a5d6ff" + } + }, + { + "scope": [ + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition" + ], + "settings": { + "foreground": "#a5d6ff" + } + }, + { + "scope": "string.regexp constant.character.escape", + "settings": { + "foreground": "#7ee787", + "fontStyle": "bold" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#7ee787" + } + }, + { + "scope": "meta.module-reference", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#ffa657" + } + }, + { + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "foreground": "#79c0ff", + "fontStyle": "bold" + } + }, + { + "scope": "markup.quote", + "settings": { + "foreground": "#7ee787" + } + }, + { + "scope": "markup.italic", + "settings": { + "foreground": "#c9d1d9", + "fontStyle": "italic" + } + }, + { + "scope": "markup.bold", + "settings": { + "foreground": "#c9d1d9", + "fontStyle": "bold" + } + }, + { + "scope": [ + "markup.underline" + ], + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": [ + "markup.deleted", + "meta.diff.header.from-file", + "punctuation.definition.deleted" + ], + "settings": { + "foreground": "#ffa198" + } + }, + { + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#ff7b72" + } + }, + { + "scope": [ + "markup.inserted", + "meta.diff.header.to-file", + "punctuation.definition.inserted" + ], + "settings": { + "foreground": "#7ee787" + } + }, + { + "scope": [ + "markup.changed", + "punctuation.definition.changed" + ], + "settings": { + "foreground": "#ffa657" + } + }, + { + "scope": [ + "markup.ignored", + "markup.untracked" + ], + "settings": { + "foreground": "#0d1117" + } + }, + { + "scope": "meta.diff.range", + "settings": { + "foreground": "#d2a8ff", + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": "meta.separator", + "settings": { + "foreground": "#79c0ff", + "fontStyle": "bold" + } + }, + { + "scope": "meta.output", + "settings": { + "foreground": "#79c0ff" + } + }, + { + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { + "foreground": "#8b949e" + } + }, + { + "scope": "brackethighlighter.unmatched", + "settings": { + "foreground": "#ffa198" + } + }, + { + "scope": [ + "constant.other.reference.link", + "string.other.link" + ], + "settings": { + "foreground": "#a5d6ff" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796E6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#CD9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#B267E6" + } + } + ], + "semanticHighlighting": true +} diff --git a/darwin-breeze/vscode/base/dark_modern.json b/darwin-breeze/vscode/base/dark_modern.json new file mode 100644 index 0000000..2a86723 --- /dev/null +++ b/darwin-breeze/vscode/base/dark_modern.json @@ -0,0 +1,137 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dark Modern", + "include": "./dark_plus.json", + "colors": { + "activityBar.activeBorder": "#0078D4", + "activityBar.background": "#181818", + "activityBar.border": "#2B2B2B", + "activityBar.foreground": "#D7D7D7", + "activityBar.inactiveForeground": "#868686", + "activityBarBadge.background": "#0078D4", + "activityBarBadge.foreground": "#FFFFFF", + "badge.background": "#616161", + "badge.foreground": "#F8F8F8", + "button.background": "#0078D4", + "button.border": "#ffffff1a", + "button.foreground": "#FFFFFF", + "button.hoverBackground": "#026EC1", + "button.secondaryBackground": "#00000000", + "button.secondaryForeground": "#CCCCCC", + "button.secondaryHoverBackground": "#2B2B2B", + "chat.slashCommandBackground": "#26477866", + "chat.slashCommandForeground": "#85B6FF", + "chat.editedFileForeground": "#E2C08D", + "checkbox.background": "#313131", + "checkbox.border": "#3C3C3C", + "debugToolBar.background": "#181818", + "descriptionForeground": "#9D9D9D", + "dropdown.background": "#313131", + "dropdown.border": "#3C3C3C", + "dropdown.foreground": "#CCCCCC", + "dropdown.listBackground": "#1F1F1F", + "editor.background": "#1F1F1F", + "editor.findMatchBackground": "#9E6A03", + "editor.foreground": "#CCCCCC", + "editorGroup.border": "#FFFFFF17", + "editorGroupHeader.tabsBackground": "#181818", + "editorGroupHeader.tabsBorder": "#2B2B2B", + "editorGutter.addedBackground": "#2EA043", + "editorGutter.deletedBackground": "#F85149", + "editorGutter.modifiedBackground": "#0078D4", + "editorLineNumber.activeForeground": "#CCCCCC", + "editorLineNumber.foreground": "#6E7681", + "editorOverviewRuler.border": "#010409", + "editorWidget.background": "#202020", + "errorForeground": "#F85149", + "focusBorder": "#0078D4", + "foreground": "#CCCCCC", + "icon.foreground": "#CCCCCC", + "input.background": "#313131", + "input.border": "#3C3C3C", + "input.foreground": "#CCCCCC", + "input.placeholderForeground": "#989898", + "inputOption.activeBackground": "#2489DB82", + "inputOption.activeBorder": "#2488DB", + "keybindingLabel.foreground": "#CCCCCC", + "menu.background": "#1F1F1F", + "menu.selectionBackground": "#0078d4", + "notificationCenterHeader.background": "#1F1F1F", + "notificationCenterHeader.foreground": "#CCCCCC", + "notifications.background": "#1F1F1F", + "notifications.border": "#2B2B2B", + "notifications.foreground": "#CCCCCC", + "panel.background": "#181818", + "panel.border": "#2B2B2B", + "panelInput.border": "#2B2B2B", + "panelTitle.activeBorder": "#0078D4", + "panelTitle.activeForeground": "#CCCCCC", + "panelTitle.inactiveForeground": "#9D9D9D", + "peekViewEditor.background": "#1F1F1F", + "peekViewEditor.matchHighlightBackground": "#BB800966", + "peekViewResult.background": "#1F1F1F", + "peekViewResult.matchHighlightBackground": "#BB800966", + "pickerGroup.border": "#3C3C3C", + "progressBar.background": "#0078D4", + "quickInput.background": "#222222", + "quickInput.foreground": "#CCCCCC", + "settings.dropdownBackground": "#313131", + "settings.dropdownBorder": "#3C3C3C", + "settings.headerForeground": "#FFFFFF", + "settings.modifiedItemIndicator": "#BB800966", + "sideBar.background": "#181818", + "sideBar.border": "#2B2B2B", + "sideBar.foreground": "#CCCCCC", + "sideBarSectionHeader.background": "#181818", + "sideBarSectionHeader.border": "#2B2B2B", + "sideBarSectionHeader.foreground": "#CCCCCC", + "sideBarTitle.foreground": "#CCCCCC", + "statusBar.background": "#181818", + "statusBar.inactiveBackground": "#1F1F1F", + "statusBar.border": "#2B2B2B", + "statusBarItem.hoverBackground": "#F1F1F133", + "statusBarItem.hoverForeground": "#FFFFFF", + "statusBar.debuggingBackground": "#0078D4", + "statusBar.debuggingForeground": "#FFFFFF", + "statusBar.focusBorder": "#0078D4", + "statusBar.foreground": "#CCCCCC", + "statusBar.noFolderBackground": "#1F1F1F", + "statusBarItem.focusBorder": "#0078D4", + "statusBarItem.prominentBackground": "#6E768166", + "statusBarItem.remoteBackground": "#0078D4", + "statusBarItem.remoteForeground": "#FFFFFF", + "tab.activeBackground": "#1F1F1F", + "tab.activeBorder": "#1F1F1F", + "tab.activeBorderTop": "#0078D4", + "tab.activeForeground": "#FFFFFF", + "tab.selectedBorderTop": "#6caddf", + "tab.border": "#2B2B2B", + "tab.hoverBackground": "#1F1F1F", + "tab.inactiveBackground": "#181818", + "tab.inactiveForeground": "#9D9D9D", + "tab.unfocusedActiveBorder": "#1F1F1F", + "tab.unfocusedActiveBorderTop": "#2B2B2B", + "tab.unfocusedHoverBackground": "#1F1F1F", + "terminal.foreground": "#CCCCCC", + "terminal.tab.activeBorder": "#0078D4", + "textBlockQuote.background": "#2B2B2B", + "textBlockQuote.border": "#616161", + "textCodeBlock.background": "#2B2B2B", + "textLink.activeForeground": "#4daafc", + "textLink.foreground": "#4daafc", + "textPreformat.foreground": "#D0D0D0", + "textPreformat.background": "#3C3C3C", + "textSeparator.foreground": "#21262D", + "titleBar.activeBackground": "#181818", + "titleBar.activeForeground": "#CCCCCC", + "titleBar.border": "#2B2B2B", + "titleBar.inactiveBackground": "#1F1F1F", + "titleBar.inactiveForeground": "#9D9D9D", + "welcomePage.tileBackground": "#2B2B2B", + "welcomePage.progress.foreground": "#0078D4", + "widget.border": "#313131", + "modernActivityBarItem.activeBackground": "#FFFFFF22", + "modernActivityBarItem.hoverBackground": "#FFFFFF11", + "modernActivityBar.border": "#252526" + } +} diff --git a/darwin-breeze/vscode/base/dark_plus.json b/darwin-breeze/vscode/base/dark_plus.json new file mode 100644 index 0000000..08ee159 --- /dev/null +++ b/darwin-breeze/vscode/base/dark_plus.json @@ -0,0 +1,205 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dark+", + "include": "./dark_vs.json", + "tokenColors": [ + { + "name": "Function declarations", + "scope": [ + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal" + ], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Types declaration and references, TS grammar specific", + "scope": [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class", + "punctuation.separator.namespace.ruby" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Control flow / Special keywords", + "scope": [ + "keyword.control", + "source.cpp keyword.operator.new", + "keyword.operator.delete", + "keyword.other.using", + "keyword.other.directive.using", + "keyword.other.operator", + "entity.name.operator" + ], + "settings": { + "foreground": "#C586C0" + } + }, + { + "name": "Variable and parameter name", + "scope": [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder" + ], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "Constants and enums", + "scope": [ + "variable.other.constant", + "variable.other.enummember" + ], + "settings": { + "foreground": "#4FC1FF" + } + }, + { + "name": "Object keys, TS grammar specific", + "scope": [ + "meta.object-literal.key" + ], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "name": "Regular expression groups", + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "scope": [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" + ], + "settings": { + "foreground": "#d16969" + } + }, + { + "scope": [ + "keyword.operator.or.regexp", + "keyword.control.anchor.regexp" + ], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": [ + "constant.character", + "constant.other.option" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#C8C8C8" + } + } + ], + "semanticTokenColors": { + "newOperator": "#C586C0", + "stringLiteral": "#ce9178", + "customLiteral": "#DCDCAA", + "numberLiteral": "#b5cea8" + } +} diff --git a/darwin-breeze/vscode/base/dark_vs.json b/darwin-breeze/vscode/base/dark_vs.json new file mode 100644 index 0000000..7f3e4bd --- /dev/null +++ b/darwin-breeze/vscode/base/dark_vs.json @@ -0,0 +1,423 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dark (Visual Studio)", + "colors": { + "checkbox.border": "#6B6B6B", + "editor.background": "#1E1E1E", + "editor.foreground": "#D4D4D4", + "editor.inactiveSelectionBackground": "#3A3D41", + "editorIndentGuide.background1": "#404040", + "editorIndentGuide.activeBackground1": "#707070", + "editor.selectionHighlightBackground": "#ADD6FF26", + "list.dropBackground": "#383B3D", + "activityBarBadge.background": "#007ACC", + "sideBarTitle.foreground": "#BBBBBB", + "input.placeholderForeground": "#A6A6A6", + "menu.background": "#252526", + "menu.foreground": "#CCCCCC", + "menu.separatorBackground": "#454545", + "menu.border": "#454545", + "menu.selectionBackground": "#0078d4", + "statusBarItem.remoteForeground": "#FFF", + "statusBarItem.remoteBackground": "#16825D", + "statusBar.inactiveBackground": "#1476B8", + "titleBar.inactiveBackground": "#323233", + "ports.iconRunningProcessForeground": "#369432", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#ccc3", + "tab.selectedBackground": "#37373D", + "tab.selectedForeground": "#FFFFFF", + "tab.lastPinnedBorder": "#ccc3", + "list.activeSelectionIconForeground": "#FFF", + "terminal.inactiveSelectionBackground": "#3A3D41", + "widget.border": "#303031", + "actionBar.toggledBackground": "#383a49", + "agentsPanel.border": "#303031", + "agentsCard.border": "#00000000", + "agentsChatInput.border": "#303031", + "agentsChatInput.focusBorder": "#007ACC", + "agentsNewSessionButton.border": "#303031", + "surface.border": "#252526", + "modernActivityBarItem.activeBackground": "#1E1E1E", + "modernActivityBarItem.hoverBackground": "#1E1E1E66", + "modernActivityBar.border": "#252526" + }, + "tokenColors": [ + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#D4D4D4" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#000080" + } + }, + { + "scope": "comment", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent" + ], + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "constant.regexp", + "settings": { + "foreground": "#646695" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less" + ], + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "source.css entity.other.attribute-name.class", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.parent.less", + "source.css entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss" + ], + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic", + "foreground": "#C586C0" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "punctuation.definition.quote.begin.markdown", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#ce9178" + } + }, + { + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#808080" + } + }, + { + "scope": [ + "meta.preprocessor", + "entity.name.function.preprocessor" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "meta.structure.dictionary.key.python", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "storage.modifier", + "keyword.operator.noexcept" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "string", + "meta.embedded.assembly" + ], + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#d16969" + } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": [ + "meta.template.expression" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "support.type.vendored.property-name", + "support.type.property-name", + "source.css variable", + "source.coffee.embedded" + ], + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": [ + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.end.php" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "name": "coloring of the Java import and package identifiers", + "scope": [ + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "name": "this.self", + "scope": "variable.language", + "settings": { + "foreground": "#569cd6" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "newOperator": "#d4d4d4", + "stringLiteral": "#ce9178", + "customLiteral": "#D4D4D4", + "numberLiteral": "#b5cea8" + } +} diff --git a/darwin-breeze/vscode/base/pierre-dark.json b/darwin-breeze/vscode/base/pierre-dark.json new file mode 100644 index 0000000..9a0bdb4 --- /dev/null +++ b/darwin-breeze/vscode/base/pierre-dark.json @@ -0,0 +1,1961 @@ +{ + "name": "pierre-dark", + "displayName": "Pierre Dark", + "type": "dark", + "colors": { + "editor.background": "#0a0a0a", + "editor.foreground": "#fafafa", + "foreground": "#fafafa", + "focusBorder": "#009fff", + "selection.background": "#19283c", + "editor.selectionBackground": "#009fff4d", + "editor.lineHighlightBackground": "#19283c8c", + "editorCursor.foreground": "#009fff", + "editorLineNumber.foreground": "#737373", + "editorLineNumber.activeForeground": "#a3a3a3", + "editorIndentGuide.background": "#1d1d1d", + "editorIndentGuide.activeBackground": "#262626", + "diffEditor.insertedTextBackground": "#07c4801a", + "diffEditor.deletedTextBackground": "#ff2e3f1a", + "sideBar.background": "#171717", + "sideBar.foreground": "#a3a3a3", + "sideBar.border": "#0a0a0a", + "sideBarTitle.foreground": "#fafafa", + "sideBarSectionHeader.background": "#171717", + "sideBarSectionHeader.foreground": "#a3a3a3", + "sideBarSectionHeader.border": "#0a0a0a", + "activityBar.background": "#171717", + "activityBar.foreground": "#fafafa", + "activityBar.border": "#0a0a0a", + "activityBar.activeBorder": "#009fff", + "activityBarBadge.background": "#009fff", + "activityBarBadge.foreground": "#0a0a0a", + "titleBar.activeBackground": "#171717", + "titleBar.activeForeground": "#fafafa", + "titleBar.inactiveBackground": "#171717", + "titleBar.inactiveForeground": "#737373", + "titleBar.border": "#0a0a0a", + "list.activeSelectionBackground": "#19283c99", + "list.activeSelectionForeground": "#fafafa", + "list.inactiveSelectionBackground": "#19283c73", + "list.hoverBackground": "#19283c59", + "list.focusOutline": "#009fff", + "tab.activeBackground": "#0a0a0a", + "tab.activeForeground": "#fafafa", + "tab.activeBorderTop": "#009fff", + "tab.inactiveBackground": "#171717", + "tab.inactiveForeground": "#737373", + "tab.border": "#0a0a0a", + "editorGroupHeader.tabsBackground": "#171717", + "editorGroupHeader.tabsBorder": "#0a0a0a", + "panel.background": "#171717", + "panel.border": "#0a0a0a", + "panelTitle.activeBorder": "#009fff", + "panelTitle.activeForeground": "#fafafa", + "panelTitle.inactiveForeground": "#737373", + "statusBar.background": "#171717", + "statusBar.foreground": "#a3a3a3", + "statusBar.border": "#0a0a0a", + "statusBar.noFolderBackground": "#171717", + "statusBar.debuggingBackground": "#ffca00", + "statusBar.debuggingForeground": "#0a0a0a", + "statusBarItem.remoteBackground": "#171717", + "statusBarItem.remoteForeground": "#a3a3a3", + "input.background": "#1d1d1d", + "input.border": "#1d1d1d", + "input.foreground": "#fafafa", + "input.placeholderForeground": "#636363", + "dropdown.background": "#1d1d1d", + "dropdown.border": "#1d1d1d", + "dropdown.foreground": "#fafafa", + "button.background": "#009fff", + "button.foreground": "#0a0a0a", + "button.hoverBackground": "#0190e7", + "textLink.foreground": "#009fff", + "textLink.activeForeground": "#009fff", + "notifications.background": "#101010", + "notifications.foreground": "#fafafa", + "notifications.border": "#1d1d1d", + "notificationToast.border": "#1d1d1d", + "notificationCenter.border": "#1d1d1d", + "notificationCenterHeader.background": "#101010", + "notificationCenterHeader.foreground": "#a3a3a3", + "notificationLink.foreground": "#009fff", + "notificationsErrorIcon.foreground": "#ff2e3f", + "notificationsWarningIcon.foreground": "#ffca00", + "notificationsInfoIcon.foreground": "#08c0ef", + "quickInput.background": "#101010", + "quickInput.foreground": "#fafafa", + "quickInputTitle.background": "#101010", + "widget.border": "#1d1d1d", + "gitDecoration.addedResourceForeground": "#07c480", + "gitDecoration.conflictingResourceForeground": "#7b43f8", + "gitDecoration.modifiedResourceForeground": "#009fff", + "gitDecoration.deletedResourceForeground": "#ff2e3f", + "gitDecoration.untrackedResourceForeground": "#07c480", + "gitDecoration.ignoredResourceForeground": "#737373", + "merge.currentHeaderBackground": "#7b43f84d", + "merge.currentContentBackground": "#7b43f81f", + "merge.incomingHeaderBackground": "#08c0ef4d", + "merge.incomingContentBackground": "#08c0ef1f", + "editorOverviewRuler.currentContentForeground": "#7b43f8", + "editorOverviewRuler.incomingContentForeground": "#08c0ef", + "terminal.titleForeground": "#a3a3a3", + "terminal.titleInactiveForeground": "#737373", + "terminal.background": "#171717", + "terminal.foreground": "#a3a3a3", + "terminal.ansiBlack": "#171717", + "terminal.ansiRed": "#ff2e3f", + "terminal.ansiGreen": "#0dbe4e", + "terminal.ansiYellow": "#ffca00", + "terminal.ansiBlue": "#009fff", + "terminal.ansiMagenta": "#e130ac", + "terminal.ansiCyan": "#08c0ef", + "terminal.ansiWhite": "#bcbcbc", + "terminal.ansiBrightBlack": "#171717", + "terminal.ansiBrightRed": "#ff2e3f", + "terminal.ansiBrightGreen": "#86c427", + "terminal.ansiBrightYellow": "#ffca00", + "terminal.ansiBrightBlue": "#009fff", + "terminal.ansiBrightMagenta": "#e130ac", + "terminal.ansiBrightCyan": "#08c0ef", + "terminal.ansiBrightWhite": "#bcbcbc" + }, + "tokenColors": [ + { + "scope": [ + "comment", + "punctuation.definition.comment" + ], + "settings": { + "foreground": "#737373" + } + }, + { + "scope": "comment markup.link", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "punctuation.definition.string.begin", + "punctuation.definition.string.end" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "constant.numeric", + "constant.language.boolean" + ], + "settings": { + "foreground": "#68cdf2" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "punctuation.definition.constant", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#68cdf2" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "storage", + "storage.type", + "storage.modifier" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "token.storage", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression.instanceof", + "keyword.operator.expression.typeof", + "keyword.operator.expression.void", + "keyword.operator.expression.delete", + "keyword.operator.expression.in", + "keyword.operator.expression.of", + "keyword.operator.expression.keyof" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.delete", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "variable", + "identifier", + "meta.definition.variable" + ], + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "variable.other.readwrite", + "meta.object-literal.key", + "support.variable.property", + "support.variable.object.process", + "support.variable.object.node" + ], + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "variable.language", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#a3a3a3" + } + }, + { + "scope": "function.parameter", + "settings": { + "foreground": "#a3a3a3" + } + }, + { + "scope": "variable.parameter", + "settings": { + "foreground": "#a3a3a3" + } + }, + { + "scope": "variable.parameter.function.language.python", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "variable.parameter.function.python", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "support.function", + "entity.name.function", + "meta.function-call", + "meta.require", + "support.function.any-method", + "variable.function" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "keyword.other.special-method", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "support.function.console", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "support.type", + "entity.name.type", + "entity.name.class", + "storage.type" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": [ + "support.class", + "entity.name.type.class" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": [ + "entity.name.class", + "variable.other.class.js", + "variable.other.class.ts" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "entity.name.class.identifier.namespace.type", + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "entity.name.type.namespace", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "keyword.operator.logical", + "keyword.operator.bitwise", + "keyword.operator.channel" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "keyword.operator.arithmetic", + "keyword.operator.comparison", + "keyword.operator.relational", + "keyword.operator.increment", + "keyword.operator.decrement" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.assignment.compound", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "keyword.operator.assignment.compound.js", + "keyword.operator.assignment.compound.ts" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.ternary", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.optional", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "punctuation", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.separator.delimiter", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.terminator", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.brace", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.brace.square", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.brace.round", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "function.brace", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "punctuation.definition.parameters", + "punctuation.definition.typeparameters" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "punctuation.definition.block", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "meta.tag.tsx", + "meta.tag.jsx", + "meta.tag.js", + "meta.tag.ts" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "keyword.operator.expression.import", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "keyword.operator.module", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "support.type.object.console", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "support.module.node", + "support.type.object.module", + "entity.name.type.module" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "support.constant.math", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "support.constant.property.math", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "support.constant.json", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "support.type.object.dom", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "support.variable.dom", + "support.variable.property.dom" + ], + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "support.variable.property.process", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "meta.property.object", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "keyword.other.template.begin", + "keyword.other.template.end" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "keyword.other.substitution.begin", + "keyword.other.substitution.end" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "meta.template.expression", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "variable.interpolation", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "punctuation.quasi.element", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "support.type.primitive.ts", + "support.type.builtin.ts", + "support.type.primitive.tsx", + "support.type.builtin.tsx" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "support.type.type.flowtype", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "support.type.primitive", + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": [ + "meta.decorator", + "meta.decorator punctuation.decorator" + ], + "settings": { + "foreground": "#69b1ff" + } + }, + { + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#69b1ff" + } + }, + { + "scope": "punctuation.definition.decorator", + "settings": { + "foreground": "#69b1ff" + } + }, + { + "scope": "support.variable.magic.python", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "variable.parameter.function.language.special.self.python", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "punctuation.separator.period.python", + "punctuation.separator.element.python", + "punctuation.parenthesis.begin.python", + "punctuation.parenthesis.end.python" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "punctuation.definition.arguments.begin.python", + "punctuation.definition.arguments.end.python", + "punctuation.separator.arguments.python", + "punctuation.definition.list.begin.python", + "punctuation.definition.list.end.python" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.type.python", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "constant.character.format.placeholder.other.python", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "meta.function.decorator.python", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "support.token.decorator.python", + "meta.function.decorator.identifier.python" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "storage.modifier.lifetime.rust", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.function.std.rust", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "variable.language.rust", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "keyword.operator.misc.rust", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "keyword.operator.sigil.rust", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "meta.function.c", + "meta.function.cpp" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "punctuation.section.block.begin.bracket.curly.cpp", + "punctuation.section.block.end.bracket.curly.cpp", + "punctuation.terminator.statement.c", + "punctuation.section.block.begin.bracket.curly.c", + "punctuation.section.block.end.bracket.curly.c", + "punctuation.section.parens.begin.bracket.round.c", + "punctuation.section.parens.end.bracket.round.c", + "punctuation.section.parameters.begin.bracket.round.c", + "punctuation.section.parameters.end.bracket.round.c" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "keyword.operator.assignment.c", + "keyword.operator.comparison.c", + "keyword.operator.c", + "keyword.operator.increment.c", + "keyword.operator.decrement.c", + "keyword.operator.bitwise.shift.c" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "keyword.operator.assignment.cpp", + "keyword.operator.comparison.cpp", + "keyword.operator.cpp", + "keyword.operator.increment.cpp", + "keyword.operator.decrement.cpp", + "keyword.operator.bitwise.shift.cpp" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "punctuation.separator.c", + "punctuation.separator.cpp" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "support.type.posix-reserved.c", + "support.type.posix-reserved.cpp" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "keyword.operator.sizeof.c", + "keyword.operator.sizeof.cpp" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "variable.c", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "storage.type.annotation.java", + "storage.type.object.array.java" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "source.java", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "punctuation.section.block.begin.java", + "punctuation.section.block.end.java", + "punctuation.definition.method-parameters.begin.java", + "punctuation.definition.method-parameters.end.java", + "meta.method.identifier.java", + "punctuation.section.method.begin.java", + "punctuation.section.method.end.java", + "punctuation.terminator.java", + "punctuation.section.class.begin.java", + "punctuation.section.class.end.java", + "punctuation.section.inner-class.begin.java", + "punctuation.section.inner-class.end.java", + "meta.method-call.java", + "punctuation.section.class.begin.bracket.curly.java", + "punctuation.section.class.end.bracket.curly.java", + "punctuation.section.method.begin.bracket.curly.java", + "punctuation.section.method.end.bracket.curly.java", + "punctuation.separator.period.java", + "punctuation.bracket.angle.java", + "punctuation.definition.annotation.java", + "meta.method.body.java" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.method.java", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "storage.modifier.import.java", + "storage.type.java", + "storage.type.generic.java" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator.instanceof.java", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "meta.definition.variable.name.java", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "token.variable.parameter.java", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "import.storage.java", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "token.package.keyword", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "token.package", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "token.storage.type.java", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator.assignment.go", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "keyword.operator.arithmetic.go", + "keyword.operator.address.go" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "entity.name.package.go", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "support.other.namespace.use.php", + "support.other.namespace.use-as.php", + "support.other.namespace.php", + "entity.other.alias.php", + "meta.interface.php" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator.error-control.php", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.type.php", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "punctuation.section.array.begin.php", + "punctuation.section.array.end.php" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "storage.type.php", + "meta.other.type.phpdoc.php", + "keyword.other.type.php", + "keyword.other.array.phpdoc.php" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "meta.function-call.php", + "meta.function-call.object.php", + "meta.function-call.static.php" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "punctuation.definition.parameters.begin.bracket.round.php", + "punctuation.definition.parameters.end.bracket.round.php", + "punctuation.separator.delimiter.php", + "punctuation.section.scope.begin.php", + "punctuation.section.scope.end.php", + "punctuation.terminator.expression.php", + "punctuation.definition.arguments.begin.bracket.round.php", + "punctuation.definition.arguments.end.bracket.round.php", + "punctuation.definition.storage-type.begin.bracket.round.php", + "punctuation.definition.storage-type.end.bracket.round.php", + "punctuation.definition.array.begin.bracket.round.php", + "punctuation.definition.array.end.bracket.round.php", + "punctuation.definition.begin.bracket.round.php", + "punctuation.definition.end.bracket.round.php", + "punctuation.definition.begin.bracket.curly.php", + "punctuation.definition.end.bracket.curly.php", + "punctuation.definition.section.switch-block.end.bracket.curly.php", + "punctuation.definition.section.switch-block.start.bracket.curly.php", + "punctuation.definition.section.switch-block.begin.bracket.curly.php", + "punctuation.definition.section.switch-block.end.bracket.curly.php" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "support.constant.ext.php", + "support.constant.std.php", + "support.constant.core.php", + "support.constant.parser-token.php" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "entity.name.goto-label.php", + "support.other.php" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "keyword.operator.logical.php", + "keyword.operator.bitwise.php", + "keyword.operator.arithmetic.php" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.regexp.php", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.comparison.php", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "keyword.operator.heredoc.php", + "keyword.operator.nowdoc.php" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "variable.other.class.php", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "invalid.illegal.non-null-typehinted.php", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "variable.other.generic-type.haskell", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "storage.type.haskell", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "storage.type.cs", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "entity.name.label.cs", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "entity.name.scope-resolution.function.call", + "entity.name.scope-resolution.function.definition" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "punctuation.definition.delayed.unison", + "punctuation.definition.list.begin.unison", + "punctuation.definition.list.end.unison", + "punctuation.definition.ability.begin.unison", + "punctuation.definition.ability.end.unison", + "punctuation.operator.assignment.as.unison", + "punctuation.separator.pipe.unison", + "punctuation.separator.delimiter.unison", + "punctuation.definition.hash.unison" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "support.constant.edge", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "support.type.prelude.elm", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.constant.elm", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "entity.global.clojure", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "meta.symbol.clojure", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "constant.keyword.clojure", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "meta.arguments.coffee", + "variable.parameter.function.coffee" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "storage.modifier.import.groovy", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "meta.method.groovy", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "meta.definition.variable.name.groovy", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "meta.definition.class.inherited.classes.groovy", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "support.variable.semantic.hlsl", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "support.type.texture.hlsl", + "support.type.sampler.hlsl", + "support.type.object.hlsl", + "support.type.object.rw.hlsl", + "support.type.fx.hlsl", + "support.type.object.hlsl" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "text.variable", + "text.bracketed" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "support.type.swift", + "support.type.vb.asp" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "meta.scope.prerequisites.makefile", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "source.makefile", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "source.ini", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "function.parameter.ruby", + "function.parameter.cs" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "constant.language.symbol.elixir", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "entity.name.function.xi", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "entity.name.class.xi", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "constant.character.character-class.regexp.xi", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "constant.regexp.xi", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.control.xi", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "invalid.xi", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "beginning.punctuation.definition.quote.markdown.xi", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "beginning.punctuation.definition.list.markdown.xi", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": "constant.character.xi", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "accent.xi", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "wikiword.xi", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "constant.other.color.rgb-value.xi", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "punctuation.definition.tag.xi", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": [ + "support.constant.property-value.scss", + "support.constant.property-value.css" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "keyword.operator.css", + "keyword.operator.scss", + "keyword.operator.less" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "support.constant.color.w3c-standard-color-name.css", + "support.constant.color.w3c-standard-color-name.scss" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "punctuation.separator.list.comma.css", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.type.vendored.property-name.css", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.constant.property-value", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.constant.font-name", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "entity.other.attribute-name.class.css", + "settings": { + "foreground": "#60d199", + "fontStyle": "normal" + } + }, + { + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#9d6afb", + "fontStyle": "normal" + } + }, + { + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "selector.sass", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "rgb-value", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "inline-color-decoration rgb-value", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "less rgb-value", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "control.elements", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "keyword.operator.less", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#60d199", + "fontStyle": "normal" + } + }, + { + "scope": "constant.character.entity", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "meta.tag", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "invalid.illegal.bad-ampersand.html", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "markup.heading punctuation.definition.heading", + "entity.name.section" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "entity.name.section.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "punctuation.definition.heading.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "markup.heading.setext", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "markup.bold", + "todo.bold" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "punctuation.definition.bold", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "punctuation.definition.bold.markdown", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "markup.italic", + "punctuation.definition.italic", + "todo.emphasis" + ], + "settings": { + "foreground": "#ff678d", + "fontStyle": "italic" + } + }, + { + "scope": "emphasis md", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": [ + "markup.underline.link.markdown", + "markup.underline.link.image.markdown" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "punctuation.definition.metadata.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "markup.inline.raw.markdown", + "markup.inline.raw.string.markdown" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "punctuation.definition.list.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "beginning.punctuation.definition.list.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "markup.changed.diff", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "meta.diff.header.from-file", + "meta.diff.header.to-file", + "punctuation.definition.from-file.diff", + "punctuation.definition.to-file.diff" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#64d1db" + } + }, + { + "scope": "constant.other.character-class.regexp", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#61d5c0" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json > value.json > string.quoted.json", + "source.json meta.structure.array.json > value.json > string.quoted.json", + "source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation", + "source.json meta.structure.array.json > value.json > string.quoted.json > punctuation" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json > constant.language.json", + "source.json meta.structure.array.json > constant.language.json" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "support.type.property-name.json punctuation", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "block.scope.end", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "block.scope.begin", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "invalid.broken", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#fafafa" + } + } + ], + "semanticTokenColors": { + "comment": "#737373", + "string": "#5ecc71", + "number": "#68cdf2", + "regexp": "#64d1db", + "keyword": "#ff678d", + "variable": "#ffa359", + "parameter": "#a3a3a3", + "property": "#ffa359", + "function": "#9d6afb", + "method": "#9d6afb", + "type": "#d568ea", + "class": "#d568ea", + "namespace": "#ffab16", + "enumMember": "#08c0ef", + "variable.constant": "#ffd452", + "variable.defaultLibrary": "#ffab16", + "decorator": "#69b1ff" + } +} diff --git a/darwin-breeze/vscode/package.json b/darwin-breeze/vscode/package.json new file mode 100644 index 0000000..5e89112 --- /dev/null +++ b/darwin-breeze/vscode/package.json @@ -0,0 +1,22 @@ +{ + "name": "darwin-breeze", + "displayName": "Darwin Breeze", + "description": "Generated by darwin-breeze/build.py from DarwinBreezeDark.colors", + "publisher": "trivk", + "version": "1.0.0", + "engines": { + "vscode": "^1.70.0" + }, + "categories": [ + "Themes" + ], + "contributes": { + "themes": [ + { + "label": "Darwin Breeze Dark", + "uiTheme": "vs-dark", + "path": "./themes/DarwinBreezeDark-color-theme.json" + } + ] + } +} diff --git a/darwin-breeze/vscode/themes/DarwinBreezeDark-color-theme.json b/darwin-breeze/vscode/themes/DarwinBreezeDark-color-theme.json new file mode 100644 index 0000000..2c794f0 --- /dev/null +++ b/darwin-breeze/vscode/themes/DarwinBreezeDark-color-theme.json @@ -0,0 +1,2185 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Darwin Breeze Dark", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "actionBar.toggledBackground": "#353e47", + "activityBar.activeBackground": "#424242", + "activityBar.activeBorder": "#dfdfdf", + "activityBar.activeFocusBorder": "#3679bdb3", + "activityBar.background": "#232323", + "activityBar.border": "#3a3a3a", + "activityBar.foreground": "#dfdfdf", + "activityBar.inactiveForeground": "#9b9b9b", + "activityBarBadge.background": "#007bff", + "activityBarBadge.foreground": "#ffffff", + "activityBarTop.activeBorder": "#dfdfdf", + "activityErrorBadge.background": "#f47273", + "activityErrorBadge.foreground": "#ffffff", + "activityWarningBadge.background": "#cd6100", + "activityWarningBadge.foreground": "#292929", + "agents.background": "#181818", + "agentsBadge.background": "#2c65a0", + "agentsBadge.foreground": "#ffffff", + "agentsBottomPanel.border": "#00000000", + "agentsCard.border": "#00000000", + "agentsChatInput.background": "#2a2a2a", + "agentsChatInput.border": "#444444", + "agentsChatInput.focusBorder": "#3679bdb3", + "agentsChatInput.foreground": "#dfdfdf", + "agentsChatInput.placeholderForeground": "#656565", + "agentsGradient.tintColor": "#2462a1", + "agentsNewSessionButton.background": "#00000000", + "agentsNewSessionButton.border": "#444444", + "agentsNewSessionButton.foreground": "#dfdfdf", + "agentsNewSessionButton.hoverBackground": "#ffffff18", + "agentsPanel.background": "#232323", + "agentsPanel.border": "#3a3a3a", + "agentsPanel.foreground": "#dfdfdf", + "agentsUnreadBadge.background": "#2c65a0", + "agentsUnreadBadge.foreground": "#ffffff", + "badge.background": "#007bff", + "badge.foreground": "#ffffff", + "breadcrumb.activeSelectionForeground": "#dfdfdf", + "breadcrumb.background": "#181818", + "breadcrumb.focusForeground": "#dfdfdf", + "breadcrumb.foreground": "#9b9b9b", + "breadcrumbPicker.background": "#2a2a2a", + "button.background": "#007bff", + "button.border": "#007bff", + "button.foreground": "#ffffff", + "button.hoverBackground": "#1288ff", + "button.secondaryBackground": "#00000000", + "button.secondaryBorder": "#444444", + "button.secondaryForeground": "#e6e6e6", + "button.secondaryHoverBackground": "#ffffff10", + "charts.blue": "#56a5f8", + "charts.foreground": "#e6e6e6", + "charts.green": "#87d099", + "charts.lines": "#e4e4e480", + "charts.orange": "#ce6f13", + "charts.purple": "#bb81d8", + "charts.red": "#ef7475", + "charts.yellow": "#e1ae80", + "chat.editedFileForeground": "#e3b68e", + "chat.inputWorkingBorderColor1": "#2462a1", + "chat.requestBubbleBackground": "#ffffff13", + "chat.requestBubbleHoverBackground": "#ffffff22", + "chat.slashCommandBackground": "#214c7966", + "chat.slashCommandForeground": "#86c0ff", + "checkbox.background": "#313131", + "checkbox.border": "#808080", + "checkbox.foreground": "#9b9b9b", + "commandCenter.activeBackground": "#ffffff0f", + "commandCenter.activeBorder": "#444444", + "commandCenter.activeForeground": "#dfdfdf", + "commandCenter.background": "#232323", + "commandCenter.border": "#3f3f3f", + "commandCenter.foreground": "#dfdfdf", + "debugToolBar.background": "#202020", + "descriptionForeground": "#9b9b9b", + "diffEditor.insertedLineBackground": "#317e4426", + "diffEditor.insertedTextBackground": "#56ac6c4d", + "diffEditor.removedLineBackground": "#ca343626", + "diffEditor.removedTextBackground": "#f467694d", + "disabledForeground": "#656565", + "dropdown.background": "#232323", + "dropdown.border": "#444444", + "dropdown.foreground": "#dfdfdf", + "dropdown.listBackground": "#232323", + "editor.background": "#181818", + "editor.findMatchBackground": "#22528390", + "editor.findMatchHighlightBackground": "#22528380", + "editor.findRangeHighlightBackground": "#ffffff13", + "editor.foreground": "#dedede", + "editor.hoverHighlightBackground": "#ffffff13", + "editor.inactiveSelectionBackground": "#22528360", + "editor.lineHighlightBackground": "#313131", + "editor.rangeHighlightBackground": "#ffffff13", + "editor.selectionBackground": "#225283dd", + "editor.selectionHighlightBackground": "#22528360", + "editor.wordHighlightBackground": "#22528350", + "editor.wordHighlightStrongBackground": "#22528380", + "editorBracketMatch.background": "#3679bd55", + "editorBracketMatch.border": "#3a3a3a", + "editorCodeLens.foreground": "#9b9b9b", + "editorCommentsWidget.rangeActiveBackground": "#467aaf46", + "editorCommentsWidget.rangeBackground": "#467aaf26", + "editorCursor.foreground": "#dddddd", + "editorGroup.border": "#ffffff17", + "editorGroupHeader.tabsBackground": "#232323", + "editorGroupHeader.tabsBorder": "#3a3a3a", + "editorGutter.addedBackground": "#73c988", + "editorGutter.background": "#181818", + "editorGutter.deletedBackground": "#f27374", + "editorGutter.modifiedBackground": "#0065d5", + "editorHoverWidget.background": "#2a2a2a", + "editorHoverWidget.border": "#3a3a3a", + "editorIndentGuide.activeBackground1": "#939393", + "editorIndentGuide.background1": "#9393934d", + "editorLineNumber.activeForeground": "#dddddd", + "editorLineNumber.foreground": "#969696", + "editorLink.activeForeground": "#3779bd", + "editorOverviewRuler.addedForeground": "#74ca89", + "editorOverviewRuler.border": "#3a3a3a", + "editorOverviewRuler.deletedForeground": "#f47273", + "editorOverviewRuler.errorForeground": "#f47273", + "editorOverviewRuler.findMatchForeground": "#3779bd99", + "editorOverviewRuler.modifiedForeground": "#6ab97e", + "editorOverviewRuler.warningForeground": "#e6af7e", + "editorRuler.foreground": "#939393", + "editorStickyScroll.background": "#181818", + "editorStickyScroll.border": "#3a3a3a", + "editorStickyScrollHover.background": "#2a2a2a", + "editorSuggestWidget.background": "#2a2a2a", + "editorSuggestWidget.border": "#3a3a3a", + "editorSuggestWidget.focusOutline": "#3679bdb3", + "editorSuggestWidget.foreground": "#dfdfdf", + "editorSuggestWidget.highlightForeground": "#dfdfdf", + "editorSuggestWidget.selectedBackground": "#ffffff26", + "editorWhitespace.foreground": "#9b9b9b4d", + "editorWidget.background": "#2a2a2a", + "editorWidget.border": "#3a3a3a", + "editorWidget.foreground": "#dfdfdf", + "errorForeground": "#f47273", + "extensionButton.prominentBackground": "#2462a1", + "extensionButton.prominentForeground": "#ffffff", + "extensionButton.prominentHoverBackground": "#2764a4", + "focusBorder": "#007bffb3", + "foreground": "#dfdfdf", + "gitDecoration.addedResourceForeground": "#74ca89", + "gitDecoration.conflictingResourceForeground": "#f47273", + "gitDecoration.deletedResourceForeground": "#f47273", + "gitDecoration.ignoredResourceForeground": "#9b9b9b", + "gitDecoration.modifiedResourceForeground": "#e6af7e", + "gitDecoration.stageDeletedResourceForeground": "#f47273", + "gitDecoration.stageModifiedResourceForeground": "#e6af7e", + "gitDecoration.untrackedResourceForeground": "#74ca89", + "icon.foreground": "#9b9b9b", + "inlineChat.border": "#00000000", + "input.background": "#232323", + "input.border": "#444444", + "input.foreground": "#dfdfdf", + "input.placeholderForeground": "#656565", + "inputOption.activeBackground": "#424242", + "inputOption.activeBorder": "#3a3a3a", + "inputOption.activeForeground": "#dfdfdf", + "inputValidation.errorBackground": "#371717", + "inputValidation.errorBorder": "#bf0000", + "inputValidation.errorForeground": "#dfdfdf", + "inputValidation.infoBackground": "#182e45", + "inputValidation.infoBorder": "#3679bd", + "inputValidation.infoForeground": "#dfdfdf", + "inputValidation.warningBackground": "#321501", + "inputValidation.warningBorder": "#b95600", + "inputValidation.warningForeground": "#dfdfdf", + "keybindingLabel.foreground": "#e6e6e6", + "list.activeSelectionBackground": "#ffffff22", + "list.activeSelectionForeground": "#f6f6f6", + "list.activeSelectionIconForeground": "#ffffff", + "list.dropBackground": "#3679bd1a", + "list.errorForeground": "#f47273", + "list.focusBackground": "#ffffff22", + "list.focusForeground": "#dfdfdf", + "list.focusOutline": "#3679bdb3", + "list.highlightForeground": "#4686c8", + "list.hoverBackground": "#ffffff14", + "list.hoverForeground": "#dfdfdf", + "list.inactiveSelectionBackground": "#3d3d3d", + "list.inactiveSelectionForeground": "#f6f6f6", + "list.invalidItemForeground": "#545454", + "list.warningForeground": "#e6af7e", + "menu.background": "#2a2a2a", + "menu.border": "#3a3a3a", + "menu.foreground": "#dfdfdf", + "menu.selectionBackground": "#3679bd26", + "menu.selectionBorder": "#3679bd", + "menu.selectionForeground": "#dfdfdf", + "menu.separatorBackground": "#3a3a3a", + "menubar.selectionBackground": "#313131", + "menubar.selectionForeground": "#dfdfdf", + "minimapSlider.activeBackground": "#c1c1c19c", + "minimapSlider.background": "#c1c1c185", + "minimapSlider.hoverBackground": "#c1c1c190", + "modernActivityBar.border": "#313131", + "modernActivityBarItem.activeBackground": "#ffffff22", + "modernActivityBarItem.hoverBackground": "#ffffff11", + "notificationCenter.border": "#3a3a3a", + "notificationCenterHeader.background": "#313131", + "notificationCenterHeader.foreground": "#dfdfdf", + "notificationLink.foreground": "#3779bd", + "notificationToast.border": "#3a3a3a", + "notifications.background": "#2a2a2a", + "notifications.border": "#3a3a3a", + "notifications.foreground": "#dfdfdf", + "notificationsErrorIcon.foreground": "#f47273", + "notificationsInfoIcon.foreground": "#3779bd", + "notificationsWarningIcon.foreground": "#cd6100", + "panel.background": "#232323", + "panel.border": "#3a3a3a", + "panelInput.border": "#3a3a3a", + "panelSection.border": "#3a3a3a", + "panelSectionHeader.border": "#3a3a3a", + "panelTitle.activeBorder": "#007bff", + "panelTitle.activeForeground": "#dfdfdf", + "panelTitle.inactiveForeground": "#9b9b9b", + "peekView.border": "#3a3a3a", + "peekViewEditor.background": "#232323", + "peekViewEditor.matchHighlightBackground": "#3679bd33", + "peekViewResult.background": "#232323", + "peekViewResult.fileForeground": "#dfdfdf", + "peekViewResult.lineForeground": "#9b9b9b", + "peekViewResult.matchHighlightBackground": "#3679bd33", + "peekViewResult.selectionBackground": "#3679bd26", + "peekViewResult.selectionForeground": "#dfdfdf", + "peekViewTitle.background": "#313131", + "peekViewTitleDescription.foreground": "#9b9b9b", + "peekViewTitleLabel.foreground": "#dfdfdf", + "pickerGroup.border": "#3a3a3a", + "pickerGroup.foreground": "#dfdfdf", + "ports.iconRunningProcessForeground": "#2e9549", + "progressBar.background": "#979797", + "quickInput.background": "#2a2a2a", + "quickInput.foreground": "#dfdfdf", + "quickInputList.focusBackground": "#007bff", + "quickInputList.focusForeground": "#ffffff", + "quickInputList.focusHighlightForeground": "#ffffff", + "quickInputList.focusIconForeground": "#ffffff", + "quickInputTitle.background": "#2a2a2a", + "scrollbar.shadow": "#2424244d", + "scrollbarSlider.activeBackground": "#c1c1c19c", + "scrollbarSlider.background": "#c1c1c185", + "scrollbarSlider.hoverBackground": "#c1c1c190", + "settings.dropdownBackground": "#414141", + "settings.dropdownBorder": "#4c4c4c", + "settings.headerForeground": "#ffffff", + "settings.modifiedItemIndicator": "#bc5d0266", + "sideBar.background": "#232323", + "sideBar.border": "#3a3a3a", + "sideBar.foreground": "#dfdfdf", + "sideBarSectionHeader.background": "#232323", + "sideBarSectionHeader.border": "#3a3a3a", + "sideBarSectionHeader.foreground": "#dfdfdf", + "sideBarTitle.foreground": "#dfdfdf", + "statusBar.background": "#232323", + "statusBar.border": "#3a3a3a", + "statusBar.debuggingBackground": "#3679bd", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.focusBorder": "#3679bdb3", + "statusBar.foreground": "#9b9b9b", + "statusBar.inactiveBackground": "#181818", + "statusBar.noFolderBackground": "#232323", + "statusBar.noFolderForeground": "#9b9b9b", + "statusBarItem.activeBackground": "#5d5d5d", + "statusBarItem.focusBorder": "#3679bdb3", + "statusBarItem.hoverBackground": "#424242", + "statusBarItem.hoverForeground": "#ffffff", + "statusBarItem.prominentBackground": "#3679bd", + "statusBarItem.prominentForeground": "#ffffff", + "statusBarItem.prominentHoverBackground": "#3679bd", + "statusBarItem.remoteBackground": "#0065d5", + "statusBarItem.remoteForeground": "#ffffff", + "surface.background": "#232323", + "surface.border": "#3a3a3a", + "surface.foreground": "#dfdfdf", + "tab.activeBackground": "#181818", + "tab.activeBorder": "#181818", + "tab.activeBorderTop": "#007bff", + "tab.activeForeground": "#dfdfdf", + "tab.border": "#3a3a3a", + "tab.hoverBackground": "#181818", + "tab.hoverForeground": "#dfdfdf", + "tab.inactiveBackground": "#232323", + "tab.inactiveForeground": "#9b9b9b", + "tab.lastPinnedBorder": "#3a3a3a", + "tab.selectedBackground": "#474747", + "tab.selectedBorderTop": "#6ca4e0", + "tab.selectedForeground": "#ffffff", + "tab.unfocusedActiveBackground": "#181818", + "tab.unfocusedActiveBorder": "#282828", + "tab.unfocusedActiveBorderTop": "#3a3a3a", + "tab.unfocusedActiveForeground": "#9b9b9b", + "tab.unfocusedHoverBackground": "#282828", + "tab.unfocusedInactiveBackground": "#232323", + "tab.unfocusedInactiveForeground": "#545454", + "terminal.ansiBlack": "#383838", + "terminal.ansiBlue": "#3f9dff", + "terminal.ansiBrightBlack": "#757575", + "terminal.ansiBrightBlue": "#71b6ff", + "terminal.ansiBrightCyan": "#8cdeff", + "terminal.ansiBrightGreen": "#64dd83", + "terminal.ansiBrightMagenta": "#d084f5", + "terminal.ansiBrightRed": "#ff787a", + "terminal.ansiBrightWhite": "#f1f1f1", + "terminal.ansiBrightYellow": "#ffae64", + "terminal.ansiCyan": "#64d3ff", + "terminal.ansiGreen": "#2cd257", + "terminal.ansiMagenta": "#c05af2", + "terminal.ansiRed": "#ff494b", + "terminal.ansiWhite": "#dedede", + "terminal.ansiYellow": "#ff932c", + "terminal.background": "#232323", + "terminal.border": "#3a3a3a", + "terminal.foreground": "#e6e6e6", + "terminal.inactiveSelectionBackground": "#4d4d4d", + "terminal.selectionBackground": "#3679bd33", + "terminal.tab.activeBorder": "#3679bd00", + "terminalCursor.background": "#232323", + "terminalCursor.foreground": "#dfdfdf", + "textBlockQuote.background": "#313131", + "textBlockQuote.border": "#3a3a3a", + "textCodeBlock.background": "#313131", + "textLink.activeForeground": "#3f9dff", + "textLink.foreground": "#3f9dff", + "textPreformat.background": "#333333", + "textPreformat.foreground": "#9b9b9b", + "textSeparator.foreground": "#393939", + "titleBar.activeBackground": "#232323", + "titleBar.activeForeground": "#9b9b9b", + "titleBar.border": "#3a3a3a", + "titleBar.inactiveBackground": "#1f1f1f", + "titleBar.inactiveForeground": "#9b9b9b", + "toolbar.activeBackground": "#ffffff33", + "welcomePage.progress.foreground": "#0065d5", + "welcomePage.tileBackground": "#3a3a3a", + "widget.border": "#3a3a3a" + }, + "tokenColors": [ + { + "scope": [ + "comment", + "punctuation.definition.comment" + ], + "settings": { + "foreground": "#737373" + } + }, + { + "scope": "comment markup.link", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "punctuation.definition.string.begin", + "punctuation.definition.string.end" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "constant.numeric", + "constant.language.boolean" + ], + "settings": { + "foreground": "#68cdf2" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "punctuation.definition.constant", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#68cdf2" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "storage", + "storage.type", + "storage.modifier" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "token.storage", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression.instanceof", + "keyword.operator.expression.typeof", + "keyword.operator.expression.void", + "keyword.operator.expression.delete", + "keyword.operator.expression.in", + "keyword.operator.expression.of", + "keyword.operator.expression.keyof" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.delete", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "variable", + "identifier", + "meta.definition.variable" + ], + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "variable.other.readwrite", + "meta.object-literal.key", + "support.variable.property", + "support.variable.object.process", + "support.variable.object.node" + ], + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "variable.language", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#a3a3a3" + } + }, + { + "scope": "function.parameter", + "settings": { + "foreground": "#a3a3a3" + } + }, + { + "scope": "variable.parameter", + "settings": { + "foreground": "#a3a3a3" + } + }, + { + "scope": "variable.parameter.function.language.python", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "variable.parameter.function.python", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "support.function", + "entity.name.function", + "meta.function-call", + "meta.require", + "support.function.any-method", + "variable.function" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "keyword.other.special-method", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "support.function.console", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "support.type", + "entity.name.type", + "entity.name.class", + "storage.type" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": [ + "support.class", + "entity.name.type.class" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": [ + "entity.name.class", + "variable.other.class.js", + "variable.other.class.ts" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "entity.name.class.identifier.namespace.type", + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "entity.name.type.namespace", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "keyword.operator.logical", + "keyword.operator.bitwise", + "keyword.operator.channel" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "keyword.operator.arithmetic", + "keyword.operator.comparison", + "keyword.operator.relational", + "keyword.operator.increment", + "keyword.operator.decrement" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.assignment.compound", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "keyword.operator.assignment.compound.js", + "keyword.operator.assignment.compound.ts" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.ternary", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.optional", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "punctuation", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.separator.delimiter", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.terminator", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.brace", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.brace.square", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.brace.round", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "function.brace", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "punctuation.definition.parameters", + "punctuation.definition.typeparameters" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "punctuation.definition.block", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "meta.tag.tsx", + "meta.tag.jsx", + "meta.tag.js", + "meta.tag.ts" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "keyword.operator.expression.import", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "keyword.operator.module", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "support.type.object.console", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "support.module.node", + "support.type.object.module", + "entity.name.type.module" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "support.constant.math", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "support.constant.property.math", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "support.constant.json", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "support.type.object.dom", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "support.variable.dom", + "support.variable.property.dom" + ], + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "support.variable.property.process", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "meta.property.object", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "keyword.other.template.begin", + "keyword.other.template.end" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "keyword.other.substitution.begin", + "keyword.other.substitution.end" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "meta.template.expression", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": "variable.interpolation", + "settings": { + "foreground": "#ffa359" + } + }, + { + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "punctuation.quasi.element", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "support.type.primitive.ts", + "support.type.builtin.ts", + "support.type.primitive.tsx", + "support.type.builtin.tsx" + ], + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": "support.type.type.flowtype", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "support.type.primitive", + "settings": { + "foreground": "#d568ea" + } + }, + { + "scope": [ + "meta.decorator", + "meta.decorator punctuation.decorator" + ], + "settings": { + "foreground": "#69b1ff" + } + }, + { + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#69b1ff" + } + }, + { + "scope": "punctuation.definition.decorator", + "settings": { + "foreground": "#69b1ff" + } + }, + { + "scope": "support.variable.magic.python", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "variable.parameter.function.language.special.self.python", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "punctuation.separator.period.python", + "punctuation.separator.element.python", + "punctuation.parenthesis.begin.python", + "punctuation.parenthesis.end.python" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "punctuation.definition.arguments.begin.python", + "punctuation.definition.arguments.end.python", + "punctuation.separator.arguments.python", + "punctuation.definition.list.begin.python", + "punctuation.definition.list.end.python" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.type.python", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "constant.character.format.placeholder.other.python", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "meta.function.decorator.python", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "support.token.decorator.python", + "meta.function.decorator.identifier.python" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "storage.modifier.lifetime.rust", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.function.std.rust", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "variable.language.rust", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "keyword.operator.misc.rust", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "keyword.operator.sigil.rust", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "meta.function.c", + "meta.function.cpp" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "punctuation.section.block.begin.bracket.curly.cpp", + "punctuation.section.block.end.bracket.curly.cpp", + "punctuation.terminator.statement.c", + "punctuation.section.block.begin.bracket.curly.c", + "punctuation.section.block.end.bracket.curly.c", + "punctuation.section.parens.begin.bracket.round.c", + "punctuation.section.parens.end.bracket.round.c", + "punctuation.section.parameters.begin.bracket.round.c", + "punctuation.section.parameters.end.bracket.round.c" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "keyword.operator.assignment.c", + "keyword.operator.comparison.c", + "keyword.operator.c", + "keyword.operator.increment.c", + "keyword.operator.decrement.c", + "keyword.operator.bitwise.shift.c" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "keyword.operator.assignment.cpp", + "keyword.operator.comparison.cpp", + "keyword.operator.cpp", + "keyword.operator.increment.cpp", + "keyword.operator.decrement.cpp", + "keyword.operator.bitwise.shift.cpp" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "punctuation.separator.c", + "punctuation.separator.cpp" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "support.type.posix-reserved.c", + "support.type.posix-reserved.cpp" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "keyword.operator.sizeof.c", + "keyword.operator.sizeof.cpp" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "variable.c", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "storage.type.annotation.java", + "storage.type.object.array.java" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "source.java", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "punctuation.section.block.begin.java", + "punctuation.section.block.end.java", + "punctuation.definition.method-parameters.begin.java", + "punctuation.definition.method-parameters.end.java", + "meta.method.identifier.java", + "punctuation.section.method.begin.java", + "punctuation.section.method.end.java", + "punctuation.terminator.java", + "punctuation.section.class.begin.java", + "punctuation.section.class.end.java", + "punctuation.section.inner-class.begin.java", + "punctuation.section.inner-class.end.java", + "meta.method-call.java", + "punctuation.section.class.begin.bracket.curly.java", + "punctuation.section.class.end.bracket.curly.java", + "punctuation.section.method.begin.bracket.curly.java", + "punctuation.section.method.end.bracket.curly.java", + "punctuation.separator.period.java", + "punctuation.bracket.angle.java", + "punctuation.definition.annotation.java", + "meta.method.body.java" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "meta.method.java", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "storage.modifier.import.java", + "storage.type.java", + "storage.type.generic.java" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator.instanceof.java", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "meta.definition.variable.name.java", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "token.variable.parameter.java", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "import.storage.java", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "token.package.keyword", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "token.package", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "token.storage.type.java", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator.assignment.go", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "keyword.operator.arithmetic.go", + "keyword.operator.address.go" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "entity.name.package.go", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "support.other.namespace.use.php", + "support.other.namespace.use-as.php", + "support.other.namespace.php", + "entity.other.alias.php", + "meta.interface.php" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "keyword.operator.error-control.php", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.type.php", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "punctuation.section.array.begin.php", + "punctuation.section.array.end.php" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "storage.type.php", + "meta.other.type.phpdoc.php", + "keyword.other.type.php", + "keyword.other.array.phpdoc.php" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "meta.function-call.php", + "meta.function-call.object.php", + "meta.function-call.static.php" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "punctuation.definition.parameters.begin.bracket.round.php", + "punctuation.definition.parameters.end.bracket.round.php", + "punctuation.separator.delimiter.php", + "punctuation.section.scope.begin.php", + "punctuation.section.scope.end.php", + "punctuation.terminator.expression.php", + "punctuation.definition.arguments.begin.bracket.round.php", + "punctuation.definition.arguments.end.bracket.round.php", + "punctuation.definition.storage-type.begin.bracket.round.php", + "punctuation.definition.storage-type.end.bracket.round.php", + "punctuation.definition.array.begin.bracket.round.php", + "punctuation.definition.array.end.bracket.round.php", + "punctuation.definition.begin.bracket.round.php", + "punctuation.definition.end.bracket.round.php", + "punctuation.definition.begin.bracket.curly.php", + "punctuation.definition.end.bracket.curly.php", + "punctuation.definition.section.switch-block.end.bracket.curly.php", + "punctuation.definition.section.switch-block.start.bracket.curly.php", + "punctuation.definition.section.switch-block.begin.bracket.curly.php", + "punctuation.definition.section.switch-block.end.bracket.curly.php" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "support.constant.ext.php", + "support.constant.std.php", + "support.constant.core.php", + "support.constant.parser-token.php" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "entity.name.goto-label.php", + "support.other.php" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": [ + "keyword.operator.logical.php", + "keyword.operator.bitwise.php", + "keyword.operator.arithmetic.php" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "keyword.operator.regexp.php", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.operator.comparison.php", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "keyword.operator.heredoc.php", + "keyword.operator.nowdoc.php" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "variable.other.class.php", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "invalid.illegal.non-null-typehinted.php", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "variable.other.generic-type.haskell", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "storage.type.haskell", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "storage.type.cs", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "entity.name.label.cs", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "entity.name.scope-resolution.function.call", + "entity.name.scope-resolution.function.definition" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "punctuation.definition.delayed.unison", + "punctuation.definition.list.begin.unison", + "punctuation.definition.list.end.unison", + "punctuation.definition.ability.begin.unison", + "punctuation.definition.ability.end.unison", + "punctuation.operator.assignment.as.unison", + "punctuation.separator.pipe.unison", + "punctuation.separator.delimiter.unison", + "punctuation.definition.hash.unison" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "support.constant.edge", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "support.type.prelude.elm", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.constant.elm", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "entity.global.clojure", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "meta.symbol.clojure", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "constant.keyword.clojure", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "meta.arguments.coffee", + "variable.parameter.function.coffee" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "storage.modifier.import.groovy", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "meta.method.groovy", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "meta.definition.variable.name.groovy", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "meta.definition.class.inherited.classes.groovy", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "support.variable.semantic.hlsl", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "support.type.texture.hlsl", + "support.type.sampler.hlsl", + "support.type.object.hlsl", + "support.type.object.rw.hlsl", + "support.type.fx.hlsl", + "support.type.object.hlsl" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "text.variable", + "text.bracketed" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "support.type.swift", + "support.type.vb.asp" + ], + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "meta.scope.prerequisites.makefile", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "source.makefile", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "source.ini", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "function.parameter.ruby", + "function.parameter.cs" + ], + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "constant.language.symbol.elixir", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "entity.name.function.xi", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "entity.name.class.xi", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "constant.character.character-class.regexp.xi", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "constant.regexp.xi", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "keyword.control.xi", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "invalid.xi", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "beginning.punctuation.definition.quote.markdown.xi", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "beginning.punctuation.definition.list.markdown.xi", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": "constant.character.xi", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "accent.xi", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "wikiword.xi", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "constant.other.color.rgb-value.xi", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "punctuation.definition.tag.xi", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": [ + "support.constant.property-value.scss", + "support.constant.property-value.css" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "keyword.operator.css", + "keyword.operator.scss", + "keyword.operator.less" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": [ + "support.constant.color.w3c-standard-color-name.css", + "support.constant.color.w3c-standard-color-name.scss" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "punctuation.separator.list.comma.css", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.type.vendored.property-name.css", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.constant.property-value", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "support.constant.font-name", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "entity.other.attribute-name.class.css", + "settings": { + "foreground": "#60d199", + "fontStyle": "normal" + } + }, + { + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#9d6afb", + "fontStyle": "normal" + } + }, + { + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "selector.sass", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "rgb-value", + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "inline-color-decoration rgb-value", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "less rgb-value", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "control.elements", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "keyword.operator.less", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#60d199", + "fontStyle": "normal" + } + }, + { + "scope": "constant.character.entity", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "meta.tag", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "invalid.illegal.bad-ampersand.html", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "markup.heading punctuation.definition.heading", + "entity.name.section" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "entity.name.section.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "punctuation.definition.heading.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "markup.heading.setext", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": [ + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "markup.bold", + "todo.bold" + ], + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "punctuation.definition.bold", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": "punctuation.definition.bold.markdown", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": [ + "markup.italic", + "punctuation.definition.italic", + "todo.emphasis" + ], + "settings": { + "foreground": "#ff678d", + "fontStyle": "italic" + } + }, + { + "scope": "emphasis md", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": [ + "markup.underline.link.markdown", + "markup.underline.link.image.markdown" + ], + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "punctuation.definition.metadata.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "markup.inline.raw.markdown", + "markup.inline.raw.string.markdown" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "punctuation.definition.list.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "beginning.punctuation.definition.list.markdown", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown" + ], + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#737373" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "markup.changed.diff", + "settings": { + "foreground": "#ffab16" + } + }, + { + "scope": [ + "meta.diff.header.from-file", + "meta.diff.header.to-file", + "punctuation.definition.from-file.diff", + "punctuation.definition.to-file.diff" + ], + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#64d1db" + } + }, + { + "scope": "constant.other.character-class.regexp", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#61d5c0" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json > value.json > string.quoted.json", + "source.json meta.structure.array.json > value.json > string.quoted.json", + "source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation", + "source.json meta.structure.array.json > value.json > string.quoted.json > punctuation" + ], + "settings": { + "foreground": "#5ecc71" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json > constant.language.json", + "source.json meta.structure.array.json > constant.language.json" + ], + "settings": { + "foreground": "#08c0ef" + } + }, + { + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "support.type.property-name.json punctuation", + "settings": { + "foreground": "#ff855e" + } + }, + { + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "block.scope.end", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "block.scope.begin", + "settings": { + "foreground": "#636363" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#9d6afb" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#ffd452" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#ff678d" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "invalid.broken", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#fafafa" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#fafafa" + } + } + ], + "semanticTokenColors": { + "comment": "#737373", + "string": "#5ecc71", + "number": "#68cdf2", + "regexp": "#64d1db", + "keyword": "#ff678d", + "variable": "#ffa359", + "parameter": "#a3a3a3", + "property": "#ffa359", + "function": "#9d6afb", + "method": "#9d6afb", + "type": "#d568ea", + "class": "#d568ea", + "namespace": "#ffab16", + "enumMember": "#08c0ef", + "variable.constant": "#ffd452", + "variable.defaultLibrary": "#ffab16", + "decorator": "#69b1ff" + } +}