From 6b8e9470d5b40030172b0413f0c5875fcbe65595 Mon Sep 17 00:00:00 2001
From: Tyler Hoang <tyler@tylerhoang.xyz>
Date: Sun, 17 May 2026 13:20:12 -0700
Subject: Fix design system violations and logic bugs from code review
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Remove backdrop-filter blur (glass effect) from TopBar; use opaque ink-1 background
- Remove decorative glow box-shadows from market status dot
- Fix button border-radius: var(--r-2) → var(--r-1) (4px → 2px) per design rules
- Replace invented hover color rgba(194,170,122,0.04) with var(--ink-3) token
- Add missing .psm-signal.neu CSS rule so neutral signals have visual treatment
- Use HTML disabled attribute on nav buttons instead of aria-disabled alone
- Replace duplicate EPS KPI tile with Prev Close to remove redundancy with P/E sublabel
- Rename sortIndices → limitIndices (function only truncates, never sorts)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---
 frontend/app/page.tsx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'frontend/app/page.tsx')

diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx
index f47d49a..02bd706 100644
--- a/frontend/app/page.tsx
+++ b/frontend/app/page.tsx
@@ -11,7 +11,7 @@ import { TickerHeader } from "@/components/prism/TickerHeader";
 import { TopBar } from "@/components/prism/TopBar";
 import { ApiError, api } from "@/lib/api";
 import { deltaClass, fmtCurrency, fmtLarge, fmtNumber, fmtPct } from "@/lib/format";
-import { availableFieldSummary, buildKpis, marketClock, OVERVIEW_NAV_ITEMS, signalTone, sortIndices, unavailableFields } from "@/lib/overview";
+import { availableFieldSummary, buildKpis, limitIndices, marketClock, OVERVIEW_NAV_ITEMS, signalTone, unavailableFields } from "@/lib/overview";
 import type { HistoryPoint, MarketIndex, SearchResult, TickerOverview, WatchlistResponse } from "@/types/api";
 
 type LoadState = "idle" | "loading" | "ready" | "invalid" | "error";
@@ -48,7 +48,7 @@ function OverviewClient() {
 
   const watchlistSymbols = useMemo(() => new Set(watchlist.items.map((item) => item.symbol)), [watchlist]);
   const isSaved = selectedTicker ? watchlistSymbols.has(selectedTicker) : false;
-  const marketCards = useMemo(() => sortIndices(market), [market]);
+  const marketCards = useMemo(() => limitIndices(market), [market]);
   const kpis = useMemo(() => (overview ? buildKpis(overview) : []), [overview]);
   const missingFields = useMemo(() => (overview ? unavailableFields(overview) : []), [overview]);
 
-- 
cgit v1.3-2-g0d8e

