Package 

Object StreamDesign


  • 
    public class StreamDesign
    
                        

    The Stream Chat Design System namespace.

    Provides all design tokens for theming Chat SDK components:

    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 class StreamDesign.Colors

      Semantic 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 class StreamDesign.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),
              ),
          ),
      )
      public final class StreamDesign.ChromeScale

      A 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 class StreamDesign.Typography

      Contains all the typography we provide for our components.