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"
+ }
+}