ColorScale
An 11-stop color ramp representing the brand (accent) palette.
In the Stream design system the brand scale maps to blue by default. Light themes use the natural order (s50 = lightest, s900 = darkest); dark themes invert the mapping so that perceptual intensity stays consistent (s50 is still the faintest tint suitable for backgrounds).
Re-brand the entire Chat UI from a single color:
val purple = StreamDesign.ColorScale.from(brandColor = Color(0xFF6200EE))
ChatTheme(colors = StreamDesign.Colors.default(brand = purple))For pixel-perfect branding, provide an explicit scale:
ChatTheme(
colors = StreamDesign.Colors.default(
brand = StreamDesign.ColorScale(
s50 = Color(0xFFF3E8FF),
// …
s900 = Color(0xFF3B0764),
),
),
)Parameters
Faintest tint — backgrounds, subtle fills.
Light tint — outgoing bubble background.
Light-mid tint — attachment backgrounds, thread connectors.
Mid-light tint — primary button border, poll track.
Mid-tint — outgoing bubble on-chat border.
Mid-strong — interactive accent (dark theme default).
Core brand — interactive accent (light theme default).
Strong — link text (dark theme).
Darker — reply indicator (dark theme).
Deep — brand depth.
Deepest — outgoing text.