← Back to projects

ML · UX Research · Branding

CHROMA

Timeline May – July 2023
Role Developer & Product Designer
Skills MatPlotLib · Flutter · Branding
Overview

An ML application that analyzes your skin tone to generate personalized color palettes, rethinking how we approach beauty and self-expression by grounding it in science instead of guesswork.

When beauty
feels like guesswork

As teenagers navigate physical and mental growth, 87% report feeling pressure around appearance (Pew Research Center). A problem that doesn't start from vanity, but uncertainty.

During a transformative period of life, young people are trying to understand who they are, including how to express themselves authentically, yet finding the right makeup and clothing colors remains a frustrating, trial-and-error process.

87%
of teenagers report feeling pressure around appearance, per survey findings
63/77
Survey respondents cited impulse purchasing as a pattern in their beauty and fashion habits
73%
Experienced post-purchase guilt, often because the color or tone didn't work for them

77 voices,
one clear pattern

I gathered 77 survey responses from Reddit and Slack communities focused on personal style and fashion. The data pointed consistently toward a single root cause: people weren't making bad decisions—they were making decisions without information.

Finding 01
Overwhelming choice

Without a framework for what works for them, users defaulted to trend-chasing—buying what looked good on models rather than what would work with their own coloring.

Finding 02
No personalized guidance

Existing tools offered generic seasonal color theory but couldn't account for individual skin undertones, hair, and context: the things that actually determine what flatters someone.

Finding 03
Impulse as a pattern

63 of 77 respondents described repeated impulse purchases they later regretted, often involving colors that seemed appealing in isolation but didn't work with anything they owned.

"How might we make personalized color guidance accessible, objective, and empowering—not just for people with fashion expertise, but for anyone trying to understand their own palette?"

Chroma —
color, personalized

Chroma uses machine learning to analyze an uploaded photo and extract the user's skin tone. It then generates a personalized color palette, warm tones, cool tones, accent colors, paired with guidance on how to apply them across clothing, makeup, and accessories.

ML Core
Skin Tone Analysis

Built with MatPlotLib and Python, the ML model extracts dominant skin tone values from uploaded images and maps them to a color temperature spectrum. Warm, cool, neutral, and deep classifications drive the palette generation.

Mobile App
Flutter Frontend

The Flutter app delivers results as a visual palette with swatches, recommendations organized by category (clothing, makeup, home), and a personal style guide users can reference when shopping or getting dressed.

Visual Identity
Branding & Styleguide

Chroma's own brand identity uses Figtree typography and a pastel-forward design system, designed to feel inclusive and approachable rather than clinical or aspirational.

Output
Personalized Palette

Each user receives a curated set of colors mapped to their specific skin profile, not a pre-set seasonal bucket, but a genuinely personalized palette generated from their photo.

What I learned

01
ML needs human translation

The algorithm could identify skin tone values accurately, but raw data meant nothing to users. The design challenge was translating model output into language and visuals that felt personally meaningful, not technical.

02
Inclusion requires intentionality

Early model training skewed toward lighter skin tones, a common bias in computer vision datasets. Addressing this wasn't just a technical fix; it required rethinking the entire data pipeline with representation as a core requirement.

03
Self-expression is deeply personal

Color preference can't be fully predicted by skin tone and users wanted the palette as a starting point, not a prescription. The best version of Chroma gives people a foundation and the freedom to diverge from it.