Skip to content

style: legibility and handheld density - #239

Merged
nextestudios merged 1 commit into
mainfrom
feature/ux-legibility-density
Sep 28, 2026
Merged

nextestudios merged 1 commit into
mainfrom
feature/ux-legibility-density

Conversation

@nextestudios

Copy link
Copy Markdown
Owner

Summary

UX audit fixes P1-7, P2-6, P2-7, P2-11, P2-12 and P3 (follows #236).

  • Legibility (P1-7): badge line (archive/Git/search), "PAINEL … · ATIVO" and the inactive pane's title/path move from FontCaption to FontBody; FontCaption is 16 px on the Compact tier (no informational text below 16 px on handhelds); the folder picker line is now a title row (FontTitle, "Copiar para… · escolha a pasta").
  • Paths (P2-6): new PathEllipsis.Middle (Core) keeps the drive/UNC share and the last folders ("C:\…\2026\Relatórios trimestrais"); used in the details panel with a width-based budget. Home known-folder cards drop the path on the Large (4K) tier and middle-ellipsize it elsewhere.
  • Handheld density (P2-7): Compact-tier comfortable rows ~64 px (icon 40, title 20, state 16; was 88 → ~7 rows at 720p). First launch on the Compact tier starts in compact density (SettingsLoadResult.FirstRun + AppController.ApplyFirstRunDensity; once per first run, never over a saved or in-session choice, skipped in captures). The footer never wraps: FitFooter drops non-essential prompts from the end, keeping Abrir/Voltar/Ações/Menu. The path root chip stays visible (path gets at least root + "…" + part of the current folder; the current label shrinks instead of the bar scrolling the root away).
  • On-screen keyboard (P2-11): starts on the first letter row ("q"); only the focused key has an outline (Concluir = accent text only); Compact tier shows 6–7 prompts (cursor/start/end prompts hidden, still working).
  • Light theme (P2-12): dark-name logo variant assets/controlfs-logo-text-light-900.png (same artwork, silver letters recolored to navy) replaces the dark plate (token LogoPlate removed); also used in "Sobre". New KeyFill/KeyFunctionFill tokens make keys stand out from the panel.
  • P3: unmarked focused item shows an empty box (DetailsIcon.Unmarked) instead of the amber check.

Tests

  • ThemeContrastTests: key fill vs panel ≥ 1.5:1, function key ≥ 1.15:1, text on keys and accent on function keys ≥ 4.5:1 (all themes/accents).
  • VirtualKeyboardTests::Vertical_navigation_…: initial focus is "q" (deliberate change; the test now goes up to the number row first).
  • DensityJourneyTests::First_run_on_a_handheld_starts_compact_but_never_overrides_a_saved_choice (new path).
  • PathEllipsisTests (new helper), DetailsPanelJourneyTests (Unmarked icon).
  • Screens-only smokes (2 iterations) at 1280x720, 1280x800-text150, 1920x1080 and 3840x2160: footer height is now constant per size (59/76/94 px), root chip visible at text150, 4K cards without paths, light keyboard/logo.

Manual checks (docs/TESTING.md "Legibilidade e densidade nos portáteis")

Real handheld first run, readability at TV distance, light logo/keys on real displays.

🤖 Generated with Claude Code

Context texts move from FontCaption to FontBody (badge line, dual-pane
caption, inactive pane), FontCaption is 16 px on the compact tier and the
folder picker gets a title row. Compact-tier comfortable rows are ~64 px, the
first launch on a handheld starts in compact density (never over a saved
choice), the footer drops non-essential prompts instead of wrapping and the
path root chip stays visible. Details-panel paths are middle-ellipsized and 4K
Home folder cards drop the path. The on-screen keyboard starts on the first
letter, only the focused key is outlined and handhelds show the essential
prompts. Light theme: dark-name logo variant without the plate and key fill
tokens checked for contrast. Unmarked focused item shows an empty box.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nextestudios
nextestudios merged commit 53366ba into main Sep 28, 2026
3 checks passed
@nextestudios
nextestudios deleted the feature/ux-legibility-density branch September 28, 2026 03:52
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.

1 participant