Skip to content

Restyle admin panel with dark theme (Archivo, zero-radius, state chips) - #29

Open
btcwrestle wants to merge 1 commit into
Dojo-Open-Source-Project:developfrom
btcwrestle:develop
Open

Restyle admin panel with dark theme (Archivo, zero-radius, state chips)#29
btcwrestle wants to merge 1 commit into
Dojo-Open-Source-Project:developfrom
btcwrestle:develop

Conversation

@btcwrestle

Copy link
Copy Markdown

Summary

Reskins the admin panel (static/admin, login + DMT tool) with a new visual identity:

  • Dark ground, Archivo typeface, 2px structural rules, zero border-radius throughout
  • Explicit green/red/yellow state colors applied consistently to status indicators, API key state, and transaction location badges
  • New header sync indicator and a DOJO STATUS headline strip on the dashboard
  • Pairing page restyled to a two-column QR/payload layout with working copy and regenerate actions
  • All existing functionality preserved, including Auth47 QR sign-in

This only touches static assets under static/admin (CSS/HTML/JS for the login page and DMT dashboard) — no backend or API changes.

Test plan

  • Serve static/admin locally and manually walk through: login page (password + Auth47 QR), DMT dashboard, DOJO STATUS widgets, API keys screen, pairing/QR screen, pushtx, txs-tools, status page
  • Confirm no console errors and no broken layout at common viewport widths
  • Confirm existing JS behavior (auth flow, API key regen, pairing QR refresh, status polling) is unaffected — this PR is styling/markup only, but please double check nothing in the DOM structure changes broke the JS selectors it depends on

Feedback wanted

This is a first pass at the visual direction — happy to iterate on the palette/contrast choices (especially the red/green/yellow state colors) or adjust anything that doesn't fit the project's usual conventions before merge. Let me know if you'd rather see this split into smaller PRs (e.g. CSS-only vs. per-page markup changes) for easier review.

🤖 Generated with Claude Code

Reskins static/admin (login + DMT tool) with a dark ground, Archivo
type, 2px structural rules, and explicit green/red/yellow state colors
across status indicators, API key state, and transaction location.
Adds a header sync indicator, DOJO STATUS headline strip, and restyles
the pairing page to a two-column QR/payload layout with working copy
and regenerate actions. All existing functionality is preserved,
including Auth47 QR sign-in.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@pajasevi

Copy link
Copy Markdown
Member

Findings

  1. Medium: Remote Google Fonts import in the admin panel
    style.css adds:
    @import url('https://fonts.googleapis.com/...')

    This is the main security/privacy regression I found. The Dojo admin UI is a sensitive self-hosted interface, often used specifically for privacy. Loading CSS/fonts from Google leaks admin page-load timing, IP/network context, and referrer metadata to a third party, and adds a remote stylesheet dependency inside a privileged admin surface. The current CSP permits it via style-src https: / font-src https:, so this request will be allowed.

    Recommendation: remove the @import; use the existing system font stack or self-host the font files under static/admin.

  2. Low: API key state display conflates disabled and expired keys
    api-keys.js now computes active state as apiKey.active && expiresAt >= Date.now(), but line 216 labels every non-active result as EXPIRED.

    A manually disabled but unexpired API key will be shown as expired. That is not an auth bypass, but it weakens admin visibility during key review or incident response. Recommendation: distinguish ACTIVE, DISABLED, and EXPIRED.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants