summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRahul A Mistry <[email protected]>2026-01-26 22:28:29 +0530
committerGitHub <[email protected]>2026-01-26 10:58:29 -0600
commit783121c06e388c2d496fd68c59421fdff7d5620f (patch)
tree609bec899ef8bd0d31c520806e886e7d25382e3c
parent984518b1c0cb74db0b8eb9f77bb15fb97224a4e2 (diff)
downloadopencode-783121c06e388c2d496fd68c59421fdff7d5620f.tar.gz
opencode-783121c06e388c2d496fd68c59421fdff7d5620f.zip
fix(ui): use focus-visible instead of focus to prevent sticky hover effect on click (#10651)
-rw-r--r--packages/app/src/components/session/session-header.tsx2
-rw-r--r--packages/app/src/pages/layout.tsx4
-rw-r--r--packages/ui/src/components/button.css2
-rw-r--r--packages/ui/src/components/icon-button.css4
-rw-r--r--packages/ui/src/components/list.css4
-rw-r--r--packages/ui/src/components/select.css2
6 files changed, 9 insertions, 9 deletions
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx
index e4a64b339..90daa971d 100644
--- a/packages/app/src/components/session/session-header.tsx
+++ b/packages/app/src/components/session/session-header.tsx
@@ -131,7 +131,7 @@ export function SessionHeader() {
<Portal mount={mount()}>
<button
type="button"
- class="hidden md:flex w-[320px] p-1 pl-1.5 items-center gap-2 justify-between rounded-md border border-border-weak-base bg-surface-raised-base transition-colors cursor-default hover:bg-surface-raised-base-hover focus:bg-surface-raised-base-hover active:bg-surface-raised-base-active"
+ class="hidden md:flex w-[320px] p-1 pl-1.5 items-center gap-2 justify-between rounded-md border border-border-weak-base bg-surface-raised-base transition-colors cursor-default hover:bg-surface-raised-base-hover focus-visible:bg-surface-raised-base-hover active:bg-surface-raised-base-active"
onClick={() => command.trigger("file.open")}
aria-label={language.t("session.header.searchFiles")}
>
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index 87538d72e..7ad97a989 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -1696,7 +1696,7 @@ export default function Layout(props: ParentProps) {
<div
data-session-id={props.session.id}
class="group/session relative w-full rounded-md cursor-default transition-colors pl-2 pr-3
- hover:bg-surface-raised-base-hover focus-within:bg-surface-raised-base-hover has-[[data-expanded]]:bg-surface-raised-base-hover has-[.active]:bg-surface-base-active"
+ hover:bg-surface-raised-base-hover [&:has(:focus-visible)]:bg-surface-raised-base-hover has-[[data-expanded]]:bg-surface-raised-base-hover has-[.active]:bg-surface-base-active"
>
<Show
when={hoverEnabled()}
@@ -1819,7 +1819,7 @@ export default function Layout(props: ParentProps) {
)
return (
- <div class="group/session relative w-full rounded-md cursor-default transition-colors pl-2 pr-3 hover:bg-surface-raised-base-hover focus-within:bg-surface-raised-base-hover has-[.active]:bg-surface-base-active">
+ <div class="group/session relative w-full rounded-md cursor-default transition-colors pl-2 pr-3 hover:bg-surface-raised-base-hover [&:has(:focus-visible)]:bg-surface-raised-base-hover has-[.active]:bg-surface-base-active">
<Show
when={!tooltip()}
fallback={
diff --git a/packages/ui/src/components/button.css b/packages/ui/src/components/button.css
index 6922d996f..225e64c77 100644
--- a/packages/ui/src/components/button.css
+++ b/packages/ui/src/components/button.css
@@ -46,7 +46,7 @@
&:hover:not(:disabled) {
background-color: var(--surface-raised-base-hover);
}
- &:focus:not(:disabled) {
+ &:focus-visible:not(:disabled) {
background-color: var(--surface-raised-base-hover);
}
&:active:not(:disabled) {
diff --git a/packages/ui/src/components/icon-button.css b/packages/ui/src/components/icon-button.css
index 7d5d3280f..aa550e990 100644
--- a/packages/ui/src/components/icon-button.css
+++ b/packages/ui/src/components/icon-button.css
@@ -90,8 +90,8 @@
/* color: var(--icon-hover); */
/* } */
}
- &:focus:not(:disabled) {
- background-color: var(--surface-focus);
+ &:focus-visible:not(:disabled) {
+ background-color: var(--surface-raised-base-hover);
}
&:active:not(:disabled) {
background-color: var(--surface-raised-base-active);
diff --git a/packages/ui/src/components/list.css b/packages/ui/src/components/list.css
index 03166285b..154102ca3 100644
--- a/packages/ui/src/components/list.css
+++ b/packages/ui/src/components/list.css
@@ -40,7 +40,7 @@
transition: opacity 0.15s ease;
&:hover:not(:disabled),
- &:focus:not(:disabled),
+ &:focus-visible:not(:disabled),
&:active:not(:disabled) {
background-color: transparent;
opacity: 0.7;
@@ -91,7 +91,7 @@
transition: opacity 0.15s ease;
&:hover:not(:disabled),
- &:focus:not(:disabled),
+ &:focus-visible:not(:disabled),
&:active:not(:disabled) {
background-color: transparent;
opacity: 0.7;
diff --git a/packages/ui/src/components/select.css b/packages/ui/src/components/select.css
index 3e175855b..25dd2eb40 100644
--- a/packages/ui/src/components/select.css
+++ b/packages/ui/src/components/select.css
@@ -31,7 +31,7 @@
}
}
- &:not([data-expanded]):focus {
+ &:not([data-expanded]):focus-visible {
&[data-variant="secondary"] {
background-color: var(--button-secondary-base);
}