Skip to content

Visual redesign: dark-only theme, vector icons, animated board - #1

Merged
SimplyJustJessie merged 2 commits into
mainfrom
claude/visual-redesign-dark-theme-e1o79q
Jul 18, 2026
Merged

Visual redesign: dark-only theme, vector icons, animated board#1
SimplyJustJessie merged 2 commits into
mainfrom
claude/visual-redesign-dark-theme-e1o79q

Conversation

@SimplyJustJessie

@SimplyJustJessie SimplyJustJessie commented Jul 18, 2026

Copy link
Copy Markdown
Owner

A ground-up visual refresh of the board — darker, calmer, and it fixes the text-overlap bugs that made the old UI look broken.

Before → After

Before (dark variant of the old theme — note the titles running under the Protect buttons, badges colliding with actions, truncated column headers):

before

After — default view:

after — board

After — every Link state at a glance (Managed = accent, Manual = neutral, Unsaved = amber with Save/Keep, Protected = violet lock):

after — link states

After — the circled ? in the toolbar opens a legend explaining what each state means:

after — card-state legend

After — drop target lit up while dragging a Source over a column (the glow pulses in the live app):

after — drag over

What changed

Visual system

  • Dark-only theme (RequestedThemeVariant="Dark"): a blue-tinted near-black elevation ramp (window → panel → column → card → hover), one accent (periwinkle #7C9AFF), and Fluent control overrides so inputs, tooltips and corner radii match.
  • State colors you can read at a glance: each card gets a 3px colored state bar on its left edge plus a tinted chip (translucent state color behind state-colored text) instead of the old white-on-solid badges.
  • Card-state legend: a circled ? button in the toolbar opens a flyout defining Managed / Unsaved / Manual / Protected with the same tinted chips, plus a note on what removing a card does.
  • Vector icons (StreamGeometry) replace emoji and text glyphs: lock/unlock protect toggles, close, search, speaker column headers, and per-kind palette tiles — app streams get a blue waveform, capture devices a green mic, sink monitors violet headphones.
  • Toolbar rebuilt: logo mark, status pill with live dot, search field with inline icon, and a ToggleSwitch for sink monitors.
  • Columns: header icon + card-count chip + lock toggle, and a dashed drop-zone hint when empty.
  • Friendlier names: titles now lead with the app name / device description ("PRO X 2 LIGHTSPEED Mono") and the raw node name (alsa_input.usb-Logitech_…) moves to the subtitle. Matching/identity is untouched — this is presentation only.

Motion (subtle, no flash)

  • Hover transitions on cards, palette items and buttons (120–150 ms background/border/shadow).
  • New cards fade-slide in when a link appears live.
  • The drop target shows a pulsing accent glow while a compatible drag hovers it.
  • Palette items nudge right on hover to signal draggability.

Bug fixes surfaced by the redesign

  • The "messed up text" root cause: Avalonia ScrollViewer defaults horizontal scrollbar visibility to Hidden, which measures content at infinite width — so long titles pushed buttons out of the cards and ran under actions. Both list ScrollViewers now disable horizontal scrolling, and titles/chips/actions live in separate grid cells so trimming always engages.
  • Board scroll extent now includes the edge padding, so the last column is fully reachable.

Tooling

  • New --screenshot [dir] switch renders the board headlessly (Skia) over the deterministic design graph and writes the PNGs — that's how the shots above were produced, reproducible on any machine with no display.

Verification

  • dotnet build clean (0 warnings), all 65 unit tests pass
  • --smoke (viewmodel flows) and --smoke-ui (headless render, incl. "no binding/resource errors") both PASS

🤖 Generated with Claude Code

https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1

claude added 2 commits July 18, 2026 10:17
A ground-up visual refresh of the board:

- Dark-only theme (RequestedThemeVariant=Dark) on a blue-tinted
  near-black elevation ramp, with Fluent control overrides (inputs,
  tooltips, corner radius) to match.
- Link states read at a glance: a colored 3px state bar on each card
  plus tinted state chips (managed=accent, unsaved=amber,
  manual=neutral, protected=violet) instead of white-on-solid badges.
- Vector StreamGeometry icons replace emoji and text-glyph buttons:
  lock/unlock protect toggles, close, search, speaker, and per-kind
  palette tiles (app waveform / capture mic / monitor headphones).
- Basic motion: hover transitions on cards and palette items, a card
  entrance fade/slide, and a pulsing accent glow on the drop target
  while dragging.
- Toolbar rebuilt: logo mark, status pill, search field with icon,
  monitors ToggleSwitch. Columns get header icon, card-count chip and
  a dashed empty-state drop zone.
- Fixes the text overlap bugs: ScrollViewers now disable horizontal
  scrolling (the default Hidden visibility measured content at
  infinite width, pushing buttons out of cards and letting titles
  run under actions), and titles/chips/actions live in separate grid
  cells so trimming always engages.
- Friendlier display names: titles lead with the app name / device
  description, raw node names move to the subtitle (identity and
  matching untouched).
- New --screenshot switch renders the board headlessly (Skia) over
  the design graph and writes the PNGs under docs/screenshots/,
  which are included for review.

Build, 65 unit tests, --smoke and --smoke-ui all pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1
A help button (?) at the toolbar's right edge opens a flyout explaining
what the Managed / Unsaved / Manual / Protected chips mean, using the
same tinted chips as the cards, plus a note on what removing a card
does. Captured as docs/screenshots/board-help.png by the --screenshot
tool (now taken before the drag-over shot so its border transition
can't linger into the frame).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1
@SimplyJustJessie
SimplyJustJessie merged commit b20c740 into main Jul 18, 2026
SimplyJustJessie pushed a commit that referenced this pull request Aug 24, 2026
…tle bar' (#1) from claude/ui-icons-single-row-titlebar into main

Reviewed-on: https://git.bussy.cloud/jessie/AutoRoute/pulls/1
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