tf-drift should support modern terminal interface styles without changing scan behavior, worker behavior, or non-interactive output.
The current TUI renders raw ANSI escape sequences directly in the scan dashboard and config picker. That makes colors hard to update, creates duplicated row highlighting logic, and makes accessibility choices difficult to enforce.
Goal: add a small semantic style layer that supports modern, classic, minimal, and accessible TUI styles while preserving current keyboard shortcuts, status text, filters, and detail navigation.
The style resolver reads a CLI flag and environment variable, falls back predictably, and respects no-color mode before rendering either TUI.
CLEAN, DRIFTED, PLANNED, ERROR, SCANNING, and PENDING. Mixed drift/plan rows may use compact count labels such as DRIFT:1 PLAN:2.| Style | Purpose |
|---|---|
modern |
Default polished style with semantic colors and clear focus rows. |
classic |
Close to existing cyan/red/green/yellow ANSI feel. |
minimal |
Low-decoration style for plain terminals and NO_COLOR. |
accessible |
High-contrast style that avoids relying on color alone. |
tf-drift -tui-style modern uses the modern style.TF_DRIFT_TUI_STYLE=accessible tf-drift ... selects accessible style when the flag is absent.modern.NO_COLOR forces minimal.NO_COLOR.go test ./....This is safe as a default behavior change because it preserves text labels and command semantics. Users who prefer lower decoration can opt into minimal, and automation should still use -non-interactive.