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
+2 -2
View File
@@ -64,7 +64,7 @@ export function UserTable() {
Access
</label>
<button type="submit" disabled={createUser.isPending || !newUsername.trim() || !newPassword.trim()}
className="btn-gradient px-4 py-2 text-sm disabled:opacity-50 disabled:cursor-not-allowed">
className="btn-primary px-4 py-2 text-sm disabled:opacity-50 disabled:cursor-not-allowed">
<span>{createUser.isPending ? 'Creating…' : 'Create User'}</span>
</button>
</form>
@@ -103,7 +103,7 @@ export function UserTable() {
placeholder="new password" className="w-32 input-glass px-2 py-1 text-xs" />
<button onClick={() => handleResetPassword(user.id)}
disabled={resetPassword.isPending || !resetPw.trim()}
className="btn-gradient px-2 py-1 text-xs disabled:opacity-50">
className="btn-primary px-2 py-1 text-xs disabled:opacity-50">
<span>Save</span>
</button>
<button onClick={() => { setResetTarget(null); setResetPw(''); }}