UI/UX redesign: unified refined-glass design system
Deploy / lint (push) Failing after 10m26s
Deploy / test (push) Has been skipped
Deploy / deploy (push) Has been skipped

- Add shared UI primitives: Button, Field/Input/Select, PageHeader,
  Section, Callout, Tabs, Disclosure
- Replace gradient buttons with single blue-accent btn-primary
- Reserve gradient text for the brand wordmark only
- Rework Scanner page onto the glass system; collapse explainer and
  glossary into a disclosure, move filters into a glass toolbar
- Restructure Ticker Detail into tabs (Analysis / Indicators / S/R)
  with chart and recommendation always visible
- Align Watchlist, Rankings, Admin, Login/Register to shared primitives
- Unify stray indigo/violet/gray accents into the blue family

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 14:52:56 +02:00
parent 79ca19f45f
commit d69df5df27
27 changed files with 405 additions and 275 deletions
+4 -20
View File
@@ -7,6 +7,8 @@ import { SettingsForm } from '../components/admin/SettingsForm';
import { TickerManagement } from '../components/admin/TickerManagement';
import { TickerUniverseBootstrap } from '../components/admin/TickerUniverseBootstrap';
import { UserTable } from '../components/admin/UserTable';
import { PageHeader } from '../components/ui/PageHeader';
import { Tabs } from '../components/ui/Tabs';
const tabs = ['Users', 'Tickers', 'Settings', 'Jobs', 'Cleanup'] as const;
type Tab = (typeof tabs)[number];
@@ -16,27 +18,9 @@ export default function AdminPage() {
return (
<div className="space-y-6 animate-slide-up">
<div>
<h1 className="text-2xl font-bold text-gradient">Admin</h1>
<p className="text-xs text-gray-500 mt-1">System management</p>
</div>
<PageHeader title="Admin" subtitle="System management" />
{/* Tab bar */}
<div className="flex gap-1 glass-sm p-1 w-fit">
{tabs.map((tab) => (
<button
key={tab}
onClick={() => setActiveTab(tab)}
className={`px-4 py-2 text-sm font-medium rounded-lg transition-all duration-200 ${
activeTab === tab
? 'bg-white/[0.1] text-white shadow-lg shadow-blue-500/10'
: 'text-gray-400 hover:text-gray-200 hover:bg-white/[0.04]'
}`}
>
{tab}
</button>
))}
</div>
<Tabs tabs={tabs} active={activeTab} onChange={setActiveTab} />
{/* Tab content */}
<div className="animate-fade-in">