Skip to content

feat: Implement marquee text and apply to all players#210

Merged
theovilardo merged 1 commit intomasterfrom
feat/marquee-text-effect
Oct 8, 2025
Merged

feat: Implement marquee text and apply to all players#210
theovilardo merged 1 commit intomasterfrom
feat/marquee-text-effect

Conversation

@theovilardo
Copy link
Copy Markdown
Owner

This commit introduces a sophisticated, reusable AutoScrollingText composable that provides a polished marquee effect for overflowing text, and applies it to both the full and mini player views.

The AutoScrollingText component includes several key refinements based on detailed feedback:

  1. Animated Left Gradient Color: To ensure the text is always visible before scrolling, the starting color of the left-side gradient's brush is animated from opaque (gradientEdgeColor) to transparent. This correctly creates the effect of the fade appearing only as the scroll begins.
  2. Static Right Gradient: The right-side gradient is rendered statically from the start to handle the initial text overflow.
  3. Synchronized Animations: The color animation is driven by a state change synchronized with the initialDelayMillis of the basicMarquee modifier, ensuring a seamless and polished user experience.
  4. Adjusted Spacing: The spacing between text repetitions in the marquee has been fine-tuned to gradientWidth + 6.dp as requested.

This component has been integrated into both the PlayerSongInfo (full player) and MiniPlayerContentInternal (mini-player) composables to handle long song titles and artist names, replacing the previous TextOverflow.Ellipsis truncation with a more elegant and user-friendly solution across the app.

This commit introduces a sophisticated, reusable `AutoScrollingText` composable that provides a polished marquee effect for overflowing text, and applies it to both the full and mini player views.

The `AutoScrollingText` component includes several key refinements based on detailed feedback:

1.  **Animated Left Gradient Color:** To ensure the text is always visible before scrolling, the starting color of the left-side gradient's brush is animated from opaque (`gradientEdgeColor`) to transparent. This correctly creates the effect of the fade appearing only as the scroll begins.
2.  **Static Right Gradient:** The right-side gradient is rendered statically from the start to handle the initial text overflow.
3.  **Synchronized Animations:** The color animation is driven by a state change synchronized with the `initialDelayMillis` of the `basicMarquee` modifier, ensuring a seamless and polished user experience.
4.  **Adjusted Spacing:** The spacing between text repetitions in the marquee has been fine-tuned to `gradientWidth + 6.dp` as requested.

This component has been integrated into both the `PlayerSongInfo` (full player) and `MiniPlayerContentInternal` (mini-player) composables to handle long song titles and artist names, replacing the previous `TextOverflow.Ellipsis` truncation with a more elegant and user-friendly solution across the app.
@theovilardo theovilardo merged commit f4b6f4b into master Oct 8, 2025
@theovilardo theovilardo deleted the feat/marquee-text-effect branch October 16, 2025 18:04
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