{title}
setPage("feed")}
- className="text-lg font-bold tracking-tight select-none cursor-pointer rounded-md -mx-1 px-1 hover:bg-card hover:opacity-90 transition outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60"
+ className="text-lg font-bold tracking-tight select-none cursor-pointer rounded-md -mx-1 px-1 hover:bg-card hover:opacity-90 transition"
title={t("header.feed")}
>
Siftlode
@@ -251,7 +251,7 @@ export default function NavSidebar({
onClick={onToggleCollapse}
title={pinned ? t("nav.unpin") : t("nav.pin")}
aria-label={pinned ? t("nav.unpin") : t("nav.pin")}
- className="p-1 rounded-md text-muted hover:text-fg hover:bg-card transition outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60"
+ className="p-1 rounded-md text-muted hover:text-fg hover:bg-card transition"
>
{pinned ? : }
@@ -290,7 +290,7 @@ export default function NavSidebar({
onClick={onOpenAbout}
title={t("header.account.about")}
aria-label={t("header.account.about")}
- className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60"
+ className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition"
>
@@ -298,7 +298,7 @@ export default function NavSidebar({
onClick={logout}
title={t("header.account.signOut")}
aria-label={t("header.account.signOut")}
- className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60"
+ className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition"
>
diff --git a/frontend/src/components/PlayerModal.tsx b/frontend/src/components/PlayerModal.tsx
index 6187ec42..f429e7d3 100644
--- a/frontend/src/components/PlayerModal.tsx
+++ b/frontend/src/components/PlayerModal.tsx
@@ -916,7 +916,7 @@ export default function PlayerModal({
e.stopPropagation()}
>
@@ -296,7 +296,7 @@ function ViewRow({
onClick={onApply}
title={t("views.apply")}
aria-current={active ? "true" : undefined}
- className={`flex-1 min-w-0 text-left text-xs py-1 truncate rounded-sm outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60 ${
+ className={`flex-1 min-w-0 text-left text-xs py-1 truncate ${
active ? "text-accent font-medium" : "text-fg"
}`}
>
@@ -306,7 +306,7 @@ function ViewRow({
diff --git a/frontend/src/components/SearchBar.tsx b/frontend/src/components/SearchBar.tsx
index 2694d3bb..aa4f1af7 100644
--- a/frontend/src/components/SearchBar.tsx
+++ b/frontend/src/components/SearchBar.tsx
@@ -31,7 +31,7 @@ export default function SearchBar({
if (onGo && !goDisabled) onGo();
};
return (
-
+
{open && filtered.length > 0 && (
-
+
{filtered.map((u) => (
— otherwise the scroller's stacking context (its edge-fade
diff --git a/frontend/src/index.css b/frontend/src/index.css
index ff50c6e2..81911d9b 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -280,10 +280,11 @@ body {
}
/* ===== Liquid-glass surface system (theme-aware, GPU-light) ===== */
-/* In @layer components so a JSX shadow-* utility (which lives in @layer utilities, always above
- components) can override a glass surface's default box-shadow again. Before v4/R9 these rules were
- unlayered and always won, so ~9 `shadow-*` on glass surfaces were silent no-ops. The perf-mode and
- :hover overrides below stay UNLAYERED on purpose (they must beat the utility). */
+/* In @layer components so the recipe classes below (.selectable) compose with utilities instead of
+ silently beating them the way these rules did while unlayered. (The ~9 dead `shadow-*` that used to
+ sit on glass surfaces were REMOVED in R9, not activated: the tuned glass box-shadow — including its
+ inset top-edge highlight — is the intended depth, and a shadow-* utility would atomically replace it
+ and drop that highlight.) The perf-mode and :hover overrides below stay UNLAYERED on purpose. */
@layer components {
.glass {
/* Frosted overlay surface: translucent enough that the blurred backdrop shows