8m read

882 words

Playlist Palette

Role

Product Designer

Tools

Figma

Claude Code

Timeline

2 weeks

View Playlist Palette's GitHub

CONTEXT

Building a website that transforms a Spotify playlist into a full-screen color gradient

Playlist Palette turns a Spotify playlist into an animated, full-screen color gradient that’s generated from the album art inside of it. Users would be able to connect their Spotify account, pick a playlist, then watch it become a beautiful field of color that you can interact with to discover the songs that shaped it.

SCOPING

Pivoting from mood visualizer to color matching

I initially wanted Playlist Palette to parse through each song and analyze the tempo, lyrics, and genre to translate that data into a gradient that reflects the emotional tone of the playlist. However, I had to narrow the scope immensely because Spotify's audio-feature data is either deprecated or unreliable. Also, the overall goal of translating that data into emotion is something that I was not qualified to do nor have the knowledge of such psychology.

I shifted the goal to matching color to color. The gradient doesn't tell you what a playlist feels like but, what a playlist looks like.

Read Lyrics

Spotify audio-feature deprecated.

Analyze Tempo

Spotify audio-feature deprecated.

Understand Genre

Spotify audio-feature deprecated.

Extract Color

Most apt comparison and achievable without Spotify API.

DESIGN DECISIONS

What decisions did I make?

Transitioning from muted to bright

The connect and playlist-picker screens are dark and minimal on purpose. I wanted the gradient reveal to be bright to add an eye-catching reveal. I treated the first two screens as a held breath rather than an onboarding flow, which meant resisting the instinct to "improve" them with more visual interest.

Cover overlap

An early version showed every song as its own point on the canvas but, I realized that not every song in a playlist has its own unique album cover. To make the gradient more accurate, I made sure to skip the color extraction for album covers already counted. This not only increases accuracy of the gradient but, it improves legibility.

Minimum song count

I chose to limit the API only parse through playlists with more than 25 songs. While the number is arbitrary, the design decision isn't. I wanted to ensure that there were enough songs and album covers to get the visualization of a playlist. If the playlist had a limited amount of songs, it'd be hard to establish a true pattern.