Skip to main content Skip to docs navigation

Real-time communication components that display conversational messages, embedded content, and form elements for messaging and chat interface contexts.

This documentation is a work in progress and may contain incomplete or outdated information. If you have any feedback or suggestions, please open an issue on GitHub.

Tokens

Standardized design system values that define consistent visual properties across message components. These tokens ensure visual coherence while enabling flexible theme customization for messaging and conversational interfaces.

Theming Tokens

Design tokens organized by category with color-coded labels indicating their scope and impact level. Each token includes detailed specifications with values, usage guidelines, and customization options.

Legend:
  • Granular tokens that affect only this component.
  • Granular tokens that affect other components.
  • Semantic tokens that affect the whole application.
  • Base tokens that affect the whole application.

Color

Component TokenBase Token
color.message.bg-chat {color.context.default.bg-evident}
color.message.fg-form {color.context.primary.base-color}
color.message.bg-form {color.context.default.bg-even}
color.message.fg-received {color.context.default.fg-main}
color.message.bg-received {color.context.default.bg-main}
color.message.fg-sent {color.context.default.fg-main}
color.message.bg-sent {color.context.primary.bg-even}
color.message.fg-embed {color.context.default.fg-main}
color.message.bg-embed {color.context.default.dim-slight}
color.message.fg-status {color.context.default.fg-main}
color.message.bg-status {color.context.default.dim-slight}
color.context.default.fg-subtle {color.base.context.light.default.fg-subtle}
color.context.default.border-subtle {color.base.context.light.default.border-subtle}

Typography

Component TokenBase Token
font.text.medium.normal {fontFamily: {typography.fontFamily.text}, fontWeight: {typography.fontWeight.text.normal}, lineHeight: {typography.lineHeight.text.medium}, fontSize: {typography.fontSize.text.medium}, letterSpacing: {typography.letterSpacing.text.base}, paragraphSpacing: {typography.paragraphSpacing.text.base}, textCase: {typography.textCase.base.none}, textDecoration: {typography.textDecoration.base.none}}
font.text.medium.strong {fontFamily: {typography.fontFamily.text}, fontWeight: {typography.fontWeight.text.strong}, lineHeight: {typography.lineHeight.text.medium}, fontSize: {typography.fontSize.text.medium}, letterSpacing: {typography.letterSpacing.text.base}, paragraphSpacing: {typography.paragraphSpacing.text.base}, textCase: {typography.textCase.base.none}, textDecoration: {typography.textDecoration.base.none}}
font.text.small.normal {fontFamily: {typography.fontFamily.text}, fontWeight: {typography.fontWeight.text.normal}, lineHeight: {typography.lineHeight.text.small}, fontSize: {typography.fontSize.text.small}, letterSpacing: {typography.letterSpacing.text.base}, paragraphSpacing: {typography.paragraphSpacing.text.base}, textCase: {typography.textCase.base.none}, textDecoration: {typography.textDecoration.base.none}}
font.text.xsmall.normal {fontFamily: {typography.fontFamily.text}, fontWeight: {typography.fontWeight.text.normal}, lineHeight: {typography.lineHeight.text.xsmall}, fontSize: {typography.fontSize.text.xsmall}, letterSpacing: {typography.letterSpacing.text.base}, paragraphSpacing: {typography.paragraphSpacing.text.base}, textCase: {typography.textCase.base.none}, textDecoration: {typography.textDecoration.base.none}}

Border Width

Component TokenBase Token
borderWidth.asset.separator {size.asset.separator}
borderWidth.asset.indicator {size.asset.indicator}

Border Radius

Component TokenBase Token
borderRadius.context.medium {borderRadius.base.medium}
borderRadius.context.small {borderRadius.base.small}

Box Shadow

Component TokenBase Token
shadow.message.main {shadow.elevation.default.10}

Opacity

Component TokenBase Token
opacity.context.fg-subtle 0.5