Goodbye Gray, Hello Color: A Fresh Avatar Component for Street Source

baha

baha

Published on Sep 16, 2025

If you’ve ever joined a forum and been greeted by a sea of identical gray heads, you know the vibe: bland and a little dated. As part of my ongoing refactor-and-streamline push, I replaced Street Source’s default gray avatar with a modern, color-based avatar that shows the first initial of your display name. It’s cleaner, faster, easier to scan in threads—and honestly, just more fun.

Below is the full story: why I did it, how it works, and what’s next. I also dropped in image placeholders you can swap with real visuals when you’re ready.


Why move away from gray avatars?

  • Instant recognition: Colors + initials make it easier to scan long threads and DMs.

  • Modern feel: The UI looks alive. Even without a profile photo, your identity stands out.

  • Zero friction: New users don’t have to upload a photo right away to look presentable.

  • Performance-friendly: The component renders as lightweight SVG or CSS, no extra image fetch required.

  • Accessible by design: I tune background and text color for contrast so initials are readable on light/dark themes.


What you’ll notice as a user

  • If you’ve set a profile photo, nothing changes—your photo still shows.

  • If you haven’t, you’ll see a colorful initial instead of the dull gray placeholder.

  • Avatars now scale consistently across the site (lists, comments, messages, notifications).

  • Dark mode looks better—no washed-out grays, no muddy borders.


Under the hood (dev notes)

Deterministic color
I hash your handle/user ID to a hue so your color stays stable across the app. Saturation and lightness are clamped for contrast.

Responsive + crisp
The avatar is rendered as an inline SVG (or a styled <div>). It scales cleanly from 24px to 96px+ with no blur.

Accessible contrast
Foreground (text) color is chosen based on calculated luminance of the background. If the BG is too light, the letter switches to a darker text color (and vice versa).

No extra requests
There’s no network call for default avatars, which helps page loads and reduces cache complexity.

Safe fallbacks
If a display name starts with a non-letter (emoji, punctuation), I fall back to the first alphanumeric character or “•”.

Theming
Colors are computed in HSL and then exposed via CSS variables, so themes can tweak saturation or lightness globally.


Migration notes

  • Existing users with uploaded photos are unaffected.

  • Users without photos automatically see an initial-based avatar.

  • Any legacy references to a static default avatar are removed to simplify caching/CDN behavior.


Roadmap & nice-to-haves

  • Two-letter monograms for small/large breakpoints.

  • Status rings (e.g., online, builder, vendor, event organizer).

  • Special editions (seasonal palettes, event themes).

  • Badge overlays for contributors or long-time members.

  • Admin tools to override a user’s color if accessibility requires it.


How you can help

If you’ve been meaning to upload a profile photo, this is a great time. Prefer the clean look? Keep the initial! Either way, Street Source just got a little more colorful.

This blog has been viewed 99 times.

Related Articles

Blog Image

Saying Goodbye to the Old Newsletter

Before email marketing tools were everywhere, I built a custom newsletter system for Street Source — and over the years, I sent fewer than 15 of them....

Read More
Blog Image

A Fresh Look for the Settings Pages

The Settings pages just got a major refresh! Broken layouts and confusing forms are now replaced with a clean, modern design that’s easy to use. Email...

Read More
Blog Image

The Rides Section Just Got a Major Overhaul

The Rides section—long a favorite on Street Source—just got a major upgrade as part of the ongoing Responsive Design Project. This update features a f...

Read More
Blog Image

Saying Goodbye to My Homemade Bug Tracker

After 10 years, I finally removed my homemade bug tracker from Street Source. It served me well, but tools like Jira do it better. Time to move forwar...

Read More