From b03bc4b52d184c5f2367d702e043586a0e9fcdaa Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Tue, 9 Jun 2026 17:15:09 -0700 Subject: [PATCH] Mute icons in labeled controls and suppress popup focus rings (#3015) Co-authored-by: ss Co-authored-by: Claude Opus 4.8 --- apps/web/src/components/ui/autocomplete.tsx | 2 +- apps/web/src/components/ui/button.tsx | 4 ++-- apps/web/src/components/ui/combobox.tsx | 2 ++ apps/web/src/components/ui/menu.tsx | 4 ++-- apps/web/src/components/ui/select.tsx | 13 ++++++++----- apps/web/src/index.css | 8 ++++++++ 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/apps/web/src/components/ui/autocomplete.tsx b/apps/web/src/components/ui/autocomplete.tsx index d6db87d48c2a712f2b2bdad3d19464b48c47ec2d..2d099762f2807a5c3944bcba939c1a9218310fee 100644 --- a/apps/web/src/components/ui/autocomplete.tsx +++ b/apps/web/src/components/ui/autocomplete.tsx @@ -125,7 +125,7 @@ function AutocompleteItem({ className, children, ...props }: AutocompletePrimiti return (
{children}
diff --git a/apps/web/src/components/ui/menu.tsx b/apps/web/src/components/ui/menu.tsx index 8f2833e41b30a21e7fac4d1917115087cde805e6..07e27d23f46be58eee254e2306932b283971f075 100644 --- a/apps/web/src/components/ui/menu.tsx +++ b/apps/web/src/components/ui/menu.tsx @@ -78,7 +78,7 @@ function MenuItem({ return ( svg]:-mx-0.5 flex min-h-8 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-base text-foreground outline-none data-disabled:pointer-events-none data-highlighted:bg-accent data-inset:ps-8 data-[variant=destructive]:text-destructive-foreground data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&>svg:not([class*='opacity-'])]:opacity-80 [&>svg:not([class*='size-'])]:size-4.5 sm:[&>svg:not([class*='size-'])]:size-4 [&>svg]:pointer-events-none [&>svg]:shrink-0", + "[&>svg]:-mx-0.5 flex min-h-8 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-base text-foreground outline-none data-disabled:pointer-events-none data-highlighted:bg-accent data-inset:ps-8 data-[variant=destructive]:text-destructive-foreground data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&>svg:not([class*='opacity-'])]:opacity-80 [&>svg:not([class*='size-'])]:size-4.5 sm:[&>svg:not([class*='size-'])]:size-4 [&>svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:[&>svg:not([class*='text-'])]:text-current [&>svg]:pointer-events-none [&>svg]:shrink-0", className, )} data-inset={inset} @@ -235,7 +235,7 @@ function MenuSubTrigger({ return ( {variant === "ghost" ? ( - + ) : ( )} @@ -87,7 +87,7 @@ function SelectTrigger({ > {children} - + ); @@ -138,7 +138,7 @@ function SelectPopup({ sideOffset={sideOffset} > @@ -210,7 +210,10 @@ function SelectItem({ )} {children} diff --git a/apps/web/src/index.css b/apps/web/src/index.css index 666512f57797c24b7d77ddf7ad0b2593ce76b9d1..9770f56742009179f49f032c021cc3c7705c94db 100644 --- a/apps/web/src/index.css +++ b/apps/web/src/index.css @@ -54,6 +54,14 @@ * { @apply border-border outline-ring/50; } + :where([data-slot="menu-popup"], [data-slot="select-popup"], [data-slot="popover-popup"]):focus, + :where( + [data-slot="menu-popup"], + [data-slot="select-popup"], + [data-slot="popover-popup"] + ):focus-visible { + @apply outline-none ring-0; + } html { background-color: var(--app-chrome-background); } -- 2.54.0