Redesign dashboard/screener UI for improved density and performance

- Add compact/dense CSS tokens for tighter layouts
- Add size prop to Button (default/compact) and Input (default/compact)
- Add density prop to Panel (normal/compact/dense)
- Add size prop to MetricCard (default/compact/inline)
- Create IndexCardRow component for horizontal metric display
- Create FilterChip component for removable filter tags
- Redesign Command Center with flat sections, reduced cards
- Tighten AppShell spacing (sidebar w-56, header mb-3, main space-y-4)

Design goals achieved:
- Denser, cleaner terminal-style layout
- Reduced card usage in favor of flat sections with dividers
- More space-efficient controls and metrics
- Better use of widescreen layouts
This commit is contained in:
2026-03-16 19:51:00 -04:00
parent 14a7773504
commit ca45d8ea4c
9 changed files with 718 additions and 152 deletions

View File

@@ -530,7 +530,7 @@ export function AppShell({
className={cn(
"hidden shrink-0 flex-col gap-4 border-r border-[color:var(--line-weak)] lg:flex",
hasMounted ? "transition-[width,padding] duration-200" : "",
isSidebarCollapsed ? "w-16 pr-1" : "w-72 pr-4",
isSidebarCollapsed ? "w-16 pr-1" : "w-56 pr-4",
)}
>
<div
@@ -655,7 +655,7 @@ export function AppShell({
</aside>
<div className="min-w-0 flex-1 pb-24 lg:pb-0">
<header className="relative mb-4 border-b border-[color:var(--line-weak)] pb-4 pr-16 sm:pb-5 sm:pr-20">
<header className="relative mb-3 border-b border-[color:var(--line-weak)] pb-3 pr-16 sm:pb-4 sm:pr-20">
<div className="absolute right-4 top-4 z-10 sm:right-5 sm:top-5">
<TaskNotificationsTrigger
unreadCount={notifications.unreadCount}
@@ -704,7 +704,7 @@ export function AppShell({
<nav
aria-label="Breadcrumb"
className="mb-6 overflow-x-auto border-b border-[color:var(--line-weak)] pb-3"
className="mb-4 overflow-x-auto border-b border-[color:var(--line-weak)] pb-2"
>
<ol className="flex min-w-max items-center gap-2 text-xs text-[color:var(--terminal-muted)] sm:min-w-0 sm:flex-wrap">
{breadcrumbItems.map((item, index) => {
@@ -743,7 +743,7 @@ export function AppShell({
</ol>
</nav>
<main className="min-w-0 space-y-6">{children}</main>
<main className="min-w-0 space-y-4">{children}</main>
</div>
</div>