summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAriane Emory <[email protected]>2026-01-07 15:45:30 -0500
committerGitHub <[email protected]>2026-01-07 14:45:30 -0600
commit03eabb10e43997c1a34dce665af0d0de7b49b66e (patch)
tree0e40e556618a159947a9cbd2d3f32f3dd856612b /packages
parent34c9d106ee8987e655c69b11fdd852e7d2a45c77 (diff)
downloadopencode-03eabb10e43997c1a34dce665af0d0de7b49b66e.tar.gz
opencode-03eabb10e43997c1a34dce665af0d0de7b49b66e.zip
fix: use selectedForeground's computer colour (or theme's selectedForeground value) for the colour of text in permission selection (resolves #7246) (#7251)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/context/theme.tsx7
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx4
2 files changed, 6 insertions, 5 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/context/theme.tsx b/packages/opencode/src/cli/cmd/tui/context/theme.tsx
index bf25a23f3..6489fc0e1 100644
--- a/packages/opencode/src/cli/cmd/tui/context/theme.tsx
+++ b/packages/opencode/src/cli/cmd/tui/context/theme.tsx
@@ -102,15 +102,16 @@ type Theme = ThemeColors & {
thinkingOpacity: number
}
-export function selectedForeground(theme: Theme): RGBA {
+export function selectedForeground(theme: Theme, bg?: RGBA): RGBA {
// If theme explicitly defines selectedListItemText, use it
if (theme._hasSelectedListItemText) {
return theme.selectedListItemText
}
- // For transparent backgrounds, calculate contrast based on primary color
+ // For transparent backgrounds, calculate contrast based on the actual bg (or fallback to primary)
if (theme.background.a === 0) {
- const { r, g, b } = theme.primary
+ const targetColor = bg ?? theme.primary
+ const { r, g, b } = targetColor
const luminance = 0.299 * r + 0.587 * g + 0.114 * b
return luminance > 0.5 ? RGBA.fromInts(0, 0, 0) : RGBA.fromInts(255, 255, 255)
}
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx
index 095c45cef..f5b6badb5 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx
@@ -3,7 +3,7 @@ import { createMemo, For, Match, Show, Switch } from "solid-js"
import { useKeyboard, useTerminalDimensions, type JSX } from "@opentui/solid"
import type { TextareaRenderable } from "@opentui/core"
import { useKeybind } from "../../context/keybind"
-import { useTheme } from "../../context/theme"
+import { useTheme, selectedForeground } from "../../context/theme"
import type { PermissionRequest } from "@opencode-ai/sdk/v2"
import { useSDK } from "../../context/sdk"
import { SplitBorder } from "../../component/border"
@@ -395,7 +395,7 @@ function Prompt<const T extends Record<string, string>>(props: {
paddingRight={1}
backgroundColor={option === store.selected ? theme.warning : theme.backgroundMenu}
>
- <text fg={option === store.selected ? theme.selectedListItemText : theme.textMuted}>
+ <text fg={option === store.selected ? selectedForeground(theme, theme.warning) : theme.textMuted}>
{props.options[option]}
</text>
</box>