Commit Graph
2 Commits
Author SHA1 Message Date
4grayandClaude Opus 5.5 ea25c739f5 fix(playback): address review findings on the Hybrid player controls
- Wide dock overflow: chips and the side settings panel now need 960px of
  player width (ControlsLayout.roomy). Between 720px and 960px the dock
  stays wide but folds the chips into `tune` with state dots and opens
  settings as the bottom sheet. The control row's side columns are
  minmax(min-content, 1fr), so the transport shifts instead of the actions
  overlapping it or leaving the player; chip labels cap at 132px.
- Up next: no countdown once playback has ended (autoplay off schedules
  no switch).
- Up next card: a still that fails to load falls back to the label tile;
  a new URL gets its own attempt.
- Timeline segments are positioned absolutely at their time positions,
  so drawn boundaries match the linear seek input and hover label.
- Type fixes found by a strict type-check: the gap-fill list type, and a
  field initializer that read a constructor parameter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 23:40:55 +02:00
4grayandClaude Fable 5.1 93c8c4b148 feat(playback): fold player track and playback options into a settings panel
Phase 2 of the "Hybrid" player controls redesign. Audio, subtitles (tracks,
file loading, delay, size, color), quality, speed and aspect ratio move
from five popovers into one surface behind a `tune` button:

- wide dock: subtitle and speed value chips (cyan = on, violet = changed)
  open the panel focused on their group; right-click / long-press on the
  subtitle chip toggles subtitles; the panel slides in beside the video
  and the dock, title and corner shift left; chips and PiP/record fold away
- compact dock: no chips, state dots on `tune`, and a bottom sheet that
  replaces the dock while open; a tap on the video dismisses it
- a choice applies immediately and keeps the panel open; Escape, the close
  button, `tune`, the video surface and outside pointerdown close it
- ControlsMenuState now knows volume / settings / stats plus the focus
  group; ControlsSettings owns availability, on/modified state and the
  transitions; app-player-settings-panel renders the panel and sheet
- SETTINGS / CLOSE_SETTINGS strings in every language; web E2E for the
  wide panel and the compact sheet; contract doc and release note

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 21:28:24 +02:00