UNPKG

stream-chat-react

Version:

React components to create chat conversations or livestream style chat

1,037 lines (1,033 loc) 343 kB
@charset "UTF-8"; @media (prefers-reduced-motion: reduce) { .str-chat, .str-chat *, .str-chat *::before, .str-chat *::after { animation-delay: 0ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-delay: 0ms !important; transition-duration: 0.01ms !important; } .str-chat__attachment-selector__menu-button__icon { transform: none; } } .str-chat__prepare-rotate45 { transition: transform 200ms ease; transform: rotate(0); transform-origin: center center; } .str-chat__rotate45 { transform: rotate(45deg); } /** * Do not edit directly, this file was auto-generated. */ /** * Do not edit directly, this file was auto-generated. */ .str-chat, .str-chat__theme-dark .str-chat__theme-inverse { --str-chat__base-transparent-0: rgba(255, 255, 255, 0); --str-chat__base-transparent-white-10: rgba(255, 255, 255, 0.1); --str-chat__base-transparent-white-20: rgba(255, 255, 255, 0.2); --str-chat__base-transparent-white-30: rgba(255, 255, 255, 0.3); --str-chat__base-transparent-white-70: rgba(255, 255, 255, 0.7); --str-chat__base-transparent-black-5: rgba( 0, 0, 0, 0.05 ); /** Used for bg in closeButton */ --str-chat__base-transparent-black-10: rgba( 0, 0, 0, 0.1 ); /** Used for bg in closeButton */ --str-chat__base-transparent-black-70: rgba( 0, 0, 0, 0.7 ); /** Used for bg in closeButton */ --str-chat__base-black: #000000; --str-chat__base-white: #ffffff; --str-chat__slate-50: #f6f8fa; --str-chat__slate-100: #ebeef1; --str-chat__slate-150: #d5dbe1; --str-chat__slate-200: #c0c8d2; --str-chat__slate-300: #a3acba; --str-chat__slate-400: #87909f; --str-chat__slate-500: #687385; --str-chat__slate-600: #545969; --str-chat__slate-700: #414552; --str-chat__slate-800: #30313d; --str-chat__slate-900: #1a1b25; --str-chat__neutral-50: #f8f8f8; --str-chat__neutral-100: #efefef; --str-chat__neutral-150: #d8d8d8; --str-chat__neutral-200: #c4c4c4; --str-chat__neutral-300: #ababab; --str-chat__neutral-400: #8f8f8f; --str-chat__neutral-500: #6a6a6a; --str-chat__neutral-600: #565656; --str-chat__neutral-700: #464646; --str-chat__neutral-800: #323232; --str-chat__neutral-900: #1c1c1c; --str-chat__blue-50: #f3f7ff; --str-chat__blue-100: #e3edff; --str-chat__blue-150: #c3d9ff; --str-chat__blue-200: #a5c5ff; --str-chat__blue-300: #78a8ff; --str-chat__blue-400: #4586ff; --str-chat__blue-500: #005fff; --str-chat__blue-600: #1b53bd; --str-chat__blue-700: #19418d; --str-chat__blue-800: #142f63; --str-chat__blue-900: #091a3b; --str-chat__cyan-50: #f1fbfc; --str-chat__cyan-100: #d1f3f6; --str-chat__cyan-150: #a9e4ea; --str-chat__cyan-200: #72d7e0; --str-chat__cyan-300: #45bcc7; --str-chat__cyan-400: #1e9ea9; --str-chat__cyan-500: #248088; --str-chat__cyan-600: #006970; --str-chat__cyan-700: #065056; --str-chat__cyan-800: #003a3f; --str-chat__cyan-900: #002124; --str-chat__green-50: #e1ffee; --str-chat__green-100: #bdfcdb; --str-chat__green-150: #8febbd; --str-chat__green-200: #59dea3; --str-chat__green-300: #00c384; --str-chat__green-400: #00a46e; --str-chat__green-500: #277e59; --str-chat__green-600: #006643; --str-chat__green-700: #004f33; --str-chat__green-800: #003a25; --str-chat__green-900: #002213; --str-chat__purple-50: #f7f8ff; --str-chat__purple-100: #ecedff; --str-chat__purple-150: #d4d7ff; --str-chat__purple-200: #c1c5ff; --str-chat__purple-300: #a1a3ff; --str-chat__purple-400: #8482fc; --str-chat__purple-500: #644af9; --str-chat__purple-600: #553bd8; --str-chat__purple-700: #4032a1; --str-chat__purple-800: #2e2576; --str-chat__purple-900: #1a114d; --str-chat__yellow-50: #fef9da; --str-chat__yellow-100: #fcedb9; --str-chat__yellow-150: #fcd579; --str-chat__yellow-200: #f6bf57; --str-chat__yellow-300: #fa922b; --str-chat__yellow-400: #f26d10; --str-chat__yellow-500: #c84801; --str-chat__yellow-600: #a82c00; --str-chat__yellow-700: #842106; --str-chat__yellow-800: #5f1a05; --str-chat__yellow-900: #331302; --str-chat__red-50: #fff5fa; --str-chat__red-100: #ffe7f2; --str-chat__red-150: #ffccdf; --str-chat__red-200: #ffb1cd; --str-chat__red-300: #fe87a1; --str-chat__red-400: #fc526a; --str-chat__red-500: #d90d10; --str-chat__red-600: #b3093c; --str-chat__red-700: #890d37; --str-chat__red-800: #68052b; --str-chat__red-900: #3e021a; --str-chat__violet-50: #fef4ff; --str-chat__violet-100: #fbe8fe; --str-chat__violet-150: #f7cffc; --str-chat__violet-200: #eeb5f4; --str-chat__violet-300: #e68bec; --str-chat__violet-400: #d75fe7; --str-chat__violet-500: #b716ca; --str-chat__violet-600: #9d00ae; --str-chat__violet-700: #7c0089; --str-chat__violet-800: #5c0066; --str-chat__violet-900: #36003d; --str-chat__lime-50: #f1fde8; --str-chat__lime-100: #d4ffb0; --str-chat__lime-150: #b1ee79; --str-chat__lime-200: #9cda5d; --str-chat__lime-300: #78c100; --str-chat__lime-400: #639e11; --str-chat__lime-500: #4b7a0a; --str-chat__lime-600: #3e6213; --str-chat__lime-700: #355315; --str-chat__lime-800: #203a00; --str-chat__lime-900: #112100; --str-chat__size-2: 2px; --str-chat__size-4: 4px; --str-chat__size-6: 6px; --str-chat__size-8: 8px; --str-chat__size-12: 12px; --str-chat__size-16: 16px; --str-chat__size-20: 20px; --str-chat__size-24: 24px; --str-chat__size-32: 32px; --str-chat__size-40: 40px; --str-chat__size-48: 48px; --str-chat__size-64: 64px; --str-chat__size-28: 28px; --str-chat__size-80: 80px; --str-chat__size-128: 128px; --str-chat__size-240: 240px; --str-chat__size-320: 320px; --str-chat__size-480: 480px; --str-chat__size-560: 560px; --str-chat__size-640: 640px; --str-chat__size-760: 760px; --str-chat__size-144: 144px; --str-chat__size-208: 208px; --str-chat__size-56: 56px; --str-chat__radius-0: 0px; --str-chat__radius-2: 2px; --str-chat__radius-4: 4px; --str-chat__radius-6: 6px; --str-chat__radius-8: 8px; --str-chat__radius-12: 12px; --str-chat__radius-16: 16px; --str-chat__radius-20: 20px; --str-chat__radius-24: 24px; --str-chat__radius-32: 32px; --str-chat__radius-full: 9999px; --str-chat__space-0: 0px; --str-chat__space-2: 2px; --str-chat__space-4: 4px; --str-chat__space-8: 8px; --str-chat__space-12: 12px; --str-chat__space-16: 16px; --str-chat__space-20: 20px; --str-chat__space-24: 24px; --str-chat__space-32: 32px; --str-chat__space-40: 40px; --str-chat__space-48: 48px; --str-chat__space-64: 64px; --str-chat__space-80: 80px; --str-chat__w100: 1px; --str-chat__w150: 1.5px; --str-chat__w200: 2px; --str-chat__w300: 3px; --str-chat__w400: 4px; --str-chat__w120: 1.2px; --str-chat__font-family-geist: 'Geist'; /** Primary sans-serif font for web typography. Use Geist as the main typeface. Recommended fallbacks: system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif. */ --str-chat__font-family-geist-mono: 'Geist Mono'; /** Primary monospace font for web typography. Use Geist Mono for code, timestamps, and technical text. Recommended fallbacks: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace. */ --str-chat__font-family-sf-pro: 'SF Pro'; /** Primary sans-serif font for iOS typography. Use SF Pro as the main typeface. Recommended fallbacks: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif. */ --str-chat__font-family-sf-mono: 'SF Mono'; /** Primary monospace font for iOS typography. Use SF Mono for code, timestamps, and technical text. Recommended fallbacks: SFMono-Regular, Menlo, Monaco, Consolas, monospace. */ --str-chat__font-family-roboto: 'Roboto'; /** Primary sans-serif font for Android typography. Use Roboto as the main typeface, aligned with Material and system defaults. Recommended fallbacks: Roboto, “Noto Sans”, system-ui, sans-serif. */ --str-chat__font-family-roboto-mono: 'Roboto Mono'; /** Primary monospace font for Android typography. Use Roboto Mono for code, timestamps, and technical text. Recommended fallbacks: Roboto Mono, “Noto Sans Mono”, monospace. */ --str-chat__font-weight-w400: 400; --str-chat__font-weight-w500: 500; --str-chat__font-weight-w600: 600; --str-chat__font-weight-w700: 700; --str-chat__font-size-size-8: 8px; --str-chat__font-size-size-10: 10px; --str-chat__font-size-size-11: 11px; --str-chat__font-size-size-12: 12px; --str-chat__font-size-size-13: 13px; --str-chat__font-size-size-14: 14px; --str-chat__font-size-size-16: 16px; --str-chat__font-size-size-15: 15px; --str-chat__font-size-size-17: 17px; --str-chat__font-size-size-18: 18px; --str-chat__font-size-size-20: 20px; --str-chat__font-size-size-22: 22px; --str-chat__font-size-size-24: 24px; --str-chat__font-size-size-28: 28px; --str-chat__font-size-size-32: 32px; --str-chat__font-size-size-40: 40px; --str-chat__font-size-size-48: 48px; --str-chat__font-size-size-64: 64px; --str-chat__line-height-line-height-8: 8px; --str-chat__line-height-line-height-10: 10px; --str-chat__line-height-line-height-12: 12px; --str-chat__line-height-line-height-13: 13px; --str-chat__line-height-line-height-14: 14px; --str-chat__line-height-line-height-15: 15px; --str-chat__line-height-line-height-16: 16px; --str-chat__line-height-line-height-17: 17px; --str-chat__line-height-line-height-18: 18px; --str-chat__line-height-line-height-20: 20px; --str-chat__line-height-line-height-24: 24px; --str-chat__line-height-line-height-28: 28px; --str-chat__line-height-line-height-32: 32px; --str-chat__line-height-line-height-40: 40px; --str-chat__line-height-line-height-48: 48px; --str-chat__typography-font-weight-regular: 400; --str-chat__typography-font-weight-medium: 500; --str-chat__typography-font-weight-semi-bold: 600; --str-chat__typography-font-weight-bold: 700; --str-chat__light-elevation-1: 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 1px 2px 0px rgba(0, 0, 0, 0.1), 0px 4px 8px 0px rgba(0, 0, 0, 0.06); /** Low elevation level for subtle separation. */ --str-chat__light-elevation-2: 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 2px 4px 0px rgba(0, 0, 0, 0.12), 0px 6px 16px 0px rgba(0, 0, 0, 0.06); --str-chat__light-elevation-3: 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 4px 8px 0px rgba(0, 0, 0, 0.14), 0px 12px 24px 0px rgba(0, 0, 0, 0.1); --str-chat__light-elevation-4: 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 6px 12px 0px rgba(0, 0, 0, 0.16), 0px 20px 32px 0px rgba(0, 0, 0, 0.12); --str-chat__dark-elevation-1: 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.2), 0px 4px 8px 0px rgba(0, 0, 0, 0.1); --str-chat__dark-elevation-2: 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 2px 4px 0px rgba(0, 0, 0, 0.22), 0px 6px 16px 0px rgba(0, 0, 0, 0.12); --str-chat__dark-elevation-3: 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 4px 8px 0px rgba(0, 0, 0, 0.24), 0px 12px 24px 0px rgba(0, 0, 0, 0.14); --str-chat__dark-elevation-4: 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 6px 12px 0px rgba(0, 0, 0, 0.28), 0px 20px 32px 0px rgba(0, 0, 0, 0.16); --str-chat__button-padding-y-lg: 14px; --str-chat__button-padding-y-md: 10px; --str-chat__button-padding-y-sm: 6px; --str-chat__button-padding-y-xs: 4px; --str-chat__button-padding-x-icon-only-lg: 14px; --str-chat__button-padding-x-icon-only-md: 10px; --str-chat__button-padding-x-icon-only-sm: 6px; --str-chat__button-padding-x-icon-only-xs: 4px; --str-chat__button-padding-x-with-label-lg: 16px; --str-chat__button-padding-x-with-label-md: 16px; --str-chat__button-padding-x-with-label-sm: 16px; --str-chat__button-padding-x-with-label-xs: 12px; --str-chat__background-core-overlay-light: rgba( 255, 255, 255, 0.75 ); /** A light semi-transparent layer. Used to lighten surfaces and for hover states on dark backgrounds. */ --str-chat__background-core-overlay-dark: rgba( 26, 27, 37, 0.25 ); /** A dark semi-transparent layer. Used for image overlays. */ --str-chat__background-core-scrim: rgba( 26, 27, 37, 0.5 ); /** A heavy semi-transparent layer. Used behind sheets, drawers, and modals to separate them from content. */ --str-chat__background-utility-hover: rgba( 26, 27, 37, 0.1 ); /** A semi-transparent overlay applied on pointer hover. Sits on top of any surface without replacing it. */ --str-chat__background-utility-pressed: rgba( 26, 27, 37, 0.15 ); /** A slightly stronger overlay applied during an active press or tap. Provides tactile feedback on interactive elements. */ --str-chat__background-utility-selected: rgba( 26, 27, 37, 0.2 ); /** Indicates an active or selected state. Used for selected messages, active list items, and toggled controls. */ --str-chat__border-utility-hover: rgba( 26, 27, 37, 0.1 ); /** Applied on pointer hover over bordered interactive elements. */ --str-chat__border-utility-pressed: rgba( 26, 27, 37, 0.2 ); /** Applied during an active press on bordered interactive elements. */ --str-chat__border-utility-selected: rgba( 26, 27, 37, 0.15 ); /** Border for selected or active items. Used for highlighted list items and active controls. */ --str-chat__border-core-opacity-subtle: rgba( 26, 27, 37, 0.1 ); /** A very light transparent border. Used as a frame treatment on images and media attachments. */ --str-chat__border-core-opacity-strong: rgba( 26, 27, 37, 0.25 ); /** A stronger transparent border for elements on colored or dark backgrounds. Used for waveform bars and similar treatments. */ --str-chat__system-bg-blur: rgba(255, 255, 255, 0.01); --str-chat__system-scrollbar: rgba(0, 0, 0, 0.5); --str-chat__badge-bg-overlay: rgba(0, 0, 0, 0.75); --str-chat__control-play-button-bg: rgba(0, 0, 0, 0.75); --str-chat__typography-font-family-sans: var(--str-chat__font-family-geist); --str-chat__typography-font-family-mono: var(--str-chat__font-family-geist-mono); --str-chat__typography-font-size-xxs: var( --str-chat__font-size-size-10 ); /** Micro text such as timestamps or subtle metadata. */ --str-chat__typography-font-size-xs: var( --str-chat__font-size-size-12 ); /** Compact secondary text, small UI labels. */ --str-chat__typography-font-size-sm: var( --str-chat__font-size-size-14 ); /** Default mobile body size, small controls. */ --str-chat__typography-font-size-md: var( --str-chat__font-size-size-16 ); /** Default desktop body size, main text. */ --str-chat__typography-font-size-lg: var( --str-chat__font-size-size-18 ); /** Medium emphasis, section labels. */ --str-chat__typography-font-size-xl: var( --str-chat__font-size-size-20 ); /** Small headings. */ --str-chat__typography-font-size-2xl: var( --str-chat__font-size-size-24 ); /** Section titles, important headings. */ --str-chat__typography-font-size-micro: var( --str-chat__font-size-size-8 ); /** Micro text such as timestamps or subtle metadata. */ --str-chat__typography-line-height-tight: var( --str-chat__line-height-line-height-16 ); /** Compact text, headers, UI labels. */ --str-chat__typography-line-height-normal: var( --str-chat__line-height-line-height-20 ); /** Default reading line-height for sizes 14–16px. */ --str-chat__typography-line-height-relaxed: var( --str-chat__line-height-line-height-24 ); /** For larger text sizes or multiline descriptions. */ --str-chat__radius-none: var(--str-chat__radius-0); --str-chat__radius-xxs: var(--str-chat__radius-2); --str-chat__radius-xs: var(--str-chat__radius-4); --str-chat__radius-sm: var(--str-chat__radius-6); --str-chat__radius-md: var(--str-chat__radius-8); --str-chat__radius-lg: var(--str-chat__radius-12); --str-chat__radius-xl: var(--str-chat__radius-16); --str-chat__radius-2xl: var(--str-chat__radius-20); --str-chat__radius-max: var(--str-chat__radius-full); --str-chat__radius-3xl: var(--str-chat__radius-24); --str-chat__radius-4xl: var(--str-chat__radius-32); --str-chat__spacing-none: var( --str-chat__space-0 ); /** No spacing. Used for tight component joins. */ --str-chat__spacing-xxs: var( --str-chat__space-4 ); /** Base unit. Minimal padding, tight gaps. */ --str-chat__spacing-xs: var( --str-chat__space-8 ); /** Small padding and default vertical gaps. */ --str-chat__spacing-sm: var( --str-chat__space-12 ); /** Common internal spacing in inputs and buttons. */ --str-chat__spacing-md: var( --str-chat__space-16 ); /** Default large padding for sections and cards. */ --str-chat__spacing-xl: var( --str-chat__space-24 ); /** Comfortable spacing for chat bubbles and list items. */ --str-chat__spacing-2xl: var( --str-chat__space-32 ); /** Larger spacing for panels, modals, and gutters. */ --str-chat__spacing-3xl: var( --str-chat__space-40 ); /** Used for wide layout spacing and breathing room. */ --str-chat__spacing-lg: var( --str-chat__space-20 ); /** Medium spacing for grouping elements and section breaks. */ --str-chat__spacing-xxxs: var(--str-chat__space-2); --str-chat__device-safe-area-bottom: var(--str-chat__space-0); --str-chat__device-safe-area-top: var(--str-chat__space-0); --str-chat__button-radius-lg: var(--str-chat__radius-full); --str-chat__button-radius-md: var(--str-chat__radius-full); --str-chat__button-radius-sm: var(--str-chat__radius-full); --str-chat__button-radius-full: var(--str-chat__radius-full); --str-chat__button-visual-height-sm: var(--str-chat__size-32); --str-chat__button-visual-height-md: var(--str-chat__size-40); --str-chat__button-visual-height-lg: var(--str-chat__size-48); --str-chat__button-visual-height-xs: var(--str-chat__size-24); /** * Minimum interactive hit target size. * * iOS / Android: enforce minimum touch target. * Web: do not apply a min-width or min-height; size to content. * * Note: Web uses a placeholder value in Figma due to variable mode constraints. */ --str-chat__button-hit-target-min-height: var(--str-chat__size-48); /** * Minimum interactive hit target size. * * iOS / Android: enforce minimum touch target. * Web: do not apply a min-width or min-height; size to content. * * Note: Web uses a placeholder value in Figma due to variable mode constraints. */ --str-chat__button-hit-target-min-width: var(--str-chat__size-48); --str-chat__button-primary-bg-liquid-glass: var(--str-chat__base-transparent-0); --str-chat__icon-size-xs: var(--str-chat__size-12); --str-chat__icon-size-sm: var(--str-chat__size-16); --str-chat__icon-size-md: var(--str-chat__size-20); --str-chat__icon-size-lg: var(--str-chat__size-32); --str-chat__icon-stroke-subtle: var(--str-chat__w120); --str-chat__icon-stroke-default: var(--str-chat__w150); --str-chat__icon-stroke-emphasis: var(--str-chat__w200); --str-chat__emoji-md: var(--str-chat__font-size-size-24); --str-chat__emoji-lg: var(--str-chat__font-size-size-32); --str-chat__emoji-xl: var(--str-chat__font-size-size-48); --str-chat__emoji-2xl: var(--str-chat__font-size-size-64); --str-chat__background-core-highlight: var( --str-chat__yellow-50 ); /** A tint for drawing attention to content. Used for highlights and pinned messages. */ --str-chat__chat-waveform-bar: var(--str-chat__border-core-opacity-strong); --str-chat__control-checkbox-bg: var(--str-chat__base-transparent-0); --str-chat__control-playback-thumb-border-default: var( --str-chat__border-core-opacity-strong ); --str-chat__control-radio-button-bg: var(--str-chat__base-transparent-0); --str-chat__control-radio-check-bg: var(--str-chat__base-transparent-0); --str-chat__avatar-palette-bg-1: var(--str-chat__blue-150); --str-chat__avatar-palette-bg-2: var(--str-chat__cyan-150); --str-chat__avatar-palette-bg-3: var(--str-chat__green-150); --str-chat__avatar-palette-bg-4: var(--str-chat__purple-150); --str-chat__avatar-palette-bg-5: var(--str-chat__yellow-150); --str-chat__avatar-palette-text-1: var(--str-chat__blue-900); --str-chat__avatar-palette-text-2: var(--str-chat__cyan-900); --str-chat__avatar-palette-text-3: var(--str-chat__green-900); --str-chat__avatar-palette-text-4: var(--str-chat__purple-900); --str-chat__avatar-palette-text-5: var(--str-chat__yellow-900); --str-chat__accent-success: var( --str-chat__green-400 ); /** Indicates a positive or completed state. Used for confirmations, sent indicators, and success feedback. */ --str-chat__accent-warning: var( --str-chat__yellow-400 ); /** Indicates a cautionary state that requires attention. Used for moderation flags and non-critical alerts. */ --str-chat__accent-error: var( --str-chat__red-500 ); /** Indicates a failure or destructive state. Used for failed messages, validation errors, and deletions. */ --str-chat__brand-50: var(--str-chat__blue-50); --str-chat__brand-100: var(--str-chat__blue-100); --str-chat__brand-150: var(--str-chat__blue-150); --str-chat__brand-200: var(--str-chat__blue-200); --str-chat__brand-300: var(--str-chat__blue-300); --str-chat__brand-400: var(--str-chat__blue-400); --str-chat__brand-500: var(--str-chat__blue-500); --str-chat__brand-600: var(--str-chat__blue-600); --str-chat__brand-700: var(--str-chat__blue-700); --str-chat__brand-800: var(--str-chat__blue-800); --str-chat__brand-900: var(--str-chat__blue-900); --str-chat__skeleton-loading-base: var( --str-chat__base-transparent-0 ); /** Base color for the default skeleton loading gradient. Used as the background tone for placeholder surfaces. */ --str-chat__skeleton-loading-highlight: var( --str-chat__background-core-overlay-light ); /** Highlight color for the default skeleton loading gradient. Used for the moving shimmer to indicate loading activity. */ --str-chat__chrome-0: var(--str-chat__base-white); --str-chat__chrome-50: var(--str-chat__slate-50); --str-chat__chrome-100: var(--str-chat__slate-100); --str-chat__chrome-150: var(--str-chat__slate-150); --str-chat__chrome-200: var(--str-chat__slate-200); --str-chat__chrome-300: var(--str-chat__slate-300); --str-chat__chrome-400: var(--str-chat__slate-400); --str-chat__chrome-500: var(--str-chat__slate-500); --str-chat__chrome-600: var(--str-chat__slate-600); --str-chat__chrome-700: var(--str-chat__slate-700); --str-chat__chrome-800: var(--str-chat__slate-800); --str-chat__chrome-900: var(--str-chat__slate-900); --str-chat__chrome-1000: var(--str-chat__base-black); --str-chat__device-radius: var(--str-chat__radius-md); --str-chat__message-bubble-radius-group-top: var(--str-chat__radius-2xl); --str-chat__message-bubble-radius-group-middle: var(--str-chat__radius-2xl); --str-chat__message-bubble-radius-group-bottom: var(--str-chat__radius-2xl); --str-chat__message-bubble-radius-tail: var(--str-chat__radius-none); --str-chat__message-bubble-radius-attachment: var(--str-chat__radius-lg); --str-chat__message-bubble-radius-attachment-inline: var(--str-chat__radius-md); --str-chat__composer-radius-fixed: var(--str-chat__radius-3xl); --str-chat__composer-radius-floating: var(--str-chat__radius-3xl); --str-chat__button-primary-border: var(--str-chat__brand-200); --str-chat__button-destructive-bg: var(--str-chat__accent-error); --str-chat__button-destructive-text: var(--str-chat__accent-error); --str-chat__button-destructive-border: var(--str-chat__accent-error); --str-chat__emoji-sm: var(--str-chat__typography-font-size-md); --str-chat__background-core-app: var( --str-chat__chrome-0 ); /** The outermost application background. Sits behind all surfaces and is generally not overridden directly. */ --str-chat__background-core-elevation-0: var( --str-chat__chrome-0 ); /** The base layer. Always white, used as the reference point for the elevation scale. Steps above this gain depth in dark mode through progressively lighter backgrounds. */ --str-chat__background-core-elevation-1: var( --str-chat__chrome-0 ); /** Slightly raised surfaces. Used for content containers that sit directly on the base layer, such as the message list and channel list. */ --str-chat__background-core-elevation-2: var( --str-chat__chrome-0 ); /** Floating and modal surfaces. Used for popovers, dropdowns, dialogs, and any element that interrupts the content flow. */ --str-chat__background-core-elevation-3: var( --str-chat__chrome-0 ); /** Used for badge counts that float above other UI elements. */ --str-chat__background-core-surface-default: var( --str-chat__chrome-100 ); /** Background for sectioned content areas. Used for grouped containers, and distinct content regions. */ --str-chat__background-core-surface-subtle: var( --str-chat__chrome-50 ); /** A slightly receded background. Used for secondary containers or to create soft visual separation. */ --str-chat__background-core-surface-card: var( --str-chat__chrome-50 ); /** Background for contained, card-style elements. Matches the surface in light mode but lifts slightly in dark mode to maintain visual separation. */ --str-chat__background-core-surface-strong: var( --str-chat__chrome-150 ); /** A more prominent background. Used for elements that need to stand out from the main surface. */ --str-chat__background-core-inverse: var( --str-chat__chrome-1000 ); /** The opposite of the primary surface. Used for tooltips, snackbars, and high-contrast floating elements. */ --str-chat__background-core-on-accent: var( --str-chat__chrome-0 ); /** Background for elements placed on an accent-colored surface. Ensures legibility against brand colors. */ --str-chat__background-utility-disabled: var( --str-chat__chrome-100 ); /** Background for non-interactive elements. Flattens the element visually to signal unavailability. */ --str-chat__border-utility-focused: var( --str-chat__brand-150 ); /** Focus ring for keyboard and accessibility navigation. Uses the brand color to signal input focus. */ --str-chat__border-utility-success: var( --str-chat__accent-success ); /** Border for positive or confirmed states. Used on validated inputs and success indicators. */ --str-chat__border-utility-warning: var( --str-chat__accent-warning ); /** Border for cautionary states. Used on inputs or elements requiring attention. */ --str-chat__border-utility-error: var( --str-chat__accent-error ); /** Border for failure or invalid states. Used on failed inputs and destructive confirmations. */ --str-chat__border-utility-disabled: var( --str-chat__chrome-100 ); /** Border for non-interactive elements. Matches the disabled surface to visually flatten the element. */ --str-chat__border-utility-disabled-on-surface: var( --str-chat__chrome-150 ); /** Border for disabled elements on elevated surfaces. Stays visually distinct from the surface without drawing attention to a non-interactive element. */ --str-chat__border-core-default: var( --str-chat__chrome-150 ); /** Standard border for surfaces and containers. Used for input fields, cards, and dividers on neutral backgrounds. */ --str-chat__border-core-subtle: var( --str-chat__chrome-100 ); /** A lighter border for minimal separation. Used where a full-strength border would feel too heavy. */ --str-chat__border-core-strong: var( --str-chat__chrome-300 ); /** An emphatic border for elements that need clear definition. Used for focused containers and prominent dividers. */ --str-chat__border-core-inverse: var( --str-chat__chrome-0 ); /** Used on dark backgrounds. */ --str-chat__border-core-on-accent: var( --str-chat__chrome-0 ); /** Border on accent-colored surfaces. Stays white in both modes since the accent background doesn't invert. */ --str-chat__border-core-on-surface: var( --str-chat__chrome-300 ); /** Border for elements sitting on elevated surfaces. Uses a stronger value than default to maintain visible separation when the background is darker. */ --str-chat__border-core-on-inverse: var( --str-chat__chrome-0 ); /** Border on inverse-colored surfaces. Stays legible when the background flips between light and dark mode. */ --str-chat__chat-bg-outgoing: var( --str-chat__brand-100 ); /** Outgoing bubble background. */ --str-chat__chat-bg-attachment-outgoing: var( --str-chat__brand-150 ); /** Attachment card in outgoing bubble. */ --str-chat__chat-text-outgoing: var(--str-chat__brand-900); /** Message body text. */ --str-chat__chat-border-outgoing: var(--str-chat__brand-100); --str-chat__chat-border-on-chat-outgoing: var(--str-chat__brand-300); --str-chat__chat-reply-indicator-incoming: var( --str-chat__chrome-400 ); /** Reply indicator shading for incoming. */ --str-chat__chat-reply-indicator-outgoing: var( --str-chat__brand-400 ); /** Reply indicator shading for outgoing. */ --str-chat__chat-poll-progress-track-outgoing: var(--str-chat__brand-200); --str-chat__chat-thread-connector-outgoing: var(--str-chat__brand-150); --str-chat__presence-bg-online: var( --str-chat__accent-success ); /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */ --str-chat__system-text: var(--str-chat__chrome-1000); --str-chat__badge-bg-error: var(--str-chat__accent-error); --str-chat__badge-bg-inverse: var(--str-chat__chrome-1000); --str-chat__text-primary: var( --str-chat__chrome-900 ); /** Main body text. Used for message content, titles, and any text that carries primary meaning. */ --str-chat__text-secondary: var( --str-chat__chrome-700 ); /** Supporting metadata text. Used for timestamps, subtitles, and secondary labels. */ --str-chat__text-tertiary: var( --str-chat__chrome-500 ); /** De-emphasized text. Used for hints, placeholders, and lowest-priority supporting information. */ --str-chat__text-on-inverse: var( --str-chat__chrome-0 ); /** Text on inverse-colored surfaces. Flips between light and dark to maintain legibility when the background inverts. */ --str-chat__text-on-accent: var( --str-chat__chrome-0 ); /** Text on accent-colored surfaces. Stays white in both light and dark mode since the accent background doesn't invert. */ --str-chat__text-disabled: var( --str-chat__chrome-300 ); /** Text for non-interactive or unavailable states. Communicates that an element can't be interacted with. */ --str-chat__text-link: var( --str-chat__brand-500 ); /** Hyperlinks and inline actions. Uses the brand color to signal interactivity within text content. */ --str-chat__avatar-bg-default: var(--str-chat__avatar-palette-bg-1); --str-chat__avatar-bg-placeholder: var(--str-chat__chrome-150); --str-chat__avatar-text-default: var(--str-chat__avatar-palette-text-1); --str-chat__avatar-text-placeholder: var(--str-chat__chrome-500); --str-chat__avatar-presence-bg-online: var( --str-chat__accent-success ); /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */ --str-chat__accent-primary: var( --str-chat__brand-500 ); /** The main brand color. Used for interactive elements, buttons, links, and primary actions. Override this to apply your brand color across the SDK. */ --str-chat__accent-neutral: var( --str-chat__chrome-500 ); /** A mid-tone gray for de-emphasized UI elements. */ --str-chat__button-primary-bg: var(--str-chat__accent-primary); --str-chat__button-primary-text: var(--str-chat__accent-primary); --str-chat__button-primary-text-on-accent: var(--str-chat__text-on-accent); --str-chat__button-primary-text-on-dark: var(--str-chat__text-on-inverse); --str-chat__button-primary-border-on-dark: var(--str-chat__border-core-on-inverse); --str-chat__button-secondary-bg: var(--str-chat__background-core-surface-default); --str-chat__button-secondary-bg-liquid-glass: var( --str-chat__background-core-elevation-0 ); --str-chat__button-secondary-text: var(--str-chat__text-primary); --str-chat__button-secondary-text-on-accent: var(--str-chat__text-primary); --str-chat__button-secondary-text-on-dark: var(--str-chat__text-on-inverse); --str-chat__button-secondary-border: var(--str-chat__border-core-default); --str-chat__button-secondary-border-on-dark: var(--str-chat__border-core-on-inverse); --str-chat__button-destructive-bg-liquid-glass: var( --str-chat__background-core-elevation-0 ); --str-chat__button-destructive-text-on-accent: var(--str-chat__text-on-accent); --str-chat__button-destructive-text-on-dark: var(--str-chat__text-on-inverse); --str-chat__button-destructive-border-on-dark: var(--str-chat__text-on-inverse); --str-chat__border-utility-active: var( --str-chat__accent-primary ); /** Active input border. Used for focused text fields and selected form elements. */ --str-chat__chat-bg-incoming: var( --str-chat__background-core-surface-default ); /** Incoming bubble background. */ --str-chat__chat-bg-attachment-incoming: var( --str-chat__background-core-surface-strong ); /** Attachment card in incoming bubble. */ --str-chat__chat-text-incoming: var(--str-chat__text-primary); /** Message body text. */ --str-chat__chat-text-username: var(--str-chat__text-secondary); /** Username label. */ --str-chat__chat-text-timestamp: var(--str-chat__text-tertiary); /** Time labels. */ --str-chat__chat-text-read: var(--str-chat__accent-primary); --str-chat__chat-text-mention: var(--str-chat__text-link); /** Mention styling. */ --str-chat__chat-text-link: var( --str-chat__text-link ); /** Links inside message bubbles. */ --str-chat__chat-text-reaction: var( --str-chat__text-secondary ); /** Reaction count text. */ --str-chat__chat-text-system: var( --str-chat__text-secondary ); /** System messages like date separators. */ --str-chat__chat-border-incoming: var(--str-chat__border-core-subtle); --str-chat__chat-border-on-chat-incoming: var(--str-chat__border-core-strong); --str-chat__chat-waveform-bar-playing: var(--str-chat__accent-primary); --str-chat__chat-poll-progress-fill-outgoing: var(--str-chat__accent-primary); --str-chat__chat-thread-connector-incoming: var(--str-chat__border-core-default); --str-chat__input-text-default: var( --str-chat__text-primary ); /** Main text inside the chat input. */ --str-chat__input-text-placeholder: var( --str-chat__text-tertiary ); /** Placeholder text for the input. Lower emphasis than main text. */ --str-chat__input-text-disabled: var( --str-chat__text-disabled ); /** Placeholder text for the input. Lower emphasis than main text. */ --str-chat__input-text-icon: var( --str-chat__text-tertiary ); /** Icons inside the input area (attach, emoji, camera, send when idle). Matches secondary text strength. */ --str-chat__input-send-icon: var( --str-chat__accent-primary ); /** Default send icon color in the input. Uses the brand accent. */ --str-chat__input-send-icon-disabled: var( --str-chat__text-disabled ); /** Send icon when disabled (e.g. empty input). */ --str-chat__reaction-bg: var(--str-chat__background-core-elevation-3); --str-chat__reaction-border: var(--str-chat__border-core-default); --str-chat__reaction-text: var(--str-chat__text-primary); --str-chat__reaction-emoji: var(--str-chat__text-primary); --str-chat__presence-border: var( --str-chat__border-core-inverse ); /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */ --str-chat__presence-bg-offline: var( --str-chat__accent-neutral ); /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */ --str-chat__system-caret: var(--str-chat__accent-primary); --str-chat__badge-bg-default: var(--str-chat__background-core-elevation-3); --str-chat__badge-bg-primary: var(--str-chat__accent-primary); --str-chat__badge-bg-neutral: var(--str-chat__accent-neutral); --str-chat__badge-text: var(--str-chat__text-primary); --str-chat__badge-text-on-inverse: var(--str-chat__text-on-inverse); --str-chat__badge-text-on-accent: var(--str-chat__text-on-accent); --str-chat__badge-border: var(--str-chat__border-core-on-inverse); --str-chat__control-remove-control-bg: var(--str-chat__background-core-inverse); --str-chat__control-remove-control-icon: var(--str-chat__text-on-inverse); --str-chat__control-remove-control-border: var(--str-chat__border-core-on-inverse); --str-chat__control-progress-bar-fill: var(--str-chat__accent-neutral); --str-chat__control-progress-bar-track: var(--str-chat__background-core-surface-strong); --str-chat__control-toggle-switch-bg: var(--str-chat__accent-neutral); --str-chat__control-toggle-switch-bg-selected: var(--str-chat__accent-primary); --str-chat__control-toggle-switch-bg-disabled: var( --str-chat__background-utility-disabled ); --str-chat__control-toggle-switch-knob: var(--str-chat__background-core-on-accent); --str-chat__control-playback-toggle-text: var(--str-chat__text-primary); --str-chat__control-playback-toggle-border: var(--str-chat__border-core-default); --str-chat__control-checkbox-border: var(--str-chat__border-core-default); --str-chat__control-checkbox-bg-selected: var(--str-chat__accent-primary); --str-chat__control-checkbox-icon: var(--str-chat__text-on-accent); --str-chat__control-play-button-icon: var(--str-chat__text-on-accent); --str-chat__control-playback-thumb-bg-default: var( --str-chat__background-core-on-accent ); --str-chat__control-playback-thumb-bg-active: var(--str-chat__accent-primary); --str-chat__control-playback-thumb-border-active: var( --str-chat__border-core-on-accent ); --str-chat__control-radio-button-border: var(--str-chat__border-core-default); --str-chat__control-radio-button-bg-selected: var(--str-chat__accent-primary); --str-chat__control-radio-button-indicator: var(--str-chat__text-on-accent); --str-chat__control-radio-check-border: var(--str-chat__border-core-default); --str-chat__control-radio-check-bg-selected: var(--str-chat__accent-primary); --str-chat__control-radio-check-icon: var(--str-chat__text-on-accent); --str-chat__control-chip-border: var(--str-chat__border-core-default); --str-chat__control-chip-text: var(--str-chat__text-primary); --str-chat__avatar-presence-bg-offline: var( --str-chat__accent-neutral ); /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */ --str-chat__avatar-presence-border: var( --str-chat__border-core-on-inverse ); /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */ --str-chat__chat-text-typing-indicator: var( --str-chat__chat-text-incoming ); /** Typing indicator chip. */ --str-chat__chat-poll-progress-track-incoming: var( --str-chat__control-progress-bar-track ); --str-chat__chat-poll-progress-fill-incoming: var( --str-chat__control-progress-bar-fill ); } .str-chat__theme-dark, .str-chat:not(.str-chat__theme-dark) *:not(.str-chat__theme-dark) .str-chat__theme-inverse { --str-chat__background-core-overlay-light: rgba( 0, 0, 0, 0.75 ); /** A light semi-transparent layer. Used to lighten surfaces and for hover states on dark backgrounds. */ --str-chat__background-core-overlay-dark: rgba( 0, 0, 0, 0.5 ); /** A dark semi-transparent layer. Used for image overlays. */ --str-chat__background-core-scrim: rgba( 0, 0, 0, 0.75 ); /** A heavy semi-transparent layer. Used behind sheets, drawers, and modals to separate them from content. */ --str-chat__background-utility-hover: rgba( 255, 255, 255, 0.15 ); /** A semi-transparent overlay applied on pointer hover. Sits on top of any surface without replacing it. */ --str-chat__background-utility-pressed: rgba( 255, 255, 255, 0.2 ); /** A slightly stronger overlay applied during an active press or tap. Provides tactile feedback on interactive elements. */ --str-chat__background-utility-selected: rgba( 255, 255, 255, 0.25 ); /** Indicates an active or selected state. Used for selected messages, active list items, and toggled controls. */ --str-chat__border-utility-selected: rgba( 255, 255, 255, 0.15 ); /** Border for selected or active items. Used for highlighted list items and active controls. */ --str-chat__border-utility-hover: rgba( 255, 255, 255, 0.1 ); /** Applied on pointer hover over bordered interactive elements. */ --str-chat__border-utility-pressed: rgba( 255, 255, 255, 0.2 ); /** Applied during an active press on bordered interactive elements. */ --str-chat__border-core-opacity-subtle: rgba( 255, 255, 255, 0.2 ); /** A very light transparent border. Used as a frame treatment on images and media attachments. */ --str-chat__border-core-opacity-strong: rgba( 255, 255, 255, 0.25 ); /** A stronger transparent border for elements on colored or dark backgrounds. Used for waveform bars and similar treatments. */ --str-chat__system-bg-blur: rgba(0, 0, 0, 0.01); --str-chat__system-scrollbar: rgba(255, 255, 255, 0.5); /** * Minimum interactive hit target size. * * iOS / Android: enforce minimum touch target. * Web: do not apply a min-width or min-height; size to content. * * Note: Web uses a placeholder value in Figma due to variable mode constraints. */ /** * Minimum interactive hit target size. * * iOS / Android: enforce minimum touch target. * Web: do not apply a min-width or min-height; size to content. * * Note: Web uses a placeholder value in Figma due to variable mode constraints. */ --str-chat__background-core-highlight: var( --str-chat__yellow-800 ); /** A tint for drawing attention to content. Used for highlights and pinned messages. */ --str-chat__avatar-palette-bg-1: var(--str-chat__blue-600); --str-chat__avatar-palette-bg-2: var(--str-chat__cyan-600); --str-chat__avatar-palette-bg-3: var(--str-chat__green-600); --str-chat__avatar-palette-bg-4: var(--str-chat__purple-600); --str-chat__avatar-palette-bg-5: var(--str-chat__yellow-600); --str-chat__avatar-palette-text-1: var(--str-chat__blue-100); --str-chat__avatar-palette-text-2: var(--str-chat__cyan-100); --str-chat__avatar-palette-text-3: var(--str-chat__green-100); --str-chat__avatar-palette-text-4: var(--str-chat__purple-100); --str-chat__avatar-palette-text-5: var(--str-chat__yellow-100); --str-chat__accent-success: var( --str-chat__green-300 ); /** Indicates a positive or completed state. Used for confirmations, sent indicators, and success feedback. */ --str-chat__accent-warning: var( --str-chat__yellow-300 ); /** Indicates a cautionary state that requires attention. Used for moderation flags and non-critical alerts. */ --str-chat__accent-error: var( --str-chat__red-400 ); /** Indicates a failure or destructive state. Used for failed messages, validation errors, and deletions. */ --str-chat__brand-50: var(--str-chat__blue-900); --str-chat__brand-100: var(--str-chat__blue-800); --str-chat__brand-150: var(--str-chat__blue-700); --str-chat__brand-200: var(--str-chat__blue-600); --str-chat__brand-300: var(--str-chat__blue-500); --str-chat__brand-500: var(--str-chat__blue-300); --str-chat__brand-600: var(--str-chat__blue-200); --str-chat__brand-700: var(--str-chat__blue-150); --str-chat__brand-800: var(--str-chat__blue-100); --str-chat__brand-900: var(--str-chat__blue-50); --str-chat__chrome-0: var(--str-chat__base-black); --str-chat__chrome-50: var(--str-chat__neutral-900); --str-chat__chrome-100: var(--str-chat__neutral-800); --str-chat__chrome-150: var(--str-chat__neutral-700); --str-chat__chrome-200: var(--str-chat__neutral-600); --str-chat__chrome-300: var(--str-chat__neutral-500); --str-chat__chrome-400: var(--str-chat__neutral-400); --str-chat__chrome-500: var(--str-chat__neutral-300); --str-chat__chrome-600: var(--str-chat__neutral-200); --str-chat__chrome-700: var(--str-chat__neutral-150); --str-chat__chrome-800: var(--str-chat__neutral-100); --str-chat__chrome-900: var(--str-chat__neutral-50); --str-chat__chrome-1000: var(--str-chat__base-white); --str-chat__background-core-elevation-1: var( --str-chat__chrome-50 ); /** Slightly raised surfaces. Used for content containers that sit directly on the base layer, such as the message list and channel list. */ --str-chat__background-core-elevation-2: var( --str-chat__chrome-100 ); /** Floating and modal surfaces. Used for popovers, dropdowns, dialogs, and any element that interrupts the content flow. */ --str-chat__background-core-elevation-3: var( --str-chat__chrome-200 ); /** Used for badge counts that float above other UI elements. */ --str-chat__background-core-surface-card: var( --str-chat__chrome-100 ); /** Background for contained, card-style elements. Matches the surface in light mode but lifts slightly in dark mode to maintain visual separation. */ --str-chat__background-core-on-accent: var( --str-chat__chrome-1000 ); /** Background for elements placed on an accent-colored surface. Ensures legibility against brand colors. */ --str-chat__border-core-default: var( --str-chat__chrome-200 ); /** Standard border for surfaces and containers. Used for input fields, cards, and dividers on neutral backgrounds. */ --str-chat__border-core-on-accent: var( --str-chat__chrome-1000 ); /** Border on accent-colored surfaces. Stays white in both modes since the accent background doesn't invert. */ --str-chat__text-on-accent: var( --str-chat__chrome-1000 ); /** Text on accent-colored surfaces. Stays white in both light and dark mode since the accent background doesn't invert. */ --str-chat__text-link: var( --str-chat__brand-600 ); /** Hyperlinks and inline actions. Uses the brand color to signal interactivity within text content. */ --str-chat__accent-primary: var( --str-chat__brand-400 ); /** The main brand color. Used for interactive elements, buttons, links, and primary actions. Override this to apply your brand color across the SDK. */ } /* Numeric styles are used for compact, layout-critical UI elements such as: - badge counts, - avatar initials, - keyboard key labels, and - numeric labels inside pills. Numeric tokens are classified as layout-stable UI indicators, not content text. */ .str-chat { /* The font used in the chat, by default, we use [preinstalled OS fonts](https://systemfontstack.com/) */ --str-chat__font-family: var(--str-chat__typography-font-family-sans), -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, Adwaita Sans, Cantarell, Ubuntu, roboto, noto, helvetica, arial, sans-serif; --str-chat__font-heading-xs: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-sm) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-heading-sm: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-md) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-heading-md: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-lg) / var(--str-chat__typography-line-height-relaxed) var(--str-chat__font-family); --str-chat__font-heading-lg: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-xl) / var(--str-chat__typography-line-height-relaxed) var(--str-chat__font-family); --str-chat__font-body-default: normal var(--str-chat__typography-font-weight-regular) var(--str-chat__typography-font-size-md) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-body-emphasis: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-md) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-body-link: normal var(--str-chat__typography-font-weight-regular) var(--str-chat__typography-font-size-md) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-body-link-emphasis: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-md) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-caption-default: normal var(--str-chat__typography-font-weight-regular) var(--str-chat__typography-font-size-sm) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-caption-emphasis: normal var(--str-chat__typography-font-weight-semi-bold) var(--str-chat__typography-font-size-sm) / var(--str-chat__typography-line-height-normal) var(--str-chat__font-family); --str-chat__font-caption-lin