Use accent color instead of a heavy active-pane border in the TUI #68

Closed
opened 2026-08-10 17:04:04 +00:00 by hugo · 1 comment
Owner

Goal

Restore a clean, theme-consistent focus treatment in the terminal UI: the active pane uses the configured accent color on the normal single border instead of changing to a visually heavy or doubled border.

Problem

The current focused pane is surrounded by a thick, doubled-looking monochrome border. This consumes space, looks inconsistent with the other panes, and makes focus feel like a layout change rather than a color cue.

Scope

  • Keep the same border geometry and border set for focused and unfocused panes.
  • Render the focused pane border using the TUI accent color supplied by the shared theme/presentation state.
  • Preserve the terminal-theme-independent high-contrast field-selection treatment inside panes.
  • Apply the focus treatment consistently to sidebar, browser/viewer, editor, dialogs, and other pane states without deriving theme rules in widget call sites.
  • Add regressions that prove focus changes color, not border geometry, and that monochrome or limited-color fallback remains usable.

Acceptance criteria

  • Switching focus does not change pane border thickness, border type, content dimensions, or layout.
  • The active pane border uses the configured accent color; inactive panes retain the normal border color.
  • Focus remains distinguishable in limited-color/monochrome terminals through the existing storage/presentation-safe fallback without reintroducing a heavy border.
  • Existing selected-field contrast behavior remains intact.
  • Required Rust formatting, check, Clippy, and workspace test gates pass.
## Goal Restore a clean, theme-consistent focus treatment in the terminal UI: the active pane uses the configured accent color on the normal single border instead of changing to a visually heavy or doubled border. ## Problem The current focused pane is surrounded by a thick, doubled-looking monochrome border. This consumes space, looks inconsistent with the other panes, and makes focus feel like a layout change rather than a color cue. ## Scope - Keep the same border geometry and border set for focused and unfocused panes. - Render the focused pane border using the TUI accent color supplied by the shared theme/presentation state. - Preserve the terminal-theme-independent high-contrast field-selection treatment inside panes. - Apply the focus treatment consistently to sidebar, browser/viewer, editor, dialogs, and other pane states without deriving theme rules in widget call sites. - Add regressions that prove focus changes color, not border geometry, and that monochrome or limited-color fallback remains usable. ## Acceptance criteria - Switching focus does not change pane border thickness, border type, content dimensions, or layout. - The active pane border uses the configured accent color; inactive panes retain the normal border color. - Focus remains distinguishable in limited-color/monochrome terminals through the existing storage/presentation-safe fallback without reintroducing a heavy border. - Existing selected-field contrast behavior remains intact. - Required Rust formatting, check, Clippy, and workspace test gates pass.
hugo added this to the 03 - Cross-platform Iced desktop app milestone 2026-08-10 17:04:04 +00:00
hugo added the bug label 2026-08-10 17:04:04 +00:00
Author
Owner

Implemented and pushed as 8879df1.

Implementation:

  • centralized focused-pane styling in the shared TUI pane block helper
  • kept the same single-line border geometry and content layout for focused and unfocused panes
  • uses the shared cyan accent in color terminals, with no background fill or bold/heavy treatment
  • keeps a bold-only monochrome fallback without changing border glyphs or dimensions
  • applied the helper to sidebar, viewer/editor, OTP panes, locked state, help, popups, and workflow dialogs
  • preserved the existing black-on-white selected-field contrast
  • added regression coverage comparing border glyphs before and after focus changes and checking color and monochrome styles

Review:

  • the live acceptance criteria are fully covered
  • focus changes presentation only, never border type, thickness, pane dimensions, or layout
  • no storage/domain behavior was added to the TUI
  • no Apple project files changed

Verification:

  • cargo fmt --all -- --check
  • RUSTFLAGS="-D warnings" cargo check --workspace --all-targets
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • TUI suite: 95 passed
Implemented and pushed as 8879df1. Implementation: - centralized focused-pane styling in the shared TUI pane block helper - kept the same single-line border geometry and content layout for focused and unfocused panes - uses the shared cyan accent in color terminals, with no background fill or bold/heavy treatment - keeps a bold-only monochrome fallback without changing border glyphs or dimensions - applied the helper to sidebar, viewer/editor, OTP panes, locked state, help, popups, and workflow dialogs - preserved the existing black-on-white selected-field contrast - added regression coverage comparing border glyphs before and after focus changes and checking color and monochrome styles Review: - the live acceptance criteria are fully covered - focus changes presentation only, never border type, thickness, pane dimensions, or layout - no storage/domain behavior was added to the TUI - no Apple project files changed Verification: - cargo fmt --all -- --check - RUSTFLAGS="-D warnings" cargo check --workspace --all-targets - cargo clippy --workspace --all-targets -- -D warnings - cargo test --workspace - TUI suite: 95 passed
hugo closed this issue 2026-08-10 17:35:17 +00:00
Sign in to join this conversation.