Skip to content

Perf/gpu timeline slider#1728

Draft
apophisnow wants to merge 11 commits into
music-assistant:mainfrom
apophisnow:perf/gpu-timeline-slider
Draft

Perf/gpu timeline slider#1728
apophisnow wants to merge 11 commits into
music-assistant:mainfrom
apophisnow:perf/gpu-timeline-slider

Conversation

@apophisnow

Copy link
Copy Markdown
Contributor

This adds a progress-bar component that uses gpu compositing, which is good for the constantly updating timeline slider to reduce cpu usage.

apophisnow and others added 9 commits April 22, 2026 20:09
Use transform: scaleX() for the fill bar and translateX() for the
thumb instead of modifying width/left properties, avoiding layout
recalculations on every frame during playback.
The useLyricsElapsedTime composable was running a 60fps rAF loop
whenever music was playing, even when the fullscreen player was
hidden. Gate it behind an enabled ref that requires both the
fullscreen player to be open and the lyrics panel to be active.
- Add role="slider", ARIA attributes, and tabindex for accessibility
- Add keyboard navigation (Arrow 1%, Shift+Arrow/PageUp/PageDown 10%, Home/End)
- Replace pixel-based thumbX with percentage-based left positioning (resize-safe)
- Use CSS custom properties (--v-theme-on-surface) instead of hardcoded white
- Replace JS useTheme() with --timeline-color CSS variable for fill/thumb color

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ider

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…time

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clicking the footer captures focus. Arrow Up/Down controls volume,
Left/Right seeks track, Space toggles play/pause. Seek keys support
Shift, PageUp/PageDown, and Home/End with debounced seeking.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This reverts commit fe032f0b6124e00c6e03cfd20872820962939018.
@apophisnow apophisnow requested a review from stvncode April 23, 2026 04:54
@MarvinSchenkel

Copy link
Copy Markdown
Contributor

Could you please make sure that all the paddings etc are exactly the same. Just fire up two tabs, one pointing to :3000 and one pointing to :8095. Both the home screen and the fullscreen mode show a lot of padding differences.

It's hard to show in a screenshot but when you switch tabs side by side, you will quickly notice it.

@apophisnow

Copy link
Copy Markdown
Contributor Author

Could you please make sure that all the paddings etc are exactly the same. Just fire up two tabs, one pointing to :3000 and one pointing to :8095. Both the home screen and the fullscreen mode show a lot of padding differences.

It's hard to show in a screenshot but when you switch tabs side by side, you will quickly notice it.

Yeah I see what you mean. I also found a bug where if the element redraws it won't show the current position until an update.

@apophisnow apophisnow marked this pull request as draft April 26, 2026 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants