Skip to content

Dashboard UI: monochrome theme + light/dark/system toggle#53

Merged
anilmurty merged 2 commits into
mainfrom
update/dashboard-branding
May 8, 2026
Merged

Dashboard UI: monochrome theme + light/dark/system toggle#53
anilmurty merged 2 commits into
mainfrom
update/dashboard-branding

Conversation

@anilmurty
Copy link
Copy Markdown
Contributor

@anilmurty anilmurty commented May 7, 2026

Summary

Aligns the local observability dashboard at `tokenjam/ui/index.html` with the tokenjam.dev design system, and adds a Light/Dark/System theme toggle.

Changes

Logo & wordmark

  • Replaced the old compass SVG + "OpenClawWatch" text with the new TJ jar-mark — full inline SVG (rect + walls + 8 inner glyphs) using `currentColor` so it inherits text color (white in dark, black in light, matching the website).
  • "TokenJam" wordmark is single-color (no blue "Jam" highlight — website is monochrome too).
  • `<title>` and favicon updated.

Color system (matches website CSS vars)

Dark Light
`--bg` `#000` `#fff`
`--surface` `#0a0a0a` `#fafafa`
`--surface2` `#111` `#f4f4f4`
`--border` `#1f1f1f` `#eaeaea`
`--text` `#ededed` `#000`
`--text-dim` `#a1a1a1` `#666`
`--accent` `#ededed` `#000`
`--accent-rgb` `255,255,255` `0,0,0`
`--brand` `#3d8eff` (logo + LLM bar fill only) same
`--success` `#0ce490` `#0a8050`
`--warn` `#f5a623` `#c47e0c`
`--error` `#ee0000` `#cc0000`

`--accent` was previously `#3d8eff` (blue); it's now the monochrome intensity color so active states / focus / hover are white-on-faint-white in dark mode and black-on-faint-black in light mode. Tinted backgrounds use `rgba(var(--accent-rgb), X)` so they re-tint correctly per theme.

Typography

  • Body: system → Geist
  • Mono: IBM Plex Mono → Geist Mono
  • Display: Bricolage Grotesque → Geist
  • Single Google Fonts request via the variable-axis URL.

Theme toggle

  • Button in sidebar footer cycles `System ⊙` → `Light ☀` → `Dark ☾`.
  • Persisted in `localStorage['tj-theme']`. `System` mode reads `prefers-color-scheme` and live-updates if the OS theme switches.
  • Anti-flash inline script in `` applies the theme before paint.

What's not changed: layout, components, routing, all data-fetching JS. This is brand alignment + theming only.

Test plan

  • `pytest tests/unit/ tests/synthetic/ tests/agents/ tests/integration/` → 403 passed (no Python regressions)
  • `tj serve` and load http://127.0.0.1:7391/ — visually confirmed by author: dashboard renders correctly in dark mode, logo/wordmark match brand, theme toggle cycles through all three states
  • Verify in light mode (toggle to Light) — text contrast, status colors, selected/hover states

🤖 Generated with Claude Code

Aligns the local observability dashboard (tokenjam/ui/index.html) with
the website design system at tokenjam.dev:

- Title: "Token Juice" → "TokenJam"
- Favicon: link to https://tokenjam.dev/icon.svg
- Sidebar brand: old OpenClawWatch compass SVG + text → simplified
  TJ-jar outline + "TokenJam" wordmark
- Color palette: dark-navy (#070d1a/#0f1729/#1e2d4a) → Vercel-style
  monochrome (#000/#0a0a0a/#1f1f1f) matching website --navy/--blue vars
- Text colors: #e2e8f0/#64748b → #ededed/#a1a1a1 (matches --white/--blue-dim)
- Status colors: #22c55e/#f59e0b/#ef4444 → #0ce490/#f5a623/#ee0000
  (matches --green/--amber/--red on the website)
- Fonts: IBM Plex Mono + Bricolage Grotesque → Geist + Geist Mono
  (single Google Fonts request via the variable-axis URL)
- Cleaned up stale references: pip install tokenjuice → tokenjam,
  GitHub URL → Metabuilder-Labs/tokenjam, hardcoded #1a2236/#2e4a70
  borders → var(--surface2)/var(--border)

Brand accent (#3d8eff) and overall layout/components are preserved —
this is a brand alignment, not a redesign.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@anilmurty anilmurty requested a review from anshss May 7, 2026 22:41
Reworks the brand-alignment commit to truly match tokenjam.dev:

- Logo: full TJ-jar SVG (rect + walls + 8 inner glyphs) inlined with
  stroke="currentColor"/fill="currentColor" so it inherits text color
  (white in dark, black in light). The earlier simplified outline
  version didn't read as a jar at small sizes.
- Brand wordmark: single-color "TokenJam" (removed the blue "Jam"
  highlight — website is monochrome too).
- Color semantics: --accent is now the monochrome intensity color
  (#ededed dark / #000 light), not blue. --accent-rgb (255,255,255 /
  0,0,0) drives all tinted backgrounds via rgba(var(--accent-rgb), X).
  --brand (#3d8eff) is now reserved for the LLM workflow-bar fill and
  the .badge-info tint — i.e. categorical fills only, never UI chrome.
- Active sidebar link, table-row hover, selected workflow row: switched
  from rgba(61,142,255, X) → rgba(var(--accent-rgb), X) so they look
  right in both themes.
- Light theme: added [data-theme="light"] palette overrides matching
  the website's light mode (#fff / #fafafa / #f4f4f4 / #eaeaea / #000
  / #666, status colors darkened for contrast on white).
- Theme toggle: button in sidebar footer cycles
  System (⊙) → Light (☀) → Dark (☾), persisted in
  localStorage['tj-theme']. System mode reads prefers-color-scheme and
  live-updates on OS theme change. Anti-flash inline script in <head>
  applies theme before paint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@anilmurty anilmurty changed the title Update dashboard UI to match tokenjam.dev branding Dashboard UI: monochrome theme + light/dark/system toggle May 8, 2026
@anilmurty anilmurty merged commit e61e263 into main May 8, 2026
4 checks passed
@anilmurty anilmurty deleted the update/dashboard-branding branch May 8, 2026 00:36
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.

1 participant