Files
openchamber/packages/ui/src/lib/theme/themes/carbonfox-light.json
T
Bohdan Triapitsyn ddedc02687 feat: introduced a token-based theming system across the UI
* feat: added themes system

* feat: smart sidebar auto-hide for files/diff tabs + lower files sidebar threshold

* feat: added Checkbox component and update theming

- Add reusable Checkbox component for toggles across UI
- Replace several inputs with Checkbox in settings and commands panels
- Add DiffIcon and apply surface/border theming to key UI areas

* feat: Add convert-vscode-theme.cjs to convert VS Code themes to OpenChamber format

* refactor: remove unused permission logic from ChatInput

- Remove unused permission rules parsing logic from ChatInput
- Memoize renderTheme in DiffWorkerProvider to avoid unnecessary recalculations
- Remove forceOpaque helper in vscode theme adapter

* fix: guard VSCode theme loading in MarkdownRenderer

* feat: add custom user themes loading and reload

- Load user themes from ~/.config/openchamber/themes at runtime
- Expose /api/config/themes to fetch custom themes
- Allow theme reloading from Settings → Theme → Reload themes in the UI
2026-02-01 18:29:34 +02:00

177 lines
4.7 KiB
JSON

{
"metadata": {
"id": "carbonfox-light",
"name": "Carbonfox",
"description": "Carbonfox",
"version": "1.0.0",
"variant": "light",
"tags": [ "light", "palette" ]
},
"colors": {
"primary": {
"base": "#0072C3",
"hover": "#338ECF",
"active": "#0061A6",
"foreground": "#FFFFFF",
"muted": "#0072C380",
"emphasis": "#338ECF"
},
"surface": {
"background": "#FFFFFF",
"foreground": "#161616",
"muted": "#F4F4F4",
"mutedForeground": "#525252",
"elevated": "#f4f4f7",
"elevatedForeground": "#161616",
"overlay": "#00000020",
"subtle": "#f2f2f8"
},
"interactive": {
"border": "#DCDCDC",
"borderHover": "#D0D0D0",
"borderFocus": "#0F62FE",
"selection": "#cacfd87f",
"selectionForeground": "#000000",
"focus": "#0F62FE",
"focusRing": "#0F62FE40",
"cursor": "#000000",
"hover": "#43424214",
"active": "#43424212"
},
"status": {
"error": "#DA1E28",
"errorForeground": "#FFFFFF",
"errorBackground": "#DA1E2820",
"errorBorder": "#DA1E2850",
"warning": "#F1C21B",
"warningForeground": "#FFFFFF",
"warningBackground": "#F1C21B20",
"warningBorder": "#F1C21B50",
"success": "#198038",
"successForeground": "#FFFFFF",
"successBackground": "#19803820",
"successBorder": "#19803850",
"info": "#0043CE",
"infoForeground": "#FFFFFF",
"infoBackground": "#0043CE20",
"infoBorder": "#0043CE50"
},
"syntax": {
"base": {
"background": "#F4F4F4",
"foreground": "#161616",
"comment": "#525252",
"keyword": "#0043CE",
"string": "#198038",
"number": "#DA1E28",
"function": "#0043CE",
"variable": "#161616",
"type": "#007D79",
"operator": "#DA1E28"
},
"tokens": {
"boolean": "#007D79",
"class": "#0043CE",
"className": "#0043CE",
"commentDoc": "#A9A9A9",
"constant": "#6929C4",
"decorator": "#007D79",
"enum": "#0043CE",
"exception": "#DA1E28",
"functionCall": "#0043CE",
"interface": "#007D79",
"jsxTag": "#0043CE",
"key": "#0043CE",
"keywordImport": "#DA1E28",
"label": "#DA1E28",
"macro": "#0043CE",
"method": "#198038",
"module": "#DA1E28",
"namespace": "#007D79",
"parameter": "#161616",
"preprocessor": "#DA1E28",
"punctuation": "#525252",
"regex": "#198038",
"storageModifier": "#0043CE",
"stringEscape": "#000000",
"struct": "#0043CE",
"tag": "#0043CE",
"tagAttribute": "#007D79",
"tagAttributeValue": "#198038",
"typeParameter": "#007D79",
"url": "#0072C3",
"variableGlobal": "#0043CE",
"variableLocal": "#E8E8E8",
"variableOther": "#198038",
"variableProperty": "#6929C4"
},
"highlights": {
"diffAdded": "#198038",
"diffAddedBackground": "#19803820",
"diffModified": "#0043CE",
"diffModifiedBackground": "#0043CE20",
"diffRemoved": "#DA1E28",
"diffRemovedBackground": "#DA1E2820",
"lineNumber": "#D0D0D0",
"lineNumberActive": "#000000"
}
},
"markdown": {
"heading1": "#161616",
"heading2": "#161616",
"heading3": "#161616",
"heading4": "#161616",
"link": "#0072C3",
"linkHover": "#0043CE",
"inlineCode": "#198038",
"inlineCodeBackground": "#F4F4F4",
"blockquote": "#525252",
"blockquoteBorder": "#DCDCDC",
"listMarker": "#0072C399"
},
"chat": {
"userMessage": "#161616",
"userMessageBackground": "#f4f4f7",
"assistantMessage": "#161616",
"assistantMessageBackground": "#FFFFFF",
"timestamp": "#525252",
"divider": "#DCDCDC"
},
"tools": {
"background": "#F4F4F480",
"border": "#bdbbbb80",
"headerHover": "#DCDCDC",
"icon": "#525252",
"title": "#161616",
"description": "#525252",
"edit": {
"added": "#198038",
"addedBackground": "#19803825",
"removed": "#DA1E28",
"removedBackground": "#DA1E2825",
"lineNumber": "#D0D0D0"
}
}
},
"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"
},
"transitions": {
"fast": "150ms ease",
"normal": "250ms ease",
"slow": "350ms ease"
}
}
}