diff --git a/src/app/globals.css b/src/app/globals.css index f11110b..643e01e 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -4,10 +4,11 @@ :root { /* ========== VISUAL-TRUTH UI TOKEN CONTRACT (bb-vt.1.1) ========== */ - --ui-bg-app: #070d16; - --ui-bg-shell: #0c1420; - --ui-bg-panel: #111c2a; - --ui-bg-card: #1a2431; + /* Lightened aurora palette */ + --ui-bg-app: #0d1219; + --ui-bg-shell: #131b26; + --ui-bg-panel: #1a2330; + --ui-bg-card: #222d3d; --ui-border-soft: rgba(153, 171, 190, 0.2); --ui-border-strong: rgba(153, 171, 190, 0.34); diff --git a/src/components/shared/left-panel.tsx b/src/components/shared/left-panel.tsx index ad21774..1f1e500 100644 --- a/src/components/shared/left-panel.tsx +++ b/src/components/shared/left-panel.tsx @@ -139,15 +139,15 @@ function statusDot(status: BeadIssue['status']): string { function rowTone(entry: EpicEntry): string { if (entry.blockedCount > 0) { - return '#22111a'; + return 'rgba(255, 76, 114, 0.08)'; } if (entry.activeCount > 0) { - return '#221a11'; + return 'rgba(255, 178, 74, 0.08)'; } if (entry.readyCount > 0) { - return '#0f221c'; + return 'rgba(53, 217, 143, 0.08)'; } - return '#111f2b'; + return 'var(--ui-bg-panel)'; } function isTaskMatch(task: BeadIssue, filters: LeftPanelFilters): boolean { @@ -213,7 +213,7 @@ export function LeftPanel({ issues, selectedEpicId, onEpicSelect, filters, onFil })} -
+
onFiltersChange({ ...filters, hideClosed: !filters.hideClosed })} className={cn( - 'w-full rounded-lg px-2 py-1.5 text-[10px] font-semibold uppercase tracking-[0.11em] shadow-[0_8px_18px_-16px_rgba(0,0,0,0.9)] transition-colors', + 'w-full rounded-lg px-2 py-1.5 text-[10px] font-semibold uppercase tracking-[0.11em] transition-colors border', filters.hideClosed - ? 'bg-[#1d2b1a] text-[var(--ui-accent-ready)]' - : 'bg-[#0f1824] text-[var(--ui-text-muted)]', + ? 'bg-[var(--ui-accent-ready)]/15 border-[var(--ui-accent-ready)]/40 text-[var(--ui-accent-ready)]' + : 'bg-[var(--ui-bg-card)] border-[var(--ui-border-soft)] text-[var(--ui-text-muted)]', )} aria-pressed={filters.hideClosed} > @@ -330,13 +330,13 @@ export function LeftPanel({ issues, selectedEpicId, onEpicSelect, filters, onFil
@@ -364,7 +364,7 @@ export function LeftPanel({ issues, selectedEpicId, onEpicSelect, filters, onFil
-
+
@@ -96,11 +96,11 @@ export function TopBar({ className="inline-flex items-center gap-2 rounded-xl border px-3 py-2 text-xs font-semibold uppercase tracking-[0.11em] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-accent-info)]" style={{ borderColor: blockedOnly - ? 'color-mix(in srgb, var(--ui-accent-blocked) 78%, transparent)' + ? 'rgba(255, 76, 114, 0.6)' : 'var(--ui-border-soft)', backgroundColor: blockedOnly - ? 'color-mix(in srgb, var(--ui-accent-blocked) 20%, var(--ui-bg-panel))' - : 'color-mix(in srgb, var(--ui-bg-panel) 88%, black)', + ? 'rgba(255, 76, 114, 0.15)' + : 'var(--ui-bg-panel)', color: blockedOnly ? '#ffd4dd' : 'var(--ui-text-primary)', }} data-testid="blocked-items-button" @@ -118,7 +118,7 @@ export function TopBar({ void onCreateTask?.(); }} disabled={isCreatingTask} - className="inline-flex items-center gap-2 rounded-xl border border-[color-mix(in_srgb,var(--ui-accent-ready)_80%,black)] bg-[var(--ui-accent-action-green)] px-4 py-2 text-xs font-semibold uppercase tracking-[0.11em] text-[#072514] transition-colors hover:bg-[color-mix(in_srgb,var(--ui-accent-action-green)_84%,white)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-accent-info)] disabled:opacity-60" + className="inline-flex items-center gap-2 rounded-xl border border-[var(--ui-accent-ready)] bg-[var(--ui-accent-ready)] px-4 py-2 text-xs font-semibold uppercase tracking-[0.11em] text-[#072514] transition-colors hover:brightness-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-accent-info)] disabled:opacity-60" data-testid="new-task-button" >