Photos: timeline scrubber label covers the ⋯ menu button #365

Open
opened 2026-09-28 17:09:54 +00:00 by kayg · 4 comments
Owner

Bug (Claude review, 2026-09-28): Photos scrubber label covers the page ⋯ button

At 1440 px in Photos, the timeline scrubber's current-month label ("Sep 2026") draws over the page's ⋯ menu button at the top right, so the button is hidden and cannot be clicked. The scrubber must start below the header row, or the header actions must sit above it and stay reachable. Use shared layer tokens. Check 820 and 390 as well, with and without a selection.

## Bug (Claude review, 2026-09-28): Photos scrubber label covers the page ⋯ button At 1440 px in Photos, the timeline scrubber's current-month label ("Sep 2026") draws over the page's ⋯ menu button at the top right, so the button is hidden and cannot be clicked. The scrubber must start below the header row, or the header actions must sit above it and stay reachable. Use shared layer tokens. Check 820 and 390 as well, with and without a selection.
Author
Owner

Starting the three UI fixes on job/ui-small-2, based on dev at 45315bb9e9d8577d843ea24909014baa6a7b954d.

Starting the three UI fixes on `job/ui-small-2`, based on `dev` at `45315bb9e9d8577d843ea24909014baa6a7b954d`.
Author
Owner

Finding: TimelineScrubber.svelte assigns its fixed scrubber z-index: 14, above the shared mode-header control role --layer-shell-control: 12 in tokens.css/ModeHeader.svelte. The scrubber's active track spans the top-right action area, so it can paint and intercept the header's ⋯ control.

Finding: `TimelineScrubber.svelte` assigns its fixed scrubber `z-index: 14`, above the shared mode-header control role `--layer-shell-control: 12` in `tokens.css`/`ModeHeader.svelte`. The scrubber's active track spans the top-right action area, so it can paint and intercept the header's ⋯ control.
Author
Owner

Completed on job/ui-small-2 at head c74f2d9b6f1333e3b31b16b1cd74e3d857c8ae85.

The Photos timeline scrubber now uses the shared --layer-page-control role, keeping its date label below the sticky header’s action controls, including the ⋯ button.

Production screenshots are in artifacts/ui-small-2/photos/. They cover 390, 820, and 1440 px in Paper and Tokyo Night, with and without a selected photo. The artifacts remain local and ignored. The available fj issue comment CLI accepts text only and has no attachment command, so I could not attach the image files to this issue.

Gates:

  • cargo fmt --check passed with no output.
  • cargo clippy --all-targets -- -D warnings output:
Finished `dev` profile [unoptimized + debuginfo] target(s) in 113m 36s
  • cargo test: all 76 test groups reported test result: ok; aggregate was 1,537 passed, 0 failed, 13 ignored.
  • bun run check: Text sizes use shared role tokens. and svelte-check found 0 errors and 0 warnings.
  • bun run test: Test Files 123 passed (123) and Tests 790 passed (790).

Decision not specified in DESIGN: add a shared page-control layer role below the existing shell-control role and use it for the Photos scrubber.

Known gap: screenshots are present in the worktree but not attached through fj; 13 Rust tests are intentionally ignored because they need pinned model assets or manual performance measurement.

Completed on `job/ui-small-2` at head `c74f2d9b6f1333e3b31b16b1cd74e3d857c8ae85`. The Photos timeline scrubber now uses the shared `--layer-page-control` role, keeping its date label below the sticky header’s action controls, including the ⋯ button. Production screenshots are in `artifacts/ui-small-2/photos/`. They cover 390, 820, and 1440 px in Paper and Tokyo Night, with and without a selected photo. The artifacts remain local and ignored. The available `fj issue comment` CLI accepts text only and has no attachment command, so I could not attach the image files to this issue. Gates: - `cargo fmt --check` passed with no output. - `cargo clippy --all-targets -- -D warnings` output: ```text Finished `dev` profile [unoptimized + debuginfo] target(s) in 113m 36s ``` - `cargo test`: all 76 test groups reported `test result: ok`; aggregate was 1,537 passed, 0 failed, 13 ignored. - `bun run check`: `Text sizes use shared role tokens.` and `svelte-check found 0 errors and 0 warnings`. - `bun run test`: `Test Files 123 passed (123)` and `Tests 790 passed (790)`. Decision not specified in DESIGN: add a shared page-control layer role below the existing shell-control role and use it for the Photos scrubber. Known gap: screenshots are present in the worktree but not attached through `fj`; 13 Rust tests are intentionally ignored because they need pinned model assets or manual performance measurement.
Author
Owner

Audit against origin/dev: the reported code head c74f2d9b6f13 is present, and the job report records passing checks. The same report says the required production screenshots remain only in ignored local artifacts and were not attached. Visual review evidence is still missing on this issue, so I am leaving it open for that review.

Audit against origin/dev: the reported code head `c74f2d9b6f13` is present, and the job report records passing checks. The same report says the required production screenshots remain only in ignored local artifacts and were not attached. Visual review evidence is still missing on this issue, so I am leaving it open for that review.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#365
No description provided.