diff options
| author | rari404 <[email protected]> | 2025-12-08 12:06:46 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-08 11:06:46 -0600 |
| commit | 9b86d4e595c9f1ac7dea880713fbedd7bfa4c8b6 (patch) | |
| tree | 10599beea626700119d4944a714316a05afee43d /packages | |
| parent | f3d3b41a3f40057cb79ab4d1c0e5b1bd7388f597 (diff) | |
| download | opencode-9b86d4e595c9f1ac7dea880713fbedd7bfa4c8b6.tar.gz opencode-9b86d4e595c9f1ac7dea880713fbedd7bfa4c8b6.zip | |
feat: add theme support for thinking text opacity (#5240)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/context/theme.tsx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/context/theme.tsx b/packages/opencode/src/cli/cmd/tui/context/theme.tsx index 8fea3db3d..dd25024f3 100644 --- a/packages/opencode/src/cli/cmd/tui/context/theme.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/theme.tsx @@ -93,6 +93,7 @@ type ThemeColors = { type Theme = ThemeColors & { _hasSelectedListItemText: boolean + thinkingOpacity: number } export function selectedForeground(theme: Theme): RGBA { @@ -125,6 +126,7 @@ type ThemeJson = { theme: Omit<Record<keyof ThemeColors, ColorValue>, "selectedListItemText" | "backgroundMenu"> & { selectedListItemText?: ColorValue backgroundMenu?: ColorValue + thinkingOpacity?: number } } @@ -183,9 +185,9 @@ function resolveTheme(theme: ThemeJson, mode: "dark" | "light") { const resolved = Object.fromEntries( Object.entries(theme.theme) - .filter(([key]) => key !== "selectedListItemText" && key !== "backgroundMenu") + .filter(([key]) => key !== "selectedListItemText" && key !== "backgroundMenu" && key !== "thinkingOpacity") .map(([key, value]) => { - return [key, resolveColor(value)] + return [key, resolveColor(value as ColorValue)] }), ) as Partial<ThemeColors> @@ -206,9 +208,13 @@ function resolveTheme(theme: ThemeJson, mode: "dark" | "light") { resolved.backgroundMenu = resolved.backgroundElement } + // Handle thinkingOpacity - optional with default of 0.6 + const thinkingOpacity = theme.theme.thinkingOpacity ?? 0.6 + return { ...resolved, _hasSelectedListItemText: hasSelectedListItemText, + thinkingOpacity, } as Theme } @@ -554,7 +560,7 @@ function generateSubtleSyntax(theme: Theme) { Math.round(fg.r * 255), Math.round(fg.g * 255), Math.round(fg.b * 255), - Math.round(0.6 * 255), + Math.round(theme.thinkingOpacity * 255), ), }, } |
