refactor(tui): consistent chrome across all views #61

Merged
lerko merged 7 commits from fix/tui-chrome-consistency into main 2026-06-04 20:26:50 +00:00
Owner

Summary

  • Extract divider() and emptyState() helpers to format.go — single source of truth
  • All 6 tab empty states now use bordered box with accent color (was only Sites)
  • Detail and alert detail panels get header/section/footer dividers
  • SLA label width aligned to 16 chars (was 14, now matches detail/alert panels)
  • Logs key hints moved from content header to dashboard footer
  • History/SLA panels use shared divider helper (removed inline calculation)

Phase 2 Backlog

Covers items #12f (consistent chrome) and #12g (consistent help bar).

Test Plan

  • go test ./... — all pass
  • go build ./... — clean
  • go vet ./... — clean
  • Manual: verify dividers in detail panel (after breadcrumb, before sparkline, before footer)
  • Manual: verify bordered empty states on all tabs
  • Manual: verify logs footer has scroll/filter keys
  • Manual: verify SLA labels align with detail panel
## Summary - Extract `divider()` and `emptyState()` helpers to format.go — single source of truth - All 6 tab empty states now use bordered box with accent color (was only Sites) - Detail and alert detail panels get header/section/footer dividers - SLA label width aligned to 16 chars (was 14, now matches detail/alert panels) - Logs key hints moved from content header to dashboard footer - History/SLA panels use shared divider helper (removed inline calculation) ## Phase 2 Backlog Covers items #12f (consistent chrome) and #12g (consistent help bar). ## Test Plan - [x] `go test ./...` — all pass - [x] `go build ./...` — clean - [x] `go vet ./...` — clean - [x] Manual: verify dividers in detail panel (after breadcrumb, before sparkline, before footer) - [x] Manual: verify bordered empty states on all tabs - [x] Manual: verify logs footer has scroll/filter keys - [x] Manual: verify SLA labels align with detail panel
lerko added 1 commit 2026-06-04 19:23:13 +00:00
refactor(tui): consistent chrome across all views
CI / test (pull_request) Successful in 2m36s
CI / lint (pull_request) Successful in 56s
CI / vulncheck (pull_request) Successful in 51s
ba75be194d
- Extract divider() and emptyState() helpers to format.go
- All empty states now use bordered box with accent color
- Detail and alert detail panels get header/section dividers
- SLA label width 14→16 to match detail/alert panels
- Logs key hints moved from content to dashboard footer
- History/SLA panels use shared divider helper
lerko force-pushed fix/tui-chrome-consistency from bcb2678a20 to ba75be194d 2026-06-04 19:23:13 +00:00 Compare
lerko added 1 commit 2026-06-04 19:36:26 +00:00
fix(tui): logs tab use viewport for scrollable content
CI / test (pull_request) Successful in 2m39s
CI / lint (pull_request) Successful in 56s
CI / vulncheck (pull_request) Successful in 51s
e0f189efe9
Logs were dumping all lines directly, pushing the dashboard
footer off screen. Now uses logViewport with proper height
accounting so footer stays visible and scrolling works.
lerko added 1 commit 2026-06-04 19:59:38 +00:00
fix(tui): pin footer to bottom of terminal
CI / test (pull_request) Successful in 2m45s
CI / lint (pull_request) Successful in 56s
CI / vulncheck (pull_request) Successful in 51s
aae6e6e65e
Replace string concatenation layout with lipgloss.JoinVertical
and fixed-height content area. Footer now stays at the same
vertical position regardless of tab content height. Uses
lipgloss.Height() to dynamically measure header/footer and
fill remaining space.
lerko added 1 commit 2026-06-04 20:04:03 +00:00
fix(tui): normalize content whitespace for consistent footer position
CI / test (pull_request) Successful in 2m43s
CI / lint (pull_request) Successful in 1m1s
CI / vulncheck (pull_request) Successful in 51s
d4a2e9dd53
Each tab returned different leading newlines (Sites/tables: 1,
Logs: 3, empty states: varies). TrimSpace content before layout
so JoinVertical controls all spacing. Remove leading \n from
footer since JoinVertical handles gaps.
lerko added 1 commit 2026-06-04 20:07:50 +00:00
fix(tui): clip overflowing content to keep footer pinned
CI / test (pull_request) Successful in 2m38s
CI / lint (pull_request) Successful in 56s
CI / vulncheck (pull_request) Successful in 51s
cdb8c356e9
Sites table with many rows exceeded the fixed content height,
pushing footer down. MaxHeight now clips content that overflows
while Height still pads shorter content upward.
lerko added 1 commit 2026-06-04 20:12:17 +00:00
fix(tui): remove extra blank lines above footer
CI / test (pull_request) Successful in 2m37s
CI / lint (pull_request) Successful in 57s
CI / vulncheck (pull_request) Successful in 51s
d099740f33
JoinVertical adds no gap lines between sections. The - 2
subtraction was over-reserving space, leaving 2 blank lines
between content and footer.
lerko added 1 commit 2026-06-04 20:13:43 +00:00
fix(tui): expand log viewport to fill content area
CI / test (pull_request) Successful in 2m36s
CI / lint (pull_request) Successful in 1m6s
CI / vulncheck (pull_request) Successful in 51s
33a3ff9bcb
Previous + 3 over-restricted viewport height, leaving blank
lines at the bottom of the logs tab.
lerko merged commit 33a3ff9bcb into main 2026-06-04 20:26:50 +00:00
lerko deleted branch fix/tui-chrome-consistency 2026-06-04 20:26:50 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lerkolabs/uptop#61