summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorrari404 <[email protected]>2025-12-08 12:06:46 -0500
committerGitHub <[email protected]>2025-12-08 11:06:46 -0600
commit9b86d4e595c9f1ac7dea880713fbedd7bfa4c8b6 (patch)
tree10599beea626700119d4944a714316a05afee43d
parentf3d3b41a3f40057cb79ab4d1c0e5b1bd7388f597 (diff)
downloadopencode-9b86d4e595c9f1ac7dea880713fbedd7bfa4c8b6.tar.gz
opencode-9b86d4e595c9f1ac7dea880713fbedd7bfa4c8b6.zip
feat: add theme support for thinking text opacity (#5240)
-rw-r--r--packages/opencode/src/cli/cmd/tui/context/theme.tsx12
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),
),
},
}