design pass: responsive layout, clearer cards, better sync/log states

Dashboard:
- DEVICE card: storage is now a compact "276.2 GiB free · 40%" value plus a
  usage bar on its own row (only when it cannot collide with the text) — the
  old "total · free" value was truncated mid-number; gauge labels no longer
  set an explicit fg so ratatui's colour swap keeps them readable over both
  filled and empty bar cells
- LIBRARY card: paths are marked ✓/✗ (missing dirs are a common failure) and
  long values are ellipsized instead of hard-clipped; absolute local
  storagebox sources get the same check
- SYNC STATUS: device names adapt to the card width, statuses go time-only on
  narrow cards, and the summary footer is two compact lines (no trailing "…")
- responsive: sidebar 28/34 cols, compact labels for narrow cards, short
  terminal drops the decorative SYNC PATH card (it previously lost its only
  content row and rendered empty)

Sync tab:
- hero "READY TO SYNC" panel for the selected device (name, firmware, mount
  state, key hint, last sync) instead of a mostly empty LAST SYNC card
- after a run finishes, keep the step timeline visible with final statuses and
  a LAST RUN result banner, plus an "s run again" hint (previously the steps
  were discarded and only a summary line remained)
- steps connected as a timeline

Chrome:
- shared panel/firmware/chip/arrow/key-hint helpers in components; softer
  panel borders (theme::BORDER) and a softer sidebar selection highlight
- title bar reduced to one row and now shows mirror on/off + ready/syncing
  instead of the truncated config path
- logs header shows warning/error counts; cards use one consistent style

Bump to 0.3.0.
This commit is contained in:
Sebastian
2026-09-10 19:55:11 +02:00
parent ed492e7047
commit 42a3f0c35a
10 changed files with 699 additions and 310 deletions
+5 -1
View File
@@ -15,7 +15,11 @@ living dashboard instead of a batch CLI.
last-sync age per device.
- **3 tabs** — Dashboard (per-player overview + settings, storage usage when
mounted, library + sync pipeline), Sync (live step pipeline + progress
gauge), Logs (color-coded, follow mode).
gauge with speed/ETA, timeline of the last run), Logs (color-coded, follow
mode, warning/error counters).
- **Responsive layout** — short terminals drop the decorative sync-path card,
narrow cards switch to compact labels/values and ellipsize long paths
instead of clipping them mid-word.
- **Live sync engine** — streams `rclone` and `rsync` output, parses progress
(byte-weighted via `--info=progress2`), NFC-aware diffing for
macOS→FAT32/Android devices, optional `fatsort` finalize for Mlove devices.