Redesign Player UI #48

Merged
AnthonyKwon merged 20 commits from player-ui-improvements into player-ui 2026-08-22 08:23:53 +09:00
Owner

This PR will redesign the Player UI.
New design has advantages below:

  • Better look and feel
  • Proper lyric link indicator
  • Auto-scroll properly fixed
  • Backgound-synced dark mode
    ...and more.

Claude Code is used for some commits. They have Claude as Co-Author.

This PR will redesign the Player UI. New design has advantages below: - Better look and feel - Proper lyric link indicator - Auto-scroll properly fixed - Backgound-synced dark mode ...and more. Claude Code is used for some commits. They have Claude as Co-Author.
This parameter causes exception if backend doesn't support speex resampler.
VirtualizingStackPanel estimates the size of every line it has not
realized, so the scroll extent and line positions were approximations
that shifted as the realized window moved. Replace it with
MeasuredVirtualizingPanel, which takes each height from IMeasuredItem
and keeps an exact position table, so offsets are correct whether or not
a line is realized.

UpdateScrollPosition now asks the panel for those offsets instead of
summing heights, and clamps the target so tall lines above the active
one cannot push it out of view.

P.S. from human: my attempt of fixing scroll position desync all failed, and I ran out of idea :(

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Follow aadishv's PixiJS implementation in aadishv/html-music, which
applies its filters to the container rather than to each sprite.

The twist runs once over the composed result in viewport space rather
than per copy, and saturation is applied after the blur rather than per
copy. Copy placement and rotation match the reference, with BasePose
replacing Speed and the per copy twist phases. DrawSprite replaces
DrawCopy to scale on the GPU, and the render cache is now disposed and
compared more strictly.

P.S from human: Most custom background-related commits are AI-generated, since I don't have any graphics skills yet. Only some parts like control(partial), caching, dark mode detection, etc are human generated. For this reason, they might completely rewritten later.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
AnthonyKwon added this to the 0.2.0.0 milestone 2026-08-22 02:41:35 +09:00
AnthonyKwon merged commit 771c2b69f9 into player-ui 2026-08-22 08:23:53 +09:00
AnthonyKwon deleted branch player-ui-improvements 2026-08-22 08:23:53 +09:00
Sign in to join this conversation.
No description provided.