feat(ui): add gruvbox theme (Web/App) (#9855)

This commit is contained in:
Suad Wolgram
2026-01-21 22:34:27 +01:00
committed by GitHub
parent 23daac2170
commit 936f3ebe95
3 changed files with 331 additions and 49 deletions

View File

@@ -12,6 +12,7 @@ import shadesOfPurpleThemeJson from "./themes/shadesofpurple.json"
import nightowlThemeJson from "./themes/nightowl.json"
import vesperThemeJson from "./themes/vesper.json"
import carbonfoxThemeJson from "./themes/carbonfox.json"
import gruvboxThemeJson from "./themes/gruvbox.json"
export const oc1Theme = oc1ThemeJson as DesktopTheme
export const tokyonightTheme = tokyoThemeJson as DesktopTheme
@@ -26,6 +27,7 @@ export const shadesOfPurpleTheme = shadesOfPurpleThemeJson as DesktopTheme
export const nightowlTheme = nightowlThemeJson as DesktopTheme
export const vesperTheme = vesperThemeJson as DesktopTheme
export const carbonfoxTheme = carbonfoxThemeJson as DesktopTheme
export const gruvboxTheme = gruvboxThemeJson as DesktopTheme
export const DEFAULT_THEMES: Record<string, DesktopTheme> = {
"oc-1": oc1Theme,
@@ -41,4 +43,5 @@ export const DEFAULT_THEMES: Record<string, DesktopTheme> = {
nightowl: nightowlTheme,
vesper: vesperTheme,
carbonfox: carbonfoxTheme,
gruvbox: gruvboxTheme,
}

View File

@@ -0,0 +1,132 @@
{
"$schema": "https://opencode.ai/desktop-theme.json",
"name": "Gruvbox",
"id": "gruvbox",
"light": {
"seeds": {
"neutral": "#fbf1c7",
"primary": "#076678",
"success": "#79740e",
"warning": "#b57614",
"error": "#9d0006",
"info": "#8f3f71",
"interactive": "#076678",
"diffAdd": "#79740e",
"diffDelete": "#9d0006"
},
"overrides": {
"background-base": "#fbf1c7",
"background-weak": "#f2e5bc",
"background-strong": "#f9f5d7",
"background-stronger": "#fdf9e8",
"surface-raised-stronger-non-alpha": "#fbfaf5",
"border-weak-base": "#d5c4a1",
"border-weak-hover": "#c9b897",
"border-weak-active": "#bdae93",
"border-weak-selected": "#b0a285",
"border-weak-disabled": "#f0e4b8",
"border-weak-focus": "#c4b590",
"border-base": "#bdae93",
"border-hover": "#b0a285",
"border-active": "#a89984",
"border-selected": "#928374",
"border-disabled": "#e5d9ad",
"border-focus": "#a89984",
"border-strong-base": "#7c6f64",
"border-strong-hover": "#6e6259",
"border-strong-active": "#665c54",
"border-strong-selected": "#5a524b",
"border-strong-disabled": "#c9bda1",
"border-strong-focus": "#665c54",
"surface-diff-add-base": "#dde3b1",
"surface-diff-delete-base": "#e8c7c3",
"surface-diff-hidden-base": "#ebdfb5",
"text-base": "#3c3836",
"text-weak": "#7c6f64",
"text-strong": "#282828",
"syntax-string": "#79740e",
"syntax-primitive": "#9d0006",
"syntax-property": "#076678",
"syntax-type": "#b57614",
"syntax-constant": "#8f3f71",
"syntax-info": "#427b58",
"markdown-heading": "#076678",
"markdown-text": "#3c3836",
"markdown-link": "#076678",
"markdown-link-text": "#427b58",
"markdown-code": "#79740e",
"markdown-block-quote": "#928374",
"markdown-emph": "#8f3f71",
"markdown-strong": "#af3a03",
"markdown-horizontal-rule": "#d5c4a1",
"markdown-list-item": "#076678",
"markdown-list-enumeration": "#427b58",
"markdown-image": "#076678",
"markdown-image-text": "#427b58",
"markdown-code-block": "#3c3836"
}
},
"dark": {
"seeds": {
"neutral": "#282828",
"primary": "#83a598",
"success": "#b8bb26",
"warning": "#fabd2f",
"error": "#fb4934",
"info": "#d3869b",
"interactive": "#83a598",
"diffAdd": "#b8bb26",
"diffDelete": "#fb4934"
},
"overrides": {
"background-base": "#282828",
"background-weak": "#32302f",
"background-strong": "#1d2021",
"background-stronger": "#141617",
"border-weak-base": "#504945",
"border-weak-hover": "#5a524b",
"border-weak-active": "#665c54",
"border-weak-selected": "#70665d",
"border-weak-disabled": "#1e1d1c",
"border-weak-focus": "#5e5650",
"border-base": "#665c54",
"border-hover": "#70665d",
"border-active": "#7c6f64",
"border-selected": "#928374",
"border-disabled": "#2a2827",
"border-focus": "#7c6f64",
"border-strong-base": "#928374",
"border-strong-hover": "#9d8e7f",
"border-strong-active": "#a89984",
"border-strong-selected": "#b3a48f",
"border-strong-disabled": "#3c3836",
"border-strong-focus": "#a89984",
"surface-diff-add-base": "#2a3325",
"surface-diff-delete-base": "#3c2222",
"surface-diff-hidden-base": "#32302f",
"text-base": "#ebdbb2",
"text-weak": "#a89984",
"text-strong": "#fbf1c7",
"syntax-string": "#b8bb26",
"syntax-primitive": "#fb4934",
"syntax-property": "#83a598",
"syntax-type": "#fabd2f",
"syntax-constant": "#d3869b",
"syntax-info": "#8ec07c",
"markdown-heading": "#83a598",
"markdown-text": "#ebdbb2",
"markdown-link": "#83a598",
"markdown-link-text": "#8ec07c",
"markdown-code": "#b8bb26",
"markdown-block-quote": "#928374",
"markdown-emph": "#d3869b",
"markdown-strong": "#fe8019",
"markdown-horizontal-rule": "#504945",
"markdown-list-item": "#83a598",
"markdown-list-enumeration": "#8ec07c",
"markdown-image": "#83a598",
"markdown-image-text": "#8ec07c",
"markdown-code-block": "#ebdbb2"
}
}
}