chore: import upstream snapshot with attribution
regression / regression-shards (style-16-prod style-9-prod style-17-prod iframe-render-compat variables-prod mp4-h265-sdr, shard-4) (push) Has been cancelled
regression / regression-shards (style-4-prod style-11-prod style-2-prod animejs-adapter typegpu-adapter parallel-capture-regression, shard-5) (push) Has been cancelled
regression / regression-shards (style-7-prod style-8-prod style-10-prod css-spinner-render-compat webm-transparency mp4-h264-sdr webm-vp9, shard-3) (push) Has been cancelled
regression / regression-shards (sub-composition-video style-18-prod raf-ball-render-compat font-variant-numeric sub-comp-t0 sub-comp-id-selector, shard-7) (push) Has been cancelled
Windows render verification / Detect changes (push) Has been cancelled
Windows render verification / Preflight (lint + format) (push) Has been cancelled
Windows render verification / Render on windows-latest (push) Has been cancelled
Windows render verification / Tests on windows-latest (push) Has been cancelled
CI / Detect changes (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Fallow audit (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Producer: integration tests (push) Has been cancelled
CI / Producer: unit tests (push) Has been cancelled
CI / File size check (push) Has been cancelled
CI / Test: skills (push) Has been cancelled
CI / Skills: manifest in sync (push) Has been cancelled
CI / CLI: npx shim (macos-latest) (push) Has been cancelled
CI / CLI: npx shim (ubuntu-latest) (push) Has been cancelled
CI / CLI: npx shim (windows-latest) (push) Has been cancelled
CI / SDK: unit + contract + smoke (push) Has been cancelled
CI / Test: runtime contract (push) Has been cancelled
CI / Studio: load smoke (push) Has been cancelled
CI / Smoke: global install (push) Has been cancelled
CI / CLI smoke (required) (push) Has been cancelled
CI / Semantic PR title (push) Has been cancelled
Player perf / Detect changes (push) Has been cancelled
Player perf / Preflight (lint + format) (push) Has been cancelled
Player perf / player-perf (push) Has been cancelled
Player perf / Perf: drift (push) Has been cancelled
Player perf / Perf: fps (push) Has been cancelled
Player perf / Perf: parity (push) Has been cancelled
Player perf / Perf: scrub (push) Has been cancelled
Player perf / Perf: load (push) Has been cancelled
preview-regression / Detect changes (push) Has been cancelled
preview-regression / Preflight (lint + format) (push) Has been cancelled
preview-regression / Preview parity (push) Has been cancelled
preview-regression / preview-regression (push) Has been cancelled
regression / regression (push) Has been cancelled
regression / Detect changes (push) Has been cancelled
regression / Preflight (lint + format) (push) Has been cancelled
regression / regression-shards (hdr-regression style-5-prod style-3-prod mov-prores, shard-1) (push) Has been cancelled
regression / regression-shards (overlay-montage-prod style-12-prod chat missing-host-comp-id png-sequence portrait-edge-bleed, shard-6) (push) Has been cancelled
regression / regression-shards (style-13-prod style-6-prod vignelli-stacking gsap-letters-render-compat audio-mux-parity, shard-8) (push) Has been cancelled
regression / regression-shards (style-15-prod hdr-hlg-regression style-1-prod many-cuts vfr-screen-recording render-symlinked-assets, shard-2) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Docs / Validate docs (push) Has been cancelled
Sync skills to ClawHub / Publish changed skills (push) Has been cancelled
regression / regression-shards (style-16-prod style-9-prod style-17-prod iframe-render-compat variables-prod mp4-h265-sdr, shard-4) (push) Has been cancelled
regression / regression-shards (style-4-prod style-11-prod style-2-prod animejs-adapter typegpu-adapter parallel-capture-regression, shard-5) (push) Has been cancelled
regression / regression-shards (style-7-prod style-8-prod style-10-prod css-spinner-render-compat webm-transparency mp4-h264-sdr webm-vp9, shard-3) (push) Has been cancelled
regression / regression-shards (sub-composition-video style-18-prod raf-ball-render-compat font-variant-numeric sub-comp-t0 sub-comp-id-selector, shard-7) (push) Has been cancelled
Windows render verification / Detect changes (push) Has been cancelled
Windows render verification / Preflight (lint + format) (push) Has been cancelled
Windows render verification / Render on windows-latest (push) Has been cancelled
Windows render verification / Tests on windows-latest (push) Has been cancelled
CI / Detect changes (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Fallow audit (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Producer: integration tests (push) Has been cancelled
CI / Producer: unit tests (push) Has been cancelled
CI / File size check (push) Has been cancelled
CI / Test: skills (push) Has been cancelled
CI / Skills: manifest in sync (push) Has been cancelled
CI / CLI: npx shim (macos-latest) (push) Has been cancelled
CI / CLI: npx shim (ubuntu-latest) (push) Has been cancelled
CI / CLI: npx shim (windows-latest) (push) Has been cancelled
CI / SDK: unit + contract + smoke (push) Has been cancelled
CI / Test: runtime contract (push) Has been cancelled
CI / Studio: load smoke (push) Has been cancelled
CI / Smoke: global install (push) Has been cancelled
CI / CLI smoke (required) (push) Has been cancelled
CI / Semantic PR title (push) Has been cancelled
Player perf / Detect changes (push) Has been cancelled
Player perf / Preflight (lint + format) (push) Has been cancelled
Player perf / player-perf (push) Has been cancelled
Player perf / Perf: drift (push) Has been cancelled
Player perf / Perf: fps (push) Has been cancelled
Player perf / Perf: parity (push) Has been cancelled
Player perf / Perf: scrub (push) Has been cancelled
Player perf / Perf: load (push) Has been cancelled
preview-regression / Detect changes (push) Has been cancelled
preview-regression / Preflight (lint + format) (push) Has been cancelled
preview-regression / Preview parity (push) Has been cancelled
preview-regression / preview-regression (push) Has been cancelled
regression / regression (push) Has been cancelled
regression / Detect changes (push) Has been cancelled
regression / Preflight (lint + format) (push) Has been cancelled
regression / regression-shards (hdr-regression style-5-prod style-3-prod mov-prores, shard-1) (push) Has been cancelled
regression / regression-shards (overlay-montage-prod style-12-prod chat missing-host-comp-id png-sequence portrait-edge-bleed, shard-6) (push) Has been cancelled
regression / regression-shards (style-13-prod style-6-prod vignelli-stacking gsap-letters-render-compat audio-mux-parity, shard-8) (push) Has been cancelled
regression / regression-shards (style-15-prod hdr-hlg-regression style-1-prod many-cuts vfr-screen-recording render-symlinked-assets, shard-2) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Docs / Validate docs (push) Has been cancelled
Sync skills to ClawHub / Publish changed skills (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# VS Code Theme Visualizer Design Notes
|
||||
|
||||
## Intent
|
||||
|
||||
This POC should feel like a real VS Code tutorial capture, not a generic code window. The purpose is to prove that HyperFrames can render code-writing scenes with faithful product context and theme-aware polish.
|
||||
|
||||
## Visual Identity
|
||||
|
||||
The visual identity is sourced from official VS Code built-in theme JSON files from `microsoft/vscode/extensions/theme-defaults/themes`. Do not invent palette values for the workbench. Colors should flow through the generated theme registry and CSS variables.
|
||||
|
||||
## Theme Set
|
||||
|
||||
- Light 2026
|
||||
- Dark 2026
|
||||
- Dark+
|
||||
- Dark Modern
|
||||
- Light+
|
||||
- Light Modern
|
||||
- Visual Studio Dark
|
||||
- Visual Studio Light
|
||||
- Default High Contrast
|
||||
- Default High Contrast Light
|
||||
|
||||
## Typography
|
||||
|
||||
- Workbench UI: `Inter`, then system UI fallbacks.
|
||||
- Code and terminal: `Menlo`, `Monaco`, `Consolas`, then monospace fallbacks.
|
||||
- Keep letter spacing at `0`.
|
||||
|
||||
## Layout Rules
|
||||
|
||||
- Recreate the VS Code workbench proportions: activity bar, explorer sidebar, editor tabs, editor gutter, status bar, and optional terminal panel.
|
||||
- Use official theme colors for editor, sidebar, tabs, activity bar, panel, terminal, and status bar surfaces.
|
||||
- Keep the composition full-frame at 1920x1080.
|
||||
- Cards are allowed only for the theme selector strip because they are repeated selectable items.
|
||||
- Do not use decorative gradients, glows, or synthetic color accents outside theme-derived colors.
|
||||
|
||||
## Motion Rules
|
||||
|
||||
- Theme changes should feel like command-palette theme switching: quick, crisp, and functional.
|
||||
- Code typing is the hero action. UI chrome should support it without becoming theatrical.
|
||||
- All animation must be deterministic and GSAP-controlled.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 427 KiB |
@@ -0,0 +1,390 @@
|
||||
(() => {
|
||||
const codeLines = [
|
||||
[{ text: "# A small functional toolkit", token: "comment" }],
|
||||
[
|
||||
{ text: "def", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "pluck_deep", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "key", token: "parameter" },
|
||||
{ text: "):", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "return", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "lambda", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "obj", token: "parameter" },
|
||||
{ text: ": ", token: "punctuation" },
|
||||
{ text: "reduce", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "lambda", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "acc", token: "parameter" },
|
||||
{ text: ", ", token: "punctuation" },
|
||||
{ text: "k", token: "parameter" },
|
||||
{ text: ": ", token: "punctuation" },
|
||||
{ text: "acc", token: "variable" },
|
||||
{ text: "[", token: "punctuation" },
|
||||
{ text: "k", token: "variable" },
|
||||
{ text: "]", token: "punctuation" },
|
||||
{ text: ", ", token: "punctuation" },
|
||||
{ text: "key", token: "variable" },
|
||||
{ text: ".split", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "'.'", token: "string" },
|
||||
{ text: "), ", token: "punctuation" },
|
||||
{ text: "obj", token: "variable" },
|
||||
{ text: ")", token: "punctuation" },
|
||||
],
|
||||
[],
|
||||
[
|
||||
{ text: "def", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "compose", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "*", token: "operator" },
|
||||
{ text: "fns", token: "parameter" },
|
||||
{ text: "):", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "return", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "lambda", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "res", token: "parameter" },
|
||||
{ text: ": ", token: "punctuation" },
|
||||
{ text: "reduce", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "lambda", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "acc", token: "parameter" },
|
||||
{ text: ", ", token: "punctuation" },
|
||||
{ text: "fn", token: "parameter" },
|
||||
{ text: ": ", token: "punctuation" },
|
||||
{ text: "fn", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "acc", token: "variable" },
|
||||
{ text: "), ", token: "punctuation" },
|
||||
{ text: "fns", token: "variable" },
|
||||
{ text: ", ", token: "punctuation" },
|
||||
{ text: "res", token: "variable" },
|
||||
{ text: ")", token: "punctuation" },
|
||||
],
|
||||
[],
|
||||
[
|
||||
{ text: "def", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "unfold", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "f", token: "parameter" },
|
||||
{ text: ", ", token: "punctuation" },
|
||||
{ text: "seed", token: "parameter" },
|
||||
{ text: "):", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: '"""Build a list by repeatedly applying f to a seed."""', token: "string" },
|
||||
],
|
||||
[
|
||||
{ text: " acc", token: "variable" },
|
||||
{ text: " = ", token: "operator" },
|
||||
{ text: "[]", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " while", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "True", token: "className" },
|
||||
{ text: ":", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " result", token: "variable" },
|
||||
{ text: " = ", token: "operator" },
|
||||
{ text: "f", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "seed", token: "variable" },
|
||||
{ text: ")", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " if", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "result", token: "variable" },
|
||||
{ text: " is ", token: "keyword" },
|
||||
{ text: "None", token: "className" },
|
||||
{ text: ":", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " return", token: "keyword" },
|
||||
{ text: " ", token: "plain" },
|
||||
{ text: "acc", token: "variable" },
|
||||
],
|
||||
[
|
||||
{ text: " acc", token: "variable" },
|
||||
{ text: ".append", token: "function" },
|
||||
{ text: "(", token: "punctuation" },
|
||||
{ text: "result", token: "variable" },
|
||||
{ text: "[", token: "punctuation" },
|
||||
{ text: "0", token: "number" },
|
||||
{ text: "])", token: "punctuation" },
|
||||
],
|
||||
[
|
||||
{ text: " seed", token: "variable" },
|
||||
{ text: " = ", token: "operator" },
|
||||
{ text: "result", token: "variable" },
|
||||
{ text: "[", token: "punctuation" },
|
||||
{ text: "1", token: "number" },
|
||||
{ text: "]", token: "punctuation" },
|
||||
],
|
||||
[],
|
||||
];
|
||||
|
||||
const fallback = {
|
||||
"activityBar.background": "#181818",
|
||||
"activityBar.foreground": "#d7d7d7",
|
||||
"activityBar.inactiveForeground": "#868686",
|
||||
"activityBar.activeBorder": "#0078d4",
|
||||
"sideBar.background": "#181818",
|
||||
"sideBar.foreground": "#cccccc",
|
||||
"sideBar.border": "#2b2b2b",
|
||||
"tab.activeBackground": "#1f1f1f",
|
||||
"tab.activeForeground": "#ffffff",
|
||||
"tab.inactiveBackground": "#181818",
|
||||
"tab.inactiveForeground": "#9d9d9d",
|
||||
"tab.border": "#2b2b2b",
|
||||
"editor.background": "#1f1f1f",
|
||||
"editor.foreground": "#cccccc",
|
||||
"editor.lineHighlightBackground": "#ffffff0a",
|
||||
"editorLineNumber.foreground": "#6e7681",
|
||||
"editorLineNumber.activeForeground": "#cccccc",
|
||||
"panel.background": "#181818",
|
||||
"panel.border": "#2b2b2b",
|
||||
"statusBar.background": "#181818",
|
||||
"statusBar.foreground": "#cccccc",
|
||||
"statusBar.border": "#2b2b2b",
|
||||
"titleBar.activeBackground": "#181818",
|
||||
"titleBar.activeForeground": "#cccccc",
|
||||
};
|
||||
|
||||
function color(theme, key) {
|
||||
return theme.colors[key] || fallback[key] || theme.colors.foreground || "#cccccc";
|
||||
}
|
||||
|
||||
function solarizedGrey(theme) {
|
||||
return theme.colors["tab.inactiveForeground"] || theme.colors["editor.foreground"] || "#586E75";
|
||||
}
|
||||
|
||||
function setVar(root, name, value) {
|
||||
root.style.setProperty(name, value);
|
||||
}
|
||||
|
||||
function applyTheme(root, theme) {
|
||||
const solarizedUiGrey = theme.id === "solarized-light" ? solarizedGrey(theme) : null;
|
||||
setVar(root, "--activity-bg", color(theme, "activityBar.background"));
|
||||
setVar(root, "--activity-fg", solarizedUiGrey || color(theme, "activityBar.foreground"));
|
||||
setVar(
|
||||
root,
|
||||
"--activity-muted",
|
||||
solarizedUiGrey || color(theme, "activityBar.inactiveForeground"),
|
||||
);
|
||||
setVar(root, "--activity-active", color(theme, "activityBar.activeBorder"));
|
||||
setVar(root, "--sidebar-bg", color(theme, "sideBar.background"));
|
||||
setVar(root, "--sidebar-fg", solarizedUiGrey || color(theme, "sideBar.foreground"));
|
||||
setVar(root, "--sidebar-border", color(theme, "sideBar.border"));
|
||||
setVar(root, "--tab-bg", color(theme, "tab.inactiveBackground"));
|
||||
setVar(root, "--tab-active-bg", color(theme, "tab.activeBackground"));
|
||||
setVar(root, "--tab-active-fg", solarizedUiGrey || color(theme, "tab.activeForeground"));
|
||||
setVar(root, "--tab-inactive-fg", solarizedUiGrey || color(theme, "tab.inactiveForeground"));
|
||||
setVar(root, "--tab-border", color(theme, "tab.border"));
|
||||
setVar(root, "--editor-bg", color(theme, "editor.background"));
|
||||
setVar(root, "--editor-fg", color(theme, "editor.foreground"));
|
||||
setVar(root, "--editor-line", color(theme, "editor.lineHighlightBackground"));
|
||||
setVar(root, "--gutter-fg", color(theme, "editorLineNumber.foreground"));
|
||||
setVar(root, "--gutter-active-fg", color(theme, "editorLineNumber.activeForeground"));
|
||||
setVar(root, "--panel-bg", color(theme, "panel.background"));
|
||||
setVar(root, "--panel-border", color(theme, "panel.border"));
|
||||
setVar(root, "--status-bg", color(theme, "statusBar.background"));
|
||||
setVar(root, "--status-fg", color(theme, "statusBar.foreground"));
|
||||
setVar(root, "--status-border", color(theme, "statusBar.border"));
|
||||
setVar(root, "--status-remote-bg", color(theme, "statusBarItem.remoteBackground"));
|
||||
setVar(
|
||||
root,
|
||||
"--status-remote-fg",
|
||||
solarizedUiGrey || color(theme, "statusBarItem.remoteForeground"),
|
||||
);
|
||||
setVar(root, "--title-bg", color(theme, "titleBar.activeBackground"));
|
||||
setVar(root, "--title-fg", solarizedUiGrey || color(theme, "titleBar.activeForeground"));
|
||||
setVar(root, "--token-comment", theme.tokens.comment);
|
||||
setVar(root, "--token-keyword", theme.tokens.keyword);
|
||||
setVar(root, "--token-function", theme.tokens.function);
|
||||
setVar(root, "--token-string", theme.tokens.string);
|
||||
setVar(root, "--token-number", theme.tokens.number);
|
||||
setVar(root, "--token-variable", theme.tokens.variable);
|
||||
setVar(root, "--token-parameter", theme.tokens.parameter);
|
||||
setVar(root, "--token-operator", theme.tokens.operator);
|
||||
setVar(root, "--token-punctuation", theme.tokens.punctuation);
|
||||
setVar(root, "--token-class-name", theme.tokens.className);
|
||||
}
|
||||
|
||||
function renderCode(root) {
|
||||
const code = root.querySelector(".code");
|
||||
codeLines.forEach((segments, index) => {
|
||||
const line = document.createElement("div");
|
||||
line.className = "line";
|
||||
line.dataset.lineIndex = String(index);
|
||||
|
||||
const lineNumber = document.createElement("span");
|
||||
lineNumber.className = "line-number";
|
||||
lineNumber.textContent = String(index + 1);
|
||||
line.appendChild(lineNumber);
|
||||
|
||||
const lineCode = document.createElement("span");
|
||||
lineCode.className = "line-code";
|
||||
segments.forEach((segment) => {
|
||||
[...segment.text].forEach((char) => {
|
||||
const span = document.createElement("span");
|
||||
span.className =
|
||||
segment.token === "plain"
|
||||
? "char"
|
||||
: "char tok-" + segment.token.replace(/[A-Z]/g, (match) => "-" + match.toLowerCase());
|
||||
span.dataset.lineIndex = String(index);
|
||||
span.textContent = char;
|
||||
lineCode.appendChild(span);
|
||||
});
|
||||
});
|
||||
line.appendChild(lineCode);
|
||||
code.appendChild(line);
|
||||
});
|
||||
|
||||
const caret = document.createElement("span");
|
||||
caret.className = "caret";
|
||||
root.querySelector(".editor").appendChild(caret);
|
||||
}
|
||||
|
||||
function caretPointForElement(editor, el) {
|
||||
const editorBox = editor.getBoundingClientRect();
|
||||
const charBox = el.getBoundingClientRect();
|
||||
return {
|
||||
x: charBox.right - editorBox.left + 2,
|
||||
y: charBox.top - editorBox.top + 3,
|
||||
};
|
||||
}
|
||||
|
||||
function caretPointForLineStart(editor, line) {
|
||||
const editorBox = editor.getBoundingClientRect();
|
||||
const lineBox = line.getBoundingClientRect();
|
||||
const codeBox = line.querySelector(".line-code").getBoundingClientRect();
|
||||
return {
|
||||
x: codeBox.left - editorBox.left,
|
||||
y: lineBox.top - editorBox.top + 3,
|
||||
};
|
||||
}
|
||||
|
||||
function lineHighlightY(editor, line) {
|
||||
const editorBox = editor.getBoundingClientRect();
|
||||
const lineBox = line.getBoundingClientRect();
|
||||
return lineBox.top - editorBox.top;
|
||||
}
|
||||
|
||||
function buildTimeline(root, compositionId) {
|
||||
const tl = gsap.timeline({ paused: true });
|
||||
const editor = root.querySelector(".editor");
|
||||
const caret = root.querySelector(".caret");
|
||||
const activeLine = root.querySelector(".active-line");
|
||||
const lineEls = gsap.utils.toArray(root.querySelectorAll(".line"));
|
||||
const lineStartTimes = [];
|
||||
const charSchedule = [];
|
||||
let cursorTime = 0.95;
|
||||
|
||||
lineEls.forEach((line, lineIndex) => {
|
||||
const lineChars = gsap.utils.toArray(line.querySelectorAll(".char"));
|
||||
lineStartTimes[lineIndex] = cursorTime;
|
||||
lineChars.forEach((char, charIndex) => {
|
||||
charSchedule.push({ char, time: cursorTime + charIndex * 0.012 });
|
||||
});
|
||||
cursorTime += Math.max(lineChars.length * 0.012, 0.08) + 0.045;
|
||||
});
|
||||
|
||||
gsap.set(activeLine, { y: lineHighlightY(editor, lineEls[0]) });
|
||||
gsap.set(caret, caretPointForLineStart(editor, lineEls[0]));
|
||||
|
||||
tl.from(
|
||||
root.querySelector(".header"),
|
||||
{ y: 24, opacity: 0, duration: 0.45, ease: "power3.out" },
|
||||
0,
|
||||
);
|
||||
tl.from(
|
||||
root.querySelector(".workbench"),
|
||||
{ y: 42, opacity: 0, scale: 0.986, duration: 0.58, ease: "power3.out" },
|
||||
0.1,
|
||||
);
|
||||
tl.from(activeLine, { opacity: 0, duration: 0.22, ease: "power2.out" }, 0.74);
|
||||
lineStartTimes.forEach((time, lineIndex) => {
|
||||
const line = lineEls[lineIndex];
|
||||
tl.set(activeLine, { y: lineHighlightY(editor, line) }, time);
|
||||
tl.set(caret, caretPointForLineStart(editor, line), time);
|
||||
tl.call(
|
||||
() => {
|
||||
lineEls.forEach((item) => item.classList.toggle("is-active", item === line));
|
||||
},
|
||||
[],
|
||||
time,
|
||||
);
|
||||
});
|
||||
charSchedule.forEach(({ char, time }) => {
|
||||
tl.set(char, { opacity: 1 }, time);
|
||||
tl.set(caret, caretPointForElement(editor, char), time + 0.002);
|
||||
});
|
||||
tl.to(
|
||||
root.querySelector(".caret"),
|
||||
{ opacity: 0, duration: 0.34, repeat: 25, yoyo: true, ease: "steps(1)" },
|
||||
0.95,
|
||||
);
|
||||
tl.from(
|
||||
root.querySelector(".terminal"),
|
||||
{ y: 140, opacity: 0, duration: 0.56, ease: "power3.out" },
|
||||
7.55,
|
||||
);
|
||||
tl.from(
|
||||
root.querySelector(".terminal-body").children,
|
||||
{ opacity: 0, y: 8, duration: 0.24, stagger: 0.16, ease: "power2.out" },
|
||||
8.05,
|
||||
);
|
||||
tl.to(
|
||||
root.querySelector(".workbench"),
|
||||
{ rotateY: -10.5, z: 74, duration: 0.72, ease: "power2.inOut" },
|
||||
9.35,
|
||||
);
|
||||
tl.to(
|
||||
root.querySelector(".workbench"),
|
||||
{ rotateY: 0, z: 0, duration: 0.62, ease: "power2.inOut" },
|
||||
10.08,
|
||||
);
|
||||
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines[compositionId] = tl;
|
||||
|
||||
const previewTime = new URLSearchParams(window.location.search).get("t");
|
||||
if (previewTime !== null) {
|
||||
tl.time(Number(previewTime));
|
||||
}
|
||||
}
|
||||
|
||||
window.createVSCodeThemeComposition = (compositionId, themeOrId) => {
|
||||
const root =
|
||||
document.querySelector('[data-composition-id="' + compositionId + '"] .vscode-theme-scene') ||
|
||||
document.querySelector('.vscode-theme-scene[data-composition-id="' + compositionId + '"]') ||
|
||||
document.querySelector('[data-composition-id="' + compositionId + '"]');
|
||||
const theme =
|
||||
typeof themeOrId === "string"
|
||||
? window.VSCODE_THEME_REGISTRY.find((item) => item.id === themeOrId)
|
||||
: themeOrId;
|
||||
if (!root || !theme) return;
|
||||
root.querySelector(".theme-label").textContent = theme.label;
|
||||
root.querySelector(".theme-source").textContent = theme.sourceFile;
|
||||
applyTheme(root, theme);
|
||||
renderCode(root);
|
||||
buildTimeline(root, compositionId);
|
||||
};
|
||||
})();
|
||||
@@ -0,0 +1,483 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
font-family:
|
||||
Inter,
|
||||
-apple-system,
|
||||
BlinkMacSystemFont,
|
||||
"Segoe UI",
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
.vscode-theme-scene {
|
||||
--activity-bg: #181818;
|
||||
--activity-fg: #d7d7d7;
|
||||
--activity-muted: #868686;
|
||||
--activity-active: #0078d4;
|
||||
--sidebar-bg: #181818;
|
||||
--sidebar-fg: #cccccc;
|
||||
--sidebar-border: #2b2b2b;
|
||||
--tab-bg: #181818;
|
||||
--tab-active-bg: #1f1f1f;
|
||||
--tab-active-fg: #ffffff;
|
||||
--tab-inactive-fg: #9d9d9d;
|
||||
--tab-border: #2b2b2b;
|
||||
--editor-bg: #1f1f1f;
|
||||
--editor-fg: #cccccc;
|
||||
--editor-line: rgba(255, 255, 255, 0.04);
|
||||
--gutter-fg: #6e7681;
|
||||
--gutter-active-fg: #cccccc;
|
||||
--panel-bg: #181818;
|
||||
--panel-border: #2b2b2b;
|
||||
--status-bg: #181818;
|
||||
--status-fg: #cccccc;
|
||||
--status-border: #2b2b2b;
|
||||
--title-bg: #181818;
|
||||
--title-fg: #cccccc;
|
||||
--token-comment: #6a9955;
|
||||
--token-keyword: #c586c0;
|
||||
--token-function: #dcdcaa;
|
||||
--token-string: #ce9178;
|
||||
--token-number: #b5cea8;
|
||||
--token-variable: #9cdcfe;
|
||||
--token-parameter: #9cdcfe;
|
||||
--token-operator: #d4d4d4;
|
||||
--token-punctuation: #d4d4d4;
|
||||
--token-class-name: #4ec9b0;
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background:
|
||||
linear-gradient(180deg, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0.32)),
|
||||
url("../assets/background.jpeg") center / cover no-repeat;
|
||||
color: var(--editor-fg);
|
||||
}
|
||||
|
||||
.scene-content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 54px 70px 92px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
perspective: 2200px;
|
||||
perspective-origin: 56% 52%;
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: end;
|
||||
justify-content: space-between;
|
||||
min-height: 66px;
|
||||
text-shadow:
|
||||
0 2px 12px rgba(0, 0, 0, 0.42),
|
||||
0 14px 34px rgba(0, 0, 0, 0.32);
|
||||
}
|
||||
|
||||
.kicker {
|
||||
margin: 0 0 7px;
|
||||
color: var(--gutter-fg);
|
||||
font-size: 15px;
|
||||
font-weight: 650;
|
||||
text-transform: uppercase;
|
||||
text-shadow:
|
||||
0 2px 8px rgba(0, 0, 0, 0.48),
|
||||
0 10px 26px rgba(0, 0, 0, 0.36);
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 0;
|
||||
color: var(--editor-fg);
|
||||
font-size: 44px;
|
||||
line-height: 1;
|
||||
font-weight: 760;
|
||||
}
|
||||
|
||||
.source-note {
|
||||
width: 510px;
|
||||
color: var(--gutter-fg);
|
||||
font-size: 16px;
|
||||
line-height: 1.35;
|
||||
text-align: right;
|
||||
text-shadow:
|
||||
0 2px 10px rgba(0, 0, 0, 0.46),
|
||||
0 12px 30px rgba(0, 0, 0, 0.34);
|
||||
}
|
||||
|
||||
.workbench {
|
||||
height: 824px;
|
||||
display: grid;
|
||||
grid-template-columns: 54px 290px 1fr;
|
||||
grid-template-rows: 36px 1fr 26px;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--sidebar-border);
|
||||
border-radius: 8px;
|
||||
background: var(--editor-bg);
|
||||
box-shadow: 0 34px 90px rgba(0, 0, 0, 0.42);
|
||||
transform: translateZ(0);
|
||||
transform-origin: 82% 50%;
|
||||
transform-style: preserve-3d;
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.titlebar {
|
||||
grid-column: 1 / -1;
|
||||
display: grid;
|
||||
grid-template-columns: 120px 1fr 210px;
|
||||
align-items: center;
|
||||
background: var(--title-bg);
|
||||
color: var(--title-fg);
|
||||
border-bottom: 1px solid var(--tab-border);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.traffic {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.traffic span {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.traffic span:nth-child(1) {
|
||||
background: #ff5f57;
|
||||
}
|
||||
.traffic span:nth-child(2) {
|
||||
background: #ffbd2e;
|
||||
}
|
||||
.traffic span:nth-child(3) {
|
||||
background: #28c840;
|
||||
}
|
||||
|
||||
.window-title {
|
||||
justify-self: center;
|
||||
opacity: 0.84;
|
||||
}
|
||||
|
||||
.command-center {
|
||||
justify-self: end;
|
||||
width: 176px;
|
||||
height: 22px;
|
||||
margin-right: 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px solid color-mix(in srgb, var(--title-fg), transparent 78%);
|
||||
border-radius: 5px;
|
||||
color: color-mix(in srgb, var(--title-fg), transparent 18%);
|
||||
}
|
||||
|
||||
.activity {
|
||||
grid-row: 2 / 3;
|
||||
background: var(--activity-bg);
|
||||
border-right: 1px solid var(--sidebar-border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 10px 0;
|
||||
gap: 18px;
|
||||
}
|
||||
|
||||
.activity-icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
color: var(--activity-muted);
|
||||
}
|
||||
|
||||
.activity-icon.active {
|
||||
color: var(--activity-fg);
|
||||
border-left: 2px solid var(--activity-active);
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
grid-row: 2 / 3;
|
||||
background: var(--sidebar-bg);
|
||||
color: var(--sidebar-fg);
|
||||
border-right: 1px solid var(--sidebar-border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.sidebar-title {
|
||||
height: 38px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
color: var(--sidebar-fg);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 0 14px;
|
||||
background: color-mix(in srgb, var(--sidebar-bg), var(--sidebar-fg) 5%);
|
||||
border-top: 1px solid var(--sidebar-border);
|
||||
border-bottom: 1px solid var(--sidebar-border);
|
||||
color: var(--sidebar-fg);
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tree {
|
||||
padding: 8px 0;
|
||||
font-size: 13px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.tree-row {
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
padding: 0 10px 0 18px;
|
||||
color: color-mix(in srgb, var(--sidebar-fg), transparent 8%);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tree-row.child {
|
||||
padding-left: 34px;
|
||||
}
|
||||
|
||||
.tree-row.selected {
|
||||
background: color-mix(in srgb, var(--sidebar-fg), transparent 88%);
|
||||
color: var(--sidebar-fg);
|
||||
}
|
||||
|
||||
.editor-area {
|
||||
grid-row: 2 / 3;
|
||||
display: grid;
|
||||
grid-template-rows: 36px 30px 1fr 138px;
|
||||
min-width: 0;
|
||||
background: var(--editor-bg);
|
||||
}
|
||||
|
||||
.tabs {
|
||||
display: flex;
|
||||
background: var(--tab-bg);
|
||||
border-bottom: 1px solid var(--tab-border);
|
||||
}
|
||||
|
||||
.tab {
|
||||
width: 205px;
|
||||
height: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 0 13px;
|
||||
border-right: 1px solid var(--tab-border);
|
||||
background: var(--tab-active-bg);
|
||||
color: var(--tab-active-fg);
|
||||
border-top: 2px solid var(--activity-active);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.tab.inactive {
|
||||
background: var(--tab-bg);
|
||||
color: var(--tab-inactive-fg);
|
||||
border-top-color: transparent;
|
||||
}
|
||||
|
||||
.breadcrumbs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
padding: 0 18px;
|
||||
color: var(--gutter-fg);
|
||||
border-bottom: 1px solid color-mix(in srgb, var(--tab-border), transparent 20%);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.editor {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: var(--editor-bg);
|
||||
color: var(--editor-fg);
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
font-size: 18px;
|
||||
line-height: 1.52;
|
||||
}
|
||||
|
||||
.active-line {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
height: 28px;
|
||||
background: var(--editor-line);
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.code {
|
||||
position: relative;
|
||||
padding: 20px 36px 18px 0;
|
||||
}
|
||||
|
||||
.line {
|
||||
height: 28px;
|
||||
display: grid;
|
||||
grid-template-columns: 72px 1fr;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.line-number {
|
||||
padding-right: 18px;
|
||||
color: var(--gutter-fg);
|
||||
text-align: right;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.line.is-active .line-number {
|
||||
color: var(--gutter-active-fg);
|
||||
}
|
||||
|
||||
.line-code {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.char {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.tok-comment {
|
||||
color: var(--token-comment);
|
||||
}
|
||||
.tok-keyword {
|
||||
color: var(--token-keyword);
|
||||
}
|
||||
.tok-function {
|
||||
color: var(--token-function);
|
||||
}
|
||||
.tok-string {
|
||||
color: var(--token-string);
|
||||
}
|
||||
.tok-number {
|
||||
color: var(--token-number);
|
||||
}
|
||||
.tok-variable {
|
||||
color: var(--token-variable);
|
||||
}
|
||||
.tok-parameter {
|
||||
color: var(--token-parameter);
|
||||
}
|
||||
.tok-operator {
|
||||
color: var(--token-operator);
|
||||
}
|
||||
.tok-punctuation {
|
||||
color: var(--token-punctuation);
|
||||
}
|
||||
.tok-class-name {
|
||||
color: var(--token-class-name);
|
||||
}
|
||||
|
||||
.caret {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 3;
|
||||
display: block;
|
||||
width: 2px;
|
||||
height: 22px;
|
||||
background: var(--editor-fg);
|
||||
pointer-events: none;
|
||||
will-change: transform, opacity;
|
||||
}
|
||||
|
||||
.terminal {
|
||||
display: grid;
|
||||
grid-template-rows: 32px 1fr;
|
||||
background: var(--panel-bg);
|
||||
border-top: 1px solid var(--panel-border);
|
||||
color: var(--editor-fg);
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.panel-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 22px;
|
||||
padding: 0 18px;
|
||||
border-bottom: 1px solid var(--panel-border);
|
||||
color: var(--gutter-fg);
|
||||
font-family:
|
||||
Inter,
|
||||
-apple-system,
|
||||
BlinkMacSystemFont,
|
||||
"Segoe UI",
|
||||
sans-serif;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.panel-tabs .active {
|
||||
color: var(--editor-fg);
|
||||
border-bottom: 1px solid var(--activity-active);
|
||||
height: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.terminal-body {
|
||||
padding: 12px 20px;
|
||||
color: var(--editor-fg);
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.prompt {
|
||||
color: var(--token-function);
|
||||
}
|
||||
|
||||
.statusbar {
|
||||
grid-column: 1 / -1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: var(--status-bg);
|
||||
color: var(--status-fg);
|
||||
border-top: 1px solid var(--status-border);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.status-left,
|
||||
.status-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
.remote {
|
||||
align-self: stretch;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 12px;
|
||||
margin-left: -12px;
|
||||
background: var(--status-remote-bg, var(--activity-active));
|
||||
color: var(--status-remote-fg, #ffffff);
|
||||
}
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
}
|
||||
@@ -0,0 +1,478 @@
|
||||
// Generated by scripts/build-theme-registry.mjs from official VS Code theme JSON.
|
||||
window.VSCODE_THEME_REGISTRY = [
|
||||
{
|
||||
id: "light-2026",
|
||||
label: "Light 2026",
|
||||
sourceFile: "2026-light.json",
|
||||
uiTheme: "vs",
|
||||
colors: {
|
||||
"activityBar.activeBorder": "#000000",
|
||||
"activityBar.background": "#FAFAFD",
|
||||
"activityBar.border": "#F0F1F2FF",
|
||||
"activityBar.foreground": "#202020",
|
||||
"activityBar.inactiveForeground": "#606060",
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#202020",
|
||||
"editor.lineHighlightBackground": "#EAEAEA40",
|
||||
"editor.selectionBackground": "#0069CC40",
|
||||
"editorGroup.border": "#E5E5E5",
|
||||
"editorGroupHeader.tabsBackground": "#FAFAFD",
|
||||
"editorGroupHeader.tabsBorder": "#F0F1F2FF",
|
||||
"editorLineNumber.activeForeground": "#202020",
|
||||
"editorLineNumber.foreground": "#606060",
|
||||
foreground: "#202020",
|
||||
"icon.foreground": "#606060",
|
||||
"panel.background": "#FAFAFD",
|
||||
"panel.border": "#F0F1F2FF",
|
||||
"sideBar.background": "#FAFAFD",
|
||||
"sideBar.border": "#F0F1F2FF",
|
||||
"sideBar.foreground": "#202020",
|
||||
"sideBarSectionHeader.background": "#FAFAFD",
|
||||
"sideBarSectionHeader.border": "#F0F1F2FF",
|
||||
"sideBarSectionHeader.foreground": "#202020",
|
||||
"sideBarTitle.foreground": "#202020",
|
||||
"statusBar.background": "#FAFAFD",
|
||||
"statusBar.border": "#F0F1F2FF",
|
||||
"statusBar.foreground": "#606060",
|
||||
"statusBarItem.remoteBackground": "#005FB8",
|
||||
"statusBarItem.remoteForeground": "#FFFFFF",
|
||||
"tab.activeBackground": "#FFFFFF",
|
||||
"tab.activeBorder": "#FFFFFF",
|
||||
"tab.activeBorderTop": "#000000",
|
||||
"tab.activeForeground": "#202020",
|
||||
"tab.border": "#F0F1F2FF",
|
||||
"tab.inactiveBackground": "#FAFAFD",
|
||||
"tab.inactiveForeground": "#606060",
|
||||
"terminal.foreground": "#3B3B3B",
|
||||
"terminalCursor.foreground": "#202020",
|
||||
"titleBar.activeBackground": "#FAFAFD",
|
||||
"titleBar.activeForeground": "#606060",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#6e7781",
|
||||
keyword: "#1f2328",
|
||||
function: "#0550ae",
|
||||
string: "#0a3069",
|
||||
number: "#0550ae",
|
||||
variable: "#1f2328",
|
||||
parameter: "#953800",
|
||||
operator: "#cf222e",
|
||||
punctuation: "#953800",
|
||||
className: "#116329",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "dark-2026",
|
||||
label: "Dark 2026",
|
||||
sourceFile: "2026-dark.json",
|
||||
uiTheme: "vs-dark",
|
||||
colors: {
|
||||
"activityBar.activeBorder": "#bfbfbf",
|
||||
"activityBar.background": "#191A1B",
|
||||
"activityBar.border": "#2A2B2CFF",
|
||||
"activityBar.foreground": "#bfbfbf",
|
||||
"activityBar.inactiveForeground": "#8C8C8C",
|
||||
"editor.background": "#121314",
|
||||
"editor.foreground": "#BBBEBF",
|
||||
"editor.lineHighlightBackground": "#242526",
|
||||
"editor.selectionBackground": "#276782dd",
|
||||
"editorGroup.border": "#FFFFFF17",
|
||||
"editorGroupHeader.tabsBackground": "#191A1B",
|
||||
"editorGroupHeader.tabsBorder": "#2A2B2CFF",
|
||||
"editorLineNumber.activeForeground": "#BBBEBF",
|
||||
"editorLineNumber.foreground": "#858889",
|
||||
foreground: "#bfbfbf",
|
||||
"icon.foreground": "#8C8C8C",
|
||||
"panel.background": "#191A1B",
|
||||
"panel.border": "#2A2B2CFF",
|
||||
"sideBar.background": "#191A1B",
|
||||
"sideBar.border": "#2A2B2CFF",
|
||||
"sideBar.foreground": "#bfbfbf",
|
||||
"sideBarSectionHeader.background": "#191A1B",
|
||||
"sideBarSectionHeader.border": "#2A2B2CFF",
|
||||
"sideBarSectionHeader.foreground": "#bfbfbf",
|
||||
"sideBarTitle.foreground": "#bfbfbf",
|
||||
"statusBar.background": "#191A1B",
|
||||
"statusBar.border": "#2A2B2CFF",
|
||||
"statusBar.foreground": "#8C8C8C",
|
||||
"statusBarItem.remoteBackground": "#0078D4",
|
||||
"statusBarItem.remoteForeground": "#FFFFFF",
|
||||
"tab.activeBackground": "#121314",
|
||||
"tab.activeBorder": "#121314",
|
||||
"tab.activeBorderTop": "#3994BC",
|
||||
"tab.activeForeground": "#bfbfbf",
|
||||
"tab.border": "#2A2B2CFF",
|
||||
"tab.inactiveBackground": "#191A1B",
|
||||
"tab.inactiveForeground": "#8C8C8C",
|
||||
"terminal.background": "#191A1B",
|
||||
"terminal.foreground": "#CCCCCC",
|
||||
"terminalCursor.foreground": "#bfbfbf",
|
||||
"titleBar.activeBackground": "#191A1B",
|
||||
"titleBar.activeForeground": "#8C8C8C",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#8b949e",
|
||||
keyword: "#c9d1d9",
|
||||
function: "#79c0ff",
|
||||
string: "#a5d6ff",
|
||||
number: "#79c0ff",
|
||||
variable: "#c9d1d9",
|
||||
parameter: "#ffa657",
|
||||
operator: "#ff7b72",
|
||||
punctuation: "#ffa657",
|
||||
className: "#7ee787",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "dark-plus",
|
||||
label: "Dark+",
|
||||
sourceFile: "dark_plus.json",
|
||||
uiTheme: "vs-dark",
|
||||
colors: {
|
||||
"editor.background": "#1E1E1E",
|
||||
"editor.foreground": "#D4D4D4",
|
||||
"sideBarSectionHeader.background": "#0000",
|
||||
"sideBarSectionHeader.border": "#ccc3",
|
||||
"sideBarTitle.foreground": "#BBBBBB",
|
||||
"statusBarItem.remoteBackground": "#16825D",
|
||||
"statusBarItem.remoteForeground": "#FFF",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#6A9955",
|
||||
keyword: "#d7ba7d",
|
||||
function: "#DCDCAA",
|
||||
string: "#d16969",
|
||||
number: "#b5cea8",
|
||||
variable: "#4FC1FF",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#d7ba7d",
|
||||
punctuation: "#CE9178",
|
||||
className: "#4EC9B0",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "dark-modern",
|
||||
label: "Dark Modern",
|
||||
sourceFile: "dark_modern.json",
|
||||
uiTheme: "vs-dark",
|
||||
colors: {
|
||||
"activityBar.activeBorder": "#0078D4",
|
||||
"activityBar.background": "#181818",
|
||||
"activityBar.border": "#2B2B2B",
|
||||
"activityBar.foreground": "#D7D7D7",
|
||||
"activityBar.inactiveForeground": "#868686",
|
||||
"editor.background": "#1F1F1F",
|
||||
"editor.foreground": "#CCCCCC",
|
||||
"editorGroup.border": "#FFFFFF17",
|
||||
"editorGroupHeader.tabsBackground": "#181818",
|
||||
"editorGroupHeader.tabsBorder": "#2B2B2B",
|
||||
"editorLineNumber.activeForeground": "#CCCCCC",
|
||||
"editorLineNumber.foreground": "#6E7681",
|
||||
foreground: "#CCCCCC",
|
||||
"icon.foreground": "#CCCCCC",
|
||||
"panel.background": "#181818",
|
||||
"panel.border": "#2B2B2B",
|
||||
"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.border": "#2B2B2B",
|
||||
"statusBar.foreground": "#CCCCCC",
|
||||
"statusBarItem.remoteBackground": "#0078D4",
|
||||
"statusBarItem.remoteForeground": "#FFFFFF",
|
||||
"tab.activeBackground": "#1F1F1F",
|
||||
"tab.activeBorder": "#1F1F1F",
|
||||
"tab.activeBorderTop": "#0078D4",
|
||||
"tab.activeForeground": "#FFFFFF",
|
||||
"tab.border": "#2B2B2B",
|
||||
"tab.inactiveBackground": "#181818",
|
||||
"tab.inactiveForeground": "#9D9D9D",
|
||||
"terminal.foreground": "#CCCCCC",
|
||||
"titleBar.activeBackground": "#181818",
|
||||
"titleBar.activeForeground": "#CCCCCC",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#6A9955",
|
||||
keyword: "#d7ba7d",
|
||||
function: "#DCDCAA",
|
||||
string: "#d16969",
|
||||
number: "#b5cea8",
|
||||
variable: "#4FC1FF",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#d7ba7d",
|
||||
punctuation: "#CE9178",
|
||||
className: "#4EC9B0",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "light-plus",
|
||||
label: "Light+",
|
||||
sourceFile: "light_plus.json",
|
||||
uiTheme: "vs",
|
||||
colors: {
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#000000",
|
||||
"sideBarSectionHeader.background": "#0000",
|
||||
"sideBarSectionHeader.border": "#61616130",
|
||||
"sideBarTitle.foreground": "#6F6F6F",
|
||||
"statusBarItem.remoteBackground": "#16825D",
|
||||
"statusBarItem.remoteForeground": "#FFF",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#008000",
|
||||
keyword: "#EE0000",
|
||||
function: "#795E26",
|
||||
string: "#811f3f",
|
||||
number: "#098658",
|
||||
variable: "#0070C1",
|
||||
parameter: "#001080",
|
||||
operator: "#EE0000",
|
||||
punctuation: "#d16969",
|
||||
className: "#267f99",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "light-modern",
|
||||
label: "Light Modern",
|
||||
sourceFile: "light_modern.json",
|
||||
uiTheme: "vs",
|
||||
colors: {
|
||||
"activityBar.activeBorder": "#005FB8",
|
||||
"activityBar.background": "#F8F8F8",
|
||||
"activityBar.border": "#E5E5E5",
|
||||
"activityBar.foreground": "#1F1F1F",
|
||||
"activityBar.inactiveForeground": "#616161",
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#3B3B3B",
|
||||
"editorGroup.border": "#E5E5E5",
|
||||
"editorGroupHeader.tabsBackground": "#F8F8F8",
|
||||
"editorGroupHeader.tabsBorder": "#E5E5E5",
|
||||
"editorLineNumber.activeForeground": "#171184",
|
||||
"editorLineNumber.foreground": "#6E7681",
|
||||
foreground: "#3B3B3B",
|
||||
"icon.foreground": "#3B3B3B",
|
||||
"panel.background": "#F8F8F8",
|
||||
"panel.border": "#E5E5E5",
|
||||
"sideBar.background": "#F8F8F8",
|
||||
"sideBar.border": "#E5E5E5",
|
||||
"sideBar.foreground": "#3B3B3B",
|
||||
"sideBarSectionHeader.background": "#F8F8F8",
|
||||
"sideBarSectionHeader.border": "#E5E5E5",
|
||||
"sideBarSectionHeader.foreground": "#3B3B3B",
|
||||
"sideBarTitle.foreground": "#3B3B3B",
|
||||
"statusBar.background": "#F8F8F8",
|
||||
"statusBar.border": "#E5E5E5",
|
||||
"statusBar.foreground": "#3B3B3B",
|
||||
"statusBarItem.remoteBackground": "#005FB8",
|
||||
"statusBarItem.remoteForeground": "#FFFFFF",
|
||||
"tab.activeBackground": "#FFFFFF",
|
||||
"tab.activeBorder": "#F8F8F8",
|
||||
"tab.activeBorderTop": "#005FB8",
|
||||
"tab.activeForeground": "#3B3B3B",
|
||||
"tab.border": "#E5E5E5",
|
||||
"tab.inactiveBackground": "#F8F8F8",
|
||||
"tab.inactiveForeground": "#868686",
|
||||
"terminal.foreground": "#3B3B3B",
|
||||
"terminalCursor.foreground": "#005FB8",
|
||||
"titleBar.activeBackground": "#F8F8F8",
|
||||
"titleBar.activeForeground": "#1E1E1E",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#008000",
|
||||
keyword: "#EE0000",
|
||||
function: "#795E26",
|
||||
string: "#811f3f",
|
||||
number: "#098658",
|
||||
variable: "#0070C1",
|
||||
parameter: "#001080",
|
||||
operator: "#EE0000",
|
||||
punctuation: "#d16969",
|
||||
className: "#267f99",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "visual-studio-dark",
|
||||
label: "Visual Studio Dark",
|
||||
sourceFile: "dark_vs.json",
|
||||
uiTheme: "vs-dark",
|
||||
colors: {
|
||||
"editor.background": "#1E1E1E",
|
||||
"editor.foreground": "#D4D4D4",
|
||||
"sideBarSectionHeader.background": "#0000",
|
||||
"sideBarSectionHeader.border": "#ccc3",
|
||||
"sideBarTitle.foreground": "#BBBBBB",
|
||||
"statusBarItem.remoteBackground": "#16825D",
|
||||
"statusBarItem.remoteForeground": "#FFF",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#6A9955",
|
||||
keyword: "#d4d4d4",
|
||||
function: "#9cdcfe",
|
||||
string: "#d16969",
|
||||
number: "#b5cea8",
|
||||
variable: "#569cd6",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#569cd6",
|
||||
punctuation: "#569cd6",
|
||||
className: "#9cdcfe",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "visual-studio-light",
|
||||
label: "Visual Studio Light",
|
||||
sourceFile: "light_vs.json",
|
||||
uiTheme: "vs",
|
||||
colors: {
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#000000",
|
||||
"sideBarSectionHeader.background": "#0000",
|
||||
"sideBarSectionHeader.border": "#61616130",
|
||||
"sideBarTitle.foreground": "#6F6F6F",
|
||||
"statusBarItem.remoteBackground": "#16825D",
|
||||
"statusBarItem.remoteForeground": "#FFF",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#008000",
|
||||
keyword: "#000000",
|
||||
function: "#0451a5",
|
||||
string: "#811f3f",
|
||||
number: "#098658",
|
||||
variable: "#0000ff",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#0000ff",
|
||||
punctuation: "#800000",
|
||||
className: "#0451a5",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "high-contrast",
|
||||
label: "Default High Contrast",
|
||||
sourceFile: "hc_black.json",
|
||||
uiTheme: "vs-dark",
|
||||
colors: {
|
||||
"editor.background": "#000000",
|
||||
"editor.foreground": "#FFFFFF",
|
||||
"editor.selectionBackground": "#FFFFFF",
|
||||
"sideBarTitle.foreground": "#FFFFFF",
|
||||
"statusBarItem.remoteBackground": "#00000000",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#7ca668",
|
||||
keyword: "#C586C0",
|
||||
function: "#DCDCAA",
|
||||
string: "#d16969",
|
||||
number: "#b5cea8",
|
||||
variable: "#9CDCFE",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#569cd6",
|
||||
punctuation: "#4EC9B0",
|
||||
className: "#4EC9B0",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "high-contrast-light",
|
||||
label: "Default High Contrast Light",
|
||||
sourceFile: "hc_light.json",
|
||||
uiTheme: "vs",
|
||||
colors: {
|
||||
"statusBarItem.remoteBackground": "#FFFFFF",
|
||||
"statusBarItem.remoteForeground": "#000000",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#515151",
|
||||
keyword: "#EE0000",
|
||||
function: "#5e2cbc",
|
||||
string: "#811F3F",
|
||||
number: "#096d48",
|
||||
variable: "#02715D",
|
||||
parameter: "#001080",
|
||||
operator: "#EE0000",
|
||||
punctuation: "#D16969",
|
||||
className: "#185E73",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "solarized-light",
|
||||
label: "Solarized Light",
|
||||
sourceFile: "solarized-light-color-theme.json",
|
||||
uiTheme: "vs",
|
||||
colors: {
|
||||
"activityBar.background": "#DDD6C1",
|
||||
"activityBar.foreground": "#584c27",
|
||||
"editor.background": "#FDF6E3",
|
||||
"editor.foreground": "#657B83",
|
||||
"editor.lineHighlightBackground": "#EEE8D5",
|
||||
"editor.selectionBackground": "#EEE8D5",
|
||||
"editorGroup.border": "#DDD6C1",
|
||||
"editorGroupHeader.tabsBackground": "#D9D2C2",
|
||||
"editorLineNumber.activeForeground": "#567983",
|
||||
"panel.border": "#DDD6C1",
|
||||
"sideBar.background": "#EEE8D5",
|
||||
"sideBarTitle.foreground": "#586E75",
|
||||
"statusBar.background": "#EEE8D5",
|
||||
"statusBar.foreground": "#586E75",
|
||||
"statusBarItem.remoteBackground": "#AC9D57",
|
||||
"tab.activeBackground": "#FDF6E3",
|
||||
"tab.border": "#DDD6C1",
|
||||
"tab.inactiveBackground": "#D3CBB7",
|
||||
"tab.inactiveForeground": "#586E75",
|
||||
"terminal.background": "#FDF6E3",
|
||||
"titleBar.activeBackground": "#EEE8D5",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#93A1A1",
|
||||
keyword: "#CB4B16",
|
||||
function: "#268BD2",
|
||||
string: "#DC322F",
|
||||
number: "#D33682",
|
||||
variable: "#268BD2",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#859900",
|
||||
punctuation: "#DC322F",
|
||||
className: "#CB4B16",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "monokai",
|
||||
label: "Monokai",
|
||||
sourceFile: "monokai-color-theme.json",
|
||||
uiTheme: "vs-dark",
|
||||
colors: {
|
||||
"activityBar.background": "#272822",
|
||||
"activityBar.foreground": "#f8f8f2",
|
||||
"editor.background": "#272822",
|
||||
"editor.foreground": "#f8f8f2",
|
||||
"editor.lineHighlightBackground": "#3e3d32",
|
||||
"editor.selectionBackground": "#878b9180",
|
||||
"editorGroup.border": "#34352f",
|
||||
"editorGroupHeader.tabsBackground": "#1e1f1c",
|
||||
"editorLineNumber.activeForeground": "#c2c2bf",
|
||||
"editorLineNumber.foreground": "#90908a",
|
||||
"panel.border": "#414339",
|
||||
"sideBar.background": "#1e1f1c",
|
||||
"sideBarSectionHeader.background": "#272822",
|
||||
"statusBar.background": "#414339",
|
||||
"statusBarItem.remoteBackground": "#AC6218",
|
||||
"tab.border": "#1e1f1c",
|
||||
"tab.inactiveBackground": "#34352f",
|
||||
"tab.inactiveForeground": "#ccccc7",
|
||||
"titleBar.activeBackground": "#1e1f1c",
|
||||
},
|
||||
tokens: {
|
||||
comment: "#88846f",
|
||||
keyword: "#66D9EF",
|
||||
function: "#66D9EF",
|
||||
string: "#AE81FF",
|
||||
number: "#AE81FFA0",
|
||||
variable: "#FD971F",
|
||||
parameter: "#FD971F",
|
||||
operator: "#F92672",
|
||||
punctuation: "#A6E22E",
|
||||
className: "#66D9EF",
|
||||
},
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,664 @@
|
||||
{
|
||||
"$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": "#2A2B2CFF",
|
||||
"textCodeBlock.background": "#242526",
|
||||
"textLink.foreground": "#48A0C7",
|
||||
"textLink.activeForeground": "#53A5CA",
|
||||
"textPreformat.background": "#262626",
|
||||
"textPreformat.foreground": "#8C8C8C",
|
||||
"textSeparator.foreground": "#2a2a2aFF",
|
||||
"button.background": "#297AA0",
|
||||
"button.foreground": "#FFFFFF",
|
||||
"button.hoverBackground": "#2B7DA3",
|
||||
"button.border": "#333536FF",
|
||||
"button.secondaryHoverBackground": "#FFFFFF10",
|
||||
"checkbox.background": "#242526",
|
||||
"checkbox.border": "#333536",
|
||||
"checkbox.foreground": "#8C8C8C",
|
||||
"dropdown.background": "#191A1B",
|
||||
"dropdown.border": "#333536",
|
||||
"dropdown.foreground": "#bfbfbf",
|
||||
"dropdown.listBackground": "#191A1B",
|
||||
"input.background": "#191A1B",
|
||||
"input.border": "#333536FF",
|
||||
"input.foreground": "#bfbfbf",
|
||||
"input.placeholderForeground": "#555555",
|
||||
"inputOption.activeBackground": "#3994BC33",
|
||||
"inputOption.activeForeground": "#bfbfbf",
|
||||
"inputOption.activeBorder": "#2A2B2CFF",
|
||||
"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": "#83848533",
|
||||
"scrollbarSlider.hoverBackground": "#83848566",
|
||||
"scrollbarSlider.activeBackground": "#83848599",
|
||||
"badge.background": "#3994BCF0",
|
||||
"badge.foreground": "#FFFFFF",
|
||||
"progressBar.background": "#878889",
|
||||
"list.activeSelectionBackground": "#3994BC26",
|
||||
"list.activeSelectionForeground": "#ededed",
|
||||
"list.inactiveSelectionBackground": "#2C2D2E",
|
||||
"list.inactiveSelectionForeground": "#ededed",
|
||||
"list.hoverBackground": "#FFFFFF0D",
|
||||
"list.hoverForeground": "#bfbfbf",
|
||||
"list.dropBackground": "#3994BC1A",
|
||||
"toolbar.hoverBackground": "#FFFFFF18",
|
||||
"list.focusBackground": "#3994BC26",
|
||||
"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.border": "#2A2B2CFF",
|
||||
"activityBar.activeBorder": "#bfbfbf",
|
||||
"activityBar.activeFocusBorder": "#3994BCB3",
|
||||
"activityBarBadge.background": "#3994BC",
|
||||
"activityBarBadge.foreground": "#FFFFFF",
|
||||
"activityBarTop.activeBorder": "#bfbfbf",
|
||||
"sideBar.background": "#191A1B",
|
||||
"sideBar.foreground": "#bfbfbf",
|
||||
"sideBar.border": "#2A2B2CFF",
|
||||
"sideBarTitle.foreground": "#bfbfbf",
|
||||
"sideBarSectionHeader.background": "#191A1B",
|
||||
"sideBarSectionHeader.foreground": "#bfbfbf",
|
||||
"sideBarSectionHeader.border": "#2A2B2CFF",
|
||||
"titleBar.activeBackground": "#191A1B",
|
||||
"titleBar.activeForeground": "#8C8C8C",
|
||||
"titleBar.inactiveBackground": "#191A1B",
|
||||
"titleBar.inactiveForeground": "#8C8C8C",
|
||||
"titleBar.border": "#2A2B2CFF",
|
||||
"menubar.selectionBackground": "#242526",
|
||||
"menubar.selectionForeground": "#bfbfbf",
|
||||
"menu.background": "#202122",
|
||||
"menu.foreground": "#bfbfbf",
|
||||
"menu.selectionBackground": "#3994BC26",
|
||||
"menu.selectionForeground": "#bfbfbf",
|
||||
"menu.separatorBackground": "#2A2B2C",
|
||||
"menu.border": "#2A2B2CFF",
|
||||
"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": "#2A2B2CFF",
|
||||
"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": "#242526",
|
||||
"editor.hoverHighlightBackground": "#242526",
|
||||
"editor.lineHighlightBackground": "#242526",
|
||||
"editor.rangeHighlightBackground": "#242526",
|
||||
"editorLink.activeForeground": "#3a94bc",
|
||||
"editorWhitespace.foreground": "#8C8C8C4D",
|
||||
"editorIndentGuide.background": "#8384854D",
|
||||
"editorIndentGuide.activeBackground": "#838485",
|
||||
"editorRuler.foreground": "#848484",
|
||||
"editorCodeLens.foreground": "#8C8C8C",
|
||||
"editorBracketMatch.background": "#3994BC55",
|
||||
"editorBracketMatch.border": "#2A2B2CFF",
|
||||
"editorWidget.background": "#202122",
|
||||
"editorWidget.border": "#2A2B2CFF",
|
||||
"editorWidget.foreground": "#bfbfbf",
|
||||
"editorSuggestWidget.background": "#202122",
|
||||
"editorSuggestWidget.border": "#2A2B2CFF",
|
||||
"editorSuggestWidget.foreground": "#bfbfbf",
|
||||
"editorSuggestWidget.highlightForeground": "#bfbfbf",
|
||||
"editorSuggestWidget.selectedBackground": "#3994BC26",
|
||||
"editorHoverWidget.background": "#202122",
|
||||
"editorHoverWidget.border": "#2A2B2CFF",
|
||||
"widget.border": "#2A2B2CFF",
|
||||
"peekView.border": "#2A2B2CFF",
|
||||
"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": "#2A2B2CFF",
|
||||
"editorOverviewRuler.findMatchForeground": "#3a94bc99",
|
||||
"editorOverviewRuler.modifiedForeground": "#6ab890",
|
||||
"editorOverviewRuler.addedForeground": "#73c991",
|
||||
"editorOverviewRuler.deletedForeground": "#f48771",
|
||||
"editorOverviewRuler.errorForeground": "#f48771",
|
||||
"editorOverviewRuler.warningForeground": "#e5ba7d",
|
||||
"panel.background": "#191A1B",
|
||||
"panel.border": "#2A2B2CFF",
|
||||
"panelTitle.activeBorder": "#3994BC",
|
||||
"panelTitle.activeForeground": "#bfbfbf",
|
||||
"panelTitle.inactiveForeground": "#8C8C8C",
|
||||
"statusBar.background": "#191A1B",
|
||||
"statusBar.foreground": "#8C8C8C",
|
||||
"statusBar.border": "#2A2B2CFF",
|
||||
"statusBar.focusBorder": "#3994BCB3",
|
||||
"statusBar.debuggingBackground": "#3994BC",
|
||||
"statusBar.debuggingForeground": "#FFFFFF",
|
||||
"statusBar.noFolderBackground": "#191A1B",
|
||||
"statusBar.noFolderForeground": "#8C8C8C",
|
||||
"statusBarItem.activeBackground": "#4B4C4D",
|
||||
"statusBarItem.hoverBackground": "#262728",
|
||||
"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": "#2A2B2CFF",
|
||||
"tab.lastPinnedBorder": "#2A2B2CFF",
|
||||
"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": "#2A2B2CFF",
|
||||
"breadcrumb.foreground": "#8C8C8C",
|
||||
"breadcrumb.background": "#121314",
|
||||
"breadcrumb.focusForeground": "#bfbfbf",
|
||||
"breadcrumb.activeSelectionForeground": "#bfbfbf",
|
||||
"breadcrumbPicker.background": "#202122",
|
||||
"notificationCenter.border": "#2A2B2CFF",
|
||||
"notificationCenterHeader.foreground": "#bfbfbf",
|
||||
"notificationCenterHeader.background": "#242526",
|
||||
"notificationToast.border": "#2A2B2CFF",
|
||||
"notifications.foreground": "#bfbfbf",
|
||||
"notifications.background": "#202122",
|
||||
"notifications.border": "#2A2B2CFF",
|
||||
"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": "#2A2B2CFF",
|
||||
"pickerGroup.foreground": "#bfbfbf",
|
||||
"quickInput.background": "#202122",
|
||||
"quickInput.foreground": "#bfbfbf",
|
||||
"quickInputList.focusBackground": "#297AA0",
|
||||
"quickInputList.focusForeground": "#FFFFFF",
|
||||
"quickInputList.focusIconForeground": "#FFFFFF",
|
||||
"quickInputList.focusHighlightForeground": "#FFFFFF",
|
||||
"quickInputList.hoverBackground": "#262728",
|
||||
"terminal.selectionBackground": "#3994BC33",
|
||||
"terminal.background": "#191A1B",
|
||||
"terminal.border": "#2A2B2CFF",
|
||||
"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",
|
||||
"quickInput.border": "#333536",
|
||||
"gauge.foreground": "#59a4f9",
|
||||
"gauge.background": "#58A4F94D",
|
||||
"gauge.border": "#2A2C2EFF",
|
||||
"gauge.warningForeground": "#e5ba7d",
|
||||
"gauge.warningBackground": "#E3B97E4D",
|
||||
"gauge.errorForeground": "#f48771",
|
||||
"gauge.errorBackground": "#F287724D",
|
||||
"chat.requestBubbleBackground": "#ffffff13",
|
||||
"chat.requestBubbleHoverBackground": "#ffffff22",
|
||||
"chat.inputWorkingBorderColor1": "#297AA0",
|
||||
"chat.inputWorkingBorderColor2": "#1C546F",
|
||||
"chat.inputWorkingBorderColor3": "#5BA8CC",
|
||||
"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": "#83848533",
|
||||
"minimapSlider.hoverBackground": "#83848566",
|
||||
"minimapSlider.activeBackground": "#83848599",
|
||||
|
||||
"agents.background": "#121314",
|
||||
"agentsPanel.background": "#191A1B",
|
||||
"agentsPanel.foreground": "#bfbfbf",
|
||||
"agentsPanel.border": "#2A2B2CFF",
|
||||
"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": "#3994BC",
|
||||
"agentsBadge.foreground": "#FFFFFF",
|
||||
"agentsUnreadBadge.background": "#3994BC",
|
||||
"agentsUnreadBadge.foreground": "#FFFFFF"
|
||||
},
|
||||
"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",
|
||||
"background": "#8b1111",
|
||||
"fontStyle": "italic underline",
|
||||
"content": "^M"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"background": "#490202"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.section.embedded"],
|
||||
"settings": {
|
||||
"foreground": "#ff7b72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"],
|
||||
"settings": {
|
||||
"foreground": "#7ee787",
|
||||
"background": "#04260f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.changed", "punctuation.definition.changed"],
|
||||
"settings": {
|
||||
"foreground": "#ffa657",
|
||||
"background": "#5a1e02"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.ignored", "markup.untracked"],
|
||||
"settings": {
|
||||
"foreground": "#0d1117",
|
||||
"background": "#79c0ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
@@ -0,0 +1,646 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"name": "2026 Light",
|
||||
"include": "./light_modern.json",
|
||||
"type": "light",
|
||||
"colors": {
|
||||
"foreground": "#202020",
|
||||
"disabledForeground": "#BBBBBB",
|
||||
"errorForeground": "#ad0707",
|
||||
"descriptionForeground": "#606060",
|
||||
"icon.foreground": "#606060",
|
||||
"focusBorder": "#0069CCFF",
|
||||
"textBlockQuote.background": "#EAEAEA",
|
||||
"textBlockQuote.border": "#F0F1F2FF",
|
||||
"textCodeBlock.background": "#EAEAEA",
|
||||
"textLink.foreground": "#0069CC",
|
||||
"textLink.activeForeground": "#0069CC",
|
||||
"textPreformat.foreground": "#606060",
|
||||
"textPreformat.background": "#ECECEC",
|
||||
"textSeparator.foreground": "#EEEEEEFF",
|
||||
"button.background": "#0069CC",
|
||||
"button.foreground": "#FFFFFF",
|
||||
"button.hoverBackground": "#0063C1",
|
||||
"button.border": "#EEEEF1",
|
||||
"button.secondaryBackground": "#EAEAEA",
|
||||
"button.secondaryForeground": "#202020",
|
||||
"button.secondaryHoverBackground": "#F2F3F4",
|
||||
"checkbox.background": "#EAEAEA",
|
||||
"checkbox.border": "#D8D8D8",
|
||||
"checkbox.foreground": "#606060",
|
||||
"dropdown.background": "#FFFFFF",
|
||||
"dropdown.border": "#D8D8D8",
|
||||
"dropdown.foreground": "#202020",
|
||||
"dropdown.listBackground": "#FFFFFF",
|
||||
"input.background": "#FFFFFF",
|
||||
"input.border": "#D8D8D866",
|
||||
"input.foreground": "#202020",
|
||||
"input.placeholderForeground": "#999999",
|
||||
"inputOption.activeBackground": "#0069CC26",
|
||||
"inputOption.activeForeground": "#202020",
|
||||
"inputOption.activeBorder": "#F0F1F2FF",
|
||||
"inputValidation.infoBackground": "#E6F2FA",
|
||||
"inputValidation.infoBorder": "#0069CC",
|
||||
"inputValidation.infoForeground": "#202020",
|
||||
"inputValidation.warningBackground": "#FDF6E3",
|
||||
"inputValidation.warningBorder": "#B69500",
|
||||
"inputValidation.warningForeground": "#202020",
|
||||
"inputValidation.errorBackground": "#FDEDED",
|
||||
"inputValidation.errorBorder": "#ad0707",
|
||||
"inputValidation.errorForeground": "#202020",
|
||||
"scrollbar.shadow": "#00000000",
|
||||
"widget.shadow": "#00000000",
|
||||
"widget.border": "#E2E2E5",
|
||||
"editorStickyScroll.shadow": "#00000000",
|
||||
"editorStickyScrollHover.background": "#F0F0F3",
|
||||
"editorStickyScroll.border": "#F0F1F2FF",
|
||||
"sideBarStickyScroll.shadow": "#00000000",
|
||||
"panelStickyScroll.shadow": "#00000000",
|
||||
"listFilterWidget.shadow": "#00000000",
|
||||
"scrollbarSlider.background": "#99999926",
|
||||
"scrollbarSlider.hoverBackground": "#99999940",
|
||||
"scrollbarSlider.activeBackground": "#99999955",
|
||||
"badge.background": "#0069CC",
|
||||
"badge.foreground": "#FFFFFF",
|
||||
"progressBar.background": "#0069CC",
|
||||
"list.activeSelectionBackground": "#0069CC1A",
|
||||
"list.activeSelectionForeground": "#202020",
|
||||
"list.inactiveSelectionBackground": "#DADADA99",
|
||||
"list.inactiveSelectionForeground": "#202020",
|
||||
"list.hoverBackground": "#DADADA4f",
|
||||
"list.hoverForeground": "#202020",
|
||||
"list.dropBackground": "#0069CC15",
|
||||
"list.focusBackground": "#0069CC1A",
|
||||
"list.focusForeground": "#202020",
|
||||
"list.focusOutline": "#0069CCFF",
|
||||
"list.highlightForeground": "#0069CC",
|
||||
"list.invalidItemForeground": "#BBBBBB",
|
||||
"list.errorForeground": "#ad0707",
|
||||
"list.warningForeground": "#667309",
|
||||
"activityBar.background": "#FAFAFD",
|
||||
"activityBar.foreground": "#202020",
|
||||
"activityBar.inactiveForeground": "#606060",
|
||||
"activityBar.border": "#F0F1F2FF",
|
||||
"activityBar.activeBorder": "#000000",
|
||||
"activityBar.activeFocusBorder": "#0069CCFF",
|
||||
"activityBarBadge.background": "#0069CC",
|
||||
"activityBarBadge.foreground": "#FFFFFF",
|
||||
"activityBarTop.activeBorder": "#000000",
|
||||
"sideBar.background": "#FAFAFD",
|
||||
"sideBar.foreground": "#202020",
|
||||
"sideBar.border": "#F0F1F2FF",
|
||||
"sideBarTitle.foreground": "#202020",
|
||||
"sideBarSectionHeader.background": "#FAFAFD",
|
||||
"sideBarSectionHeader.foreground": "#202020",
|
||||
"sideBarSectionHeader.border": "#F0F1F2FF",
|
||||
"titleBar.activeBackground": "#FAFAFD",
|
||||
"titleBar.activeForeground": "#606060",
|
||||
"titleBar.inactiveBackground": "#FAFAFD",
|
||||
"titleBar.inactiveForeground": "#606060",
|
||||
"titleBar.border": "#F0F1F2FF",
|
||||
"menubar.selectionBackground": "#EAEAEA",
|
||||
"menubar.selectionForeground": "#202020",
|
||||
"menu.background": "#FAFAFD",
|
||||
"menu.foreground": "#202020",
|
||||
"menu.selectionBackground": "#0069CC1A",
|
||||
"menu.selectionForeground": "#202020",
|
||||
"menu.separatorBackground": "#EEEEF1",
|
||||
"menu.border": "#E4E5E6FF",
|
||||
"commandCenter.foreground": "#202020",
|
||||
"commandCenter.activeForeground": "#202020",
|
||||
"commandCenter.background": "#FFFFFF",
|
||||
"commandCenter.activeBackground": "#DADADA4f",
|
||||
"commandCenter.border": "#D8D8D8AA",
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#202020",
|
||||
"editorLineNumber.foreground": "#606060",
|
||||
"editorLineNumber.activeForeground": "#202020",
|
||||
"editorCursor.foreground": "#202020",
|
||||
"editor.selectionBackground": "#0069CC40",
|
||||
"editor.inactiveSelectionBackground": "#0069CC1A",
|
||||
"editor.selectionHighlightBackground": "#0069CC15",
|
||||
"editor.wordHighlightBackground": "#0069CC26",
|
||||
"editor.wordHighlightStrongBackground": "#0069CC26",
|
||||
"editor.findMatchBackground": "#0069CC40",
|
||||
"editor.findMatchHighlightBackground": "#0069CC1A",
|
||||
"editor.findRangeHighlightBackground": "#EAEAEA",
|
||||
"editor.hoverHighlightBackground": "#EAEAEA",
|
||||
"editor.lineHighlightBackground": "#EAEAEA40",
|
||||
"editor.rangeHighlightBackground": "#EAEAEA",
|
||||
"editorLink.activeForeground": "#0069CC",
|
||||
"editorWhitespace.foreground": "#60606040",
|
||||
"editorIndentGuide.background": "#F7F7F740",
|
||||
"editorIndentGuide.activeBackground": "#EEEEEE",
|
||||
"editorRuler.foreground": "#F7F7F7",
|
||||
"editorCodeLens.foreground": "#606060",
|
||||
"editorBracketMatch.background": "#0069CC40",
|
||||
"editorBracketMatch.border": "#F0F1F2FF",
|
||||
"editorWidget.background": "#FAFAFD",
|
||||
"editorWidget.border": "#E4E5E6FF",
|
||||
"editorWidget.foreground": "#202020",
|
||||
"editorSuggestWidget.background": "#FAFAFD",
|
||||
"editorSuggestWidget.border": "#E4E5E6FF",
|
||||
"editorSuggestWidget.foreground": "#202020",
|
||||
"editorSuggestWidget.highlightForeground": "#0069CC",
|
||||
"editorSuggestWidget.selectedBackground": "#0069CC26",
|
||||
"editorSuggestWidget.selectedForeground": "#202020",
|
||||
"editorSuggestWidget.selectedIconForeground": "#202020",
|
||||
"editorHoverWidget.background": "#FAFAFD",
|
||||
"editorHoverWidget.border": "#E4E5E6FF",
|
||||
"peekView.border": "#0069CC",
|
||||
"peekViewEditor.background": "#FAFAFD",
|
||||
"peekViewEditor.matchHighlightBackground": "#0069CC33",
|
||||
"peekViewResult.background": "#FAFAFD",
|
||||
"peekViewResult.fileForeground": "#202020",
|
||||
"peekViewResult.lineForeground": "#606060",
|
||||
"peekViewResult.matchHighlightBackground": "#0069CC33",
|
||||
"peekViewResult.selectionBackground": "#0069CC26",
|
||||
"peekViewResult.selectionForeground": "#202020",
|
||||
"peekViewTitle.background": "#FAFAFD",
|
||||
"peekViewTitleDescription.foreground": "#606060",
|
||||
"peekViewTitleLabel.foreground": "#202020",
|
||||
"editorGutter.addedBackground": "#587c0c",
|
||||
"editorGutter.deletedBackground": "#ad0707",
|
||||
"diffEditor.insertedTextBackground": "#587c0c26",
|
||||
"diffEditor.removedTextBackground": "#ad070726",
|
||||
"editorOverviewRuler.border": "#F0F1F2FF",
|
||||
"editorOverviewRuler.findMatchForeground": "#0069CC99",
|
||||
"editorOverviewRuler.modifiedForeground": "#0069CC",
|
||||
"editorOverviewRuler.addedForeground": "#587c0c",
|
||||
"editorOverviewRuler.deletedForeground": "#ad0707",
|
||||
"editorOverviewRuler.errorForeground": "#ad0707",
|
||||
"editorOverviewRuler.warningForeground": "#667309",
|
||||
"editorGutter.background": "#FFFFFF",
|
||||
"panel.background": "#FAFAFD",
|
||||
"panel.border": "#F0F1F2FF",
|
||||
"panelTitle.activeBorder": "#000000",
|
||||
"panelTitle.activeForeground": "#202020",
|
||||
"panelTitle.inactiveForeground": "#606060",
|
||||
"statusBar.background": "#FAFAFD",
|
||||
"statusBar.foreground": "#606060",
|
||||
"statusBar.border": "#F0F1F2FF",
|
||||
"statusBar.focusBorder": "#0069CCFF",
|
||||
"statusBar.debuggingBackground": "#0069CC",
|
||||
"statusBar.debuggingForeground": "#FFFFFF",
|
||||
"statusBar.noFolderBackground": "#F0F0F3",
|
||||
"statusBar.noFolderForeground": "#606060",
|
||||
"statusBarItem.activeBackground": "#EEEEEE",
|
||||
"statusBarItem.hoverBackground": "#DADADA4f",
|
||||
"statusBarItem.focusBorder": "#0069CCFF",
|
||||
"statusBarItem.prominentBackground": "#0069CCDD",
|
||||
"statusBarItem.prominentForeground": "#FFFFFF",
|
||||
"statusBarItem.prominentHoverBackground": "#0069CC",
|
||||
"toolbar.hoverBackground": "#00000010",
|
||||
"tab.activeBackground": "#FFFFFF",
|
||||
"tab.activeForeground": "#202020",
|
||||
"tab.inactiveBackground": "#FAFAFD",
|
||||
"tab.inactiveForeground": "#606060",
|
||||
"tab.border": "#F0F1F2FF",
|
||||
"tab.lastPinnedBorder": "#F0F1F2FF",
|
||||
"tab.activeBorderTop": "#000000",
|
||||
"tab.hoverBackground": "#FFFFFF",
|
||||
"tab.hoverForeground": "#202020",
|
||||
"tab.unfocusedActiveBackground": "#FAFAFD",
|
||||
"tab.unfocusedActiveForeground": "#606060",
|
||||
"tab.unfocusedInactiveBackground": "#FAFAFD",
|
||||
"tab.unfocusedInactiveForeground": "#BBBBBB",
|
||||
"editorGroupHeader.tabsBackground": "#FAFAFD",
|
||||
"tab.activeBorder": "#FFFFFF",
|
||||
"editorGroupHeader.tabsBorder": "#F0F1F2FF",
|
||||
"breadcrumb.foreground": "#606060",
|
||||
"breadcrumb.background": "#FFFFFF",
|
||||
"breadcrumb.focusForeground": "#202020",
|
||||
"breadcrumb.activeSelectionForeground": "#202020",
|
||||
"breadcrumbPicker.background": "#FAFAFD",
|
||||
"notificationCenter.border": "#F0F1F2FF",
|
||||
"notificationCenterHeader.foreground": "#202020",
|
||||
"notificationCenterHeader.background": "#FAFAFD",
|
||||
"notificationToast.border": "#F0F1F2FF",
|
||||
"notifications.foreground": "#202020",
|
||||
"notifications.background": "#FAFAFD",
|
||||
"notifications.border": "#F0F1F2FF",
|
||||
"notificationLink.foreground": "#0069CC",
|
||||
"notificationsWarningIcon.foreground": "#B69500",
|
||||
"notificationsErrorIcon.foreground": "#ad0707",
|
||||
"notificationsInfoIcon.foreground": "#0069CC",
|
||||
"activityWarningBadge.foreground": "#202020",
|
||||
"activityWarningBadge.background": "#F2C94C",
|
||||
"activityErrorBadge.foreground": "#FFFFFF",
|
||||
"activityErrorBadge.background": "#ad0707",
|
||||
"extensionButton.prominentBackground": "#0069CC",
|
||||
"extensionButton.prominentForeground": "#FFFFFF",
|
||||
"extensionButton.prominentHoverBackground": "#0064CC",
|
||||
"pickerGroup.border": "#EEEEF1",
|
||||
"pickerGroup.foreground": "#202020",
|
||||
"quickInput.background": "#FAFAFD",
|
||||
"quickInput.foreground": "#202020",
|
||||
"quickInputList.focusBackground": "#0069CC",
|
||||
"quickInputList.focusForeground": "#FFFFFF",
|
||||
"quickInputList.focusIconForeground": "#FFFFFF",
|
||||
"quickInputList.focusHighlightForeground": "#FFFFFF",
|
||||
"quickInputList.hoverBackground": "#EDF0F5",
|
||||
"terminal.selectionBackground": "#0069CC26",
|
||||
"terminalCursor.foreground": "#202020",
|
||||
"terminalCursor.background": "#FFFFFF",
|
||||
"gitDecoration.addedResourceForeground": "#587c0c",
|
||||
"gitDecoration.modifiedResourceForeground": "#667309",
|
||||
"gitDecoration.deletedResourceForeground": "#ad0707",
|
||||
"gitDecoration.untrackedResourceForeground": "#587c0c",
|
||||
"gitDecoration.ignoredResourceForeground": "#8E8E90",
|
||||
"gitDecoration.conflictingResourceForeground": "#ad0707",
|
||||
"gitDecoration.stageModifiedResourceForeground": "#667309",
|
||||
"gitDecoration.stageDeletedResourceForeground": "#ad0707",
|
||||
"commandCenter.activeBorder": "#D8D8D8",
|
||||
"quickInput.border": "#D8D8D8",
|
||||
"gauge.foreground": "#0069CC",
|
||||
"gauge.background": "#0069CC40",
|
||||
"gauge.border": "#F0F1F2FF",
|
||||
"gauge.warningForeground": "#B69500",
|
||||
"gauge.warningBackground": "#B6950040",
|
||||
"gauge.errorForeground": "#ad0707",
|
||||
"gauge.errorBackground": "#ad070740",
|
||||
"statusBarItem.prominentHoverForeground": "#FFFFFF",
|
||||
"quickInputTitle.background": "#FAFAFD",
|
||||
"chat.requestBubbleBackground": "#EEF4FB",
|
||||
"chat.requestBubbleHoverBackground": "#E6EDFA",
|
||||
"chat.thinkingShimmer": "#999999",
|
||||
"chat.inputWorkingBorderColor1": "#0069CC",
|
||||
"chat.inputWorkingBorderColor2": "#004A99",
|
||||
"chat.inputWorkingBorderColor3": "#3399E6",
|
||||
"editorCommentsWidget.rangeBackground": "#EEF4FB",
|
||||
"editorCommentsWidget.rangeActiveBackground": "#E6EDFA",
|
||||
"charts.foreground": "#202020",
|
||||
"charts.lines": "#20202066",
|
||||
"charts.blue": "#1A5CFF",
|
||||
"charts.red": "#ad0707",
|
||||
"charts.yellow": "#667309",
|
||||
"charts.orange": "#d18616",
|
||||
"charts.green": "#388A34",
|
||||
"charts.purple": "#652D90",
|
||||
"agentStatusIndicator.background": "#FFFFFF",
|
||||
"inlineChat.border": "#00000000",
|
||||
"minimapSlider.background": "#99999926",
|
||||
"minimapSlider.hoverBackground": "#99999940",
|
||||
"minimapSlider.activeBackground": "#99999955",
|
||||
|
||||
"agents.background": "#FAFAFD",
|
||||
"agentsPanel.background": "#FFFFFF",
|
||||
"agentsPanel.foreground": "#202020",
|
||||
"agentsPanel.border": "#E4E5E6FF",
|
||||
"agentsGradient.tintColor": "#0069CC",
|
||||
"agentsChatInput.background": "#F7F7FA",
|
||||
"agentsChatInput.foreground": "#202020",
|
||||
"agentsChatInput.border": "#D8D8D8",
|
||||
"agentsChatInput.focusBorder": "#0069CCFF",
|
||||
"agentsChatInput.placeholderForeground": "#999999",
|
||||
"agentsNewSessionButton.background": "#00000000",
|
||||
"agentsNewSessionButton.foreground": "#202020",
|
||||
"agentsNewSessionButton.border": "#D8D8D8",
|
||||
"agentsNewSessionButton.hoverBackground": "#00000010",
|
||||
"agentsBadge.background": "#0069CC",
|
||||
"agentsBadge.foreground": "#FFFFFF",
|
||||
"agentsUnreadBadge.background": "#0069CC",
|
||||
"agentsUnreadBadge.foreground": "#FFFFFF"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": ["comment", "punctuation.definition.comment", "string.comment"],
|
||||
"settings": {
|
||||
"foreground": "#6e7781"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant.other.placeholder", "constant.character"],
|
||||
"settings": {
|
||||
"foreground": "#cf222e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant",
|
||||
"entity.name.constant",
|
||||
"variable.other.constant",
|
||||
"variable.other.enummember",
|
||||
"variable.language",
|
||||
"entity"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.name", "meta.export.default", "meta.definition.variable"],
|
||||
"settings": {
|
||||
"foreground": "#953800"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.parameter.function",
|
||||
"meta.jsx.children",
|
||||
"meta.block",
|
||||
"meta.tag.attributes",
|
||||
"entity.name.constant",
|
||||
"meta.object.member",
|
||||
"meta.embedded.expression"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#1f2328"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#8250df"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.name.tag", "support.class.component"],
|
||||
"settings": {
|
||||
"foreground": "#116329"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#cf222e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage", "storage.type"],
|
||||
"settings": {
|
||||
"foreground": "#cf222e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage.modifier.package", "storage.modifier.import", "storage.type.java"],
|
||||
"settings": {
|
||||
"foreground": "#1f2328"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["string", "string punctuation.section.embedded source"],
|
||||
"settings": {
|
||||
"foreground": "#0a3069"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-name",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable",
|
||||
"settings": {
|
||||
"foreground": "#953800"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.other",
|
||||
"settings": {
|
||||
"foreground": "#1f2328"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid.broken",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid.deprecated",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid.illegal",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid.unimplemented",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "carriage-return",
|
||||
"settings": {
|
||||
"fontStyle": "italic underline",
|
||||
"background": "#cf222e",
|
||||
"foreground": "#f6f8fa",
|
||||
"content": "^M"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "message.error",
|
||||
"settings": {
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "string variable",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["source.regexp", "string.regexp"],
|
||||
"settings": {
|
||||
"foreground": "#0a3069"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string.regexp.character-class",
|
||||
"string.regexp constant.character.escape",
|
||||
"string.regexp source.ruby.embedded",
|
||||
"string.regexp string.regexp.arbitrary-repitition"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0a3069"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "string.regexp constant.character.escape",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#116329"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.constant",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.variable",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.type.property-name.json",
|
||||
"settings": {
|
||||
"foreground": "#116329"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.module-reference",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.definition.list.begin.markdown",
|
||||
"settings": {
|
||||
"foreground": "#953800"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.heading", "markup.heading entity.name"],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#116329"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#1f2328"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#1f2328"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.underline"],
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.strikethrough"],
|
||||
"settings": {
|
||||
"fontStyle": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.deleted", "meta.diff.header.from-file", "punctuation.definition.deleted"],
|
||||
"settings": {
|
||||
"background": "#ffebe9",
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.section.embedded"],
|
||||
"settings": {
|
||||
"foreground": "#cf222e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"],
|
||||
"settings": {
|
||||
"background": "#dafbe1",
|
||||
"foreground": "#116329"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.changed", "punctuation.definition.changed"],
|
||||
"settings": {
|
||||
"background": "#ffd8b5",
|
||||
"foreground": "#953800"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.ignored", "markup.untracked"],
|
||||
"settings": {
|
||||
"foreground": "#eaeef2",
|
||||
"background": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.diff.range",
|
||||
"settings": {
|
||||
"foreground": "#8250df",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.diff.header",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.separator",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.output",
|
||||
"settings": {
|
||||
"foreground": "#0550ae"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"brackethighlighter.tag",
|
||||
"brackethighlighter.curly",
|
||||
"brackethighlighter.round",
|
||||
"brackethighlighter.square",
|
||||
"brackethighlighter.angle",
|
||||
"brackethighlighter.quote"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#57606a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "brackethighlighter.unmatched",
|
||||
"settings": {
|
||||
"foreground": "#82071e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant.other.reference.link", "string.other.link"],
|
||||
"settings": {
|
||||
"foreground": "#0a3069"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2015 - present Microsoft Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
These theme JSON files are vendored from:
|
||||
https://github.com/microsoft/vscode
|
||||
|
||||
Source paths:
|
||||
extensions/theme-defaults/themes/dark_modern.json
|
||||
extensions/theme-defaults/themes/dark_plus.json
|
||||
extensions/theme-defaults/themes/dark_vs.json
|
||||
extensions/theme-defaults/themes/hc_black.json
|
||||
extensions/theme-defaults/themes/hc_light.json
|
||||
extensions/theme-defaults/themes/light_modern.json
|
||||
extensions/theme-defaults/themes/light_plus.json
|
||||
extensions/theme-defaults/themes/light_vs.json
|
||||
extensions/theme-defaults/themes/2026-dark.json
|
||||
extensions/theme-defaults/themes/2026-light.json
|
||||
extensions/theme-monokai/themes/monokai-color-theme.json
|
||||
extensions/theme-solarized-light/themes/solarized-light-color-theme.json
|
||||
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"$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.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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
{
|
||||
"$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" // See https://en.cppreference.com/w/cpp/language/user_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" // placeholders in strings
|
||||
],
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,395 @@
|
||||
{
|
||||
"$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",
|
||||
"ports.iconRunningProcessForeground": "#369432",
|
||||
"sideBarSectionHeader.background": "#0000",
|
||||
"sideBarSectionHeader.border": "#ccc3",
|
||||
"tab.selectedBackground": "#222222",
|
||||
"tab.selectedForeground": "#ffffffa0",
|
||||
"tab.lastPinnedBorder": "#ccc3",
|
||||
"list.activeSelectionIconForeground": "#FFF",
|
||||
"terminal.inactiveSelectionBackground": "#3A3D41",
|
||||
"widget.border": "#303031",
|
||||
"actionBar.toggledBackground": "#383a49"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,456 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"name": "Dark High Contrast",
|
||||
"colors": {
|
||||
"editor.background": "#000000",
|
||||
"editor.foreground": "#FFFFFF",
|
||||
"editorIndentGuide.background1": "#FFFFFF",
|
||||
"editorIndentGuide.activeBackground1": "#FFFFFF",
|
||||
"sideBarTitle.foreground": "#FFFFFF",
|
||||
"selection.background": "#008000",
|
||||
"editor.selectionBackground": "#FFFFFF",
|
||||
"statusBarItem.remoteBackground": "#00000000",
|
||||
"ports.iconRunningProcessForeground": "#FFFFFF",
|
||||
"editorWhitespace.foreground": "#7c7c7c",
|
||||
"actionBar.toggledBackground": "#383a49"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded",
|
||||
"string meta.image.inline.markdown",
|
||||
"variable.legacy.builtin.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "emphasis",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "strong",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.diff.header",
|
||||
"settings": {
|
||||
"foreground": "#000080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"foreground": "#7ca668"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.language",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.numeric",
|
||||
"constant.other.color.rgb-value",
|
||||
"constant.other.rgb-value",
|
||||
"support.constant.color"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#b5cea8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.regexp",
|
||||
"settings": {
|
||||
"foreground": "#b46695"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.character",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#6796e6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.strikethrough",
|
||||
"settings": {
|
||||
"fontStyle": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"foreground": "#b5cea8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"foreground": "#ce9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "brackets of XML/HTML tags",
|
||||
"scope": ["punctuation.definition.tag"],
|
||||
"settings": {
|
||||
"foreground": "#808080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.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": "storage",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "string",
|
||||
"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": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d4d4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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.logical.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.other.unit",
|
||||
"settings": {
|
||||
"foreground": "#b5cea8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.function.git-rebase",
|
||||
"settings": {
|
||||
"foreground": "#d4d4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "coloring of the TS this",
|
||||
"scope": "variable.language.this",
|
||||
"settings": {
|
||||
"foreground": "#569cd6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function declarations",
|
||||
"scope": [
|
||||
"entity.name.function",
|
||||
"support.function",
|
||||
"support.constant.handlebars",
|
||||
"source.powershell variable.other.member"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Types declaration and references",
|
||||
"scope": [
|
||||
"support.class",
|
||||
"support.type",
|
||||
"entity.name.type",
|
||||
"entity.name.namespace",
|
||||
"entity.name.scope-resolution",
|
||||
"entity.name.class",
|
||||
"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",
|
||||
"source.cpp keyword.operator.delete",
|
||||
"keyword.other.using",
|
||||
"keyword.other.directive.using",
|
||||
"keyword.other.operator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C586C0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable and parameter name",
|
||||
"scope": ["variable", "meta.definition.variable.name", "support.variable"],
|
||||
"settings": {
|
||||
"foreground": "#9CDCFE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "HC Search Editor context line override",
|
||||
"scope": "meta.resultLinePrefix.contextLinePrefix.search",
|
||||
"settings": {
|
||||
"foreground": "#CBEDCB"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true,
|
||||
"semanticTokenColors": {
|
||||
"newOperator": "#FFFFFF",
|
||||
"stringLiteral": "#ce9178",
|
||||
"customLiteral": "#DCDCAA",
|
||||
"numberLiteral": "#b5cea8"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,570 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"name": "Light High Contrast",
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": ["meta.embedded", "source.groovy.embedded", "variable.legacy.builtin.python"],
|
||||
"settings": {
|
||||
"foreground": "#292929"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "emphasis",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "strong",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.diff.header",
|
||||
"settings": {
|
||||
"foreground": "#062F4A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"foreground": "#515151"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.language",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.numeric",
|
||||
"variable.other.enummember",
|
||||
"keyword.operator.plus.exponent",
|
||||
"keyword.operator.minus.exponent"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#096d48"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.regexp",
|
||||
"settings": {
|
||||
"foreground": "#811F3F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.selector",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#264F78"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid",
|
||||
"settings": {
|
||||
"foreground": "#B5200D"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.underline",
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"foreground": "#000080",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#800080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.strikethrough",
|
||||
"settings": {
|
||||
"fontStyle": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"foreground": "#096d48"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"foreground": "#5A5A5A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"foreground": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.definition.quote.begin.markdown",
|
||||
"punctuation.definition.list.begin.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.definition.tag",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.preprocessor", "entity.name.function.preprocessor"],
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.preprocessor.string",
|
||||
"settings": {
|
||||
"foreground": "#b5200d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.preprocessor.numeric",
|
||||
"settings": {
|
||||
"foreground": "#096d48"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.structure.dictionary.key.python",
|
||||
"settings": {
|
||||
"foreground": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage.modifier", "keyword.operator.noexcept"],
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["string", "meta.embedded.assembly"],
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string.comment.buffered.block.pug",
|
||||
"string.quoted.pug",
|
||||
"string.interpolated.pug",
|
||||
"string.unquoted.plain.in.yaml",
|
||||
"string.unquoted.plain.out.yaml",
|
||||
"string.unquoted.block.yaml",
|
||||
"string.quoted.single.yaml",
|
||||
"string.quoted.double.xml",
|
||||
"string.quoted.single.xml",
|
||||
"string.unquoted.cdata.xml",
|
||||
"string.quoted.double.html",
|
||||
"string.quoted.single.html",
|
||||
"string.unquoted.html",
|
||||
"string.quoted.single.handlebars",
|
||||
"string.quoted.double.handlebars"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#811F3F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.definition.template-expression.begin",
|
||||
"punctuation.definition.template-expression.end",
|
||||
"punctuation.section.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.template.expression"],
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#264F78"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.type.property-name.json"],
|
||||
"settings": {
|
||||
"foreground": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.operator",
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.other.unit",
|
||||
"settings": {
|
||||
"foreground": "#096d48"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"],
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.function.git-rebase",
|
||||
"settings": {
|
||||
"foreground": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.sha.git-rebase",
|
||||
"settings": {
|
||||
"foreground": "#096d48"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"storage.modifier.import.java",
|
||||
"variable.language.wildcard.java",
|
||||
"storage.modifier.package.java"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.language",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.function",
|
||||
"support.function",
|
||||
"support.constant.handlebars",
|
||||
"source.powershell variable.other.member",
|
||||
"entity.name.operator.custom-literal"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5e2cbc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#185E73"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#185E73"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.control",
|
||||
"source.cpp keyword.operator.new",
|
||||
"source.cpp keyword.operator.delete",
|
||||
"keyword.other.using",
|
||||
"keyword.other.directive.using",
|
||||
"keyword.other.operator",
|
||||
"entity.name.operator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#b5200d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable",
|
||||
"meta.definition.variable.name",
|
||||
"support.variable",
|
||||
"entity.name.variable",
|
||||
"constant.other.placeholder"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#001080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable.other.constant", "variable.other.enummember"],
|
||||
"settings": {
|
||||
"foreground": "#02715D"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.object-literal.key"],
|
||||
"settings": {
|
||||
"foreground": "#001080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0451A5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#D16969"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.character.character-class.regexp",
|
||||
"constant.other.character-class.set.regexp",
|
||||
"constant.other.character-class.regexp",
|
||||
"constant.character.set.regexp"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#811F3F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.operator.quantifier.regexp",
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"],
|
||||
"settings": {
|
||||
"foreground": "#EE0000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.character",
|
||||
"settings": {
|
||||
"foreground": "#0F4A85"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.character.escape",
|
||||
"settings": {
|
||||
"foreground": "#EE0000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.label",
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#316BCD"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#CD9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#CD3131"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#800080"
|
||||
}
|
||||
}
|
||||
],
|
||||
"colors": {
|
||||
"actionBar.toggledBackground": "#dddddd",
|
||||
"statusBarItem.remoteBackground": "#FFFFFF",
|
||||
"statusBarItem.remoteForeground": "#000000"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"name": "Light Modern",
|
||||
"include": "./light_plus.json",
|
||||
"colors": {
|
||||
"activityBar.activeBorder": "#005FB8",
|
||||
"activityBar.background": "#F8F8F8",
|
||||
"activityBar.border": "#E5E5E5",
|
||||
"activityBar.foreground": "#1F1F1F",
|
||||
"activityBar.inactiveForeground": "#616161",
|
||||
"activityBarBadge.background": "#005FB8",
|
||||
"activityBarBadge.foreground": "#FFFFFF",
|
||||
"badge.background": "#CCCCCC",
|
||||
"badge.foreground": "#3B3B3B",
|
||||
"button.background": "#005FB8",
|
||||
"button.border": "#0000001a",
|
||||
"button.foreground": "#FFFFFF",
|
||||
"button.hoverBackground": "#0258A8",
|
||||
"button.secondaryBackground": "#E5E5E5",
|
||||
"button.secondaryForeground": "#3B3B3B",
|
||||
"button.secondaryHoverBackground": "#CCCCCC",
|
||||
"chat.slashCommandBackground": "#ADCEFF7A",
|
||||
"chat.slashCommandForeground": "#26569E",
|
||||
"chat.editedFileForeground": "#895503",
|
||||
"checkbox.background": "#F8F8F8",
|
||||
"checkbox.border": "#CECECE",
|
||||
"descriptionForeground": "#3B3B3B",
|
||||
"dropdown.background": "#FFFFFF",
|
||||
"dropdown.border": "#CECECE",
|
||||
"dropdown.foreground": "#3B3B3B",
|
||||
"dropdown.listBackground": "#FFFFFF",
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#3B3B3B",
|
||||
"editor.inactiveSelectionBackground": "#E5EBF1",
|
||||
"editor.selectionHighlightBackground": "#ADD6FF80",
|
||||
"editorGroup.border": "#E5E5E5",
|
||||
"editorGroupHeader.tabsBackground": "#F8F8F8",
|
||||
"editorGroupHeader.tabsBorder": "#E5E5E5",
|
||||
"editorGutter.addedBackground": "#2EA043",
|
||||
"editorGutter.deletedBackground": "#F85149",
|
||||
"editorGutter.modifiedBackground": "#005FB8",
|
||||
"editorIndentGuide.background1": "#D3D3D3",
|
||||
"editorLineNumber.activeForeground": "#171184",
|
||||
"editorLineNumber.foreground": "#6E7681",
|
||||
"editorOverviewRuler.border": "#E5E5E5",
|
||||
"editorSuggestWidget.background": "#F8F8F8",
|
||||
"editorWidget.background": "#F8F8F8",
|
||||
"errorForeground": "#F85149",
|
||||
"focusBorder": "#005FB8",
|
||||
"foreground": "#3B3B3B",
|
||||
"icon.foreground": "#3B3B3B",
|
||||
"input.background": "#FFFFFF",
|
||||
"input.border": "#CECECE",
|
||||
"input.foreground": "#3B3B3B",
|
||||
"input.placeholderForeground": "#767676",
|
||||
"inputOption.activeBackground": "#BED6ED",
|
||||
"inputOption.activeBorder": "#005FB8",
|
||||
"inputOption.activeForeground": "#000000",
|
||||
"keybindingLabel.foreground": "#3B3B3B",
|
||||
"list.activeSelectionBackground": "#E8E8E8",
|
||||
"list.activeSelectionForeground": "#000000",
|
||||
"list.activeSelectionIconForeground": "#000000",
|
||||
"list.hoverBackground": "#F2F2F2",
|
||||
"list.focusAndSelectionOutline": "#005FB8",
|
||||
"menu.border": "#CECECE",
|
||||
"menu.selectionBackground": "#005FB8",
|
||||
"menu.selectionForeground": "#ffffff",
|
||||
"notebook.cellBorderColor": "#E5E5E5",
|
||||
"notebook.selectedCellBackground": "#C8DDF150",
|
||||
"notificationCenterHeader.background": "#FFFFFF",
|
||||
"notificationCenterHeader.foreground": "#3B3B3B",
|
||||
"notifications.background": "#FFFFFF",
|
||||
"notifications.border": "#E5E5E5",
|
||||
"notifications.foreground": "#3B3B3B",
|
||||
"panel.background": "#F8F8F8",
|
||||
"panel.border": "#E5E5E5",
|
||||
"panelInput.border": "#E5E5E5",
|
||||
"panelTitle.activeBorder": "#005FB8",
|
||||
"panelTitle.activeForeground": "#3B3B3B",
|
||||
"panelTitle.inactiveForeground": "#3B3B3B",
|
||||
"peekViewEditor.matchHighlightBackground": "#BB800966",
|
||||
"peekViewResult.background": "#FFFFFF",
|
||||
"peekViewResult.matchHighlightBackground": "#BB800966",
|
||||
"pickerGroup.border": "#E5E5E5",
|
||||
"pickerGroup.foreground": "#8B949E",
|
||||
"ports.iconRunningProcessForeground": "#369432",
|
||||
"progressBar.background": "#005FB8",
|
||||
"quickInput.background": "#F8F8F8",
|
||||
"quickInput.foreground": "#3B3B3B",
|
||||
"searchEditor.textInputBorder": "#CECECE",
|
||||
"settings.dropdownBackground": "#FFFFFF",
|
||||
"settings.dropdownBorder": "#CECECE",
|
||||
"settings.headerForeground": "#1F1F1F",
|
||||
"settings.modifiedItemIndicator": "#BB800966",
|
||||
"settings.numberInputBorder": "#CECECE",
|
||||
"settings.textInputBorder": "#CECECE",
|
||||
"sideBar.background": "#F8F8F8",
|
||||
"sideBar.border": "#E5E5E5",
|
||||
"sideBar.foreground": "#3B3B3B",
|
||||
"sideBarSectionHeader.background": "#F8F8F8",
|
||||
"sideBarSectionHeader.border": "#E5E5E5",
|
||||
"sideBarSectionHeader.foreground": "#3B3B3B",
|
||||
"sideBarTitle.foreground": "#3B3B3B",
|
||||
"statusBar.background": "#F8F8F8",
|
||||
"statusBar.foreground": "#3B3B3B",
|
||||
"statusBar.border": "#E5E5E5",
|
||||
"statusBarItem.hoverBackground": "#1F1F1F11",
|
||||
"statusBarItem.hoverForeground": "#000000",
|
||||
"statusBarItem.compactHoverBackground": "#CCCCCC",
|
||||
"statusBar.debuggingBackground": "#FD716C",
|
||||
"statusBar.debuggingForeground": "#000000",
|
||||
"statusBar.focusBorder": "#005FB8",
|
||||
"statusBar.noFolderBackground": "#F8F8F8",
|
||||
"statusBarItem.errorBackground": "#C72E0F",
|
||||
"statusBarItem.focusBorder": "#005FB8",
|
||||
"statusBarItem.prominentBackground": "#6E768166",
|
||||
"statusBarItem.remoteBackground": "#005FB8",
|
||||
"statusBarItem.remoteForeground": "#FFFFFF",
|
||||
"tab.activeBackground": "#FFFFFF",
|
||||
"tab.activeBorder": "#F8F8F8",
|
||||
"tab.activeBorderTop": "#005FB8",
|
||||
"tab.activeForeground": "#3B3B3B",
|
||||
"tab.selectedBorderTop": "#68a3da",
|
||||
"tab.border": "#E5E5E5",
|
||||
"tab.hoverBackground": "#FFFFFF",
|
||||
"tab.inactiveBackground": "#F8F8F8",
|
||||
"tab.inactiveForeground": "#868686",
|
||||
"tab.lastPinnedBorder": "#D4D4D4",
|
||||
"tab.unfocusedActiveBorder": "#F8F8F8",
|
||||
"tab.unfocusedActiveBorderTop": "#E5E5E5",
|
||||
"tab.unfocusedHoverBackground": "#F8F8F8",
|
||||
"terminalCursor.foreground": "#005FB8",
|
||||
"terminal.foreground": "#3B3B3B",
|
||||
"terminal.inactiveSelectionBackground": "#E5EBF1",
|
||||
"terminal.tab.activeBorder": "#005FB8",
|
||||
"textBlockQuote.background": "#F8F8F8",
|
||||
"textBlockQuote.border": "#E5E5E5",
|
||||
"textCodeBlock.background": "#F8F8F8",
|
||||
"textLink.activeForeground": "#005FB8",
|
||||
"textLink.foreground": "#005FB8",
|
||||
"textPreformat.foreground": "#3B3B3B",
|
||||
"textPreformat.background": "#0000001F",
|
||||
"textSeparator.foreground": "#21262D",
|
||||
"titleBar.activeBackground": "#F8F8F8",
|
||||
"titleBar.activeForeground": "#1E1E1E",
|
||||
"titleBar.border": "#E5E5E5",
|
||||
"titleBar.inactiveBackground": "#F8F8F8",
|
||||
"titleBar.inactiveForeground": "#8B949E",
|
||||
"welcomePage.tileBackground": "#F3F3F3",
|
||||
"widget.border": "#E5E5E5"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"name": "Light+",
|
||||
"include": "./light_vs.json",
|
||||
"tokenColors": [
|
||||
// adds rules to the light vs rules
|
||||
{
|
||||
"name": "Function declarations",
|
||||
"scope": [
|
||||
"entity.name.function",
|
||||
"support.function",
|
||||
"support.constant.handlebars",
|
||||
"source.powershell variable.other.member",
|
||||
"entity.name.operator.custom-literal" // See https://en.cppreference.com/w/cpp/language/user_literal
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#795E26"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#267f99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#267f99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Control flow / Special keywords",
|
||||
"scope": [
|
||||
"keyword.control",
|
||||
"source.cpp keyword.operator.new",
|
||||
"source.cpp keyword.operator.delete",
|
||||
"keyword.other.using",
|
||||
"keyword.other.directive.using",
|
||||
"keyword.other.operator",
|
||||
"entity.name.operator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#AF00DB"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable and parameter name",
|
||||
"scope": [
|
||||
"variable",
|
||||
"meta.definition.variable.name",
|
||||
"support.variable",
|
||||
"entity.name.variable",
|
||||
"constant.other.placeholder" // placeholders in strings
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#001080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Constants and enums",
|
||||
"scope": ["variable.other.constant", "variable.other.enummember"],
|
||||
"settings": {
|
||||
"foreground": "#0070C1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Object keys, TS grammar specific",
|
||||
"scope": ["meta.object-literal.key"],
|
||||
"settings": {
|
||||
"foreground": "#001080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#d16969"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.character.character-class.regexp",
|
||||
"constant.other.character-class.set.regexp",
|
||||
"constant.other.character-class.regexp",
|
||||
"constant.character.set.regexp"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#811f3f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.operator.quantifier.regexp",
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"],
|
||||
"settings": {
|
||||
"foreground": "#EE0000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant.character", "constant.other.option"],
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.character.escape",
|
||||
"settings": {
|
||||
"foreground": "#EE0000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.label",
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true,
|
||||
"semanticTokenColors": {
|
||||
"newOperator": "#AF00DB",
|
||||
"stringLiteral": "#a31515",
|
||||
"customLiteral": "#795E26",
|
||||
"numberLiteral": "#098658"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,424 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"name": "Light (Visual Studio)",
|
||||
"colors": {
|
||||
"checkbox.border": "#919191",
|
||||
"editor.background": "#FFFFFF",
|
||||
"editor.foreground": "#000000",
|
||||
"editor.inactiveSelectionBackground": "#E5EBF1",
|
||||
"editorIndentGuide.background1": "#D3D3D3",
|
||||
"editorIndentGuide.activeBackground1": "#939393",
|
||||
"editor.selectionHighlightBackground": "#ADD6FF80",
|
||||
"editorSuggestWidget.background": "#F3F3F3",
|
||||
"activityBarBadge.background": "#007ACC",
|
||||
"sideBarTitle.foreground": "#6F6F6F",
|
||||
"list.hoverBackground": "#E8E8E8",
|
||||
"menu.border": "#D4D4D4",
|
||||
"input.placeholderForeground": "#767676",
|
||||
"searchEditor.textInputBorder": "#CECECE",
|
||||
"settings.textInputBorder": "#CECECE",
|
||||
"settings.numberInputBorder": "#CECECE",
|
||||
"statusBarItem.remoteForeground": "#FFF",
|
||||
"statusBarItem.remoteBackground": "#16825D",
|
||||
"ports.iconRunningProcessForeground": "#369432",
|
||||
"sideBarSectionHeader.background": "#0000",
|
||||
"sideBarSectionHeader.border": "#61616130",
|
||||
"tab.selectedForeground": "#333333b3",
|
||||
"tab.selectedBackground": "#ffffffa5",
|
||||
"tab.lastPinnedBorder": "#61616130",
|
||||
"notebook.cellBorderColor": "#E8E8E8",
|
||||
"notebook.selectedCellBackground": "#c8ddf150",
|
||||
"statusBarItem.errorBackground": "#c72e0f",
|
||||
"list.activeSelectionIconForeground": "#FFF",
|
||||
"list.focusAndSelectionOutline": "#90C2F9",
|
||||
"terminal.inactiveSelectionBackground": "#E5EBF1",
|
||||
"widget.border": "#d4d4d4",
|
||||
"actionBar.toggledBackground": "#dddddd",
|
||||
"diffEditor.unchangedRegionBackground": "#f8f8f8",
|
||||
"agentsNewSessionButton.border": "#D8D8D8",
|
||||
"agentsChatInput.border": "#D8D8D8"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded",
|
||||
"string meta.image.inline.markdown",
|
||||
"variable.legacy.builtin.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#000000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "emphasis",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "strong",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.diff.header",
|
||||
"settings": {
|
||||
"foreground": "#000080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"foreground": "#008000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.language",
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.numeric",
|
||||
"variable.other.enummember",
|
||||
"keyword.operator.plus.exponent",
|
||||
"keyword.operator.minus.exponent"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.regexp",
|
||||
"settings": {
|
||||
"foreground": "#811f3f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "css tags in selectors, xml tags",
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.selector",
|
||||
"settings": {
|
||||
"foreground": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#e50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid",
|
||||
"settings": {
|
||||
"foreground": "#cd3131"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.underline",
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#000080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#800080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.strikethrough",
|
||||
"settings": {
|
||||
"fontStyle": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"foreground": "#098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"foreground": "#a31515"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"foreground": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.definition.quote.begin.markdown",
|
||||
"punctuation.definition.list.begin.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"foreground": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "brackets of XML/HTML tags",
|
||||
"scope": "punctuation.definition.tag",
|
||||
"settings": {
|
||||
"foreground": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.preprocessor", "entity.name.function.preprocessor"],
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.preprocessor.string",
|
||||
"settings": {
|
||||
"foreground": "#a31515"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.preprocessor.numeric",
|
||||
"settings": {
|
||||
"foreground": "#098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.structure.dictionary.key.python",
|
||||
"settings": {
|
||||
"foreground": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage",
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage.modifier", "keyword.operator.noexcept"],
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["string", "meta.embedded.assembly"],
|
||||
"settings": {
|
||||
"foreground": "#a31515"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string.comment.buffered.block.pug",
|
||||
"string.quoted.pug",
|
||||
"string.interpolated.pug",
|
||||
"string.unquoted.plain.in.yaml",
|
||||
"string.unquoted.plain.out.yaml",
|
||||
"string.unquoted.block.yaml",
|
||||
"string.quoted.single.yaml",
|
||||
"string.quoted.double.xml",
|
||||
"string.quoted.single.xml",
|
||||
"string.unquoted.cdata.xml",
|
||||
"string.quoted.double.html",
|
||||
"string.quoted.single.html",
|
||||
"string.unquoted.html",
|
||||
"string.quoted.single.handlebars",
|
||||
"string.quoted.double.handlebars"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#811f3f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String interpolation",
|
||||
"scope": [
|
||||
"punctuation.definition.template-expression.begin",
|
||||
"punctuation.definition.template-expression.end",
|
||||
"punctuation.section.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Reset JavaScript string interpolation expression",
|
||||
"scope": ["meta.template.expression"],
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.type.property-name.json"],
|
||||
"settings": {
|
||||
"foreground": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control",
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.operator",
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": "#0000ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.other.unit",
|
||||
"settings": {
|
||||
"foreground": "#098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"],
|
||||
"settings": {
|
||||
"foreground": "#800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.function.git-rebase",
|
||||
"settings": {
|
||||
"foreground": "#0451a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.sha.git-rebase",
|
||||
"settings": {
|
||||
"foreground": "#098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "coloring of the Java import and package identifiers",
|
||||
"scope": [
|
||||
"storage.modifier.import.java",
|
||||
"variable.language.wildcard.java",
|
||||
"storage.modifier.package.java"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "this.self",
|
||||
"scope": "variable.language",
|
||||
"settings": {
|
||||
"foreground": "#0000ff"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true,
|
||||
"semanticTokenColors": {
|
||||
"newOperator": "#0000ff",
|
||||
"stringLiteral": "#a31515",
|
||||
"customLiteral": "#000000",
|
||||
"numberLiteral": "#098658"
|
||||
}
|
||||
}
|
||||
+482
@@ -0,0 +1,482 @@
|
||||
// This theme's colors are based on the original Monokai:
|
||||
// #1e1f1c (tab well, borders)
|
||||
// #272822 (editor background)
|
||||
// #414339 (selection)
|
||||
// #75715e (focus)
|
||||
// #f8f8f2 (editor foreground)
|
||||
{
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"dropdown.background": "#414339",
|
||||
"list.activeSelectionBackground": "#75715E",
|
||||
"quickInputList.focusBackground": "#414339",
|
||||
"dropdown.listBackground": "#1e1f1c",
|
||||
"list.inactiveSelectionBackground": "#414339",
|
||||
"list.hoverBackground": "#3e3d32",
|
||||
"list.dropBackground": "#414339",
|
||||
"list.highlightForeground": "#f8f8f2",
|
||||
"button.background": "#75715E",
|
||||
"editor.background": "#272822",
|
||||
"editor.foreground": "#f8f8f2",
|
||||
"selection.background": "#878b9180",
|
||||
"editor.selectionHighlightBackground": "#575b6180",
|
||||
"editor.selectionBackground": "#878b9180",
|
||||
"minimap.selectionHighlight": "#878b9180",
|
||||
"editor.wordHighlightBackground": "#4a4a7680",
|
||||
"editor.wordHighlightStrongBackground": "#6a6a9680",
|
||||
"editor.lineHighlightBackground": "#3e3d32",
|
||||
"editorLineNumber.activeForeground": "#c2c2bf",
|
||||
"editorCursor.foreground": "#f8f8f0",
|
||||
"editorWhitespace.foreground": "#464741",
|
||||
"editorIndentGuide.background": "#464741",
|
||||
"editorIndentGuide.activeBackground": "#767771",
|
||||
"editorGroupHeader.tabsBackground": "#1e1f1c",
|
||||
"editorGroup.dropBackground": "#41433980",
|
||||
"tab.inactiveBackground": "#34352f",
|
||||
"tab.border": "#1e1f1c",
|
||||
"tab.inactiveForeground": "#ccccc7", // needs to be bright so it's readable when another editor group is focused
|
||||
"tab.lastPinnedBorder": "#414339",
|
||||
"widget.shadow": "#00000098",
|
||||
"progressBar.background": "#75715E",
|
||||
"badge.background": "#75715E",
|
||||
"badge.foreground": "#f8f8f2",
|
||||
"editorLineNumber.foreground": "#90908a",
|
||||
"panelTitle.activeForeground": "#f8f8f2",
|
||||
"panelTitle.activeBorder": "#75715E",
|
||||
"panelTitle.inactiveForeground": "#75715E",
|
||||
"panel.border": "#414339",
|
||||
"settings.focusedRowBackground": "#4143395A",
|
||||
"titleBar.activeBackground": "#1e1f1c",
|
||||
"statusBar.background": "#414339",
|
||||
"statusBar.noFolderBackground": "#414339",
|
||||
"statusBar.debuggingBackground": "#75715E",
|
||||
"statusBarItem.remoteBackground": "#AC6218",
|
||||
"ports.iconRunningProcessForeground": "#ccccc7",
|
||||
"activityBar.background": "#272822",
|
||||
"activityBar.foreground": "#f8f8f2",
|
||||
"sideBar.background": "#1e1f1c",
|
||||
"sideBarSectionHeader.background": "#272822",
|
||||
"menu.background": "#1e1f1c",
|
||||
"menu.foreground": "#cccccc",
|
||||
"pickerGroup.foreground": "#75715E",
|
||||
"input.background": "#414339",
|
||||
"inputOption.activeBorder": "#75715E",
|
||||
"focusBorder": "#99947c",
|
||||
"editorWidget.background": "#1e1f1c",
|
||||
"debugToolBar.background": "#1e1f1c",
|
||||
"diffEditor.insertedTextBackground": "#4b661680", // middle of #272822 and #a6e22e
|
||||
"diffEditor.removedTextBackground": "#90274A70", // middle of #272822 and #f92672
|
||||
"inputValidation.errorBackground": "#90274A", // middle of #272822 and #f92672
|
||||
"inputValidation.errorBorder": "#f92672",
|
||||
"inputValidation.warningBackground": "#848528", // middle of #272822 and #e2e22e
|
||||
"inputValidation.warningBorder": "#e2e22e",
|
||||
"inputValidation.infoBackground": "#546190", // middle of #272822 and #819aff
|
||||
"inputValidation.infoBorder": "#819aff",
|
||||
"editorHoverWidget.background": "#414339",
|
||||
"editorHoverWidget.border": "#75715E",
|
||||
"editorSuggestWidget.background": "#272822",
|
||||
"editorSuggestWidget.border": "#75715E",
|
||||
"editorGroup.border": "#34352f",
|
||||
"peekView.border": "#75715E",
|
||||
"peekViewEditor.background": "#272822",
|
||||
"peekViewResult.background": "#1e1f1c",
|
||||
"peekViewTitle.background": "#1e1f1c",
|
||||
"peekViewResult.selectionBackground": "#414339",
|
||||
"peekViewResult.matchHighlightBackground": "#75715E",
|
||||
"peekViewEditor.matchHighlightBackground": "#75715E",
|
||||
"terminal.ansiBlack": "#333333",
|
||||
"terminal.ansiRed": "#C4265E", // the bright color with ~75% transparent on the background
|
||||
"terminal.ansiGreen": "#86B42B",
|
||||
"terminal.ansiYellow": "#B3B42B",
|
||||
"terminal.ansiBlue": "#6A7EC8",
|
||||
"terminal.ansiMagenta": "#8C6BC8",
|
||||
"terminal.ansiCyan": "#56ADBC",
|
||||
"terminal.ansiWhite": "#e3e3dd",
|
||||
"terminal.ansiBrightBlack": "#666666",
|
||||
"terminal.ansiBrightRed": "#f92672",
|
||||
"terminal.ansiBrightGreen": "#A6E22E",
|
||||
"terminal.ansiBrightYellow": "#e2e22e", // hue shifted #A6E22E
|
||||
"terminal.ansiBrightBlue": "#819aff", // hue shifted #AE81FF
|
||||
"terminal.ansiBrightMagenta": "#AE81FF",
|
||||
"terminal.ansiBrightCyan": "#66D9EF",
|
||||
"terminal.ansiBrightWhite": "#f8f8f2"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"foreground": "#F8F8F2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded",
|
||||
"string meta.image.inline.markdown",
|
||||
"variable.legacy.builtin.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#F8F8F2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"foreground": "#88846f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": "string",
|
||||
"settings": {
|
||||
"foreground": "#E6DB74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Template Definition",
|
||||
"scope": ["punctuation.definition.template-expression", "punctuation.section.embedded"],
|
||||
"settings": {
|
||||
"foreground": "#F92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Reset JavaScript string interpolation expression",
|
||||
"scope": ["meta.template.expression"],
|
||||
"settings": {
|
||||
"foreground": "#F8F8F2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": "constant.numeric",
|
||||
"settings": {
|
||||
"foreground": "#AE81FF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constant",
|
||||
"scope": "constant.language",
|
||||
"settings": {
|
||||
"foreground": "#AE81FF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "User-defined constant",
|
||||
"scope": "constant.character, constant.other",
|
||||
"settings": {
|
||||
"foreground": "#AE81FF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": "variable",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#F8F8F2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#F92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": "storage",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#F92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage type",
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#66D9EF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Class name",
|
||||
"scope": "entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",
|
||||
"settings": {
|
||||
"fontStyle": "underline",
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class",
|
||||
"scope": ["entity.other.inherited-class", "punctuation.separator.namespace.ruby"],
|
||||
"settings": {
|
||||
"fontStyle": "italic underline",
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function argument",
|
||||
"scope": "variable.parameter",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#FD971F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag name",
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#F92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": "support.function",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#66D9EF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": "support.constant",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#66D9EF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": "support.type, support.class",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#66D9EF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library variable",
|
||||
"scope": "support.other.variable",
|
||||
"settings": {
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": "invalid",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#F44747"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Invalid deprecated",
|
||||
"scope": "invalid.deprecated",
|
||||
"settings": {
|
||||
"foreground": "#F44747"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JSON String",
|
||||
"scope": "meta.structure.dictionary.json string.quoted.double.json",
|
||||
"settings": {
|
||||
"foreground": "#CFCFC2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.header",
|
||||
"scope": "meta.diff, meta.diff.header",
|
||||
"settings": {
|
||||
"foreground": "#75715E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.deleted",
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"foreground": "#F92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.inserted",
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.changed",
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"foreground": "#E6DB74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.numeric.line-number.find-in-files - match",
|
||||
"settings": {
|
||||
"foreground": "#AE81FFA0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.filename.find-in-files",
|
||||
"settings": {
|
||||
"foreground": "#E6DB74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Quote",
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#F92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Lists",
|
||||
"scope": "markup.list",
|
||||
"settings": {
|
||||
"foreground": "#E6DB74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Styling",
|
||||
"scope": "markup.bold, markup.italic",
|
||||
"settings": {
|
||||
"foreground": "#66D9EF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Inline",
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#FD971F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Headings",
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Setext Header",
|
||||
"scope": "markup.heading.setext",
|
||||
"settings": {
|
||||
"foreground": "#A6E22E",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Headings",
|
||||
"scope": "markup.heading.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Quote",
|
||||
"scope": "markup.quote.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#75715E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Bold",
|
||||
"scope": "markup.bold.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Link Title/Description",
|
||||
"scope": "string.other.link.title.markdown,string.other.link.description.markdown",
|
||||
"settings": {
|
||||
"foreground": "#AE81FF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Underline Link/Image",
|
||||
"scope": "markup.underline.link.markdown,markup.underline.link.image.markdown",
|
||||
"settings": {
|
||||
"foreground": "#E6DB74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Emphasis",
|
||||
"scope": "markup.italic.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.strikethrough",
|
||||
"settings": {
|
||||
"fontStyle": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Punctuation Definition Link",
|
||||
"scope": "markup.list.unnumbered.markdown, markup.list.numbered.markdown",
|
||||
"settings": {
|
||||
"foreground": "#f8f8f2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown List Punctuation",
|
||||
"scope": ["punctuation.definition.list.begin.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#A6E22E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "this.self",
|
||||
"scope": "variable.language",
|
||||
"settings": {
|
||||
"foreground": "#FD971F"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true
|
||||
}
|
||||
+473
@@ -0,0 +1,473 @@
|
||||
{
|
||||
"name": "Solarized (light)",
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded",
|
||||
"string meta.image.inline.markdown",
|
||||
"variable.legacy.builtin.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": "string",
|
||||
"settings": {
|
||||
"foreground": "#2AA198"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regexp",
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#DC322F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": "constant.numeric",
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": ["variable.language", "variable.other"],
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": "storage",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#586E75"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Class name",
|
||||
"scope": [
|
||||
"entity.name.class",
|
||||
"entity.name.type",
|
||||
"entity.name.namespace",
|
||||
"entity.name.scope-resolution"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable start",
|
||||
"scope": "punctuation.definition.variable",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Embedded code markers",
|
||||
"scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"],
|
||||
"settings": {
|
||||
"foreground": "#DC322F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constant",
|
||||
"scope": ["constant.language", "meta.preprocessor"],
|
||||
"settings": {
|
||||
"foreground": "#B58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Support.construct",
|
||||
"scope": ["support.function.construct", "keyword.other.new"],
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "User-defined constant",
|
||||
"scope": ["constant.character", "constant.other"],
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class",
|
||||
"scope": ["entity.other.inherited-class", "punctuation.separator.namespace.ruby"],
|
||||
"settings": {
|
||||
"foreground": "#6C71C4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function argument",
|
||||
"scope": "variable.parameter",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Tag name",
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag start/end",
|
||||
"scope": "punctuation.definition.tag",
|
||||
"settings": {
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": "support.function",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Continuation",
|
||||
"scope": "punctuation.separator.continuation",
|
||||
"settings": {
|
||||
"foreground": "#DC322F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": ["support.constant", "support.variable"],
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": ["support.type", "support.class"],
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library Exception",
|
||||
"scope": "support.type.exception",
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library variable",
|
||||
"scope": "support.other.variable",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": "invalid",
|
||||
"settings": {
|
||||
"foreground": "#DC322F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: header",
|
||||
"scope": ["meta.diff", "meta.diff.header"],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: deleted",
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#DC322F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: changed",
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: inserted",
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Quote",
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Lists",
|
||||
"scope": "markup.list",
|
||||
"settings": {
|
||||
"foreground": "#B58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Styling",
|
||||
"scope": ["markup.bold", "markup.italic"],
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup: Strong",
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup: Emphasis",
|
||||
"scope": "markup.italic",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.strikethrough",
|
||||
"settings": {
|
||||
"fontStyle": "strikethrough"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Inline",
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#2AA198"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Headings",
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Setext Header",
|
||||
"scope": "markup.heading.setext",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
}
|
||||
],
|
||||
"colors": {
|
||||
// Base
|
||||
// "foreground": "",
|
||||
"focusBorder": "#b49471",
|
||||
// "contrastActiveBorder": "",
|
||||
// "contrastBorder": "",
|
||||
// "widget.shadow": "",
|
||||
"input.background": "#DDD6C1",
|
||||
// "input.border": "",
|
||||
"input.foreground": "#586E75",
|
||||
"input.placeholderForeground": "#586E75AA",
|
||||
"inputOption.activeBorder": "#D3AF86",
|
||||
// "inputValidation.infoBorder": "",
|
||||
// "inputValidation.infoBackground": "",
|
||||
// "inputValidation.warningBackground": "",
|
||||
// "inputValidation.warningBorder": "",
|
||||
// "inputValidation.errorBackground": "",
|
||||
// "inputValidation.errorBorder": "",
|
||||
"badge.background": "#B58900AA",
|
||||
"progressBar.background": "#B58900",
|
||||
"dropdown.background": "#EEE8D5",
|
||||
// "dropdown.foreground": "",
|
||||
"dropdown.border": "#D3AF86",
|
||||
"button.background": "#AC9D57",
|
||||
// "button.foreground": "",
|
||||
"selection.background": "#878b9180",
|
||||
"list.activeSelectionBackground": "#DFCA88",
|
||||
"list.activeSelectionForeground": "#6C6C6C",
|
||||
"quickInputList.focusBackground": "#DFCA8866",
|
||||
"list.hoverBackground": "#DFCA8844",
|
||||
"list.inactiveSelectionBackground": "#D1CBB8",
|
||||
"list.highlightForeground": "#B58900",
|
||||
// "scrollbar.shadow": "",
|
||||
// "scrollbarSlider.activeBackground": "",
|
||||
// "scrollbarSlider.background": "",
|
||||
// "scrollbarSlider.hoverBackground": "",
|
||||
// Editor
|
||||
"editor.background": "#FDF6E3",
|
||||
"editor.foreground": "#657B83",
|
||||
"notebook.cellEditorBackground": "#F7F0E0",
|
||||
"editorWidget.background": "#EEE8D5",
|
||||
"editorCursor.foreground": "#657B83",
|
||||
"editorWhitespace.foreground": "#586E7580",
|
||||
"editor.lineHighlightBackground": "#EEE8D5",
|
||||
"editor.selectionBackground": "#EEE8D5",
|
||||
"minimap.selectionHighlight": "#EEE8D5",
|
||||
"editorIndentGuide.background": "#586E7580",
|
||||
"editorIndentGuide.activeBackground": "#081E2580",
|
||||
"editorHoverWidget.background": "#CCC4B0",
|
||||
"editorLineNumber.activeForeground": "#567983",
|
||||
// "editorHoverWidget.border": "",
|
||||
// "editorLineNumber.foreground": "",
|
||||
// "editorMarkerNavigation.background": "",
|
||||
// "editorMarkerNavigationError.background": "",
|
||||
// "editorMarkerNavigationWarning.background": "",
|
||||
// "editorLink.activeForeground": "",
|
||||
// "editor.findMatchBackground": "",
|
||||
// "editor.findMatchHighlightBackground": "",
|
||||
// "editor.findRangeHighlightBackground": "",
|
||||
// "editor.hoverHighlightBackground": "",
|
||||
// "editor.inactiveSelectionBackground": "",
|
||||
// "editor.lineHighlightBorder": "",
|
||||
// "editor.rangeHighlightBackground": "",
|
||||
// "editor.selectionHighlightBackground": "",
|
||||
// "editor.wordHighlightBackground": "",
|
||||
// "editor.wordHighlightStrongBackground": "",
|
||||
// Editor: Suggest Widget
|
||||
// "editorSuggestWidget.background": "",
|
||||
// "editorSuggestWidget.border": "",
|
||||
// "editorSuggestWidget.foreground": "",
|
||||
// "editorSuggestWidget.highlightForeground": "",
|
||||
// "editorSuggestWidget.selectedBackground": "",
|
||||
// Editor: Peek View
|
||||
"peekViewResult.background": "#EEE8D5",
|
||||
// "peekViewResult.lineForeground": "",
|
||||
// "peekViewResult.selectionBackground": "",
|
||||
// "peekViewResult.selectionForeground": "",
|
||||
"peekViewEditor.background": "#FFFBF2",
|
||||
"peekViewTitle.background": "#EEE8D5",
|
||||
"peekView.border": "#B58900",
|
||||
"peekViewEditor.matchHighlightBackground": "#7744AA40",
|
||||
// "peekViewResult.fileForeground": "",
|
||||
// "peekViewResult.matchHighlightBackground": "",
|
||||
// "peekViewTitleLabel.foreground": "",
|
||||
// "peekViewTitleDescription.foreground": "",
|
||||
// Editor: Diff
|
||||
// "diffEditor.insertedTextBackground": "",
|
||||
// "diffEditor.insertedTextBorder": "",
|
||||
// "diffEditor.removedTextBackground": "",
|
||||
// "diffEditor.removedTextBorder": "",
|
||||
// Workbench: Title
|
||||
"titleBar.activeBackground": "#EEE8D5",
|
||||
// "titleBar.activeForeground": "",
|
||||
// "titleBar.inactiveBackground": "",
|
||||
// "titleBar.inactiveForeground": "",
|
||||
// Workbench: Editors
|
||||
// "editorGroupHeader.noTabsBackground": "",
|
||||
"editorGroup.border": "#DDD6C1",
|
||||
"editorGroup.dropBackground": "#DDD6C1AA",
|
||||
"editorGroupHeader.tabsBackground": "#D9D2C2",
|
||||
// Workbench: Tabs
|
||||
"tab.border": "#DDD6C1",
|
||||
"tab.activeBackground": "#FDF6E3",
|
||||
"tab.inactiveForeground": "#586E75",
|
||||
"tab.inactiveBackground": "#D3CBB7",
|
||||
"tab.activeModifiedBorder": "#cb4b16",
|
||||
// "tab.activeBackground": "",
|
||||
// "tab.activeForeground": "",
|
||||
// "tab.inactiveForeground": "",
|
||||
"tab.lastPinnedBorder": "#FDF6E3",
|
||||
// Workbench: Activity Bar
|
||||
"activityBar.background": "#DDD6C1",
|
||||
"activityBar.foreground": "#584c27",
|
||||
"activityBarBadge.background": "#B58900",
|
||||
// "activityBarBadge.foreground": "",
|
||||
// Workbench: Panel
|
||||
// "panel.background": "",
|
||||
"panel.border": "#DDD6C1",
|
||||
// "panelTitle.activeBorder": "",
|
||||
// "panelTitle.activeForeground": "",
|
||||
// "panelTitle.inactiveForeground": "",
|
||||
// Workbench: Side Bar
|
||||
"sideBar.background": "#EEE8D5",
|
||||
"sideBarTitle.foreground": "#586E75",
|
||||
// "sideBarSectionHeader.background": "",
|
||||
// Workbench: Status Bar
|
||||
"statusBar.foreground": "#586E75",
|
||||
"statusBar.background": "#EEE8D5",
|
||||
"statusBar.debuggingBackground": "#EEE8D5",
|
||||
"statusBar.noFolderBackground": "#EEE8D5",
|
||||
// "statusBar.foreground": "",
|
||||
"statusBarItem.remoteBackground": "#AC9D57",
|
||||
"ports.iconRunningProcessForeground": "#2AA19899",
|
||||
"statusBarItem.prominentBackground": "#DDD6C1",
|
||||
"statusBarItem.prominentHoverBackground": "#DDD6C199",
|
||||
// "statusBarItem.activeBackground": "",
|
||||
// "statusBarItem.hoverBackground": "",
|
||||
// Workbench: Debug
|
||||
"debugToolBar.background": "#DDD6C1",
|
||||
"debugExceptionWidget.background": "#DDD6C1",
|
||||
"debugExceptionWidget.border": "#AB395B",
|
||||
// Workbench: Quick Open
|
||||
"pickerGroup.border": "#2AA19899",
|
||||
"pickerGroup.foreground": "#2AA19899",
|
||||
// Extensions
|
||||
"extensionButton.prominentBackground": "#b58900",
|
||||
"extensionButton.prominentHoverBackground": "#584c27aa",
|
||||
// Workbench: Terminal
|
||||
// Colors sourced from the official palette http://ethanschoonover.com/solarized
|
||||
"terminal.ansiBlack": "#073642",
|
||||
"terminal.ansiRed": "#dc322f",
|
||||
"terminal.ansiGreen": "#859900",
|
||||
"terminal.ansiYellow": "#b58900",
|
||||
"terminal.ansiBlue": "#268bd2",
|
||||
"terminal.ansiMagenta": "#d33682",
|
||||
"terminal.ansiCyan": "#2aa198",
|
||||
"terminal.ansiWhite": "#eee8d5",
|
||||
"terminal.ansiBrightBlack": "#002b36",
|
||||
"terminal.ansiBrightRed": "#cb4b16",
|
||||
"terminal.ansiBrightGreen": "#586e75",
|
||||
"terminal.ansiBrightYellow": "#657b83",
|
||||
"terminal.ansiBrightBlue": "#839496",
|
||||
"terminal.ansiBrightMagenta": "#6c71c4",
|
||||
"terminal.ansiBrightCyan": "#93a1a1",
|
||||
"terminal.ansiBrightWhite": "#fdf6e3",
|
||||
// Set terminal background explicitly, otherwise selection becomes invisible when the
|
||||
// terminal is in the side bar
|
||||
"terminal.background": "#FDF6E3",
|
||||
// Interactive Playground
|
||||
"walkThrough.embeddedEditorBackground": "#00000014"
|
||||
},
|
||||
"semanticHighlighting": true
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>VS Code Theme Sequence</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#vscode-theme-sequence {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="vscode-theme-sequence"
|
||||
data-composition-id="vscode-theme-sequence"
|
||||
data-start="0"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-light-2026"
|
||||
data-composition-id="vscode-light-2026"
|
||||
data-composition-src="compositions/light-2026.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-dark-2026"
|
||||
data-composition-id="vscode-dark-2026"
|
||||
data-composition-src="compositions/dark-2026.html"
|
||||
data-start="11"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-dark-plus"
|
||||
data-composition-id="vscode-dark-plus"
|
||||
data-composition-src="compositions/dark-plus.html"
|
||||
data-start="22"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-dark-modern"
|
||||
data-composition-id="vscode-dark-modern"
|
||||
data-composition-src="compositions/dark-modern.html"
|
||||
data-start="33"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-light-plus"
|
||||
data-composition-id="vscode-light-plus"
|
||||
data-composition-src="compositions/light-plus.html"
|
||||
data-start="44"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-light-modern"
|
||||
data-composition-id="vscode-light-modern"
|
||||
data-composition-src="compositions/light-modern.html"
|
||||
data-start="55"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-visual-studio-dark"
|
||||
data-composition-id="vscode-visual-studio-dark"
|
||||
data-composition-src="compositions/visual-studio-dark.html"
|
||||
data-start="66"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-visual-studio-light"
|
||||
data-composition-id="vscode-visual-studio-light"
|
||||
data-composition-src="compositions/visual-studio-light.html"
|
||||
data-start="77"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-high-contrast"
|
||||
data-composition-id="vscode-high-contrast"
|
||||
data-composition-src="compositions/high-contrast.html"
|
||||
data-start="88"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-high-contrast-light"
|
||||
data-composition-id="vscode-high-contrast-light"
|
||||
data-composition-src="compositions/high-contrast-light.html"
|
||||
data-start="99"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-solarized-light"
|
||||
data-composition-id="vscode-solarized-light"
|
||||
data-composition-src="compositions/solarized-light.html"
|
||||
data-start="110"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<div
|
||||
id="clip-monokai"
|
||||
data-composition-id="vscode-monokai"
|
||||
data-composition-src="compositions/monokai.html"
|
||||
data-start="121"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["vscode-theme-sequence"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
|
||||
"name": "vscode-theme-visualizer",
|
||||
"type": "hyperframes:example",
|
||||
"title": "VS Code Theme Visualizer",
|
||||
"description": "Faithful VS Code workbench recreation with per-character typing animation across 12 built-in themes. Activity bar, sidebar, tabs, editor, terminal, and status bar — all driven by official theme JSON files.",
|
||||
"tags": ["code", "developer", "showcase", "vscode", "themes"],
|
||||
"dimensions": {
|
||||
"width": 1920,
|
||||
"height": 1080
|
||||
},
|
||||
"duration": 132,
|
||||
"files": [
|
||||
{
|
||||
"path": "index.html",
|
||||
"target": "index.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/dark-2026.html",
|
||||
"target": "compositions/dark-2026.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/dark-modern.html",
|
||||
"target": "compositions/dark-modern.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/dark-plus.html",
|
||||
"target": "compositions/dark-plus.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/high-contrast-light.html",
|
||||
"target": "compositions/high-contrast-light.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/high-contrast.html",
|
||||
"target": "compositions/high-contrast.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/light-2026.html",
|
||||
"target": "compositions/light-2026.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/light-modern.html",
|
||||
"target": "compositions/light-modern.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/light-plus.html",
|
||||
"target": "compositions/light-plus.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/monokai.html",
|
||||
"target": "compositions/monokai.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/solarized-light.html",
|
||||
"target": "compositions/solarized-light.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/visual-studio-dark.html",
|
||||
"target": "compositions/visual-studio-dark.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "compositions/visual-studio-light.html",
|
||||
"target": "compositions/visual-studio-light.html",
|
||||
"type": "hyperframes:composition"
|
||||
},
|
||||
{
|
||||
"path": "assets/background.jpeg",
|
||||
"target": "assets/background.jpeg",
|
||||
"type": "hyperframes:asset"
|
||||
},
|
||||
{
|
||||
"path": "assets/vscode-sequence.css",
|
||||
"target": "assets/vscode-sequence.css",
|
||||
"type": "hyperframes:style"
|
||||
},
|
||||
{
|
||||
"path": "assets/vscode-sequence-runtime.js",
|
||||
"target": "assets/vscode-sequence-runtime.js",
|
||||
"type": "hyperframes:asset"
|
||||
},
|
||||
{
|
||||
"path": "assets/vscode-theme-registry.js",
|
||||
"target": "assets/vscode-theme-registry.js",
|
||||
"type": "hyperframes:asset"
|
||||
},
|
||||
{
|
||||
"path": "scripts/build-compositions.mjs",
|
||||
"target": "scripts/build-compositions.mjs",
|
||||
"type": "hyperframes:asset"
|
||||
},
|
||||
{
|
||||
"path": "scripts/build-theme-registry.mjs",
|
||||
"target": "scripts/build-theme-registry.mjs",
|
||||
"type": "hyperframes:asset"
|
||||
},
|
||||
{
|
||||
"path": "DESIGN.md",
|
||||
"target": "DESIGN.md",
|
||||
"type": "hyperframes:asset"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Dark 2026 Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-dark-2026 {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-dark-2026"
|
||||
data-composition-id="render-dark-2026"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-dark-2026"
|
||||
data-composition-id="vscode-dark-2026"
|
||||
data-composition-src="../compositions/dark-2026.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-dark-2026"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Dark Modern Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-dark-modern {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-dark-modern"
|
||||
data-composition-id="render-dark-modern"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-dark-modern"
|
||||
data-composition-id="vscode-dark-modern"
|
||||
data-composition-src="../compositions/dark-modern.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-dark-modern"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Dark+ Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-dark-plus {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-dark-plus"
|
||||
data-composition-id="render-dark-plus"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-dark-plus"
|
||||
data-composition-id="vscode-dark-plus"
|
||||
data-composition-src="../compositions/dark-plus.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-dark-plus"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Default High Contrast Light Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-high-contrast-light {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-high-contrast-light"
|
||||
data-composition-id="render-high-contrast-light"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-high-contrast-light"
|
||||
data-composition-id="vscode-high-contrast-light"
|
||||
data-composition-src="../compositions/high-contrast-light.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-high-contrast-light"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Default High Contrast Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-high-contrast {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-high-contrast"
|
||||
data-composition-id="render-high-contrast"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-high-contrast"
|
||||
data-composition-id="vscode-high-contrast"
|
||||
data-composition-src="../compositions/high-contrast.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-high-contrast"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Light 2026 Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-light-2026 {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-light-2026"
|
||||
data-composition-id="render-light-2026"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-light-2026"
|
||||
data-composition-id="vscode-light-2026"
|
||||
data-composition-src="../compositions/light-2026.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-light-2026"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Light Modern Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-light-modern {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-light-modern"
|
||||
data-composition-id="render-light-modern"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-light-modern"
|
||||
data-composition-id="vscode-light-modern"
|
||||
data-composition-src="../compositions/light-modern.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-light-modern"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Light+ Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-light-plus {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-light-plus"
|
||||
data-composition-id="render-light-plus"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-light-plus"
|
||||
data-composition-id="vscode-light-plus"
|
||||
data-composition-src="../compositions/light-plus.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-light-plus"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Monokai Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-monokai {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-monokai"
|
||||
data-composition-id="render-monokai"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-monokai"
|
||||
data-composition-id="vscode-monokai"
|
||||
data-composition-src="../compositions/monokai.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-monokai"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Solarized Light Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-solarized-light {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-solarized-light"
|
||||
data-composition-id="render-solarized-light"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-solarized-light"
|
||||
data-composition-id="vscode-solarized-light"
|
||||
data-composition-src="../compositions/solarized-light.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-solarized-light"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Visual Studio Dark Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-visual-studio-dark {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-visual-studio-dark"
|
||||
data-composition-id="render-visual-studio-dark"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-visual-studio-dark"
|
||||
data-composition-id="vscode-visual-studio-dark"
|
||||
data-composition-src="../compositions/visual-studio-dark.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-visual-studio-dark"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>Visual Studio Light Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-visual-studio-light {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="render-visual-studio-light"
|
||||
data-composition-id="render-visual-studio-light"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-width="1920"
|
||||
data-height="1080"
|
||||
>
|
||||
<div
|
||||
id="clip-visual-studio-light"
|
||||
data-composition-id="vscode-visual-studio-light"
|
||||
data-composition-src="../compositions/visual-studio-light.html"
|
||||
data-start="0"
|
||||
data-duration="11"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-visual-studio-light"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,932 @@
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const projectRoot = path.resolve(__dirname, "..");
|
||||
const repoRoot = path.resolve(projectRoot, "../../..");
|
||||
const assetsDir = path.join(projectRoot, "assets");
|
||||
const compositionsDir = path.join(projectRoot, "compositions");
|
||||
const renderEntriesDir = path.join(projectRoot, "render-entries");
|
||||
const blocksDir = path.join(repoRoot, "registry", "blocks");
|
||||
|
||||
fs.mkdirSync(compositionsDir, { recursive: true });
|
||||
fs.mkdirSync(renderEntriesDir, { recursive: true });
|
||||
|
||||
const registrySource = fs.readFileSync(path.join(assetsDir, "vscode-theme-registry.js"), "utf8");
|
||||
const registryBody = registrySource
|
||||
.replace(/^.*window\.VSCODE_THEME_REGISTRY\s*=\s*/s, "")
|
||||
.replace(/;\s*$/, "");
|
||||
const registry = new Function("return (" + registryBody + ")")();
|
||||
const clipDuration = 11;
|
||||
|
||||
const css = String.raw`* {
|
||||
box-sizing: border-box;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
}
|
||||
|
||||
.vscode-theme-scene {
|
||||
--activity-bg: #181818;
|
||||
--activity-fg: #d7d7d7;
|
||||
--activity-muted: #868686;
|
||||
--activity-active: #0078d4;
|
||||
--sidebar-bg: #181818;
|
||||
--sidebar-fg: #cccccc;
|
||||
--sidebar-border: #2b2b2b;
|
||||
--tab-bg: #181818;
|
||||
--tab-active-bg: #1f1f1f;
|
||||
--tab-active-fg: #ffffff;
|
||||
--tab-inactive-fg: #9d9d9d;
|
||||
--tab-border: #2b2b2b;
|
||||
--editor-bg: #1f1f1f;
|
||||
--editor-fg: #cccccc;
|
||||
--editor-line: rgba(255, 255, 255, 0.04);
|
||||
--gutter-fg: #6e7681;
|
||||
--gutter-active-fg: #cccccc;
|
||||
--panel-bg: #181818;
|
||||
--panel-border: #2b2b2b;
|
||||
--status-bg: #181818;
|
||||
--status-fg: #cccccc;
|
||||
--status-border: #2b2b2b;
|
||||
--title-bg: #181818;
|
||||
--title-fg: #cccccc;
|
||||
--token-comment: #6a9955;
|
||||
--token-keyword: #c586c0;
|
||||
--token-function: #dcdcaa;
|
||||
--token-string: #ce9178;
|
||||
--token-number: #b5cea8;
|
||||
--token-variable: #9cdcfe;
|
||||
--token-parameter: #9cdcfe;
|
||||
--token-operator: #d4d4d4;
|
||||
--token-punctuation: #d4d4d4;
|
||||
--token-class-name: #4ec9b0;
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background:
|
||||
linear-gradient(180deg, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0.32)),
|
||||
url("../assets/background.jpeg") center / cover no-repeat;
|
||||
color: var(--editor-fg);
|
||||
}
|
||||
|
||||
.scene-content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 54px 70px 92px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
perspective: 2200px;
|
||||
perspective-origin: 56% 52%;
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: end;
|
||||
justify-content: space-between;
|
||||
min-height: 66px;
|
||||
text-shadow:
|
||||
0 2px 12px rgba(0, 0, 0, 0.42),
|
||||
0 14px 34px rgba(0, 0, 0, 0.32);
|
||||
}
|
||||
|
||||
.kicker {
|
||||
margin: 0 0 7px;
|
||||
color: var(--gutter-fg);
|
||||
font-size: 15px;
|
||||
font-weight: 650;
|
||||
text-transform: uppercase;
|
||||
text-shadow:
|
||||
0 2px 8px rgba(0, 0, 0, 0.48),
|
||||
0 10px 26px rgba(0, 0, 0, 0.36);
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 0;
|
||||
color: var(--editor-fg);
|
||||
font-size: 44px;
|
||||
line-height: 1;
|
||||
font-weight: 760;
|
||||
}
|
||||
|
||||
.source-note {
|
||||
width: 510px;
|
||||
color: var(--gutter-fg);
|
||||
font-size: 16px;
|
||||
line-height: 1.35;
|
||||
text-align: right;
|
||||
text-shadow:
|
||||
0 2px 10px rgba(0, 0, 0, 0.46),
|
||||
0 12px 30px rgba(0, 0, 0, 0.34);
|
||||
}
|
||||
|
||||
.workbench {
|
||||
height: 824px;
|
||||
display: grid;
|
||||
grid-template-columns: 54px 290px 1fr;
|
||||
grid-template-rows: 36px 1fr 26px;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--sidebar-border);
|
||||
border-radius: 8px;
|
||||
background: var(--editor-bg);
|
||||
box-shadow: 0 34px 90px rgba(0, 0, 0, 0.42);
|
||||
transform: translateZ(0);
|
||||
transform-origin: 82% 50%;
|
||||
transform-style: preserve-3d;
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.titlebar {
|
||||
grid-column: 1 / -1;
|
||||
display: grid;
|
||||
grid-template-columns: 120px 1fr 210px;
|
||||
align-items: center;
|
||||
background: var(--title-bg);
|
||||
color: var(--title-fg);
|
||||
border-bottom: 1px solid var(--tab-border);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.traffic {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.traffic span {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.traffic span:nth-child(1) { background: #ff5f57; }
|
||||
.traffic span:nth-child(2) { background: #ffbd2e; }
|
||||
.traffic span:nth-child(3) { background: #28c840; }
|
||||
|
||||
.window-title {
|
||||
justify-self: center;
|
||||
opacity: 0.84;
|
||||
}
|
||||
|
||||
.command-center {
|
||||
justify-self: end;
|
||||
width: 176px;
|
||||
height: 22px;
|
||||
margin-right: 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px solid color-mix(in srgb, var(--title-fg), transparent 78%);
|
||||
border-radius: 5px;
|
||||
color: color-mix(in srgb, var(--title-fg), transparent 18%);
|
||||
}
|
||||
|
||||
.activity {
|
||||
grid-row: 2 / 3;
|
||||
background: var(--activity-bg);
|
||||
border-right: 1px solid var(--sidebar-border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 10px 0;
|
||||
gap: 18px;
|
||||
}
|
||||
|
||||
.activity-icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
color: var(--activity-muted);
|
||||
}
|
||||
|
||||
.activity-icon.active {
|
||||
color: var(--activity-fg);
|
||||
border-left: 2px solid var(--activity-active);
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
grid-row: 2 / 3;
|
||||
background: var(--sidebar-bg);
|
||||
color: var(--sidebar-fg);
|
||||
border-right: 1px solid var(--sidebar-border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.sidebar-title {
|
||||
height: 38px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
color: var(--sidebar-fg);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 0 14px;
|
||||
background: color-mix(in srgb, var(--sidebar-bg), var(--sidebar-fg) 5%);
|
||||
border-top: 1px solid var(--sidebar-border);
|
||||
border-bottom: 1px solid var(--sidebar-border);
|
||||
color: var(--sidebar-fg);
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tree {
|
||||
padding: 8px 0;
|
||||
font-size: 13px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.tree-row {
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
padding: 0 10px 0 18px;
|
||||
color: color-mix(in srgb, var(--sidebar-fg), transparent 8%);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tree-row.child {
|
||||
padding-left: 34px;
|
||||
}
|
||||
|
||||
.tree-row.selected {
|
||||
background: color-mix(in srgb, var(--sidebar-fg), transparent 88%);
|
||||
color: var(--sidebar-fg);
|
||||
}
|
||||
|
||||
.editor-area {
|
||||
grid-row: 2 / 3;
|
||||
display: grid;
|
||||
grid-template-rows: 36px 30px 1fr 138px;
|
||||
min-width: 0;
|
||||
background: var(--editor-bg);
|
||||
}
|
||||
|
||||
.tabs {
|
||||
display: flex;
|
||||
background: var(--tab-bg);
|
||||
border-bottom: 1px solid var(--tab-border);
|
||||
}
|
||||
|
||||
.tab {
|
||||
width: 205px;
|
||||
height: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 0 13px;
|
||||
border-right: 1px solid var(--tab-border);
|
||||
background: var(--tab-active-bg);
|
||||
color: var(--tab-active-fg);
|
||||
border-top: 2px solid var(--activity-active);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.tab.inactive {
|
||||
background: var(--tab-bg);
|
||||
color: var(--tab-inactive-fg);
|
||||
border-top-color: transparent;
|
||||
}
|
||||
|
||||
.breadcrumbs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
padding: 0 18px;
|
||||
color: var(--gutter-fg);
|
||||
border-bottom: 1px solid color-mix(in srgb, var(--tab-border), transparent 20%);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.editor {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: var(--editor-bg);
|
||||
color: var(--editor-fg);
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
font-size: 18px;
|
||||
line-height: 1.52;
|
||||
}
|
||||
|
||||
.active-line {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
height: 28px;
|
||||
background: var(--editor-line);
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.code {
|
||||
position: relative;
|
||||
padding: 20px 36px 18px 0;
|
||||
}
|
||||
|
||||
.line {
|
||||
height: 28px;
|
||||
display: grid;
|
||||
grid-template-columns: 72px 1fr;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.line-number {
|
||||
padding-right: 18px;
|
||||
color: var(--gutter-fg);
|
||||
text-align: right;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.line.is-active .line-number {
|
||||
color: var(--gutter-active-fg);
|
||||
}
|
||||
|
||||
.line-code {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.char {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.tok-comment { color: var(--token-comment); }
|
||||
.tok-keyword { color: var(--token-keyword); }
|
||||
.tok-function { color: var(--token-function); }
|
||||
.tok-string { color: var(--token-string); }
|
||||
.tok-number { color: var(--token-number); }
|
||||
.tok-variable { color: var(--token-variable); }
|
||||
.tok-parameter { color: var(--token-parameter); }
|
||||
.tok-operator { color: var(--token-operator); }
|
||||
.tok-punctuation { color: var(--token-punctuation); }
|
||||
.tok-class-name { color: var(--token-class-name); }
|
||||
|
||||
.caret {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 3;
|
||||
display: block;
|
||||
width: 2px;
|
||||
height: 22px;
|
||||
background: var(--editor-fg);
|
||||
pointer-events: none;
|
||||
will-change: transform, opacity;
|
||||
}
|
||||
|
||||
.terminal {
|
||||
display: grid;
|
||||
grid-template-rows: 32px 1fr;
|
||||
background: var(--panel-bg);
|
||||
border-top: 1px solid var(--panel-border);
|
||||
color: var(--editor-fg);
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.panel-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 22px;
|
||||
padding: 0 18px;
|
||||
border-bottom: 1px solid var(--panel-border);
|
||||
color: var(--gutter-fg);
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.panel-tabs .active {
|
||||
color: var(--editor-fg);
|
||||
border-bottom: 1px solid var(--activity-active);
|
||||
height: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.terminal-body {
|
||||
padding: 12px 20px;
|
||||
color: var(--editor-fg);
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.prompt {
|
||||
color: var(--token-function);
|
||||
}
|
||||
|
||||
.statusbar {
|
||||
grid-column: 1 / -1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: var(--status-bg);
|
||||
color: var(--status-fg);
|
||||
border-top: 1px solid var(--status-border);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.status-left,
|
||||
.status-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
.remote {
|
||||
align-self: stretch;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 12px;
|
||||
margin-left: -12px;
|
||||
background: var(--status-remote-bg, var(--activity-active));
|
||||
color: var(--status-remote-fg, #ffffff);
|
||||
}
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
}
|
||||
`;
|
||||
|
||||
const runtime = String.raw`(() => {
|
||||
const codeLines = [
|
||||
[{ text: "# A small functional toolkit", token: "comment" }],
|
||||
[{ text: "def", token: "keyword" }, { text: " ", token: "plain" }, { text: "pluck_deep", token: "function" }, { text: "(", token: "punctuation" }, { text: "key", token: "parameter" }, { text: "):", token: "punctuation" }],
|
||||
[{ text: " ", token: "plain" }, { text: "return", token: "keyword" }, { text: " ", token: "plain" }, { text: "lambda", token: "keyword" }, { text: " ", token: "plain" }, { text: "obj", token: "parameter" }, { text: ": ", token: "punctuation" }, { text: "reduce", token: "function" }, { text: "(", token: "punctuation" }, { text: "lambda", token: "keyword" }, { text: " ", token: "plain" }, { text: "acc", token: "parameter" }, { text: ", ", token: "punctuation" }, { text: "k", token: "parameter" }, { text: ": ", token: "punctuation" }, { text: "acc", token: "variable" }, { text: "[", token: "punctuation" }, { text: "k", token: "variable" }, { text: "]", token: "punctuation" }, { text: ", ", token: "punctuation" }, { text: "key", token: "variable" }, { text: ".split", token: "function" }, { text: "(", token: "punctuation" }, { text: "'.'", token: "string" }, { text: "), ", token: "punctuation" }, { text: "obj", token: "variable" }, { text: ")", token: "punctuation" }],
|
||||
[],
|
||||
[{ text: "def", token: "keyword" }, { text: " ", token: "plain" }, { text: "compose", token: "function" }, { text: "(", token: "punctuation" }, { text: "*", token: "operator" }, { text: "fns", token: "parameter" }, { text: "):", token: "punctuation" }],
|
||||
[{ text: " ", token: "plain" }, { text: "return", token: "keyword" }, { text: " ", token: "plain" }, { text: "lambda", token: "keyword" }, { text: " ", token: "plain" }, { text: "res", token: "parameter" }, { text: ": ", token: "punctuation" }, { text: "reduce", token: "function" }, { text: "(", token: "punctuation" }, { text: "lambda", token: "keyword" }, { text: " ", token: "plain" }, { text: "acc", token: "parameter" }, { text: ", ", token: "punctuation" }, { text: "fn", token: "parameter" }, { text: ": ", token: "punctuation" }, { text: "fn", token: "function" }, { text: "(", token: "punctuation" }, { text: "acc", token: "variable" }, { text: "), ", token: "punctuation" }, { text: "fns", token: "variable" }, { text: ", ", token: "punctuation" }, { text: "res", token: "variable" }, { text: ")", token: "punctuation" }],
|
||||
[],
|
||||
[{ text: "def", token: "keyword" }, { text: " ", token: "plain" }, { text: "unfold", token: "function" }, { text: "(", token: "punctuation" }, { text: "f", token: "parameter" }, { text: ", ", token: "punctuation" }, { text: "seed", token: "parameter" }, { text: "):", token: "punctuation" }],
|
||||
[{ text: " ", token: "plain" }, { text: "\"\"\"Build a list by repeatedly applying f to a seed.\"\"\"", token: "string" }],
|
||||
[{ text: " acc", token: "variable" }, { text: " = ", token: "operator" }, { text: "[]", token: "punctuation" }],
|
||||
[{ text: " while", token: "keyword" }, { text: " ", token: "plain" }, { text: "True", token: "className" }, { text: ":", token: "punctuation" }],
|
||||
[{ text: " result", token: "variable" }, { text: " = ", token: "operator" }, { text: "f", token: "function" }, { text: "(", token: "punctuation" }, { text: "seed", token: "variable" }, { text: ")", token: "punctuation" }],
|
||||
[{ text: " if", token: "keyword" }, { text: " ", token: "plain" }, { text: "result", token: "variable" }, { text: " is ", token: "keyword" }, { text: "None", token: "className" }, { text: ":", token: "punctuation" }],
|
||||
[{ text: " return", token: "keyword" }, { text: " ", token: "plain" }, { text: "acc", token: "variable" }],
|
||||
[{ text: " acc", token: "variable" }, { text: ".append", token: "function" }, { text: "(", token: "punctuation" }, { text: "result", token: "variable" }, { text: "[", token: "punctuation" }, { text: "0", token: "number" }, { text: "])", token: "punctuation" }],
|
||||
[{ text: " seed", token: "variable" }, { text: " = ", token: "operator" }, { text: "result", token: "variable" }, { text: "[", token: "punctuation" }, { text: "1", token: "number" }, { text: "]", token: "punctuation" }],
|
||||
[],
|
||||
];
|
||||
|
||||
const fallback = {
|
||||
"activityBar.background": "#181818",
|
||||
"activityBar.foreground": "#d7d7d7",
|
||||
"activityBar.inactiveForeground": "#868686",
|
||||
"activityBar.activeBorder": "#0078d4",
|
||||
"sideBar.background": "#181818",
|
||||
"sideBar.foreground": "#cccccc",
|
||||
"sideBar.border": "#2b2b2b",
|
||||
"tab.activeBackground": "#1f1f1f",
|
||||
"tab.activeForeground": "#ffffff",
|
||||
"tab.inactiveBackground": "#181818",
|
||||
"tab.inactiveForeground": "#9d9d9d",
|
||||
"tab.border": "#2b2b2b",
|
||||
"editor.background": "#1f1f1f",
|
||||
"editor.foreground": "#cccccc",
|
||||
"editor.lineHighlightBackground": "#ffffff0a",
|
||||
"editorLineNumber.foreground": "#6e7681",
|
||||
"editorLineNumber.activeForeground": "#cccccc",
|
||||
"panel.background": "#181818",
|
||||
"panel.border": "#2b2b2b",
|
||||
"statusBar.background": "#181818",
|
||||
"statusBar.foreground": "#cccccc",
|
||||
"statusBar.border": "#2b2b2b",
|
||||
"titleBar.activeBackground": "#181818",
|
||||
"titleBar.activeForeground": "#cccccc",
|
||||
};
|
||||
|
||||
function color(theme, key) {
|
||||
return theme.colors[key] || fallback[key] || theme.colors.foreground || "#cccccc";
|
||||
}
|
||||
|
||||
function solarizedGrey(theme) {
|
||||
return theme.colors["tab.inactiveForeground"] || theme.colors["editor.foreground"] || "#586E75";
|
||||
}
|
||||
|
||||
function setVar(root, name, value) {
|
||||
root.style.setProperty(name, value);
|
||||
}
|
||||
|
||||
function applyTheme(root, theme) {
|
||||
const solarizedUiGrey = theme.id === "solarized-light" ? solarizedGrey(theme) : null;
|
||||
setVar(root, "--activity-bg", color(theme, "activityBar.background"));
|
||||
setVar(root, "--activity-fg", solarizedUiGrey || color(theme, "activityBar.foreground"));
|
||||
setVar(root, "--activity-muted", solarizedUiGrey || color(theme, "activityBar.inactiveForeground"));
|
||||
setVar(root, "--activity-active", color(theme, "activityBar.activeBorder"));
|
||||
setVar(root, "--sidebar-bg", color(theme, "sideBar.background"));
|
||||
setVar(root, "--sidebar-fg", solarizedUiGrey || color(theme, "sideBar.foreground"));
|
||||
setVar(root, "--sidebar-border", color(theme, "sideBar.border"));
|
||||
setVar(root, "--tab-bg", color(theme, "tab.inactiveBackground"));
|
||||
setVar(root, "--tab-active-bg", color(theme, "tab.activeBackground"));
|
||||
setVar(root, "--tab-active-fg", solarizedUiGrey || color(theme, "tab.activeForeground"));
|
||||
setVar(root, "--tab-inactive-fg", solarizedUiGrey || color(theme, "tab.inactiveForeground"));
|
||||
setVar(root, "--tab-border", color(theme, "tab.border"));
|
||||
setVar(root, "--editor-bg", color(theme, "editor.background"));
|
||||
setVar(root, "--editor-fg", color(theme, "editor.foreground"));
|
||||
setVar(root, "--editor-line", color(theme, "editor.lineHighlightBackground"));
|
||||
setVar(root, "--gutter-fg", color(theme, "editorLineNumber.foreground"));
|
||||
setVar(root, "--gutter-active-fg", color(theme, "editorLineNumber.activeForeground"));
|
||||
setVar(root, "--panel-bg", color(theme, "panel.background"));
|
||||
setVar(root, "--panel-border", color(theme, "panel.border"));
|
||||
setVar(root, "--status-bg", color(theme, "statusBar.background"));
|
||||
setVar(root, "--status-fg", color(theme, "statusBar.foreground"));
|
||||
setVar(root, "--status-border", color(theme, "statusBar.border"));
|
||||
setVar(root, "--status-remote-bg", color(theme, "statusBarItem.remoteBackground"));
|
||||
setVar(root, "--status-remote-fg", solarizedUiGrey || color(theme, "statusBarItem.remoteForeground"));
|
||||
setVar(root, "--title-bg", color(theme, "titleBar.activeBackground"));
|
||||
setVar(root, "--title-fg", solarizedUiGrey || color(theme, "titleBar.activeForeground"));
|
||||
setVar(root, "--token-comment", theme.tokens.comment);
|
||||
setVar(root, "--token-keyword", theme.tokens.keyword);
|
||||
setVar(root, "--token-function", theme.tokens.function);
|
||||
setVar(root, "--token-string", theme.tokens.string);
|
||||
setVar(root, "--token-number", theme.tokens.number);
|
||||
setVar(root, "--token-variable", theme.tokens.variable);
|
||||
setVar(root, "--token-parameter", theme.tokens.parameter);
|
||||
setVar(root, "--token-operator", theme.tokens.operator);
|
||||
setVar(root, "--token-punctuation", theme.tokens.punctuation);
|
||||
setVar(root, "--token-class-name", theme.tokens.className);
|
||||
}
|
||||
|
||||
function renderCode(root) {
|
||||
const code = root.querySelector(".code");
|
||||
codeLines.forEach((segments, index) => {
|
||||
const line = document.createElement("div");
|
||||
line.className = "line";
|
||||
line.dataset.lineIndex = String(index);
|
||||
|
||||
const lineNumber = document.createElement("span");
|
||||
lineNumber.className = "line-number";
|
||||
lineNumber.textContent = String(index + 1);
|
||||
line.appendChild(lineNumber);
|
||||
|
||||
const lineCode = document.createElement("span");
|
||||
lineCode.className = "line-code";
|
||||
segments.forEach((segment) => {
|
||||
[...segment.text].forEach((char) => {
|
||||
const span = document.createElement("span");
|
||||
span.className = segment.token === "plain" ? "char" : "char tok-" + segment.token.replace(/[A-Z]/g, (match) => "-" + match.toLowerCase());
|
||||
span.dataset.lineIndex = String(index);
|
||||
span.textContent = char;
|
||||
lineCode.appendChild(span);
|
||||
});
|
||||
});
|
||||
line.appendChild(lineCode);
|
||||
code.appendChild(line);
|
||||
});
|
||||
|
||||
const caret = document.createElement("span");
|
||||
caret.className = "caret";
|
||||
root.querySelector(".editor").appendChild(caret);
|
||||
}
|
||||
|
||||
function caretPointForElement(editor, el) {
|
||||
const editorBox = editor.getBoundingClientRect();
|
||||
const charBox = el.getBoundingClientRect();
|
||||
return {
|
||||
x: charBox.right - editorBox.left + 2,
|
||||
y: charBox.top - editorBox.top + 3,
|
||||
};
|
||||
}
|
||||
|
||||
function caretPointForLineStart(editor, line) {
|
||||
const editorBox = editor.getBoundingClientRect();
|
||||
const lineBox = line.getBoundingClientRect();
|
||||
const codeBox = line.querySelector(".line-code").getBoundingClientRect();
|
||||
return {
|
||||
x: codeBox.left - editorBox.left,
|
||||
y: lineBox.top - editorBox.top + 3,
|
||||
};
|
||||
}
|
||||
|
||||
function lineHighlightY(editor, line) {
|
||||
const editorBox = editor.getBoundingClientRect();
|
||||
const lineBox = line.getBoundingClientRect();
|
||||
return lineBox.top - editorBox.top;
|
||||
}
|
||||
|
||||
function buildTimeline(root, compositionId) {
|
||||
const tl = gsap.timeline({ paused: true });
|
||||
const editor = root.querySelector(".editor");
|
||||
const caret = root.querySelector(".caret");
|
||||
const activeLine = root.querySelector(".active-line");
|
||||
const lineEls = gsap.utils.toArray(root.querySelectorAll(".line"));
|
||||
const lineStartTimes = [];
|
||||
const charSchedule = [];
|
||||
let cursorTime = 0.95;
|
||||
|
||||
lineEls.forEach((line, lineIndex) => {
|
||||
const lineChars = gsap.utils.toArray(line.querySelectorAll(".char"));
|
||||
lineStartTimes[lineIndex] = cursorTime;
|
||||
lineChars.forEach((char, charIndex) => {
|
||||
charSchedule.push({ char, time: cursorTime + charIndex * 0.012 });
|
||||
});
|
||||
cursorTime += Math.max(lineChars.length * 0.012, 0.08) + 0.045;
|
||||
});
|
||||
|
||||
gsap.set(activeLine, { y: lineHighlightY(editor, lineEls[0]) });
|
||||
gsap.set(caret, caretPointForLineStart(editor, lineEls[0]));
|
||||
|
||||
tl.from(root.querySelector(".header"), { y: 24, opacity: 0, duration: 0.45, ease: "power3.out" }, 0);
|
||||
tl.from(root.querySelector(".workbench"), { y: 42, opacity: 0, scale: 0.986, duration: 0.58, ease: "power3.out" }, 0.1);
|
||||
tl.from(activeLine, { opacity: 0, duration: 0.22, ease: "power2.out" }, 0.74);
|
||||
lineStartTimes.forEach((time, lineIndex) => {
|
||||
const line = lineEls[lineIndex];
|
||||
tl.set(activeLine, { y: lineHighlightY(editor, line) }, time);
|
||||
tl.set(caret, caretPointForLineStart(editor, line), time);
|
||||
tl.call(() => {
|
||||
lineEls.forEach((item) => item.classList.toggle("is-active", item === line));
|
||||
}, [], time);
|
||||
});
|
||||
charSchedule.forEach(({ char, time }) => {
|
||||
tl.set(char, { opacity: 1 }, time);
|
||||
tl.set(caret, caretPointForElement(editor, char), time + 0.002);
|
||||
});
|
||||
tl.to(root.querySelector(".caret"), { opacity: 0, duration: 0.34, repeat: 25, yoyo: true, ease: "steps(1)" }, 0.95);
|
||||
tl.from(root.querySelector(".terminal"), { y: 140, opacity: 0, duration: 0.56, ease: "power3.out" }, 7.55);
|
||||
tl.from(root.querySelector(".terminal-body").children, { opacity: 0, y: 8, duration: 0.24, stagger: 0.16, ease: "power2.out" }, 8.05);
|
||||
tl.to(root.querySelector(".workbench"), { rotateY: -10.5, z: 74, duration: 0.72, ease: "power2.inOut" }, 9.35);
|
||||
tl.to(root.querySelector(".workbench"), { rotateY: 0, z: 0, duration: 0.62, ease: "power2.inOut" }, 10.08);
|
||||
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines[compositionId] = tl;
|
||||
|
||||
const previewTime = new URLSearchParams(window.location.search).get("t");
|
||||
if (previewTime !== null) {
|
||||
tl.time(Number(previewTime));
|
||||
}
|
||||
}
|
||||
|
||||
window.createVSCodeThemeComposition = (compositionId, themeOrId) => {
|
||||
const root =
|
||||
document.querySelector('[data-composition-id="' + compositionId + '"] .vscode-theme-scene') ||
|
||||
document.querySelector('.vscode-theme-scene[data-composition-id="' + compositionId + '"]') ||
|
||||
document.querySelector('[data-composition-id="' + compositionId + '"]');
|
||||
const theme = typeof themeOrId === "string"
|
||||
? window.VSCODE_THEME_REGISTRY.find((item) => item.id === themeOrId)
|
||||
: themeOrId;
|
||||
if (!root || !theme) return;
|
||||
root.querySelector(".theme-label").textContent = theme.label;
|
||||
root.querySelector(".theme-source").textContent = theme.sourceFile;
|
||||
applyTheme(root, theme);
|
||||
renderCode(root);
|
||||
buildTimeline(root, compositionId);
|
||||
};
|
||||
})();
|
||||
`;
|
||||
|
||||
function compositionMarkup(compositionId, theme) {
|
||||
return `<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>${theme.label} VS Code Theme Composition</title>
|
||||
</head>
|
||||
<body>
|
||||
<template id="${compositionId}-template">
|
||||
<div class="vscode-theme-scene" data-composition-id="${compositionId}" data-width="1920" data-height="1080">
|
||||
<main class="scene-content">
|
||||
<section class="header">
|
||||
<div>
|
||||
<p class="kicker">Official VS Code built-in theme</p>
|
||||
<h1 class="title"><span class="theme-label">${theme.label}</span></h1>
|
||||
</div>
|
||||
<p class="source-note">
|
||||
Typing \`functional_toolkit.py\` with workbench colors from
|
||||
<span class="theme-source">${theme.sourceFile}</span>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
${workbenchMarkup()}
|
||||
</main>
|
||||
<style>
|
||||
${css}
|
||||
</style>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<script>
|
||||
${runtime}
|
||||
</script>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["${compositionId}"] = window.__timelines["${compositionId}"] || gsap.timeline({ paused: true });
|
||||
window.createVSCodeThemeComposition("${compositionId}", ${JSON.stringify(theme)});
|
||||
</script>
|
||||
</div>
|
||||
</template>
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
}
|
||||
|
||||
function workbenchMarkup() {
|
||||
return `<section class="workbench">
|
||||
<div class="titlebar">
|
||||
<div class="traffic"><span></span><span></span><span></span></div>
|
||||
<div class="window-title">functional-toolkit - Visual Studio Code</div>
|
||||
<div class="command-center">Search</div>
|
||||
</div>
|
||||
|
||||
<aside class="activity" aria-label="Activity bar">
|
||||
<svg class="activity-icon active" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M4 4h7v7H4V4Zm9 0h7v7h-7V4ZM4 13h7v7H4v-7Zm9 0h7v7h-7v-7Z" /></svg>
|
||||
<svg class="activity-icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-width="2" d="m21 21-5.2-5.2M10.5 18a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15Z" /></svg>
|
||||
<svg class="activity-icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-width="2" d="M8 18 3 12l5-6m8 12 5-6-5-6" /></svg>
|
||||
<svg class="activity-icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-width="2" d="M12 3v18m0-18 6 6m-6-6L6 9m6 12 6-6m-6 6-6-6" /></svg>
|
||||
</aside>
|
||||
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-title">Explorer</div>
|
||||
<div class="section-title">⌄ Functional Toolkit</div>
|
||||
<div class="tree">
|
||||
<div class="tree-row">⌄ src</div>
|
||||
<div class="tree-row child selected">◇ functional_toolkit.py</div>
|
||||
<div class="tree-row child">◇ test_toolkit.py</div>
|
||||
<div class="tree-row">◇ pyproject.toml</div>
|
||||
<div class="tree-row">◇ README.md</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<section class="editor-area">
|
||||
<div class="tabs">
|
||||
<div class="tab">◇ functional_toolkit.py</div>
|
||||
<div class="tab inactive">README.md</div>
|
||||
</div>
|
||||
<div class="breadcrumbs">functional-toolkit › src › functional_toolkit.py</div>
|
||||
<div class="editor">
|
||||
<div class="active-line"></div>
|
||||
<div class="code"></div>
|
||||
</div>
|
||||
<div class="terminal">
|
||||
<div class="panel-tabs"><span class="active">Terminal</span><span>Problems</span><span>Output</span></div>
|
||||
<div class="terminal-body">
|
||||
<div><span class="prompt">functional-toolkit %</span> python -m pytest</div>
|
||||
<div>collected 3 items</div>
|
||||
<div>tests/test_toolkit.py ... <span class="tok-comment">passed</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="statusbar">
|
||||
<div class="status-left">
|
||||
<span class="remote">main</span>
|
||||
<span>0 errors</span>
|
||||
<span>0 warnings</span>
|
||||
</div>
|
||||
<div class="status-right">
|
||||
<span>Ln 17, Col 1</span>
|
||||
<span>Spaces: 4</span>
|
||||
<span>UTF-8</span>
|
||||
<span>Python 3.12</span>
|
||||
</div>
|
||||
</footer>
|
||||
</section>`;
|
||||
}
|
||||
|
||||
function rootIndexMarkup() {
|
||||
const clips = registry
|
||||
.map((theme, index) => {
|
||||
const compositionId = `vscode-${theme.id}`;
|
||||
return ` <div
|
||||
id="clip-${theme.id}"
|
||||
data-composition-id="${compositionId}"
|
||||
data-composition-src="compositions/${theme.id}.html"
|
||||
data-start="${index * clipDuration}"
|
||||
data-duration="${clipDuration}"
|
||||
data-track-index="1"
|
||||
></div>`;
|
||||
})
|
||||
.join("\n");
|
||||
|
||||
return `<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>VS Code Theme Sequence</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#vscode-theme-sequence {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="vscode-theme-sequence" data-composition-id="vscode-theme-sequence" data-start="0" data-width="1920" data-height="1080">
|
||||
${clips}
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["vscode-theme-sequence"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
}
|
||||
|
||||
function renderEntryMarkup(theme) {
|
||||
const compositionId = `vscode-${theme.id}`;
|
||||
return `<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=1920, height=1080" />
|
||||
<title>${theme.label} Render Entry</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
#render-${theme.id} {
|
||||
position: relative;
|
||||
width: 1920px;
|
||||
height: 1080px;
|
||||
overflow: hidden;
|
||||
background: #000000;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="render-${theme.id}" data-composition-id="render-${theme.id}" data-start="0" data-duration="${clipDuration}" data-width="1920" data-height="1080">
|
||||
<div
|
||||
id="clip-${theme.id}"
|
||||
data-composition-id="${compositionId}"
|
||||
data-composition-src="../compositions/${theme.id}.html"
|
||||
data-start="0"
|
||||
data-duration="${clipDuration}"
|
||||
data-track-index="1"
|
||||
></div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
window.__timelines["render-${theme.id}"] = gsap.timeline({ paused: true });
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.join(assetsDir, "vscode-sequence.css"), css);
|
||||
fs.writeFileSync(path.join(assetsDir, "vscode-sequence-runtime.js"), runtime);
|
||||
|
||||
for (const theme of registry) {
|
||||
const compositionId = `vscode-${theme.id}`;
|
||||
fs.writeFileSync(
|
||||
path.join(compositionsDir, `${theme.id}.html`),
|
||||
compositionMarkup(compositionId, theme),
|
||||
);
|
||||
fs.writeFileSync(path.join(renderEntriesDir, `${theme.id}.html`), renderEntryMarkup(theme));
|
||||
|
||||
const blockName = `code-snippet-${theme.id}`;
|
||||
const blockDir = path.join(blocksDir, blockName);
|
||||
fs.mkdirSync(blockDir, { recursive: true });
|
||||
fs.writeFileSync(
|
||||
path.join(blockDir, `${blockName}.html`),
|
||||
compositionMarkup(compositionId, theme),
|
||||
);
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.join(projectRoot, "index.html"), rootIndexMarkup());
|
||||
|
||||
console.log(
|
||||
`Wrote ${registry.length} themed compositions, render entries, block HTMLs, and root sequence`,
|
||||
);
|
||||
@@ -0,0 +1,237 @@
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const projectRoot = path.resolve(__dirname, "..");
|
||||
const themeDir = path.join(projectRoot, "assets", "vscode-themes");
|
||||
const outFile = path.join(projectRoot, "assets", "vscode-theme-registry.js");
|
||||
|
||||
const themeEntries = [
|
||||
["light-2026", "Light 2026", "2026-light.json"],
|
||||
["dark-2026", "Dark 2026", "2026-dark.json"],
|
||||
["dark-plus", "Dark+", "dark_plus.json"],
|
||||
["dark-modern", "Dark Modern", "dark_modern.json"],
|
||||
["light-plus", "Light+", "light_plus.json"],
|
||||
["light-modern", "Light Modern", "light_modern.json"],
|
||||
["visual-studio-dark", "Visual Studio Dark", "dark_vs.json"],
|
||||
["visual-studio-light", "Visual Studio Light", "light_vs.json"],
|
||||
["high-contrast", "Default High Contrast", "hc_black.json"],
|
||||
["high-contrast-light", "Default High Contrast Light", "hc_light.json"],
|
||||
["solarized-light", "Solarized Light", "solarized-light-color-theme.json"],
|
||||
["monokai", "Monokai", "monokai-color-theme.json"],
|
||||
];
|
||||
|
||||
const workbenchKeys = [
|
||||
"activityBar.activeBorder",
|
||||
"activityBar.background",
|
||||
"activityBar.border",
|
||||
"activityBar.foreground",
|
||||
"activityBar.inactiveForeground",
|
||||
"editor.background",
|
||||
"editor.foreground",
|
||||
"editor.lineHighlightBackground",
|
||||
"editor.selectionBackground",
|
||||
"editorGroup.border",
|
||||
"editorGroupHeader.tabsBackground",
|
||||
"editorGroupHeader.tabsBorder",
|
||||
"editorLineNumber.activeForeground",
|
||||
"editorLineNumber.foreground",
|
||||
"foreground",
|
||||
"icon.foreground",
|
||||
"panel.background",
|
||||
"panel.border",
|
||||
"sideBar.background",
|
||||
"sideBar.border",
|
||||
"sideBar.foreground",
|
||||
"sideBarSectionHeader.background",
|
||||
"sideBarSectionHeader.border",
|
||||
"sideBarSectionHeader.foreground",
|
||||
"sideBarTitle.foreground",
|
||||
"statusBar.background",
|
||||
"statusBar.border",
|
||||
"statusBar.foreground",
|
||||
"statusBarItem.remoteBackground",
|
||||
"statusBarItem.remoteForeground",
|
||||
"tab.activeBackground",
|
||||
"tab.activeBorder",
|
||||
"tab.activeBorderTop",
|
||||
"tab.activeForeground",
|
||||
"tab.border",
|
||||
"tab.inactiveBackground",
|
||||
"tab.inactiveForeground",
|
||||
"terminal.background",
|
||||
"terminal.foreground",
|
||||
"terminalCursor.foreground",
|
||||
"titleBar.activeBackground",
|
||||
"titleBar.activeForeground",
|
||||
];
|
||||
|
||||
const tokenScopes = {
|
||||
comment: ["comment", "punctuation.definition.comment"],
|
||||
keyword: ["keyword", "storage", "storage.type"],
|
||||
function: ["entity.name.function", "support.function"],
|
||||
string: ["string", "punctuation.definition.string"],
|
||||
number: ["constant.numeric"],
|
||||
variable: ["variable", "variable.other"],
|
||||
parameter: ["variable.parameter", "meta.function.parameters"],
|
||||
operator: ["keyword.operator"],
|
||||
punctuation: ["punctuation", "meta.brace"],
|
||||
className: ["entity.name.type", "support.class", "support.type"],
|
||||
};
|
||||
|
||||
const fallbackColors = {
|
||||
comment: "#6A9955",
|
||||
keyword: "#C586C0",
|
||||
function: "#DCDCAA",
|
||||
string: "#CE9178",
|
||||
number: "#B5CEA8",
|
||||
variable: "#9CDCFE",
|
||||
parameter: "#9CDCFE",
|
||||
operator: "#D4D4D4",
|
||||
punctuation: "#D4D4D4",
|
||||
className: "#4EC9B0",
|
||||
};
|
||||
|
||||
function stripJsonComments(source) {
|
||||
let output = "";
|
||||
let inString = false;
|
||||
let escaped = false;
|
||||
for (let i = 0; i < source.length; i += 1) {
|
||||
const char = source[i];
|
||||
const next = source[i + 1];
|
||||
if (inString) {
|
||||
output += char;
|
||||
escaped = char === "\\" && !escaped;
|
||||
if (char === '"' && !escaped) inString = false;
|
||||
if (char !== "\\") escaped = false;
|
||||
continue;
|
||||
}
|
||||
if (char === '"') {
|
||||
inString = true;
|
||||
output += char;
|
||||
continue;
|
||||
}
|
||||
if (char === "/" && next === "/") {
|
||||
while (i < source.length && source[i] !== "\n") i += 1;
|
||||
output += "\n";
|
||||
continue;
|
||||
}
|
||||
if (char === "/" && next === "*") {
|
||||
i += 2;
|
||||
while (i < source.length && !(source[i] === "*" && source[i + 1] === "/")) i += 1;
|
||||
i += 1;
|
||||
continue;
|
||||
}
|
||||
output += char;
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
function stripTrailingCommas(source) {
|
||||
let output = "";
|
||||
let inString = false;
|
||||
let escaped = false;
|
||||
for (let i = 0; i < source.length; i += 1) {
|
||||
const char = source[i];
|
||||
if (inString) {
|
||||
output += char;
|
||||
escaped = char === "\\" && !escaped;
|
||||
if (char === '"' && !escaped) inString = false;
|
||||
if (char !== "\\") escaped = false;
|
||||
continue;
|
||||
}
|
||||
if (char === '"') {
|
||||
inString = true;
|
||||
output += char;
|
||||
continue;
|
||||
}
|
||||
if (char === ",") {
|
||||
let j = i + 1;
|
||||
while (/\s/.test(source[j])) j += 1;
|
||||
if (source[j] === "}" || source[j] === "]") continue;
|
||||
}
|
||||
output += char;
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
function readTheme(fileName, seen = new Set()) {
|
||||
const filePath = path.join(themeDir, fileName);
|
||||
if (seen.has(filePath)) throw new Error(`Circular theme include: ${fileName}`);
|
||||
seen.add(filePath);
|
||||
|
||||
const raw = fs.readFileSync(filePath, "utf8");
|
||||
const theme = JSON.parse(stripTrailingCommas(stripJsonComments(raw)));
|
||||
let parent = { colors: {}, tokenColors: [], semanticTokenColors: {} };
|
||||
|
||||
if (theme.include) {
|
||||
parent = readTheme(path.basename(theme.include), seen);
|
||||
}
|
||||
|
||||
return {
|
||||
name: theme.name || parent.name,
|
||||
type: theme.type || parent.type,
|
||||
colors: { ...parent.colors, ...(theme.colors || {}) },
|
||||
tokenColors: [...(parent.tokenColors || []), ...(theme.tokenColors || [])],
|
||||
semanticTokenColors: {
|
||||
...(parent.semanticTokenColors || {}),
|
||||
...(theme.semanticTokenColors || {}),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function scopeList(scope) {
|
||||
if (!scope) return [];
|
||||
if (Array.isArray(scope)) return scope;
|
||||
return String(scope)
|
||||
.split(",")
|
||||
.map((item) => item.trim());
|
||||
}
|
||||
|
||||
function scopeMatches(actual, wanted) {
|
||||
return actual === wanted || actual.startsWith(`${wanted}.`) || wanted.startsWith(`${actual}.`);
|
||||
}
|
||||
|
||||
function findTokenColor(theme, wantedScopes) {
|
||||
for (let i = theme.tokenColors.length - 1; i >= 0; i -= 1) {
|
||||
const tokenColor = theme.tokenColors[i];
|
||||
const foreground = tokenColor.settings?.foreground;
|
||||
if (!foreground) continue;
|
||||
const scopes = scopeList(tokenColor.scope);
|
||||
if (scopes.some((scope) => wantedScopes.some((wanted) => scopeMatches(scope, wanted)))) {
|
||||
return foreground;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function pickColors(colors) {
|
||||
const picked = {};
|
||||
for (const key of workbenchKeys) {
|
||||
if (colors[key]) picked[key] = colors[key];
|
||||
}
|
||||
return picked;
|
||||
}
|
||||
|
||||
const registry = themeEntries.map(([id, label, file]) => {
|
||||
const theme = readTheme(file);
|
||||
const tokens = {};
|
||||
for (const [tokenName, scopes] of Object.entries(tokenScopes)) {
|
||||
tokens[tokenName] = findTokenColor(theme, scopes) || fallbackColors[tokenName];
|
||||
}
|
||||
|
||||
return {
|
||||
id,
|
||||
label,
|
||||
sourceFile: file,
|
||||
uiTheme: file.includes("light") || file.includes("2026-light") ? "vs" : "vs-dark",
|
||||
colors: pickColors(theme.colors),
|
||||
tokens,
|
||||
};
|
||||
});
|
||||
|
||||
const generated = `// Generated by scripts/build-theme-registry.mjs from official VS Code theme JSON.\nwindow.VSCODE_THEME_REGISTRY = ${JSON.stringify(registry, null, 2)};\n`;
|
||||
|
||||
fs.writeFileSync(outFile, generated);
|
||||
console.log(`Wrote ${path.relative(projectRoot, outFile)} with ${registry.length} themes`);
|
||||
Reference in New Issue
Block a user