-
public class StreamDesignThe Stream Chat Design System namespace.
Provides all design tokens for theming Chat SDK components:
ColorScale -- the brand (accent) color ramp
ChromeScale -- the chrome (neutral gray) color ramp
Colors -- semantic color tokens derived from the scales above
Typography -- text styles
Use via ChatTheme:
ChatTheme( colors = StreamDesign.Colors.default().copy(accentPrimary = ...), typography = StreamDesign.Typography.default(fontFamily = ...), ) { content() }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public final classStreamDesign.ColorsSemantic color tokens for theming Chat SDK components. Customize via default / defaultDark factory parameters or copy.
Parameters are organized by domain: scales → accent → text → background → border → avatar → skeleton.
public final classStreamDesign.ColorScaleAn 11-stop color ramp representing the brand (accent) palette.
In the Stream design system the brand scale maps to
blueby 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), ), ), )public final classStreamDesign.ChromeScaleA 13-stop neutral ramp representing the chrome (structural gray) palette.
Chrome defines the visual canvas: text, backgrounds, borders, surfaces. Light themes map to the slate foundation (cool grays); dark themes switch to neutral (warm grays) and invert the direction, so that s0 is always the base surface and s900 is always the strongest foreground.
s0 and s1000 are the absolute endpoints (white/black in light, black/white in dark). They absorb the light↔dark polarity, allowing all downstream tokens to reference chrome stops with identical expressions regardless of theme.
public final classStreamDesign.TypographyContains all the typography we provide for our components.
-
Field Summary
Fields Modifier and Type Field Description public final static StreamDesignINSTANCE
-