* fix: preserve unsent prompt when adding editor context in VS Code * fix: append Add to chat selections as markdown blocks with stable spacing Convert selected assistant content to markdown before appending Wrap each Add to chat selection in an `md` fenced block Preserve multiline composer formatting across repeated appends * fix: normalize persisted Windows paths to prevent identity mismatches * fix: hide Windows subprocess console popups across server tasks Hide OpenCode startup and shell command child windows in the web server Apply windowsHide to cloudflared and skills-catalog git subprocesses Cover remaining git service exec paths that could surface console windows * fix: restore chat auto re-pin when reaching bottom Re-pin now triggers when scrolling back into the bottom zone, not only via the button. Upward user scroll intent still unpins immediately and is not overridden by re-pin. Unified bottom/re-pin threshold logic to reduce sensitivity mismatches. * fix: restore chat scroll release on mobile during streaming Restores pinned-scroll release on touch scroll up so mobile users can leave auto-follow while streaming. Improves re-pin behavior near bottom to avoid sticky or inconsistent pin states. Includes related chat UI and dependency updates in the same change set. * fix: hide daemon startup probe consoles on Windows * fix: prevent pinned scroll tug-of-war during streaming * fix: prefer git.exe to avoid Windows diff popup flashes * fix: prefer git.exe discovery in Windows git flows * fix: avoid where probes in Windows git resolution * fix: avoid update-check subprocess flashes on Windows * fix: normalize read file path labels * feat: add OpenChamber defaults and improve theme ports Add new OpenChamber light and dark themes Regenerate imported themes with stronger surface mapping Set OpenChamber themes as the default top options * fix: stabilize chat pin and unpin behavior during streaming Restores reliable unpin on upward wheel and touch gestures while auto-follow is active. Prevents immediate re-pin while the user is actively scrolling upward near the bottom. Keeps smooth follow-to-bottom behavior while reducing scroll tug-of-war. * fix: suppress Windows command popups in VSCode runtime processes Hide spawned git and server process windows in VS Code runtime Extend hidden-window handling to server port cleanup and reveal commands Keep behavior unchanged on non-Windows platforms
436 lines
11 KiB
JSON
436 lines
11 KiB
JSON
{
|
|
"metadata": {
|
|
"id": "github-light",
|
|
"name": "GitHub",
|
|
"description": "Ported from OpenCode GitHub theme (light variant)",
|
|
"author": "OpenCode",
|
|
"version": "1.0.0",
|
|
"variant": "light",
|
|
"tags": [
|
|
"light",
|
|
"opencode",
|
|
"ported",
|
|
"github"
|
|
]
|
|
},
|
|
"colors": {
|
|
"primary": {
|
|
"base": "#0969da",
|
|
"hover": "#0c5fc5",
|
|
"active": "#0d69d9",
|
|
"foreground": "#ffffff",
|
|
"muted": "#0969da80",
|
|
"emphasis": "#0c5fc5"
|
|
},
|
|
"surface": {
|
|
"background": "#ffffff",
|
|
"foreground": "#1e2329",
|
|
"muted": "#f5f5f4",
|
|
"mutedForeground": "#57606a",
|
|
"elevated": "#f9f9f9",
|
|
"elevatedForeground": "#1e2329",
|
|
"overlay": "#ffffff33",
|
|
"subtle": "#eaeaeb"
|
|
},
|
|
"interactive": {
|
|
"border": "#cacbcc",
|
|
"borderHover": "#bcbec0",
|
|
"borderFocus": "#0d69d9",
|
|
"selection": "#1e232916",
|
|
"selectionForeground": "#1e2329",
|
|
"focus": "#0d69d9",
|
|
"focusRing": "#0d69d947",
|
|
"cursor": "#0e1319",
|
|
"hover": "#1e23290e",
|
|
"active": "#1e232916"
|
|
},
|
|
"status": {
|
|
"error": "#cf222e",
|
|
"errorForeground": "#ffffff",
|
|
"errorBackground": "#ffe2df",
|
|
"errorBorder": "#ffa69f",
|
|
"warning": "#9a6700",
|
|
"warningForeground": "#ffffff",
|
|
"warningBackground": "#ffe6c4",
|
|
"warningBorder": "#f1b55c",
|
|
"success": "#1a7f37",
|
|
"successForeground": "#ffffff",
|
|
"successBackground": "#bffcc6",
|
|
"successBorder": "#76dc88",
|
|
"info": "#bc4c00",
|
|
"infoForeground": "#ffffff",
|
|
"infoBackground": "#ffe3d8",
|
|
"infoBorder": "#ffa983"
|
|
},
|
|
"pr": {
|
|
"open": "#1a7f37",
|
|
"draft": "#57606a",
|
|
"blocked": "#9a6700",
|
|
"merged": "#1b7c83",
|
|
"closed": "#cf222e"
|
|
},
|
|
"syntax": {
|
|
"base": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"comment": "#57606a",
|
|
"keyword": "#cf222e",
|
|
"string": "#0969da",
|
|
"number": "#1b7c83",
|
|
"function": "#1b7c83",
|
|
"variable": "#bc4c00",
|
|
"type": "#bc4c00",
|
|
"operator": "#cf222e"
|
|
},
|
|
"tokens": {
|
|
"commentDoc": "#57606a",
|
|
"stringEscape": "#1e2329",
|
|
"keywordImport": "#cf222e",
|
|
"storageModifier": "#cf222e",
|
|
"functionCall": "#1b7c83",
|
|
"method": "#1b7c83",
|
|
"variableProperty": "#1b7c83",
|
|
"variableOther": "#bc4c00",
|
|
"variableGlobal": "#1b7c83",
|
|
"variableLocal": "#24292f",
|
|
"parameter": "#bc4c00",
|
|
"constant": "#1b7c83",
|
|
"class": "#bc4c00",
|
|
"className": "#bc4c00",
|
|
"interface": "#bc4c00",
|
|
"struct": "#bc4c00",
|
|
"enum": "#bc4c00",
|
|
"typeParameter": "#bc4c00",
|
|
"namespace": "#bc4c00",
|
|
"module": "#cf222e",
|
|
"tag": "#cf222e",
|
|
"jsxTag": "#cf222e",
|
|
"tagAttribute": "#1b7c83",
|
|
"tagAttributeValue": "#0969da",
|
|
"boolean": "#1b7c83",
|
|
"decorator": "#cf222e",
|
|
"label": "#1b7c83",
|
|
"punctuation": "#24292f",
|
|
"macro": "#cf222e",
|
|
"preprocessor": "#cf222e",
|
|
"regex": "#1e2329",
|
|
"url": "#0c5fc5",
|
|
"key": "#1b7c83",
|
|
"exception": "#cf222e"
|
|
},
|
|
"highlights": {
|
|
"diffAdded": "#396e42",
|
|
"diffAddedBackground": "#f2fdf3",
|
|
"diffRemoved": "#ab272b",
|
|
"diffRemovedBackground": "#fff7f7",
|
|
"diffModified": "#785105",
|
|
"diffModifiedBackground": "#f3f5f9",
|
|
"lineNumber": "#7b828a",
|
|
"lineNumberActive": "#1e2329"
|
|
}
|
|
},
|
|
"header": {
|
|
"background": "#ffffff",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"icon": "#3a3f44",
|
|
"hover": "#eaeaeb"
|
|
},
|
|
"sidebar": {
|
|
"background": "#f5f5f4",
|
|
"foreground": "#57606a",
|
|
"border": "#cacbcc",
|
|
"icon": "#cdcecc",
|
|
"hover": "#eaeaeb",
|
|
"active": "#deebfe",
|
|
"accent": "#0969da",
|
|
"accentForeground": "#ffffff"
|
|
},
|
|
"chat": {
|
|
"background": "#ffffff",
|
|
"userMessage": "#1e2329",
|
|
"userMessageBackground": "#f2f3f3",
|
|
"assistantMessage": "#1e2329",
|
|
"assistantMessageBackground": "#ffffff",
|
|
"timestamp": "#7b828a",
|
|
"divider": "#e4e4e5",
|
|
"typing": "#57606a"
|
|
},
|
|
"markdown": {
|
|
"heading1": "#0969da",
|
|
"heading2": "#0969da",
|
|
"heading3": "#0e1319",
|
|
"heading4": "#1e2329",
|
|
"link": "#0969da",
|
|
"linkHover": "#1b7c83",
|
|
"inlineCode": "#bf3989",
|
|
"inlineCodeBackground": "#f2f3f3",
|
|
"blockquote": "#57606a",
|
|
"blockquoteBorder": "#cacbcc",
|
|
"listMarker": "#0969da99",
|
|
"bold": "#bc4c00",
|
|
"italic": "#9a6700",
|
|
"strikethrough": "#57606a",
|
|
"hr": "#d0d7de"
|
|
},
|
|
"tools": {
|
|
"background": "#f2f3f3",
|
|
"border": "#e4e4e5",
|
|
"headerHover": "#eaeaeb",
|
|
"icon": "#cdcecc",
|
|
"title": "#1e2329",
|
|
"description": "#57606a",
|
|
"edit": {
|
|
"added": "#396e42",
|
|
"addedBackground": "#f2fdf3",
|
|
"removed": "#d54645",
|
|
"removedBackground": "#fff7f7",
|
|
"modified": "#785105",
|
|
"modifiedBackground": "#f3f5f9",
|
|
"lineNumber": "#7b828a"
|
|
},
|
|
"bash": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"info": "#bc4c00",
|
|
"warning": "#9a6700",
|
|
"error": "#cf222e"
|
|
},
|
|
"lsp": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"info": "#bc4c00",
|
|
"warning": "#9a6700",
|
|
"error": "#cf222e"
|
|
}
|
|
},
|
|
"forms": {
|
|
"inputBackground": "#ffffff",
|
|
"inputForeground": "#1e2329",
|
|
"inputBorder": "#e4e4e5",
|
|
"inputBorderHover": "#d7d8d9",
|
|
"inputBorderFocus": "#0d69d9",
|
|
"inputPlaceholder": "#7b828a",
|
|
"inputDisabled": "#efefee",
|
|
"inputSelection": "#deebfe",
|
|
"label": "#57606a",
|
|
"helperText": "#7b828a"
|
|
},
|
|
"buttons": {
|
|
"primary": {
|
|
"bg": "#0969da",
|
|
"fg": "#ffffff",
|
|
"border": "#9dc3fb",
|
|
"hover": "#0c5fc5",
|
|
"active": "#0d69d9",
|
|
"disabled": "#d2d3d5"
|
|
},
|
|
"secondary": {
|
|
"bg": "#f9f9f9",
|
|
"fg": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"hover": "#f2f3f3",
|
|
"active": "#eaeaeb",
|
|
"disabled": "#efefee"
|
|
},
|
|
"ghost": {
|
|
"bg": "#00000000",
|
|
"fg": "#1e2329",
|
|
"border": "#00000000",
|
|
"hover": "#f2f3f3",
|
|
"active": "#eaeaeb",
|
|
"disabled": "#7b828a"
|
|
},
|
|
"destructive": {
|
|
"bg": "#cf222e",
|
|
"fg": "#ffffff",
|
|
"border": "#ffa69f",
|
|
"hover": "#fcd5d2",
|
|
"active": "#ce252f",
|
|
"disabled": "#efefee"
|
|
}
|
|
},
|
|
"modal": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"overlay": "#ffffff3d"
|
|
},
|
|
"popover": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"shadow": "0 18px 48px rgba(15, 15, 15, 0.16)"
|
|
},
|
|
"commandPalette": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"inputBackground": "#ffffff",
|
|
"selectedBackground": "#deebfe",
|
|
"selectedForeground": "#1e2329",
|
|
"muted": "#57606a"
|
|
},
|
|
"fileAttachment": {
|
|
"background": "#f2f3f3",
|
|
"foreground": "#1e2329",
|
|
"border": "#e4e4e5",
|
|
"icon": "#cdcecc",
|
|
"removeHover": "#ffe2df"
|
|
},
|
|
"sessions": {
|
|
"background": "#ffffff",
|
|
"foreground": "#1e2329",
|
|
"mutedForeground": "#57606a",
|
|
"border": "#ededee",
|
|
"hover": "#eaeaeb",
|
|
"active": "#deebfe"
|
|
},
|
|
"modelSelector": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"selectedBackground": "#deebfe",
|
|
"selectedForeground": "#1e2329"
|
|
},
|
|
"permissions": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"allow": "#1a7f37",
|
|
"allowBackground": "#bffcc6",
|
|
"deny": "#cf222e",
|
|
"denyBackground": "#ffe2df"
|
|
},
|
|
"loading": {
|
|
"spinner": "#0969da",
|
|
"spinnerTrack": "#eaeaeb",
|
|
"skeleton": "#f2f3f3",
|
|
"shimmer": "#eaeaeb"
|
|
},
|
|
"scrollbar": {
|
|
"track": "transparent",
|
|
"thumb": "#1e232926",
|
|
"thumbHover": "#1e232940"
|
|
},
|
|
"badges": {
|
|
"default": {
|
|
"bg": "#f2f3f3",
|
|
"fg": "#1e2329",
|
|
"border": "#e4e4e5"
|
|
},
|
|
"info": {
|
|
"bg": "#ffe3d8",
|
|
"fg": "#bc4c00",
|
|
"border": "#ffa983"
|
|
},
|
|
"success": {
|
|
"bg": "#bffcc6",
|
|
"fg": "#1a7f37",
|
|
"border": "#76dc88"
|
|
},
|
|
"warning": {
|
|
"bg": "#ffe6c4",
|
|
"fg": "#9a6700",
|
|
"border": "#f1b55c"
|
|
},
|
|
"error": {
|
|
"bg": "#ffe2df",
|
|
"fg": "#cf222e",
|
|
"border": "#ffa69f"
|
|
}
|
|
},
|
|
"toast": {
|
|
"background": "#f9f9f9",
|
|
"foreground": "#1e2329",
|
|
"border": "#cacbcc",
|
|
"success": {
|
|
"background": "#bffcc6",
|
|
"foreground": "#1a7f37",
|
|
"border": "#76dc88"
|
|
},
|
|
"warning": {
|
|
"background": "#ffe6c4",
|
|
"foreground": "#9a6700",
|
|
"border": "#f1b55c"
|
|
},
|
|
"error": {
|
|
"background": "#ffe2df",
|
|
"foreground": "#cf222e",
|
|
"border": "#ffa69f"
|
|
},
|
|
"info": {
|
|
"background": "#ffe3d8",
|
|
"foreground": "#bc4c00",
|
|
"border": "#ffa983"
|
|
}
|
|
},
|
|
"emptyState": {
|
|
"icon": "#57606a",
|
|
"title": "#1e2329",
|
|
"description": "#57606a",
|
|
"border": "#ededee"
|
|
},
|
|
"table": {
|
|
"border": "#ededee",
|
|
"headerBackground": "#f9f9f9",
|
|
"headerForeground": "#1e2329",
|
|
"rowHover": "#eaeaeb",
|
|
"rowSelected": "#deebfe"
|
|
},
|
|
"charts": {
|
|
"series": [
|
|
"#0969da",
|
|
"#bc4c00",
|
|
"#1a7f37",
|
|
"#9a6700",
|
|
"#cf222e"
|
|
]
|
|
},
|
|
"a11y": {
|
|
"focusRing": "#0d69d9",
|
|
"selection": "#deebfe",
|
|
"highContrast": false
|
|
},
|
|
"shadows": {
|
|
"sm": "0 2px 8px rgba(15, 15, 15, 0.08)",
|
|
"md": "0 12px 32px rgba(15, 15, 15, 0.12)",
|
|
"lg": "0 24px 56px rgba(15, 15, 15, 0.16)",
|
|
"focus": "0 0 0 3px #0969da40"
|
|
},
|
|
"animation": {
|
|
"fast": "150ms ease",
|
|
"normal": "250ms ease",
|
|
"slow": "350ms ease",
|
|
"emphasis": "450ms cubic-bezier(0.2, 0.8, 0.2, 1)"
|
|
}
|
|
},
|
|
"config": {
|
|
"fonts": {
|
|
"sans": "\"IBM Plex Mono\", monospace",
|
|
"mono": "\"IBM Plex Mono\", monospace",
|
|
"heading": "\"IBM Plex Mono\", monospace"
|
|
},
|
|
"radius": {
|
|
"none": "0",
|
|
"sm": "0.125rem",
|
|
"md": "0.375rem",
|
|
"lg": "0.5rem",
|
|
"xl": "0.75rem",
|
|
"full": "9999px"
|
|
},
|
|
"spacing": {
|
|
"xs": "0.25rem",
|
|
"sm": "0.5rem",
|
|
"md": "0.75rem",
|
|
"lg": "1rem",
|
|
"xl": "1.5rem"
|
|
},
|
|
"transitions": {
|
|
"fast": "150ms ease",
|
|
"normal": "250ms ease",
|
|
"slow": "350ms ease"
|
|
}
|
|
}
|
|
}
|