Files
openchamber/packages/ui/src/lib/theme/themes/catppuccin-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": "catppuccin-light",
"name": "Catppuccin",
"description": "Catppuccin",
"version": "1.0.0",
"variant": "light",
"tags": [ "light", "palette" ]
},
"colors": {
"primary": {
"base": "#7287FD",
"hover": "#8C99F6",
"active": "#6677DD",
"foreground": "#F5E0DC",
"muted": "#7287FD80",
"emphasis": "#8C99F6"
},
"surface": {
"background": "#fff6f4",
"foreground": "#2e314a",
"muted": "#f8ebe9",
"mutedForeground": "#6C6F85",
"elevated": "#fbefea",
"elevatedForeground": "#4C4F69",
"overlay": "#1F1F2A20",
"subtle": "#FDEEEE"
},
"interactive": {
"border": "#E0CFD3",
"borderHover": "#D6C4C8",
"borderFocus": "#AB97A1",
"selection": "#ffffff",
"selectionForeground": "#1F1F2A",
"focus": "#7287FD",
"focusRing": "#7287FD40",
"cursor": "#1F1F2A",
"hover": "#ffffff8f",
"active": "#ffffff"
},
"status": {
"error": "#D20F39",
"errorForeground": "#F5E0DC",
"errorBackground": "#D20F3920",
"errorBorder": "#D20F3950",
"warning": "#DF8E1D",
"warningForeground": "#F5E0DC",
"warningBackground": "#DF8E1D20",
"warningBorder": "#DF8E1D50",
"success": "#40A02B",
"successForeground": "#F5E0DC",
"successBackground": "#40A02B20",
"successBorder": "#40A02B50",
"info": "#04A5E5",
"infoForeground": "#F5E0DC",
"infoBackground": "#04A5E520",
"infoBorder": "#04A5E550"
},
"syntax": {
"base": {
"background": "#F2D8D4",
"foreground": "#4C4F69",
"comment": "#6C6F85",
"keyword": "#7287FD",
"string": "#40A02B",
"number": "#D20F39",
"function": "#7287FD",
"variable": "#4C4F69",
"type": "#DF8E1D",
"operator": "#D20F39"
},
"tokens": {
"boolean": "#DF8E1D",
"class": "#7287FD",
"className": "#7287FD",
"commentDoc": "#B1A8B1",
"constant": "#04A5E5",
"decorator": "#DF8E1D",
"enum": "#7287FD",
"exception": "#D20F39",
"functionCall": "#7287FD",
"interface": "#DF8E1D",
"jsxTag": "#7287FD",
"key": "#7287FD",
"keywordImport": "#D20F39",
"label": "#D20F39",
"macro": "#04A5E5",
"method": "#40A02B",
"module": "#D20F39",
"namespace": "#DF8E1D",
"parameter": "#4C4F69",
"preprocessor": "#D20F39",
"punctuation": "#6C6F85",
"regex": "#40A02B",
"storageModifier": "#04A5E5",
"stringEscape": "#1F1F2A",
"struct": "#7287FD",
"tag": "#7287FD",
"tagAttribute": "#DF8E1D",
"tagAttributeValue": "#40A02B",
"typeParameter": "#DF8E1D",
"url": "#04A5E5",
"variableGlobal": "#7287FD",
"variableLocal": "#F9E8E4",
"variableOther": "#40A02B",
"variableProperty": "#04A5E5"
},
"highlights": {
"diffAdded": "#40A02B",
"diffAddedBackground": "#EDF5E6",
"diffModified": "#04A5E5",
"diffModifiedBackground": "#E4E2F6",
"diffRemoved": "#D20F39",
"diffRemovedBackground": "#FDE1E3",
"lineNumber": "#C2AEB4",
"lineNumberActive": "#1F1F2A"
}
},
"markdown": {
"heading1": "#2e314a",
"heading2": "#2e314a",
"heading3": "#2e314a",
"heading4": "#2e314a",
"link": "#04A5E5",
"linkHover": "#7287FD",
"inlineCode": "#40A02B",
"inlineCodeBackground": "#f6eeec",
"blockquote": "#DF8E1D",
"blockquoteBorder": "#E0CFD3",
"listMarker": "#7287FD99"
},
"chat": {
"userMessage": "#2e314a",
"userMessageBackground": "#ffffff",
"assistantMessage": "#4C4F69",
"assistantMessageBackground": "#F5E0DC",
"timestamp": "#6C6F85",
"divider": "#E0CFD3"
},
"tools": {
"background": "#F2D8D480",
"border": "#cbbec180",
"headerHover": "#FDEEEE",
"icon": "#6C6F85",
"title": "#4C4F69",
"description": "#6C6F85",
"edit": {
"added": "#40A02B",
"addedBackground": "#40A02B25",
"removed": "#D20F39",
"removedBackground": "#D20F3925",
"lineNumber": "#C2AEB4"
}
}
},
"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"
}
}
}