stream-chat-react 14.0.0-beta.7 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/cjs/{WithAudioPlayback.83ba0e35.js → WithAudioPlayback.d26afa91.js} +1012 -986
  2. package/dist/cjs/WithAudioPlayback.d26afa91.js.map +1 -0
  3. package/dist/cjs/emojis.js +1 -1
  4. package/dist/cjs/index.js +2424 -2138
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/css/index.css +1412 -1130
  7. package/dist/css/index.css.map +1 -1
  8. package/dist/es/{WithAudioPlayback.21b7f35a.mjs → WithAudioPlayback.9b779236.mjs} +1197 -1171
  9. package/dist/es/WithAudioPlayback.9b779236.mjs.map +1 -0
  10. package/dist/es/emojis.mjs +1 -1
  11. package/dist/es/index.mjs +2476 -2190
  12. package/dist/es/index.mjs.map +1 -1
  13. package/dist/types/components/Attachment/Audio.d.ts.map +1 -1
  14. package/dist/types/components/Attachment/FileAttachment.d.ts.map +1 -1
  15. package/dist/types/components/Attachment/components/DownloadButton.d.ts +12 -3
  16. package/dist/types/components/Attachment/components/DownloadButton.d.ts.map +1 -1
  17. package/dist/types/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.d.ts.map +1 -1
  18. package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.defaults.d.ts.map +1 -1
  19. package/dist/types/components/ChannelListItem/utils.d.ts.map +1 -1
  20. package/dist/types/components/Chat/Chat.d.ts.map +1 -1
  21. package/dist/types/components/Dialog/components/ContextMenu.d.ts +3 -1
  22. package/dist/types/components/Dialog/components/ContextMenu.d.ts.map +1 -1
  23. package/dist/types/components/Dialog/service/DialogPortal.d.ts.map +1 -1
  24. package/dist/types/components/FileIcon/FileIcon.d.ts +1 -3
  25. package/dist/types/components/FileIcon/FileIcon.d.ts.map +1 -1
  26. package/dist/types/components/FileIcon/FileIconSet.d.ts +10 -10
  27. package/dist/types/components/FileIcon/FileIconSet.d.ts.map +1 -1
  28. package/dist/types/components/Form/NumericInput.d.ts.map +1 -1
  29. package/dist/types/components/Form/TextInput.d.ts +15 -8
  30. package/dist/types/components/Form/TextInput.d.ts.map +1 -1
  31. package/dist/types/components/Form/index.d.ts +1 -0
  32. package/dist/types/components/Form/index.d.ts.map +1 -1
  33. package/dist/types/components/Icons/icons.d.ts +4 -0
  34. package/dist/types/components/Icons/icons.d.ts.map +1 -1
  35. package/dist/types/components/Message/MessageUI.d.ts.map +1 -1
  36. package/dist/types/components/Message/utils.d.ts +2 -0
  37. package/dist/types/components/Message/utils.d.ts.map +1 -1
  38. package/dist/types/components/MessageActions/MessageActions.d.ts.map +1 -1
  39. package/dist/types/components/MessageActions/MessageActions.defaults.d.ts.map +1 -1
  40. package/dist/types/components/MessageActions/downloadUtils.d.ts +25 -0
  41. package/dist/types/components/MessageActions/downloadUtils.d.ts.map +1 -0
  42. package/dist/types/components/MessageActions/hooks/useBaseMessageActionSetFilter.d.ts +1 -1
  43. package/dist/types/components/MessageActions/hooks/useBaseMessageActionSetFilter.d.ts.map +1 -1
  44. package/dist/types/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.d.ts +2 -2
  45. package/dist/types/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.d.ts.map +1 -1
  46. package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.d.ts.map +1 -1
  47. package/dist/types/components/Poll/PollCreationDialog/OptionFieldSet.d.ts.map +1 -1
  48. package/dist/types/components/Reactions/ReactionSelector.d.ts +2 -0
  49. package/dist/types/components/Reactions/ReactionSelector.d.ts.map +1 -1
  50. package/dist/types/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.d.ts.map +1 -1
  51. package/dist/types/components/Tooltip/Tooltip.d.ts +4 -2
  52. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  53. package/dist/types/i18n/Streami18n.d.ts +3 -4
  54. package/dist/types/i18n/Streami18n.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/cjs/WithAudioPlayback.83ba0e35.js.map +0 -1
  57. package/dist/es/WithAudioPlayback.21b7f35a.mjs.map +0 -1
@@ -16,144 +16,623 @@
16
16
  transform: rotate(45deg);
17
17
  }
18
18
 
19
- .str-chat {
20
- /* Used for elements where sizing is necessary (such as icons, avatar), you can use this variable to scale those elements */
21
- --str-chat__spacing-px: 1px;
22
- }
23
-
24
- .str-chat {
25
- /* Border radius used for circular elements */
26
- --str-chat__border-radius-circle: var(--radius-max);
27
- /* The font used in the chat, by default, we use [preinstalled OS fonts](https://systemfontstack.com/) */
28
- --str-chat__font-family:
29
- var(--typography-font-family-sans), system-ui, -apple-system, BlinkMacSystemFont,
30
- Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
31
- --str-chat__metadata-emphasis-text: normal var(--typography-font-weight-semi-bold)
32
- var(--typography-font-size-xs) / var(--typography-line-height-tight)
33
- var(--str-chat__font-family);
34
- --str-chat__metadata-default-text: normal var(--typography-font-weight-regular)
35
- var(--typography-font-size-xs) / var(--typography-line-height-tight)
36
- var(--str-chat__font-family);
37
- --str-chat__caption-emphasis-text: normal var(--typography-font-weight-semi-bold)
38
- var(--typography-font-size-sm) / var(--typography-line-height-normal)
39
- var(--str-chat__font-family);
40
- --str-chat__caption-default-text: normal var(--typography-font-weight-regular)
41
- var(--typography-font-size-sm) / var(--typography-line-height-normal)
42
- var(--str-chat__font-family);
43
- --str-chat__body-emphasis-text: normal var(--typography-font-weight-semi-bold)
44
- var(--typography-font-size-md) / var(--typography-line-height-normal)
45
- var(--str-chat__font-family);
46
- --str-chat__body-default-text: normal var(--typography-font-weight-regular)
47
- var(--typography-font-size-md) / var(--typography-line-height-normal)
48
- var(--str-chat__font-family);
49
- --str-chat__heading-xs-text: normal var(--typography-font-weight-semi-bold)
50
- var(--typography-font-size-sm) / var(--typography-line-height-normal)
51
- var(--str-chat__font-family);
52
- --str-chat__heading-sm-text: normal var(--typography-font-weight-semi-bold)
53
- var(--typography-font-size-md) / var(--typography-line-height-normal)
54
- var(--str-chat__font-family);
55
- --str-chat__heading-md-text: normal var(--typography-font-weight-semi-bold)
56
- var(--typography-font-size-lg) / var(--typography-line-height-relaxed)
57
- var(--str-chat__font-family);
58
- --str-chat__heading-lg-text: normal var(--typography-font-weight-semi-bold)
59
- var(--typography-font-size-xl) / var(--typography-line-height-relaxed)
60
- var(--str-chat__font-family);
61
- --str-chat__numeric-md-text: normal var(--typography-font-weight-bold)
62
- var(--typography-font-size-xxs) / 100% var(--str-chat__font-family);
63
- --str-chat__numeric-xl-text: normal var(--typography-font-weight-bold)
64
- var(--typography-font-size-sm) / 100% var(--str-chat__font-family);
65
- color: var(--text-primary, #1a1b25);
66
- }
67
-
68
19
  .str-chat,
69
- .str-chat__theme-light {
70
- /* Used for emphasis, brands can inject their main color using this variable */
71
- --str-chat__primary-color: var(--accent-primary);
72
- /* If the primary color is used as a background, text/icons are displayed in this color */
73
- --str-chat__on-primary-color: var(--str-chat__grey50);
74
- /* Used as a background color for the main chat UI components */
75
- --str-chat__background-color: var(--str-chat__grey50);
76
- /* Used as a background color for the main chat UI components */
77
- --str-chat__secondary-background-color: var(--str-chat__grey50);
78
- /* A neutral color used to give emphasis to different surfaces */
79
- --str-chat__surface-color: var(--str-chat__grey300);
80
- /* A neutral color used to give emphasis to different surfaces */
81
- --str-chat__secondary-surface-color: var(--str-chat__grey200);
82
- /* A neutral color used to give emphasis to different surfaces */
83
- --str-chat__tertiary-surface-color: var(--str-chat__grey100);
84
- /* The main color used for texts/icons */
85
- --str-chat__text-color: var(--str-chat__grey950);
86
- /* Used for texts/icons that need less emphasis */
87
- --str-chat__text-low-emphasis-color: var(--str-chat__grey500);
88
- /* Used for displaying disabled UI elements (typically buttons) */
89
- --str-chat__disabled-color: var(--str-chat__grey400);
90
- /* Used for error messages, and destructive actions */
91
- --str-chat__danger-color: var(--str-chat__red400);
92
- /* The background color used to highlight a message when jumping to a message. Only available in React SDK. */
93
- --str-chat__message-highlight-color: var(--str-chat__yellow50);
94
- /* Used for displaying the unread badge */
95
- --str-chat__unread-badge-color: var(--str-chat__red400);
96
- /* Used for text/icon colors if unread badge color is used as a background color */
97
- --str-chat__on-unread-badge-color: var(--str-chat__grey50);
98
- /* The background color used for subtle overlays */
99
- --str-chat__secondary-overlay-color: rgba(0, 0, 0, 0.2);
100
- /* The text/icon color used on subtle overlays */
101
- --str-chat__secondary-overlay-text-color: var(--str-chat__grey50);
102
- /* If a component has a box shadow applied to it, this will be the color used for the shadow */
103
- --str-chat__box-shadow-color: rgba(0, 0, 0, 0.18);
104
- --str-chat__box-shadow-elevation-1:
105
- 0 0 0 1px rgba(0, 0, 0, 0.05), 0 6px 12px 0 rgba(0, 0, 0, 0.16),
106
- 0 20px 32px 0 rgba(0, 0, 0, 0.12);
107
- /* Used for online indicator and success messages */
108
- --str-chat__info-color: var(--str-chat__green500);
109
- }
110
-
111
- .str-chat__theme-dark {
112
- --str-chat__primary-color: var(--accent-primary);
113
- --str-chat__on-primary-color: var(--str-chat__grey50);
114
- --str-chat__background-color: var(--str-chat__grey950);
115
- --str-chat__secondary-background-color: var(--str-chat__grey900);
116
- --str-chat__surface-color: var(--str-chat__grey700);
117
- --str-chat__secondary-surface-color: var(--str-chat__grey800);
118
- --str-chat__tertiary-surface-color: var(--str-chat__grey900);
119
- --str-chat__text-color: var(--str-chat__grey50);
120
- --str-chat__text-low-emphasis-color: var(--str-chat__grey500);
121
- --str-chat__disabled-color: var(--str-chat__grey600);
122
- --str-chat__danger-color: var(--str-chat__red600);
123
- --str-chat__message-highlight-color: var(--str-chat__yellow900);
124
- --str-chat__unread-badge-color: var(--str-chat__red400);
125
- --str-chat__on-unread-badge-color: var(--str-chat__grey50);
126
- --str-chat__secondary-overlay-color: rgba(0, 0, 0, 0.4);
127
- --str-chat__secondary-overlay-text-color: var(--str-chat__grey50);
128
- --str-chat__box-shadow-color: rgba(0, 0, 0, 0.8);
129
- --str-chat__info-color: var(--str-chat__green500);
20
+ .str-chat__theme-dark .str-chat__theme-inverse {
21
+ /**
22
+ * Do not edit directly, this file was auto-generated.
23
+ */
24
+ --base-transparent-0: rgba(255, 255, 255, 0);
25
+ --base-transparent-white-10: rgba(255, 255, 255, 0.1);
26
+ --base-transparent-white-20: rgba(255, 255, 255, 0.2);
27
+ --base-transparent-white-30: rgba(255, 255, 255, 0.3);
28
+ --base-transparent-white-70: rgba(255, 255, 255, 0.7);
29
+ --base-transparent-black-5: rgba(0, 0, 0, 0.05); /** Used for bg in closeButton */
30
+ --base-transparent-black-10: rgba(0, 0, 0, 0.1); /** Used for bg in closeButton */
31
+ --base-transparent-black-70: rgba(0, 0, 0, 0.7); /** Used for bg in closeButton */
32
+ --base-black: #000000;
33
+ --base-white: #ffffff;
34
+ --slate-50: #f6f8fa;
35
+ --slate-100: #ebeef1;
36
+ --slate-150: #d5dbe1;
37
+ --slate-200: #c0c8d2;
38
+ --slate-300: #a3acba;
39
+ --slate-400: #87909f;
40
+ --slate-500: #687385;
41
+ --slate-600: #545969;
42
+ --slate-700: #414552;
43
+ --slate-800: #30313d;
44
+ --slate-900: #1a1b25;
45
+ --neutral-50: #f8f8f8;
46
+ --neutral-100: #efefef;
47
+ --neutral-150: #d8d8d8;
48
+ --neutral-200: #c4c4c4;
49
+ --neutral-300: #ababab;
50
+ --neutral-400: #8f8f8f;
51
+ --neutral-500: #6a6a6a;
52
+ --neutral-600: #565656;
53
+ --neutral-700: #464646;
54
+ --neutral-800: #323232;
55
+ --neutral-900: #1c1c1c;
56
+ --blue-50: #f3f7ff;
57
+ --blue-100: #e3edff;
58
+ --blue-150: #c3d9ff;
59
+ --blue-200: #a5c5ff;
60
+ --blue-300: #78a8ff;
61
+ --blue-400: #4586ff;
62
+ --blue-500: #005fff;
63
+ --blue-600: #1b53bd;
64
+ --blue-700: #19418d;
65
+ --blue-800: #142f63;
66
+ --blue-900: #091a3b;
67
+ --cyan-50: #f1fbfc;
68
+ --cyan-100: #d1f3f6;
69
+ --cyan-150: #a9e4ea;
70
+ --cyan-200: #72d7e0;
71
+ --cyan-300: #45bcc7;
72
+ --cyan-400: #1e9ea9;
73
+ --cyan-500: #248088;
74
+ --cyan-600: #006970;
75
+ --cyan-700: #065056;
76
+ --cyan-800: #003a3f;
77
+ --cyan-900: #002124;
78
+ --green-50: #e1ffee;
79
+ --green-100: #bdfcdb;
80
+ --green-150: #8febbd;
81
+ --green-200: #59dea3;
82
+ --green-300: #00c384;
83
+ --green-400: #00a46e;
84
+ --green-500: #277e59;
85
+ --green-600: #006643;
86
+ --green-700: #004f33;
87
+ --green-800: #003a25;
88
+ --green-900: #002213;
89
+ --purple-50: #f7f8ff;
90
+ --purple-100: #ecedff;
91
+ --purple-150: #d4d7ff;
92
+ --purple-200: #c1c5ff;
93
+ --purple-300: #a1a3ff;
94
+ --purple-400: #8482fc;
95
+ --purple-500: #644af9;
96
+ --purple-600: #553bd8;
97
+ --purple-700: #4032a1;
98
+ --purple-800: #2e2576;
99
+ --purple-900: #1a114d;
100
+ --yellow-50: #fef9da;
101
+ --yellow-100: #fcedb9;
102
+ --yellow-150: #fcd579;
103
+ --yellow-200: #f6bf57;
104
+ --yellow-300: #fa922b;
105
+ --yellow-400: #f26d10;
106
+ --yellow-500: #c84801;
107
+ --yellow-600: #a82c00;
108
+ --yellow-700: #842106;
109
+ --yellow-800: #5f1a05;
110
+ --yellow-900: #331302;
111
+ --red-50: #fff5fa;
112
+ --red-100: #ffe7f2;
113
+ --red-150: #ffccdf;
114
+ --red-200: #ffb1cd;
115
+ --red-300: #fe87a1;
116
+ --red-400: #fc526a;
117
+ --red-500: #d90d10;
118
+ --red-600: #b3093c;
119
+ --red-700: #890d37;
120
+ --red-800: #68052b;
121
+ --red-900: #3e021a;
122
+ --violet-50: #fef4ff;
123
+ --violet-100: #fbe8fe;
124
+ --violet-150: #f7cffc;
125
+ --violet-200: #eeb5f4;
126
+ --violet-300: #e68bec;
127
+ --violet-400: #d75fe7;
128
+ --violet-500: #b716ca;
129
+ --violet-600: #9d00ae;
130
+ --violet-700: #7c0089;
131
+ --violet-800: #5c0066;
132
+ --violet-900: #36003d;
133
+ --lime-50: #f1fde8;
134
+ --lime-100: #d4ffb0;
135
+ --lime-150: #b1ee79;
136
+ --lime-200: #9cda5d;
137
+ --lime-300: #78c100;
138
+ --lime-400: #639e11;
139
+ --lime-500: #4b7a0a;
140
+ --lime-600: #3e6213;
141
+ --lime-700: #355315;
142
+ --lime-800: #203a00;
143
+ --lime-900: #112100;
144
+ --size-2: 2px;
145
+ --size-4: 4px;
146
+ --size-6: 6px;
147
+ --size-8: 8px;
148
+ --size-12: 12px;
149
+ --size-16: 16px;
150
+ --size-20: 20px;
151
+ --size-24: 24px;
152
+ --size-32: 32px;
153
+ --size-40: 40px;
154
+ --size-48: 48px;
155
+ --size-64: 64px;
156
+ --size-28: 28px;
157
+ --size-80: 80px;
158
+ --size-128: 128px;
159
+ --size-240: 240px;
160
+ --size-320: 320px;
161
+ --size-480: 480px;
162
+ --size-560: 560px;
163
+ --size-640: 640px;
164
+ --size-760: 760px;
165
+ --size-144: 144px;
166
+ --size-208: 208px;
167
+ --size-56: 56px;
168
+ --radius-0: 0px;
169
+ --radius-2: 2px;
170
+ --radius-4: 4px;
171
+ --radius-6: 6px;
172
+ --radius-8: 8px;
173
+ --radius-12: 12px;
174
+ --radius-16: 16px;
175
+ --radius-20: 20px;
176
+ --radius-24: 24px;
177
+ --radius-32: 32px;
178
+ --radius-full: 9999px;
179
+ --space-0: 0px;
180
+ --space-2: 2px;
181
+ --space-4: 4px;
182
+ --space-8: 8px;
183
+ --space-12: 12px;
184
+ --space-16: 16px;
185
+ --space-20: 20px;
186
+ --space-24: 24px;
187
+ --space-32: 32px;
188
+ --space-40: 40px;
189
+ --space-48: 48px;
190
+ --space-64: 64px;
191
+ --space-80: 80px;
192
+ --w100: 1px;
193
+ --w150: 1.5px;
194
+ --w200: 2px;
195
+ --w300: 3px;
196
+ --w400: 4px;
197
+ --w120: 1.2px;
198
+ --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. */
199
+ --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. */
200
+ --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. */
201
+ --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. */
202
+ --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. */
203
+ --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. */
204
+ --font-weight-w400: 400;
205
+ --font-weight-w500: 500;
206
+ --font-weight-w600: 600;
207
+ --font-weight-w700: 700;
208
+ --font-size-size-8: 8px;
209
+ --font-size-size-10: 10px;
210
+ --font-size-size-11: 11px;
211
+ --font-size-size-12: 12px;
212
+ --font-size-size-13: 13px;
213
+ --font-size-size-14: 14px;
214
+ --font-size-size-16: 16px;
215
+ --font-size-size-15: 15px;
216
+ --font-size-size-17: 17px;
217
+ --font-size-size-18: 18px;
218
+ --font-size-size-20: 20px;
219
+ --font-size-size-22: 22px;
220
+ --font-size-size-24: 24px;
221
+ --font-size-size-28: 28px;
222
+ --font-size-size-32: 32px;
223
+ --font-size-size-40: 40px;
224
+ --font-size-size-48: 48px;
225
+ --font-size-size-64: 64px;
226
+ --line-height-line-height-8: 8px;
227
+ --line-height-line-height-10: 10px;
228
+ --line-height-line-height-12: 12px;
229
+ --line-height-line-height-13: 13px;
230
+ --line-height-line-height-14: 14px;
231
+ --line-height-line-height-15: 15px;
232
+ --line-height-line-height-16: 16px;
233
+ --line-height-line-height-17: 17px;
234
+ --line-height-line-height-18: 18px;
235
+ --line-height-line-height-20: 20px;
236
+ --line-height-line-height-24: 24px;
237
+ --line-height-line-height-28: 28px;
238
+ --line-height-line-height-32: 32px;
239
+ --line-height-line-height-40: 40px;
240
+ --line-height-line-height-48: 48px;
241
+ --typography-font-family-sans: 'Geist';
242
+ --typography-font-family-mono: 'Geist Mono';
243
+ --typography-font-weight-regular: 400;
244
+ --typography-font-weight-medium: 500;
245
+ --typography-font-weight-semi-bold: 600;
246
+ --typography-font-weight-bold: 700;
247
+ --typography-font-size-xxs: 10px; /** Micro text such as timestamps or subtle metadata. */
248
+ --typography-font-size-xs: 12px; /** Compact secondary text, small UI labels. */
249
+ --typography-font-size-sm: 14px; /** Default mobile body size, small controls. */
250
+ --typography-font-size-md: 16px; /** Default desktop body size, main text. */
251
+ --typography-font-size-lg: 18px; /** Medium emphasis, section labels. */
252
+ --typography-font-size-xl: 20px; /** Small headings. */
253
+ --typography-font-size-2xl: 24px; /** Section titles, important headings. */
254
+ --typography-font-size-micro: 8px; /** Micro text such as timestamps or subtle metadata. */
255
+ --typography-line-height-tight: 16px; /** Compact text, headers, UI labels. */
256
+ --typography-line-height-normal: 20px; /** Default reading line-height for sizes 14–16px. */
257
+ --typography-line-height-relaxed: 24px; /** For larger text sizes or multiline descriptions. */
258
+ --light-elevation-1:
259
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 1px 2px 0px rgba(0, 0, 0, 0.1),
260
+ 0px 4px 8px 0px rgba(0, 0, 0, 0.06); /** Low elevation level for subtle separation. */
261
+ --light-elevation-2:
262
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 2px 4px 0px rgba(0, 0, 0, 0.12),
263
+ 0px 6px 16px 0px rgba(0, 0, 0, 0.06);
264
+ --light-elevation-3:
265
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 4px 8px 0px rgba(0, 0, 0, 0.14),
266
+ 0px 12px 24px 0px rgba(0, 0, 0, 0.1);
267
+ --light-elevation-4:
268
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 6px 12px 0px rgba(0, 0, 0, 0.16),
269
+ 0px 20px 32px 0px rgba(0, 0, 0, 0.12);
270
+ --dark-elevation-1:
271
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.2),
272
+ 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
273
+ --dark-elevation-2:
274
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 2px 4px 0px rgba(0, 0, 0, 0.22),
275
+ 0px 6px 16px 0px rgba(0, 0, 0, 0.12);
276
+ --dark-elevation-3:
277
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 4px 8px 0px rgba(0, 0, 0, 0.24),
278
+ 0px 12px 24px 0px rgba(0, 0, 0, 0.14);
279
+ --dark-elevation-4:
280
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 6px 12px 0px rgba(0, 0, 0, 0.28),
281
+ 0px 20px 32px 0px rgba(0, 0, 0, 0.16);
282
+ --radius-none: 0px;
283
+ --radius-xxs: 2px;
284
+ --radius-xs: 4px;
285
+ --radius-sm: 6px;
286
+ --radius-md: 8px;
287
+ --radius-lg: 12px;
288
+ --radius-xl: 16px;
289
+ --radius-2xl: 20px;
290
+ --radius-max: 9999px;
291
+ --radius-3xl: 24px;
292
+ --radius-4xl: 32px;
293
+ --spacing-none: 0px; /** No spacing. Used for tight component joins. */
294
+ --spacing-xxs: 4px; /** Base unit. Minimal padding, tight gaps. */
295
+ --spacing-xs: 8px; /** Small padding and default vertical gaps. */
296
+ --spacing-sm: 12px; /** Common internal spacing in inputs and buttons. */
297
+ --spacing-md: 16px; /** Default large padding for sections and cards. */
298
+ --spacing-xl: 24px; /** Comfortable spacing for chat bubbles and list items. */
299
+ --spacing-2xl: 32px; /** Larger spacing for panels, modals, and gutters. */
300
+ --spacing-3xl: 40px; /** Used for wide layout spacing and breathing room. */
301
+ --spacing-lg: 20px; /** Medium spacing for grouping elements and section breaks. */
302
+ --spacing-xxxs: 2px;
303
+ --device-radius: 8px;
304
+ --device-safe-area-bottom: 0px;
305
+ --device-safe-area-top: 0px;
306
+ --message-bubble-radius-group-top: 20px;
307
+ --message-bubble-radius-group-middle: 20px;
308
+ --message-bubble-radius-group-bottom: 20px;
309
+ --message-bubble-radius-tail: 0px;
310
+ --message-bubble-radius-attachment: 12px;
311
+ --message-bubble-radius-attachment-inline: 8px;
312
+ --composer-radius-fixed: 24px;
313
+ --composer-radius-floating: 24px;
314
+ --button-radius-lg: 9999px;
315
+ --button-radius-md: 9999px;
316
+ --button-radius-sm: 9999px;
317
+ --button-radius-full: 9999px;
318
+ --button-visual-height-sm: 32px;
319
+ --button-visual-height-md: 40px;
320
+ --button-visual-height-lg: 48px;
321
+ --button-visual-height-xs: 24px;
322
+ /**
323
+ * Minimum interactive hit target size.
324
+ *
325
+ * iOS / Android: enforce minimum touch target.
326
+ * Web: do not apply a min-width or min-height; size to content.
327
+ *
328
+ * Note: Web uses a placeholder value in Figma due to variable mode constraints.
329
+ */
330
+ --button-hit-target-min-height: 48px;
331
+ /**
332
+ * Minimum interactive hit target size.
333
+ *
334
+ * iOS / Android: enforce minimum touch target.
335
+ * Web: do not apply a min-width or min-height; size to content.
336
+ *
337
+ * Note: Web uses a placeholder value in Figma due to variable mode constraints.
338
+ */
339
+ --button-hit-target-min-width: 48px;
340
+ --button-padding-y-lg: 14px;
341
+ --button-padding-y-md: 10px;
342
+ --button-padding-y-sm: 6px;
343
+ --button-padding-y-xs: 4px;
344
+ --button-padding-x-icon-only-lg: 14px;
345
+ --button-padding-x-icon-only-md: 10px;
346
+ --button-padding-x-icon-only-sm: 6px;
347
+ --button-padding-x-icon-only-xs: 4px;
348
+ --button-padding-x-with-label-lg: 16px;
349
+ --button-padding-x-with-label-md: 16px;
350
+ --button-padding-x-with-label-sm: 16px;
351
+ --button-padding-x-with-label-xs: 12px;
352
+ --button-primary-bg: #005fff;
353
+ --button-primary-bg-liquid-glass: rgba(255, 255, 255, 0);
354
+ --button-primary-text: #005fff;
355
+ --button-primary-text-on-accent: #ffffff;
356
+ --button-primary-text-on-dark: #ffffff;
357
+ --button-primary-border: #a5c5ff;
358
+ --button-primary-border-on-dark: #ffffff;
359
+ --button-secondary-bg: #ebeef1;
360
+ --button-secondary-bg-liquid-glass: #ffffff;
361
+ --button-secondary-text: #1a1b25;
362
+ --button-secondary-text-on-accent: #1a1b25;
363
+ --button-secondary-text-on-dark: #ffffff;
364
+ --button-secondary-border: #d5dbe1;
365
+ --button-secondary-border-on-dark: #ffffff;
366
+ --button-destructive-bg: #d90d10;
367
+ --button-destructive-bg-liquid-glass: #ffffff;
368
+ --button-destructive-text: #d90d10;
369
+ --button-destructive-text-on-accent: #ffffff;
370
+ --button-destructive-text-on-dark: #ffffff;
371
+ --button-destructive-border: #d90d10;
372
+ --button-destructive-border-on-dark: #ffffff;
373
+ --icon-size-xs: 12px;
374
+ --icon-size-sm: 16px;
375
+ --icon-size-md: 20px;
376
+ --icon-size-lg: 32px;
377
+ --icon-stroke-subtle: 1.2px;
378
+ --icon-stroke-default: 1.5px;
379
+ --icon-stroke-emphasis: 2px;
380
+ --emoji-sm: 16px;
381
+ --emoji-md: 24px;
382
+ --emoji-lg: 32px;
383
+ --emoji-xl: 48px;
384
+ --emoji-2xl: 64px;
385
+ --background-core-app: #ffffff; /** The outermost application background. Sits behind all surfaces and is generally not overridden directly. */
386
+ --background-core-elevation-0: #ffffff; /** 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. */
387
+ --background-core-elevation-1: #ffffff; /** Slightly raised surfaces. Used for content containers that sit directly on the base layer, such as the message list and channel list. */
388
+ --background-core-elevation-2: #ffffff; /** Floating and modal surfaces. Used for popovers, dropdowns, dialogs, and any element that interrupts the content flow. */
389
+ --background-core-elevation-3: #ffffff; /** Used for badge counts that float above other UI elements. */
390
+ --background-core-surface-default: #ebeef1; /** Background for sectioned content areas. Used for grouped containers, and distinct content regions. */
391
+ --background-core-surface-subtle: #f6f8fa; /** A slightly receded background. Used for secondary containers or to create soft visual separation. */
392
+ --background-core-surface-card: #f6f8fa; /** Background for contained, card-style elements. Matches the surface in light mode but lifts slightly in dark mode to maintain visual separation. */
393
+ --background-core-surface-strong: #d5dbe1; /** A more prominent background. Used for elements that need to stand out from the main surface. */
394
+ --background-core-inverse: #000000; /** The opposite of the primary surface. Used for tooltips, snackbars, and high-contrast floating elements. */
395
+ --background-core-on-accent: #ffffff; /** Background for elements placed on an accent-colored surface. Ensures legibility against brand colors. */
396
+ --background-core-highlight: #fef9da; /** A tint for drawing attention to content. Used for highlights and pinned messages. */
397
+ --background-core-overlay-light: rgba(
398
+ 255,
399
+ 255,
400
+ 255,
401
+ 0.75
402
+ ); /** A light semi-transparent layer. Used to lighten surfaces and for hover states on dark backgrounds. */
403
+ --background-core-overlay-dark: rgba(
404
+ 26,
405
+ 27,
406
+ 37,
407
+ 0.25
408
+ ); /** A dark semi-transparent layer. Used for image overlays. */
409
+ --background-core-scrim: rgba(
410
+ 26,
411
+ 27,
412
+ 37,
413
+ 0.5
414
+ ); /** A heavy semi-transparent layer. Used behind sheets, drawers, and modals to separate them from content. */
415
+ --background-utility-hover: rgba(
416
+ 26,
417
+ 27,
418
+ 37,
419
+ 0.1
420
+ ); /** A semi-transparent overlay applied on pointer hover. Sits on top of any surface without replacing it. */
421
+ --background-utility-pressed: rgba(
422
+ 26,
423
+ 27,
424
+ 37,
425
+ 0.15
426
+ ); /** A slightly stronger overlay applied during an active press or tap. Provides tactile feedback on interactive elements. */
427
+ --background-utility-selected: rgba(
428
+ 26,
429
+ 27,
430
+ 37,
431
+ 0.2
432
+ ); /** Indicates an active or selected state. Used for selected messages, active list items, and toggled controls. */
433
+ --background-utility-disabled: #ebeef1; /** Background for non-interactive elements. Flattens the element visually to signal unavailability. */
434
+ --border-utility-hover: rgba(
435
+ 26,
436
+ 27,
437
+ 37,
438
+ 0.1
439
+ ); /** Applied on pointer hover over bordered interactive elements. */
440
+ --border-utility-pressed: rgba(
441
+ 26,
442
+ 27,
443
+ 37,
444
+ 0.2
445
+ ); /** Applied during an active press on bordered interactive elements. */
446
+ --border-utility-selected: rgba(
447
+ 26,
448
+ 27,
449
+ 37,
450
+ 0.15
451
+ ); /** Border for selected or active items. Used for highlighted list items and active controls. */
452
+ --border-utility-focused: #c3d9ff; /** Focus ring for keyboard and accessibility navigation. Uses the brand color to signal input focus. */
453
+ --border-utility-active: #005fff; /** Active input border. Used for focused text fields and selected form elements. */
454
+ --border-utility-success: #00a46e; /** Border for positive or confirmed states. Used on validated inputs and success indicators. */
455
+ --border-utility-warning: #f26d10; /** Border for cautionary states. Used on inputs or elements requiring attention. */
456
+ --border-utility-error: #d90d10; /** Border for failure or invalid states. Used on failed inputs and destructive confirmations. */
457
+ --border-utility-disabled: #ebeef1; /** Border for non-interactive elements. Matches the disabled surface to visually flatten the element. */
458
+ --border-utility-disabled-on-surface: #d5dbe1; /** Border for disabled elements on elevated surfaces. Stays visually distinct from the surface without drawing attention to a non-interactive element. */
459
+ --border-core-default: #d5dbe1; /** Standard border for surfaces and containers. Used for input fields, cards, and dividers on neutral backgrounds. */
460
+ --border-core-subtle: #ebeef1; /** A lighter border for minimal separation. Used where a full-strength border would feel too heavy. */
461
+ --border-core-strong: #a3acba; /** An emphatic border for elements that need clear definition. Used for focused containers and prominent dividers. */
462
+ --border-core-inverse: #ffffff; /** Used on dark backgrounds. */
463
+ --border-core-on-accent: #ffffff; /** Border on accent-colored surfaces. Stays white in both modes since the accent background doesn't invert. */
464
+ --border-core-on-surface: #a3acba; /** Border for elements sitting on elevated surfaces. Uses a stronger value than default to maintain visible separation when the background is darker. */
465
+ --border-core-opacity-subtle: rgba(
466
+ 26,
467
+ 27,
468
+ 37,
469
+ 0.1
470
+ ); /** A very light transparent border. Used as a frame treatment on images and media attachments. */
471
+ --border-core-opacity-strong: rgba(
472
+ 26,
473
+ 27,
474
+ 37,
475
+ 0.25
476
+ ); /** A stronger transparent border for elements on colored or dark backgrounds. Used for waveform bars and similar treatments. */
477
+ --border-core-on-inverse: #ffffff; /** Border on inverse-colored surfaces. Stays legible when the background flips between light and dark mode. */
478
+ --chat-bg-incoming: #ebeef1; /** Incoming bubble background. */
479
+ --chat-bg-outgoing: #e3edff; /** Outgoing bubble background. */
480
+ --chat-bg-attachment-incoming: #d5dbe1; /** Attachment card in incoming bubble. */
481
+ --chat-bg-attachment-outgoing: #c3d9ff; /** Attachment card in outgoing bubble. */
482
+ --chat-text-incoming: #1a1b25; /** Message body text. */
483
+ --chat-text-outgoing: #091a3b; /** Message body text. */
484
+ --chat-text-username: #414552; /** Username label. */
485
+ --chat-text-timestamp: #687385; /** Time labels. */
486
+ --chat-text-typing-indicator: #1a1b25; /** Typing indicator chip. */
487
+ --chat-text-read: #005fff;
488
+ --chat-text-mention: #005fff; /** Mention styling. */
489
+ --chat-text-link: #005fff; /** Links inside message bubbles. */
490
+ --chat-text-reaction: #414552; /** Reaction count text. */
491
+ --chat-text-system: #414552; /** System messages like date separators. */
492
+ --chat-border-incoming: #ebeef1;
493
+ --chat-border-outgoing: #e3edff;
494
+ --chat-border-on-chat-incoming: #a3acba;
495
+ --chat-border-on-chat-outgoing: #78a8ff;
496
+ --chat-reply-indicator-incoming: #87909f; /** Reply indicator shading for incoming. */
497
+ --chat-reply-indicator-outgoing: #4586ff; /** Reply indicator shading for outgoing. */
498
+ --chat-waveform-bar: rgba(26, 27, 37, 0.25);
499
+ --chat-waveform-bar-playing: #005fff;
500
+ --chat-poll-progress-track-incoming: #d5dbe1;
501
+ --chat-poll-progress-track-outgoing: #a5c5ff;
502
+ --chat-poll-progress-fill-incoming: #687385;
503
+ --chat-poll-progress-fill-outgoing: #005fff;
504
+ --chat-thread-connector-incoming: #d5dbe1;
505
+ --chat-thread-connector-outgoing: #c3d9ff;
506
+ --input-text-default: #1a1b25; /** Main text inside the chat input. */
507
+ --input-text-placeholder: #687385; /** Placeholder text for the input. Lower emphasis than main text. */
508
+ --input-text-disabled: #a3acba; /** Placeholder text for the input. Lower emphasis than main text. */
509
+ --input-text-icon: #687385; /** Icons inside the input area (attach, emoji, camera, send when idle). Matches secondary text strength. */
510
+ --input-send-icon: #005fff; /** Default send icon color in the input. Uses the brand accent. */
511
+ --input-send-icon-disabled: #a3acba; /** Send icon when disabled (e.g. empty input). */
512
+ --reaction-bg: #ffffff;
513
+ --reaction-border: #d5dbe1;
514
+ --reaction-text: #1a1b25;
515
+ --reaction-emoji: #1a1b25;
516
+ --presence-bg-online: #00a46e; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
517
+ --presence-border: #ffffff; /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
518
+ --presence-bg-offline: #687385; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
519
+ --system-text: #000000;
520
+ --system-bg-blur: rgba(255, 255, 255, 0.01);
521
+ --system-caret: #005fff;
522
+ --system-scrollbar: rgba(0, 0, 0, 0.5);
523
+ --badge-bg-default: #ffffff;
524
+ --badge-bg-primary: #005fff;
525
+ --badge-bg-neutral: #687385;
526
+ --badge-bg-error: #d90d10;
527
+ --badge-bg-inverse: #000000;
528
+ --badge-bg-overlay: rgba(0, 0, 0, 0.75);
529
+ --badge-text: #1a1b25;
530
+ --badge-text-on-inverse: #ffffff;
531
+ --badge-text-on-accent: #ffffff;
532
+ --badge-border: #ffffff;
533
+ --control-remove-control-bg: #000000;
534
+ --control-remove-control-icon: #ffffff;
535
+ --control-remove-control-border: #ffffff;
536
+ --control-progress-bar-fill: #687385;
537
+ --control-progress-bar-track: #d5dbe1;
538
+ --control-toggle-switch-bg: #687385;
539
+ --control-toggle-switch-bg-selected: #005fff;
540
+ --control-toggle-switch-bg-disabled: #ebeef1;
541
+ --control-toggle-switch-knob: #ffffff;
542
+ --control-playback-toggle-text: #1a1b25;
543
+ --control-playback-toggle-border: #d5dbe1;
544
+ --control-checkbox-bg: rgba(255, 255, 255, 0);
545
+ --control-checkbox-border: #d5dbe1;
546
+ --control-checkbox-bg-selected: #005fff;
547
+ --control-checkbox-icon: #ffffff;
548
+ --control-play-button-bg: rgba(0, 0, 0, 0.75);
549
+ --control-play-button-icon: #ffffff;
550
+ --control-playback-thumb-bg-default: #ffffff;
551
+ --control-playback-thumb-border-default: rgba(26, 27, 37, 0.25);
552
+ --control-playback-thumb-bg-active: #005fff;
553
+ --control-playback-thumb-border-active: #ffffff;
554
+ --control-radio-button-bg: rgba(255, 255, 255, 0);
555
+ --control-radio-button-border: #d5dbe1;
556
+ --control-radio-button-bg-selected: #005fff;
557
+ --control-radio-button-indicator: #ffffff;
558
+ --control-radio-check-bg: rgba(255, 255, 255, 0);
559
+ --control-radio-check-border: #d5dbe1;
560
+ --control-radio-check-bg-selected: #005fff;
561
+ --control-radio-check-icon: #ffffff;
562
+ --control-chip-border: #d5dbe1;
563
+ --control-chip-text: #1a1b25;
564
+ --text-primary: #1a1b25; /** Main body text. Used for message content, titles, and any text that carries primary meaning. */
565
+ --text-secondary: #414552; /** Supporting metadata text. Used for timestamps, subtitles, and secondary labels. */
566
+ --text-tertiary: #687385; /** De-emphasized text. Used for hints, placeholders, and lowest-priority supporting information. */
567
+ --text-on-inverse: #ffffff; /** Text on inverse-colored surfaces. Flips between light and dark to maintain legibility when the background inverts. */
568
+ --text-on-accent: #ffffff; /** Text on accent-colored surfaces. Stays white in both light and dark mode since the accent background doesn't invert. */
569
+ --text-disabled: #a3acba; /** Text for non-interactive or unavailable states. Communicates that an element can't be interacted with. */
570
+ --text-link: #005fff; /** Hyperlinks and inline actions. Uses the brand color to signal interactivity within text content. */
571
+ --avatar-palette-bg-1: #c3d9ff;
572
+ --avatar-palette-bg-2: #a9e4ea;
573
+ --avatar-palette-bg-3: #8febbd;
574
+ --avatar-palette-bg-4: #d4d7ff;
575
+ --avatar-palette-bg-5: #fcd579;
576
+ --avatar-palette-text-1: #091a3b;
577
+ --avatar-palette-text-2: #002124;
578
+ --avatar-palette-text-3: #002213;
579
+ --avatar-palette-text-4: #1a114d;
580
+ --avatar-palette-text-5: #331302;
581
+ --avatar-bg-default: #c3d9ff;
582
+ --avatar-bg-placeholder: #d5dbe1;
583
+ --avatar-text-default: #091a3b;
584
+ --avatar-text-placeholder: #687385;
585
+ --avatar-presence-bg-online: #00a46e; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
586
+ --avatar-presence-bg-offline: #687385; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
587
+ --avatar-presence-border: #ffffff; /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
588
+ --accent-primary: #005fff; /** The main brand color. Used for interactive elements, buttons, links, and primary actions. Override this to apply your brand color across the SDK. */
589
+ --accent-success: #00a46e; /** Indicates a positive or completed state. Used for confirmations, sent indicators, and success feedback. */
590
+ --accent-warning: #f26d10; /** Indicates a cautionary state that requires attention. Used for moderation flags and non-critical alerts. */
591
+ --accent-error: #d90d10; /** Indicates a failure or destructive state. Used for failed messages, validation errors, and deletions. */
592
+ --accent-neutral: #687385; /** A mid-tone gray for de-emphasized UI elements. */
593
+ --brand-50: #f3f7ff;
594
+ --brand-100: #e3edff;
595
+ --brand-150: #c3d9ff;
596
+ --brand-200: #a5c5ff;
597
+ --brand-300: #78a8ff;
598
+ --brand-400: #4586ff;
599
+ --brand-500: #005fff;
600
+ --brand-600: #1b53bd;
601
+ --brand-700: #19418d;
602
+ --brand-800: #142f63;
603
+ --brand-900: #091a3b;
604
+ --skeleton-loading-base: rgba(
605
+ 255,
606
+ 255,
607
+ 255,
608
+ 0
609
+ ); /** Base color for the default skeleton loading gradient. Used as the background tone for placeholder surfaces. */
610
+ --skeleton-loading-highlight: rgba(
611
+ 255,
612
+ 255,
613
+ 255,
614
+ 0.75
615
+ ); /** Highlight color for the default skeleton loading gradient. Used for the moving shimmer to indicate loading activity. */
616
+ --chrome-0: #ffffff;
617
+ --chrome-50: #f6f8fa;
618
+ --chrome-100: #ebeef1;
619
+ --chrome-150: #d5dbe1;
620
+ --chrome-200: #c0c8d2;
621
+ --chrome-300: #a3acba;
622
+ --chrome-400: #87909f;
623
+ --chrome-500: #687385;
624
+ --chrome-600: #545969;
625
+ --chrome-700: #414552;
626
+ --chrome-800: #30313d;
627
+ --chrome-900: #1a1b25;
628
+ --chrome-1000: #000000;
130
629
  }
131
630
 
132
- .str-chat {
133
- --str-chat__grey950: #080707;
134
- --str-chat__grey900: #17191c;
135
- --str-chat__grey800: #1c1e22;
136
- --str-chat__grey700: #272a30;
137
- --str-chat__grey600: #4c525c;
138
- --str-chat__grey500: #72767e;
139
- --str-chat__grey400: #b4b7bb;
140
- --str-chat__grey300: #dbdde1;
141
- --str-chat__grey200: #e9eaed;
142
- --str-chat__grey100: #f4f4f5;
143
- --str-chat__grey50: #ffffff;
144
- --str-chat__red600: #cc000b;
145
- --str-chat__red400: #ff3742;
146
- --str-chat__green500: #20e070;
147
- --str-chat__yellow900: #332500;
148
- }
149
-
150
- /**
151
- * Source https://www.figma.com/design/Us73erK1xFNcB5EH3hyq6Y/Chat-SDK-Design-System?node-id=164-2815&p=f&view=variables&var-set-id=41-278&m=dev
152
- */
153
- .str-chat,
154
- .str-chat__theme-dark .str-chat__theme-inverse {
155
- /* ─── Palette (color primitives) ─── */
156
- /* Base */
631
+ .str-chat__theme-dark,
632
+ .str-chat:not(.str-chat__theme-dark) *:not(.str-chat__theme-dark) .str-chat__theme-inverse {
633
+ /**
634
+ * Do not edit directly, this file was auto-generated.
635
+ */
157
636
  --base-transparent-0: rgba(255, 255, 255, 0);
158
637
  --base-transparent-white-10: rgba(255, 255, 255, 0.1);
159
638
  --base-transparent-white-20: rgba(255, 255, 255, 0.2);
@@ -164,7 +643,6 @@
164
643
  --base-transparent-black-70: rgba(0, 0, 0, 0.7); /** Used for bg in closeButton */
165
644
  --base-black: #000000;
166
645
  --base-white: #ffffff;
167
- /* Slate */
168
646
  --slate-50: #f6f8fa;
169
647
  --slate-100: #ebeef1;
170
648
  --slate-150: #d5dbe1;
@@ -176,7 +654,6 @@
176
654
  --slate-700: #414552;
177
655
  --slate-800: #30313d;
178
656
  --slate-900: #1a1b25;
179
- /* Neutral */
180
657
  --neutral-50: #f8f8f8;
181
658
  --neutral-100: #efefef;
182
659
  --neutral-150: #d8d8d8;
@@ -188,7 +665,6 @@
188
665
  --neutral-700: #464646;
189
666
  --neutral-800: #323232;
190
667
  --neutral-900: #1c1c1c;
191
- /* Blue */
192
668
  --blue-50: #f3f7ff;
193
669
  --blue-100: #e3edff;
194
670
  --blue-150: #c3d9ff;
@@ -200,7 +676,6 @@
200
676
  --blue-700: #19418d;
201
677
  --blue-800: #142f63;
202
678
  --blue-900: #091a3b;
203
- /* Cyan */
204
679
  --cyan-50: #f1fbfc;
205
680
  --cyan-100: #d1f3f6;
206
681
  --cyan-150: #a9e4ea;
@@ -212,7 +687,6 @@
212
687
  --cyan-700: #065056;
213
688
  --cyan-800: #003a3f;
214
689
  --cyan-900: #002124;
215
- /* Green */
216
690
  --green-50: #e1ffee;
217
691
  --green-100: #bdfcdb;
218
692
  --green-150: #8febbd;
@@ -224,7 +698,6 @@
224
698
  --green-700: #004f33;
225
699
  --green-800: #003a25;
226
700
  --green-900: #002213;
227
- /* Purple */
228
701
  --purple-50: #f7f8ff;
229
702
  --purple-100: #ecedff;
230
703
  --purple-150: #d4d7ff;
@@ -236,7 +709,6 @@
236
709
  --purple-700: #4032a1;
237
710
  --purple-800: #2e2576;
238
711
  --purple-900: #1a114d;
239
- /* Yellow */
240
712
  --yellow-50: #fef9da;
241
713
  --yellow-100: #fcedb9;
242
714
  --yellow-150: #fcd579;
@@ -248,7 +720,6 @@
248
720
  --yellow-700: #842106;
249
721
  --yellow-800: #5f1a05;
250
722
  --yellow-900: #331302;
251
- /* Red */
252
723
  --red-50: #fff5fa;
253
724
  --red-100: #ffe7f2;
254
725
  --red-150: #ffccdf;
@@ -260,7 +731,6 @@
260
731
  --red-700: #890d37;
261
732
  --red-800: #68052b;
262
733
  --red-900: #3e021a;
263
- /* Violet */
264
734
  --violet-50: #fef4ff;
265
735
  --violet-100: #fbe8fe;
266
736
  --violet-150: #f7cffc;
@@ -272,7 +742,6 @@
272
742
  --violet-700: #7c0089;
273
743
  --violet-800: #5c0066;
274
744
  --violet-900: #36003d;
275
- /* Lime */
276
745
  --lime-50: #f1fde8;
277
746
  --lime-100: #d4ffb0;
278
747
  --lime-150: #b1ee79;
@@ -284,21 +753,6 @@
284
753
  --lime-700: #355315;
285
754
  --lime-800: #203a00;
286
755
  --lime-900: #112100;
287
- /* Chrome */
288
- --chrome-0: #ffffff; /** Neutral accent for low-priority badges. */
289
- --chrome-50: #f6f8fa;
290
- --chrome-100: #ebeef1;
291
- --chrome-150: #d5dbe1;
292
- --chrome-200: #c0c8d2;
293
- --chrome-300: #a3acba;
294
- --chrome-400: #87909f;
295
- --chrome-500: #687385;
296
- --chrome-600: #545969;
297
- --chrome-700: #414552;
298
- --chrome-800: #30313d;
299
- --chrome-900: #1a1b25;
300
- --chrome-1000: #000000; /** Neutral accent for low-priority badges. */
301
- /* ─── Size ─── */
302
756
  --size-2: 2px;
303
757
  --size-4: 4px;
304
758
  --size-6: 6px;
@@ -323,8 +777,7 @@
323
777
  --size-144: 144px;
324
778
  --size-208: 208px;
325
779
  --size-56: 56px;
326
- /* ─── Radius ─── */
327
- --radius-0: 0;
780
+ --radius-0: 0px;
328
781
  --radius-2: 2px;
329
782
  --radius-4: 4px;
330
783
  --radius-6: 6px;
@@ -335,8 +788,7 @@
335
788
  --radius-24: 24px;
336
789
  --radius-32: 32px;
337
790
  --radius-full: 9999px;
338
- /* ─── Space ─── */
339
- --space-0: 0;
791
+ --space-0: 0px;
340
792
  --space-2: 2px;
341
793
  --space-4: 4px;
342
794
  --space-8: 8px;
@@ -349,26 +801,22 @@
349
801
  --space-48: 48px;
350
802
  --space-64: 64px;
351
803
  --space-80: 80px;
352
- /* ─── Width (stroke/weight) ─── */
353
- --w100: 1;
354
- --w150: 1.5;
355
- --w200: 2;
356
- --w300: 3;
357
- --w400: 4;
358
- --w120: 1.2;
359
- /* ─── Font family ─── */
804
+ --w100: 1px;
805
+ --w150: 1.5px;
806
+ --w200: 2px;
807
+ --w300: 3px;
808
+ --w400: 4px;
809
+ --w120: 1.2px;
360
810
  --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. */
361
811
  --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. */
362
812
  --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. */
363
813
  --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. */
364
814
  --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. */
365
815
  --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. */
366
- /* ─── Font weight ─── */
367
816
  --font-weight-w400: 400;
368
817
  --font-weight-w500: 500;
369
818
  --font-weight-w600: 600;
370
819
  --font-weight-w700: 700;
371
- /* ─── Font size ─── */
372
820
  --font-size-size-8: 8px;
373
821
  --font-size-size-10: 10px;
374
822
  --font-size-size-11: 11px;
@@ -387,7 +835,6 @@
387
835
  --font-size-size-40: 40px;
388
836
  --font-size-size-48: 48px;
389
837
  --font-size-size-64: 64px;
390
- /* ─── Line height ─── */
391
838
  --line-height-line-height-8: 8px;
392
839
  --line-height-line-height-10: 10px;
393
840
  --line-height-line-height-12: 12px;
@@ -403,43 +850,12 @@
403
850
  --line-height-line-height-32: 32px;
404
851
  --line-height-line-height-40: 40px;
405
852
  --line-height-line-height-48: 48px;
406
- /* ─── Typography (semantic) ─── */
853
+ --typography-font-family-sans: 'Geist';
854
+ --typography-font-family-mono: 'Geist Mono';
407
855
  --typography-font-weight-regular: 400;
408
856
  --typography-font-weight-medium: 500;
409
857
  --typography-font-weight-semi-bold: 600;
410
858
  --typography-font-weight-bold: 700;
411
- /* ─── Elevation (shadows) ─── */
412
- --light-elevation-1: 0 0 0 1px rgba(0,0,0,0.05), 0 1px 2px 0 rgba(0,0,0,0.1), 0 4px 8px 0 rgba(0,0,0,0.06); /** Low elevation level for subtle separation. */
413
- --light-elevation-2: 0 0 0 1px rgba(0,0,0,0.05), 0 2px 4px 0 rgba(0,0,0,0.12), 0 6px 16px 0 rgba(0,0,0,0.06);
414
- --light-elevation-3: 0 0 0 1px rgba(0,0,0,0.05), 0 4px 8px 0 rgba(0,0,0,0.14), 0 12px 24px 0 rgba(0,0,0,0.1);
415
- --light-elevation-4: 0 0 0 1px rgba(0,0,0,0.05), 0 6px 12px 0 rgba(0,0,0,0.16), 0 20px 32px 0 rgba(0,0,0,0.12);
416
- --dark-elevation-1: 0 0 0 1px rgba(255,255,255,0.15), 0 1px 2px 0 rgba(0,0,0,0.2), 0 4px 8px 0 rgba(0,0,0,0.1);
417
- --dark-elevation-2: 0 0 0 1px rgba(255,255,255,0.15), 0 2px 4px 0 rgba(0,0,0,0.22), 0 6px 16px 0 rgba(0,0,0,0.12);
418
- --dark-elevation-3: 0 0 0 1px rgba(255,255,255,0.15), 0 4px 8px 0 rgba(0,0,0,0.24), 0 12px 24px 0 rgba(0,0,0,0.14);
419
- --dark-elevation-4: 0 0 0 1px rgba(255,255,255,0.15), 0 6px 12px 0 rgba(0,0,0,0.28), 0 20px 32px 0 rgba(0,0,0,0.16);
420
- /* ─── Button (layout: padding, radius, height, hit target) ─── */
421
- --button-padding-y-lg: 14px;
422
- --button-padding-y-md: 10px;
423
- --button-padding-y-sm: 6px;
424
- --button-padding-y-xs: 4px;
425
- --button-padding-x-icon-only-lg: 14px;
426
- --button-padding-x-icon-only-md: 10px;
427
- --button-padding-x-icon-only-sm: 6px;
428
- --button-padding-x-icon-only-xs: 4px;
429
- --button-padding-x-with-label-lg: 16px;
430
- --button-padding-x-with-label-md: 16px;
431
- --button-padding-x-with-label-sm: 16px;
432
- --button-padding-x-with-label-xs: 12px;
433
- /* ─── Background (core overlays, system) ─── */
434
- --background-core-scrim: rgba(26, 27, 37, 0.5); /** Dimmed overlay for modals. */
435
- --background-core-overlay-light: rgba(255, 255, 255, 0.75); /** Selected overlay. */
436
- --background-core-overlay-dark: rgba(26, 27, 37, 0.25); /** Selected overlay. */
437
- --system-bg-blur: rgba(255, 255, 255, 0.01);
438
- --system-scrollbar: rgba(0, 0, 0, 0.5);
439
- --badge-bg-overlay: rgba(0, 0, 0, 0.75);
440
- /* ─── Typography (family, size scale, line-height) ─── */
441
- --typography-font-family-sans: "Geist";
442
- --typography-font-family-mono: "Geist Mono";
443
859
  --typography-font-size-xxs: 10px; /** Micro text such as timestamps or subtle metadata. */
444
860
  --typography-font-size-xs: 12px; /** Compact secondary text, small UI labels. */
445
861
  --typography-font-size-sm: 14px; /** Default mobile body size, small controls. */
@@ -451,8 +867,31 @@
451
867
  --typography-line-height-tight: 16px; /** Compact text, headers, UI labels. */
452
868
  --typography-line-height-normal: 20px; /** Default reading line-height for sizes 14–16px. */
453
869
  --typography-line-height-relaxed: 24px; /** For larger text sizes or multiline descriptions. */
454
- /* ─── Radius (semantic) ─── */
455
- --radius-none: 0;
870
+ --light-elevation-1:
871
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 1px 2px 0px rgba(0, 0, 0, 0.1),
872
+ 0px 4px 8px 0px rgba(0, 0, 0, 0.06); /** Low elevation level for subtle separation. */
873
+ --light-elevation-2:
874
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 2px 4px 0px rgba(0, 0, 0, 0.12),
875
+ 0px 6px 16px 0px rgba(0, 0, 0, 0.06);
876
+ --light-elevation-3:
877
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 4px 8px 0px rgba(0, 0, 0, 0.14),
878
+ 0px 12px 24px 0px rgba(0, 0, 0, 0.1);
879
+ --light-elevation-4:
880
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 6px 12px 0px rgba(0, 0, 0, 0.16),
881
+ 0px 20px 32px 0px rgba(0, 0, 0, 0.12);
882
+ --dark-elevation-1:
883
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.2),
884
+ 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
885
+ --dark-elevation-2:
886
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 2px 4px 0px rgba(0, 0, 0, 0.22),
887
+ 0px 6px 16px 0px rgba(0, 0, 0, 0.12);
888
+ --dark-elevation-3:
889
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 4px 8px 0px rgba(0, 0, 0, 0.24),
890
+ 0px 12px 24px 0px rgba(0, 0, 0, 0.14);
891
+ --dark-elevation-4:
892
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15), 0px 6px 12px 0px rgba(0, 0, 0, 0.28),
893
+ 0px 20px 32px 0px rgba(0, 0, 0, 0.16);
894
+ --radius-none: 0px;
456
895
  --radius-xxs: 2px;
457
896
  --radius-xs: 4px;
458
897
  --radius-sm: 6px;
@@ -463,8 +902,7 @@
463
902
  --radius-max: 9999px;
464
903
  --radius-3xl: 24px;
465
904
  --radius-4xl: 32px;
466
- /* ─── Spacing ─── */
467
- --spacing-none: 0; /** No spacing. Used for tight component joins. */
905
+ --spacing-none: 0px; /** No spacing. Used for tight component joins. */
468
906
  --spacing-xxs: 4px; /** Base unit. Minimal padding, tight gaps. */
469
907
  --spacing-xs: 8px; /** Small padding and default vertical gaps. */
470
908
  --spacing-sm: 12px; /** Common internal spacing in inputs and buttons. */
@@ -474,10 +912,17 @@
474
912
  --spacing-3xl: 40px; /** Used for wide layout spacing and breathing room. */
475
913
  --spacing-lg: 20px; /** Medium spacing for grouping elements and section breaks. */
476
914
  --spacing-xxxs: 2px;
477
- /* ─── Device ─── */
478
- --device-safe-area-bottom: 0;
479
- --device-safe-area-top: 0;
480
- /* ─── Button (radius, visual height, hit target, liquid glass) ─── */
915
+ --device-radius: 8px;
916
+ --device-safe-area-bottom: 0px;
917
+ --device-safe-area-top: 0px;
918
+ --message-bubble-radius-group-top: 20px;
919
+ --message-bubble-radius-group-middle: 20px;
920
+ --message-bubble-radius-group-bottom: 20px;
921
+ --message-bubble-radius-tail: 0px;
922
+ --message-bubble-radius-attachment: 12px;
923
+ --message-bubble-radius-attachment-inline: 8px;
924
+ --composer-radius-fixed: 24px;
925
+ --composer-radius-floating: 24px;
481
926
  --button-radius-lg: 9999px;
482
927
  --button-radius-md: 9999px;
483
928
  --button-radius-sm: 9999px;
@@ -487,446 +932,312 @@
487
932
  --button-visual-height-lg: 48px;
488
933
  --button-visual-height-xs: 24px;
489
934
  /**
490
- * Minimum interactive hit target size.
491
- *
492
- * iOS / Android: enforce minimum touch target.
493
- * Web: do not apply a min-width or min-height; size to content.
494
- *
495
- * Note: Web uses a placeholder value in Figma due to variable mode constraints.
496
- */
935
+ * Minimum interactive hit target size.
936
+ *
937
+ * iOS / Android: enforce minimum touch target.
938
+ * Web: do not apply a min-width or min-height; size to content.
939
+ *
940
+ * Note: Web uses a placeholder value in Figma due to variable mode constraints.
941
+ */
497
942
  --button-hit-target-min-height: 48px;
498
943
  /**
499
- * Minimum interactive hit target size.
500
- *
501
- * iOS / Android: enforce minimum touch target.
502
- * Web: do not apply a min-width or min-height; size to content.
503
- *
504
- * Note: Web uses a placeholder value in Figma due to variable mode constraints.
505
- */
944
+ * Minimum interactive hit target size.
945
+ *
946
+ * iOS / Android: enforce minimum touch target.
947
+ * Web: do not apply a min-width or min-height; size to content.
948
+ *
949
+ * Note: Web uses a placeholder value in Figma due to variable mode constraints.
950
+ */
506
951
  --button-hit-target-min-width: 48px;
952
+ --button-padding-y-lg: 14px;
953
+ --button-padding-y-md: 10px;
954
+ --button-padding-y-sm: 6px;
955
+ --button-padding-y-xs: 4px;
956
+ --button-padding-x-icon-only-lg: 14px;
957
+ --button-padding-x-icon-only-md: 10px;
958
+ --button-padding-x-icon-only-sm: 6px;
959
+ --button-padding-x-icon-only-xs: 4px;
960
+ --button-padding-x-with-label-lg: 16px;
961
+ --button-padding-x-with-label-md: 16px;
962
+ --button-padding-x-with-label-sm: 16px;
963
+ --button-padding-x-with-label-xs: 12px;
964
+ --button-primary-bg: #4586ff;
507
965
  --button-primary-bg-liquid-glass: rgba(255, 255, 255, 0);
508
- /* ─── Icon & emoji ─── */
966
+ --button-primary-text: #4586ff;
967
+ --button-primary-text-on-accent: #ffffff;
968
+ --button-primary-text-on-dark: #000000;
969
+ --button-primary-border: #1b53bd;
970
+ --button-primary-border-on-dark: #000000;
971
+ --button-secondary-bg: #323232;
972
+ --button-secondary-bg-liquid-glass: #000000;
973
+ --button-secondary-text: #f8f8f8;
974
+ --button-secondary-text-on-accent: #f8f8f8;
975
+ --button-secondary-text-on-dark: #000000;
976
+ --button-secondary-border: #565656;
977
+ --button-secondary-border-on-dark: #000000;
978
+ --button-destructive-bg: #fc526a;
979
+ --button-destructive-bg-liquid-glass: #000000;
980
+ --button-destructive-text: #fc526a;
981
+ --button-destructive-text-on-accent: #ffffff;
982
+ --button-destructive-text-on-dark: #000000;
983
+ --button-destructive-border: #fc526a;
984
+ --button-destructive-border-on-dark: #000000;
509
985
  --icon-size-xs: 12px;
510
986
  --icon-size-sm: 16px;
511
987
  --icon-size-md: 20px;
512
988
  --icon-size-lg: 32px;
513
- --icon-stroke-subtle: 1.2;
514
- --icon-stroke-default: 1.5;
515
- --icon-stroke-emphasis: 2;
989
+ --icon-stroke-subtle: 1.2px;
990
+ --icon-stroke-default: 1.5px;
991
+ --icon-stroke-emphasis: 2px;
992
+ --emoji-sm: 16px;
516
993
  --emoji-md: 24px;
517
994
  --emoji-lg: 32px;
518
995
  --emoji-xl: 48px;
519
996
  --emoji-2xl: 64px;
520
- /* ─── Background (core: elevation, surface, utility) ─── */
521
- --background-core-elevation-0: #ffffff; /** Flat surfaces. */
522
- --background-core-elevation-1: #ffffff; /** Slightly elevated surfaces. */
523
- --background-core-elevation-2: #ffffff; /** Card-like elements. */
524
- --background-core-elevation-3: #ffffff; /** Popovers. */
525
- --background-core-elevation-4: #ffffff; /** Dialogs, modals. */
526
- --background-core-surface: #ebeef1; /** Standard section background. */
527
- --background-core-surface-subtle: #f6f8fa; /** Very light section background. */
528
- --background-core-surface-strong: #d5dbe1; /** Stronger section background. */
529
- --background-core-inverse: #1a1b25; /** Inverse background used for elevated, transient, or high-attention UI surfaces that sit on top of the default app background. */
530
- --background-core-on-accent: #ffffff; /** Use for surfaces that must remain white across themes (e.g., media controls over video). Don’t use for general UI surfaces. */
531
- --background-core-highlight: #fef9da;
532
- --background-core-surface-card: #f6f8fa;
533
- --background-utility-hover: rgba(26, 27, 37, 0.1); /** Hover feedback overlay. */
534
- --background-utility-pressed: rgba(26, 27, 37, 0.15); /** Pressed feedback overlay. */
535
- --background-utility-selected: rgba(26, 27, 37, 0.2); /** Selected overlay. */
536
- --background-utility-disabled: #ebeef1; /** Disabled backgrounds. */
537
- /* ─── Border (utility, core) ─── */
538
- --border-utility-disabled: #ebeef1; /** Optional disabled background for inputs, buttons, or chips. */
539
- --border-utility-hover: rgba(26, 27, 37, 0.1); /** Hover feedback overlay. */
540
- --border-utility-pressed: rgba(26, 27, 37, 0.2); /** Pressed feedback overlay. */
541
- --border-core-default: #d5dbe1; /** Standard surface border. */
542
- --border-core-subtle: #ebeef1; /** Very light separators. */
543
- --border-core-strong: #a3acba; /** Stronger surface border. */
544
- --border-core-on-accent: #ffffff; /** Borders on accent backgrounds. */
545
- --border-core-on-surface: #c0c8d2;
546
- --border-core-inverse: #ffffff; /** Border on inverse (dark) surface, e.g. presence ring. */
547
- --border-utility-focused: var(--blue-150); /** Focus ring or focus border. */
548
- --border-utility-active: var(--accent-primary); /** Focus ring or focus border. */
549
- --border-utility-selected: rgba(26, 27, 37, 0.15); /** Focus ring or focus border. */
550
- --border-core-opacity-subtle: rgba(26, 27, 37, 0.1); /** Image frame border treatment. */
551
- --border-core-opacity-strong: rgba(26, 27, 37, 0.25); /** Image frame border treatment. */
552
- /* ─── Chat (reply, waveform) ─── */
553
- --chat-reply-indicator-incoming: #87909f; /** Reply indicator shading for incoming. */
554
- --chat-waveform-bar: rgba(26, 27, 37, 0.25);
555
- /* ─── System & control ─── */
556
- --system-text: #000000;
557
- --system-caret: var(--accent-primary);
558
- --control-checkbox-bg: rgba(255, 255, 255, 0);
559
- /* ─── Text ─── */
560
- --text-primary: #1a1b25; /** Main text color. */
561
- --text-secondary: #414552; /** Secondary metadata text. */
562
- --text-tertiary: #687385; /** Lowest priority text. */
563
- --text-inverse: #ffffff; /** Text on dark or accent backgrounds. */
564
- --text-disabled: #a3acba; /** Disabled text. */
565
- --text-on-accent: #ffffff; /** Text on dark or accent backgrounds. */
566
- --text-link: var(--accent-primary); /** Hyperlinks and inline actions. */
567
- /* ─── Avatar (palette, placeholder) ─── */
568
- --avatar-palette-bg-1: #c3d9ff;
569
- --avatar-palette-bg-2: #a9e4ea;
570
- --avatar-palette-bg-3: #8febbd;
571
- --avatar-palette-bg-4: #d4d7ff;
572
- --avatar-palette-bg-5: #fcd579;
573
- --avatar-palette-text-1: #091a3b;
574
- --avatar-palette-text-2: #002124;
575
- --avatar-palette-text-3: #002213;
576
- --avatar-palette-text-4: #1a114d;
577
- --avatar-palette-text-5: #331302;
578
- --avatar-bg-placeholder: #d5dbe1;
579
- --avatar-text-placeholder: #687385;
580
- /* ─── Accent & brand ─── */
581
- --accent-success: #00a46e; /** For success states and positive actions. */
582
- --accent-warning: #f26d10; /** Warning or caution messages. */
583
- --accent-error: #d90d10; /** Destructive actions and error states. */
584
- --accent-neutral: #687385; /** Neutral accent for low-priority badges. */
585
- --brand-50: #f3f7ff;
586
- --brand-100: #e3edff;
587
- --brand-150: #c3d9ff;
588
- --brand-200: #a5c5ff;
589
- --brand-300: #78a8ff;
590
- --brand-400: #4586ff;
591
- --brand-500: #005fff;
592
- --brand-600: #1b53bd;
593
- --brand-700: #19418d;
594
- --brand-800: #142f63;
595
- --brand-900: #091a3b;
596
- --accent-primary: #005fff; /** Main brand accent for interactive elements. */
597
- /* ─── Skeleton ─── */
598
- --skeleton-loading-base: rgba(255, 255, 255, 0); /** Base color for the default skeleton loading gradient. Used as the background tone for placeholder surfaces. */
599
- --skeleton-loading-highlight: #ffffff; /** Highlight color for the default skeleton loading gradient. Used for the moving shimmer to indicate loading activity. */
600
- /* ─── Device & message/composer radius ─── */
601
- --device-radius: 8px;
602
- --message-bubble-radius-group-top: 20px;
603
- --message-bubble-radius-group-middle: 20px;
604
- --message-bubble-radius-group-bottom: 20px;
605
- --message-bubble-radius-tail: 0;
606
- --message-bubble-radius-attachment: 12px;
607
- --message-bubble-radius-attachment-inline: 8px;
608
- --composer-radius-fixed: 24px;
609
- --composer-radius-floating: 24px;
610
- /* ─── Button (semantic colors: primary, secondary, destructive) ─── */
611
- --button-primary-bg: var(--accent-primary);
612
- --button-primary-text: var(--accent-primary);
613
- --button-primary-text-on-accent: #ffffff;
614
- --button-primary-border: #a5c5ff;
615
- --button-primary-text-inverse: #ffffff;
616
- --button-primary-border-inverse: #ffffff;
617
- --button-secondary-text: var(--text-primary);
618
- --button-secondary-bg-liquid-glass: #ffffff;
619
- --button-secondary-border: #d5dbe1;
620
- --button-secondary-bg: #ebeef1;
621
- --button-secondary-text-on-accent: var(--text-primary);
622
- --button-secondary-text-inverse: #ffffff;
623
- --button-secondary-border-inverse: #ffffff;
624
- --button-destructive-text: #d90d10;
625
- --button-destructive-bg: #d90d10;
626
- --button-destructive-text-on-accent: #ffffff;
627
- --button-destructive-bg-liquid-glass: #ffffff;
628
- --button-destructive-border: #d90d10;
629
- --button-destructive-text-inverse: #ffffff;
630
- --button-destructive-border-inverse: #ffffff;
631
- --emoji-sm: 16px;
632
- /* ─── Background (core app), border (utility state), chat (bg, text, border) ─── */
633
- --background-core-app: #ffffff; /** Global application background. */
634
- --border-utility-error: #d90d10; /** Error state. */
635
- --border-utility-warning: #f26d10; /** Warning borders. */
636
- --border-utility-success: #00a46e; /** Success borders. */
637
- --chat-bg-incoming: #ebeef1; /** Incoming bubble background. */
638
- --chat-bg-outgoing: #e3edff; /** Outgoing bubble background. */
639
- --chat-bg-attachment-incoming: #d5dbe1; /** Attachment card in incoming bubble. */
640
- --chat-bg-attachment-outgoing: #c3d9ff; /** Attachment card in outgoing bubble. */
641
- --chat-text-timestamp: #687385; /** Time labels. */
642
- --chat-text-username: #414552; /** Username label. */
643
- --chat-text-reaction: #414552; /** Reaction count text. */
644
- --chat-text-system: #414552; /** System messages like date separators. */
645
- --chat-text-incoming: var(--text-primary); /** Message body text. */
646
- --chat-text-outgoing: #091a3b; /** Message body text. */
647
- --chat-border-outgoing: #e3edff;
648
- --chat-border-incoming: #ebeef1;
649
- --chat-border-on-chat-outgoing: #78a8ff;
650
- --chat-border-on-chat-incoming: #a3acba;
997
+ --background-core-app: #000000; /** The outermost application background. Sits behind all surfaces and is generally not overridden directly. */
998
+ --background-core-elevation-0: #000000; /** 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. */
999
+ --background-core-elevation-1: #1c1c1c; /** Slightly raised surfaces. Used for content containers that sit directly on the base layer, such as the message list and channel list. */
1000
+ --background-core-elevation-2: #323232; /** Floating and modal surfaces. Used for popovers, dropdowns, dialogs, and any element that interrupts the content flow. */
1001
+ --background-core-elevation-3: #565656; /** Used for badge counts that float above other UI elements. */
1002
+ --background-core-surface-default: #323232; /** Background for sectioned content areas. Used for grouped containers, and distinct content regions. */
1003
+ --background-core-surface-subtle: #1c1c1c; /** A slightly receded background. Used for secondary containers or to create soft visual separation. */
1004
+ --background-core-surface-card: #323232; /** Background for contained, card-style elements. Matches the surface in light mode but lifts slightly in dark mode to maintain visual separation. */
1005
+ --background-core-surface-strong: #464646; /** A more prominent background. Used for elements that need to stand out from the main surface. */
1006
+ --background-core-inverse: #ffffff; /** The opposite of the primary surface. Used for tooltips, snackbars, and high-contrast floating elements. */
1007
+ --background-core-on-accent: #ffffff; /** Background for elements placed on an accent-colored surface. Ensures legibility against brand colors. */
1008
+ --background-core-highlight: #5f1a05; /** A tint for drawing attention to content. Used for highlights and pinned messages. */
1009
+ --background-core-overlay-light: rgba(
1010
+ 0,
1011
+ 0,
1012
+ 0,
1013
+ 0.75
1014
+ ); /** A light semi-transparent layer. Used to lighten surfaces and for hover states on dark backgrounds. */
1015
+ --background-core-overlay-dark: rgba(
1016
+ 0,
1017
+ 0,
1018
+ 0,
1019
+ 0.5
1020
+ ); /** A dark semi-transparent layer. Used for image overlays. */
1021
+ --background-core-scrim: rgba(
1022
+ 0,
1023
+ 0,
1024
+ 0,
1025
+ 0.75
1026
+ ); /** A heavy semi-transparent layer. Used behind sheets, drawers, and modals to separate them from content. */
1027
+ --background-utility-hover: rgba(
1028
+ 255,
1029
+ 255,
1030
+ 255,
1031
+ 0.15
1032
+ ); /** A semi-transparent overlay applied on pointer hover. Sits on top of any surface without replacing it. */
1033
+ --background-utility-pressed: rgba(
1034
+ 255,
1035
+ 255,
1036
+ 255,
1037
+ 0.2
1038
+ ); /** A slightly stronger overlay applied during an active press or tap. Provides tactile feedback on interactive elements. */
1039
+ --background-utility-selected: rgba(
1040
+ 255,
1041
+ 255,
1042
+ 255,
1043
+ 0.25
1044
+ ); /** Indicates an active or selected state. Used for selected messages, active list items, and toggled controls. */
1045
+ --background-utility-disabled: #323232; /** Background for non-interactive elements. Flattens the element visually to signal unavailability. */
1046
+ --border-utility-error: #fc526a; /** Border for failure or invalid states. Used on failed inputs and destructive confirmations. */
1047
+ --border-utility-warning: #fa922b; /** Border for cautionary states. Used on inputs or elements requiring attention. */
1048
+ --border-utility-success: #00c384; /** Border for positive or confirmed states. Used on validated inputs and success indicators. */
1049
+ --border-utility-selected: rgba(
1050
+ 255,
1051
+ 255,
1052
+ 255,
1053
+ 0.15
1054
+ ); /** Border for selected or active items. Used for highlighted list items and active controls. */
1055
+ --border-utility-disabled: #323232; /** Border for non-interactive elements. Matches the disabled surface to visually flatten the element. */
1056
+ --border-utility-focused: #19418d; /** Focus ring for keyboard and accessibility navigation. Uses the brand color to signal input focus. */
1057
+ --border-utility-active: #4586ff; /** Active input border. Used for focused text fields and selected form elements. */
1058
+ --border-utility-hover: rgba(
1059
+ 255,
1060
+ 255,
1061
+ 255,
1062
+ 0.1
1063
+ ); /** Applied on pointer hover over bordered interactive elements. */
1064
+ --border-utility-pressed: rgba(
1065
+ 255,
1066
+ 255,
1067
+ 255,
1068
+ 0.2
1069
+ ); /** Applied during an active press on bordered interactive elements. */
1070
+ --border-utility-disabled-on-surface: #464646; /** Border for disabled elements on elevated surfaces. Stays visually distinct from the surface without drawing attention to a non-interactive element. */
1071
+ --border-core-default: #565656; /** Standard border for surfaces and containers. Used for input fields, cards, and dividers on neutral backgrounds. */
1072
+ --border-core-subtle: #323232; /** A lighter border for minimal separation. Used where a full-strength border would feel too heavy. */
1073
+ --border-core-strong: #6a6a6a; /** An emphatic border for elements that need clear definition. Used for focused containers and prominent dividers. */
1074
+ --border-core-inverse: #000000; /** Used on dark backgrounds. */
1075
+ --border-core-on-accent: #ffffff; /** Border on accent-colored surfaces. Stays white in both modes since the accent background doesn't invert. */
1076
+ --border-core-opacity-subtle: rgba(
1077
+ 255,
1078
+ 255,
1079
+ 255,
1080
+ 0.2
1081
+ ); /** A very light transparent border. Used as a frame treatment on images and media attachments. */
1082
+ --border-core-opacity-strong: rgba(
1083
+ 255,
1084
+ 255,
1085
+ 255,
1086
+ 0.25
1087
+ ); /** A stronger transparent border for elements on colored or dark backgrounds. Used for waveform bars and similar treatments. */
1088
+ --border-core-on-inverse: #000000; /** Border on inverse-colored surfaces. Stays legible when the background flips between light and dark mode. */
1089
+ --border-core-on-surface: #6a6a6a; /** Border for elements sitting on elevated surfaces. Uses a stronger value than default to maintain visible separation when the background is darker. */
1090
+ --chat-bg-incoming: #323232; /** Incoming bubble background. */
1091
+ --chat-bg-outgoing: #142f63; /** Outgoing bubble background. */
1092
+ --chat-bg-attachment-incoming: #464646; /** Attachment card in incoming bubble. */
1093
+ --chat-bg-attachment-outgoing: #19418d; /** Attachment card in outgoing bubble. */
1094
+ --chat-text-incoming: #f8f8f8; /** Message body text. */
1095
+ --chat-text-outgoing: #f3f7ff; /** Message body text. */
1096
+ --chat-text-username: #d8d8d8; /** Username label. */
1097
+ --chat-text-timestamp: #ababab; /** Time labels. */
1098
+ --chat-text-typing-indicator: #f8f8f8; /** Typing indicator chip. */
1099
+ --chat-text-read: #4586ff;
1100
+ --chat-text-mention: #a5c5ff; /** Mention styling. */
1101
+ --chat-text-link: #a5c5ff; /** Links inside message bubbles. */
1102
+ --chat-text-reaction: #d8d8d8; /** Reaction count text. */
1103
+ --chat-text-system: #d8d8d8; /** System messages like date separators. */
1104
+ --chat-border-incoming: #323232;
1105
+ --chat-border-outgoing: #142f63;
1106
+ --chat-border-on-chat-incoming: #6a6a6a;
1107
+ --chat-border-on-chat-outgoing: #005fff;
1108
+ --chat-reply-indicator-incoming: #8f8f8f; /** Reply indicator shading for incoming. */
651
1109
  --chat-reply-indicator-outgoing: #4586ff; /** Reply indicator shading for outgoing. */
652
- --chat-poll-progress-track-outgoing: #a5c5ff;
653
- --chat-thread-connector-incoming: #d5dbe1;
654
- --chat-thread-connector-outgoing: #c3d9ff;
655
- --chat-text-read: var(--accent-primary);
656
- --chat-text-typing-indicator: var(--text-primary); /** Typing indicator chip. */
657
- --chat-waveform-bar-playing: var(--accent-primary);
658
- --chat-poll-progress-track-incoming: #d5dbe1;
659
- --chat-poll-progress-fill-incoming: #687385;
660
- --chat-poll-progress-fill-outgoing: var(--accent-primary);
661
- --chat-text-mention: var(--accent-primary); /** Mention styling. */
662
- --chat-text-link: var(--accent-primary); /** Links inside message bubbles. */
663
- /* ─── Input ─── */
664
- --input-text-default: var(--text-primary); /** Main text inside the chat input. */
665
- --input-text-placeholder: #687385; /** Placeholder text for the input. Lower emphasis than main text. */
666
- --input-text-icon: #687385; /** Icons inside the input area (attach, emoji, camera, send when idle). Matches secondary text strength. */
667
- --input-text-disabled: #a3acba; /** Placeholder text for the input. Lower emphasis than main text. */
668
- --input-send-icon: var(--accent-primary); /** Default send icon color in the input. Uses the brand accent. */
669
- --input-send-icon-disabled: #a3acba; /** Send icon when disabled (e.g. empty input). */
670
- /* ─── Reaction ─── */
671
- --reaction-bg: #ffffff; /** Reaction bar background. */
672
- --reaction-border: #d5dbe1; /** Border around unselected reaction chips. Subtle in normal modes, strong in high-contrast for visibility. */
673
- --reaction-text: var(--text-primary); /** Count label next to the emoji inside the reaction chip. Uses secondary text so it does not compete with message text. */
674
- --reaction-emoji: var(--text-primary); /** Emoji color inside reaction chips. Uses primary text color so the emoji stays clearly legible. */
675
- /* ─── Presence ─── */
676
- --presence-bg-online: #00a46e; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
677
- --presence-border: #ffffff; /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
678
- --presence-bg-offline: #687385; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
679
- /* ─── Badge ─── */
680
- --badge-border: #ffffff;
681
- --badge-bg-primary: var(--accent-primary);
682
- --badge-bg-error: #d90d10;
683
- --badge-bg-neutral: #687385;
684
- --badge-text: var(--text-primary);
685
- --badge-bg-default: #ffffff;
1110
+ --chat-waveform-bar: rgba(255, 255, 255, 0.25);
1111
+ --chat-waveform-bar-playing: #4586ff;
1112
+ --chat-poll-progress-track-incoming: #464646;
1113
+ --chat-poll-progress-track-outgoing: #1b53bd;
1114
+ --chat-poll-progress-fill-incoming: #ababab;
1115
+ --chat-poll-progress-fill-outgoing: #4586ff;
1116
+ --chat-thread-connector-incoming: #565656;
1117
+ --chat-thread-connector-outgoing: #19418d;
1118
+ --input-text-default: #f8f8f8; /** Main text inside the chat input. */
1119
+ --input-text-placeholder: #ababab; /** Placeholder text for the input. Lower emphasis than main text. */
1120
+ --input-text-disabled: #6a6a6a; /** Placeholder text for the input. Lower emphasis than main text. */
1121
+ --input-text-icon: #ababab; /** Icons inside the input area (attach, emoji, camera, send when idle). Matches secondary text strength. */
1122
+ --input-send-icon: #4586ff; /** Default send icon color in the input. Uses the brand accent. */
1123
+ --input-send-icon-disabled: #6a6a6a; /** Send icon when disabled (e.g. empty input). */
1124
+ --reaction-bg: #565656;
1125
+ --reaction-border: #565656;
1126
+ --reaction-text: #f8f8f8;
1127
+ --reaction-emoji: #f8f8f8;
1128
+ --presence-bg-online: #00c384; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
1129
+ --presence-border: #000000; /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
1130
+ --presence-bg-offline: #ababab; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
1131
+ --system-text: #ffffff;
1132
+ --system-bg-blur: rgba(0, 0, 0, 0.01);
1133
+ --system-scrollbar: rgba(255, 255, 255, 0.5);
1134
+ --system-caret: #4586ff;
1135
+ --badge-bg-default: #565656;
1136
+ --badge-bg-primary: #4586ff;
1137
+ --badge-bg-neutral: #ababab;
1138
+ --badge-bg-error: #fc526a;
1139
+ --badge-bg-inverse: #ffffff;
1140
+ --badge-bg-overlay: rgba(0, 0, 0, 0.75);
1141
+ --badge-text: #f8f8f8;
1142
+ --badge-text-on-inverse: #000000;
686
1143
  --badge-text-on-accent: #ffffff;
687
- --badge-text-on-inverse: #ffffff;
688
- --badge-bg-inverse: var(--chrome-1000);
689
- /* ─── Control (remove, progress bar, toggle, playback, checkbox, play button, thumb, radio) ─── */
690
- --control-remove-control-bg: #1a1b25;
691
- --control-remove-control-icon: #ffffff;
692
- --control-remove-control-border: #ffffff;
693
- --control-progress-bar-track: #d5dbe1;
694
- --control-progress-bar-fill: #687385;
1144
+ --badge-border: #000000;
1145
+ --control-remove-control-bg: #ffffff;
1146
+ --control-remove-control-icon: #000000;
1147
+ --control-remove-control-border: #000000;
1148
+ --control-progress-bar-fill: #ababab;
1149
+ --control-progress-bar-track: #464646;
1150
+ --control-toggle-switch-bg: #ababab;
1151
+ --control-toggle-switch-bg-selected: #4586ff;
1152
+ --control-toggle-switch-bg-disabled: #323232;
695
1153
  --control-toggle-switch-knob: #ffffff;
696
- --control-toggle-switch-bg: #687385;
697
- --control-toggle-switch-bg-selected: var(--accent-primary);
698
- --control-toggle-switch-bg-disabled: #ebeef1;
699
- --control-playback-toggle-border: #d5dbe1;
700
- --control-playback-toggle-text: var(--text-primary);
701
- --control-checkbox-border: #d5dbe1;
702
- --control-checkbox-bg-selected: var(--accent-primary);
1154
+ --control-playback-toggle-text: #f8f8f8;
1155
+ --control-playback-toggle-border: #565656;
1156
+ --control-checkbox-bg: rgba(255, 255, 255, 0);
1157
+ --control-checkbox-border: #565656;
1158
+ --control-checkbox-bg-selected: #4586ff;
703
1159
  --control-checkbox-icon: #ffffff;
704
- --control-play-button-bg: #000000;
1160
+ --control-play-button-bg: rgba(0, 0, 0, 0.75);
705
1161
  --control-play-button-icon: #ffffff;
706
1162
  --control-playback-thumb-bg-default: #ffffff;
707
- --control-playback-thumb-border-default: rgba(26, 27, 37, 0.25);
708
- --control-playback-thumb-bg-active: var(--accent-primary);
709
1163
  --control-playback-thumb-border-active: #ffffff;
1164
+ --control-playback-thumb-bg-active: #4586ff;
1165
+ --control-playback-thumb-border-default: rgba(255, 255, 255, 0.25);
710
1166
  --control-radio-button-bg: rgba(255, 255, 255, 0);
711
- --control-radio-button-border: #d5dbe1;
712
- --control-radio-button-bg-selected: var(--accent-primary);
1167
+ --control-radio-button-border: #565656;
1168
+ --control-radio-button-bg-selected: #4586ff;
713
1169
  --control-radio-button-indicator: #ffffff;
714
1170
  --control-radio-check-bg: rgba(255, 255, 255, 0);
715
- --control-radio-check-border: #d5dbe1;
716
- --control-radio-check-bg-selected: var(--accent-primary);
1171
+ --control-radio-check-border: #565656;
1172
+ --control-radio-check-bg-selected: #4586ff;
717
1173
  --control-radio-check-icon: #ffffff;
718
- /* ─── Avatar (default, presence) ─── */
719
- --avatar-bg-default: #c3d9ff;
720
- --avatar-text-default: #091a3b;
721
- --avatar-presence-bg-online: #00a46e; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
722
- --avatar-presence-bg-offline: #687385; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
723
- --avatar-presence-border: #ffffff; /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
724
- }
725
-
726
- .str-chat__theme-dark,
727
- .str-chat:not(.str-chat__theme-dark) *:not(.str-chat__theme-dark) .str-chat__theme-inverse {
728
- /* Background (Figma dark semantics) */
729
- --background-core-scrim: rgba(0, 0, 0, 0.75);
730
- --background-core-overlay-light: rgba(0, 0, 0, 0.75);
731
- --background-core-overlay-dark: rgba(0, 0, 0, 0.5);
732
- --background-core-surface: var(--neutral-800);
733
- --background-core-surface-subtle: var(--neutral-900);
734
- --background-core-surface-strong: var(--neutral-700);
735
- --background-core-inverse: var(--neutral-50);
736
- --background-core-highlight: var(--yellow-800);
737
- --background-core-surface-card: var(--neutral-800);
738
- --background-core-elevation-0: var(--neutral-800);
739
- --background-core-elevation-1: var(--neutral-900);
740
- --background-core-elevation-2: var(--neutral-700);
741
- --background-core-elevation-3: var(--neutral-600);
742
- --background-core-elevation-4: var(--neutral-500);
743
- --background-core-on-accent: var(--base-black);
744
- --background-core-app: var(--background-core-elevation-0);
745
- --background-utility-hover: rgba(255, 255, 255, 0.15);
746
- --background-utility-pressed: var(--base-transparent-white-20);
747
- --background-utility-selected: rgba(255, 255, 255, 0.25);
748
- --background-utility-disabled: var(--neutral-700);
749
- /* Border */
750
- --border-utility-disabled: var(--neutral-700);
751
- --border-utility-focused: var(--brand-150);
752
- --border-utility-focus: rgba(120, 168, 255, 0.25);
753
- --border-utility-active: var(--accent-primary);
754
- --border-utility-hover: var(--base-transparent-white-10);
755
- --border-utility-pressed: var(--base-transparent-white-20);
756
- --border-utility-selected: rgba(255, 255, 255, 0.15);
757
- --border-utility-error: var(--accent-error);
758
- --border-utility-warning: var(--accent-warning);
759
- --border-utility-success: var(--accent-success);
760
- --border-core-default: var(--neutral-600);
761
- --border-core-subtle: var(--neutral-800);
762
- --border-core-strong: var(--neutral-400);
763
- --border-core-on-surface: var(--neutral-500);
764
- --border-core-inverse: var(--neutral-900);
765
- --border-core-on-accent: var(--base-black);
766
- --border-core-opacity-subtle: var(--base-transparent-white-20);
767
- --border-core-opacity-strong: rgba(255, 255, 255, 0.25);
768
- /* System */
769
- --system-bg-blur: rgba(0, 0, 0, 0.01);
770
- --system-scrollbar: rgba(255, 255, 255, 0.5);
771
- --system-text: var(--base-white);
772
- /* Text */
773
- --text-primary: var(--base-white);
774
- --text-secondary: var(--neutral-100);
775
- --text-tertiary: var(--neutral-300);
776
- --text-inverse: var(--neutral-900);
777
- --text-on-accent: var(--base-white);
778
- --text-disabled: var(--neutral-500);
779
- --text-link: var(--brand-600);
780
- /* Avatar */
781
- --avatar-palette-bg-1: var(--blue-600);
782
- --avatar-palette-bg-2: var(--cyan-600);
783
- --avatar-palette-bg-3: var(--green-600);
784
- --avatar-palette-bg-4: var(--purple-600);
785
- --avatar-palette-bg-5: var(--yellow-600);
786
- --avatar-palette-text-1: var(--blue-100);
787
- --avatar-palette-text-2: var(--cyan-100);
788
- --avatar-palette-text-3: var(--green-100);
789
- --avatar-palette-text-4: var(--purple-100);
790
- --avatar-palette-text-5: var(--yellow-100);
791
- --avatar-bg-placeholder: var(--neutral-700);
792
- --avatar-text-placeholder: var(--neutral-400);
793
- /* Accent & brand */
794
- --accent-success: var(--green-300);
795
- --accent-warning: var(--yellow-300);
796
- --accent-error: var(--red-400);
797
- --accent-neutral: var(--neutral-500);
798
- --accent-primary: var(--brand-400);
799
- --brand-50: var(--blue-900);
800
- --brand-100: var(--blue-800);
801
- --brand-150: var(--blue-700);
802
- --brand-200: var(--blue-600);
803
- --brand-300: var(--blue-500);
804
- --brand-500: var(--blue-300);
805
- --brand-600: var(--blue-200);
806
- --brand-700: var(--blue-150);
807
- --brand-800: var(--blue-100);
808
- --brand-900: var(--blue-50);
809
- /* Skeleton */
810
- --skeleton-loading-base: var(--base-transparent-0);
811
- --skeleton-loading-highlight: var(--base-transparent-white-20);
812
- /* Chrome (dark semantic scale) */
813
- --chrome-0: var(--base-black);
814
- --chrome-50: var(--neutral-900);
815
- --chrome-100: var(--neutral-800);
816
- --chrome-150: var(--neutral-700);
817
- --chrome-200: var(--neutral-600);
818
- --chrome-300: var(--neutral-500);
819
- --chrome-400: var(--neutral-400);
820
- --chrome-500: var(--neutral-300);
821
- --chrome-600: var(--neutral-200);
822
- --chrome-700: var(--neutral-150);
823
- --chrome-800: var(--neutral-100);
824
- --chrome-900: var(--neutral-50);
825
- --chrome-1000: var(--base-white);
826
- /* Button (dark mode – aligned with Figma / design-system-tokens dark semantics) */
827
- --button-primary-bg: var(--accent-primary);
828
- --button-primary-bg-liquid-glass: var(--base-transparent-0);
829
- --button-primary-text: var(--text-link);
830
- --button-primary-text-on-accent: var(--text-on-accent);
831
- --button-primary-text-inverse: var(--text-inverse);
832
- --button-primary-border: var(--brand-200);
833
- --button-primary-border-inverse: var(--text-inverse);
834
- --button-secondary-bg: var(--background-core-surface);
835
- --button-secondary-bg-liquid-glass: var(--background-core-elevation-0);
836
- --button-secondary-text: var(--text-primary);
837
- --button-secondary-text-on-accent: var(--text-primary);
838
- --button-secondary-text-inverse: var(--text-inverse);
839
- --button-secondary-border: var(--border-core-default);
840
- --button-secondary-border-inverse: var(--border-core-inverse);
841
- --button-destructive-bg: var(--accent-error);
842
- --button-destructive-bg-liquid-glass: var(--background-core-elevation-0);
843
- --button-destructive-text: var(--accent-error);
844
- --button-destructive-text-on-accent: var(--text-on-accent);
845
- --button-destructive-text-inverse: var(--text-inverse);
846
- --button-destructive-border: var(--accent-error);
847
- --button-destructive-border-inverse: var(--text-inverse);
848
- /* Chat (semantic overrides so --chat-bg-* etc resolve in dark) */
849
- --chat-bg-incoming: var(--background-core-surface);
850
- --chat-bg-outgoing: var(--brand-100);
851
- --chat-bg-attachment-incoming: var(--background-core-surface-strong);
852
- --chat-bg-attachment-outgoing: var(--brand-150);
853
- --chat-reply-indicator-incoming: var(--neutral-500);
854
- --chat-reply-indicator-outgoing: var(--brand-700);
855
- --chat-poll-progress-fill-outgoing: var(--base-white);
856
- --chat-text-username: var(--text-secondary);
857
- --chat-text-timestamp: var(--text-tertiary);
858
- --chat-text-read: var(--accent-primary);
859
- --chat-text-mention: var(--text-link);
860
- --chat-text-link: var(--text-link);
861
- --chat-text-reaction: var(--text-secondary);
862
- --chat-text-system: var(--text-secondary);
863
- --chat-border-incoming: var(--border-core-subtle);
864
- --chat-border-on-chat-incoming: var(--border-core-strong);
865
- --chat-waveform-bar: var(--border-core-opacity-strong);
866
- --chat-waveform-bar-playing: var(--accent-primary);
867
- --chat-thread-connector-incoming: var(--border-core-default);
868
- --chat-text-typing-indicator: var(--chat-text-incoming);
869
- --chat-poll-progress-track-incoming: var(--control-progress-bar-track);
870
- --chat-poll-progress-fill-incoming: var(--control-progress-bar-fill);
871
- /* Input */
872
- --input-text-default: var(--text-primary);
873
- --input-text-placeholder: var(--text-tertiary);
874
- --input-text-icon: var(--text-tertiary);
875
- --input-text-disabled: var(--text-disabled);
876
- --input-send-icon: var(--accent-primary);
877
- --input-send-icon-disabled: var(--text-disabled);
878
- /* Reaction */
879
- --reaction-bg: var(--background-core-elevation-3);
880
- --reaction-border: var(--border-core-default);
881
- --reaction-text: var(--text-primary);
882
- --reaction-emoji: var(--text-primary);
883
- /* Presence */
884
- --presence-border: var(--border-core-inverse);
885
- --presence-bg-offline: var(--accent-neutral);
886
- /* System */
887
- --system-caret: var(--accent-primary);
888
- /* Badge (-on-dark in tokens = *-inverse in react) */
889
- --badge-bg-overlay: rgba(0, 0, 0, 0.75);
890
- --badge-bg-default: var(--background-core-elevation-3);
891
- --badge-bg-primary: var(--accent-primary);
892
- --badge-bg-neutral: var(--accent-neutral);
893
- --badge-text: var(--text-primary);
894
- --badge-text-on-accent: var(--text-on-accent);
895
- --badge-border: var(--border-core-inverse);
896
- --badge-bg-inverse: var(--chrome-1000);
897
- --badge-text-inverse: var(--text-inverse);
898
- /* Control */
899
- --control-checkbox-bg: var(--base-transparent-0);
900
- --control-playback-thumb-border-default: var(--border-core-opacity-strong);
901
- --control-radio-button-bg: var(--base-transparent-0);
902
- --control-radio-check-bg: var(--base-transparent-0);
903
- --control-remove-control-bg: var(--background-core-inverse);
904
- --control-remove-control-icon: var(--text-inverse);
905
- --control-remove-control-border: var(--border-core-inverse);
906
- --control-progress-bar-track: var(--background-core-surface-strong);
907
- --control-progress-bar-fill: var(--accent-neutral);
908
- --control-toggle-switch-bg: var(--accent-neutral);
909
- --control-toggle-switch-bg-disabled: var(--background-utility-disabled);
910
- --control-toggle-switch-knob: var(--background-core-elevation-4);
911
- --control-playback-toggle-text: var(--text-primary);
912
- --control-playback-toggle-border: var(--border-core-default);
913
- --control-checkbox-border: var(--border-core-default);
914
- --control-checkbox-bg-selected: var(--accent-primary);
915
- --control-checkbox-icon: var(--text-on-accent);
916
- --control-play-button-bg: var(--chrome-1000);
917
- --control-play-button-icon: var(--text-on-accent);
918
- --control-playback-thumb-bg-default: var(--background-core-inverse);
919
- --control-playback-thumb-border-active: var(--border-core-on-accent);
920
- --control-playback-thumb-bg-active: var(--accent-primary);
921
- --control-radio-button-border: var(--border-core-default);
922
- --control-radio-button-bg-selected: var(--accent-primary);
923
- --control-radio-button-indicator: var(--text-on-accent);
924
- --control-radio-check-border: var(--border-core-default);
925
- --control-radio-check-bg-selected: var(--accent-primary);
926
- --control-radio-check-icon: var(--text-on-accent);
927
- /* Avatar */
928
- --avatar-presence-bg-offline: var(--accent-neutral);
929
- --avatar-presence-border: var(--border-core-inverse);
1174
+ --control-chip-border: #565656;
1175
+ --control-chip-text: #f8f8f8;
1176
+ --text-primary: #f8f8f8; /** Main body text. Used for message content, titles, and any text that carries primary meaning. */
1177
+ --text-secondary: #d8d8d8; /** Supporting metadata text. Used for timestamps, subtitles, and secondary labels. */
1178
+ --text-tertiary: #ababab; /** De-emphasized text. Used for hints, placeholders, and lowest-priority supporting information. */
1179
+ --text-on-inverse: #000000; /** Text on inverse-colored surfaces. Flips between light and dark to maintain legibility when the background inverts. */
1180
+ --text-on-accent: #ffffff; /** Text on accent-colored surfaces. Stays white in both light and dark mode since the accent background doesn't invert. */
1181
+ --text-disabled: #6a6a6a; /** Text for non-interactive or unavailable states. Communicates that an element can't be interacted with. */
1182
+ --text-link: #a5c5ff; /** Hyperlinks and inline actions. Uses the brand color to signal interactivity within text content. */
1183
+ --avatar-palette-bg-1: #1b53bd;
1184
+ --avatar-palette-bg-2: #006970;
1185
+ --avatar-palette-bg-3: #006643;
1186
+ --avatar-palette-bg-4: #553bd8;
1187
+ --avatar-palette-bg-5: #a82c00;
1188
+ --avatar-palette-text-1: #e3edff;
1189
+ --avatar-palette-text-2: #d1f3f6;
1190
+ --avatar-palette-text-3: #bdfcdb;
1191
+ --avatar-palette-text-4: #ecedff;
1192
+ --avatar-palette-text-5: #fcedb9;
1193
+ --avatar-bg-default: #1b53bd;
1194
+ --avatar-bg-placeholder: #464646;
1195
+ --avatar-text-default: #e3edff;
1196
+ --avatar-text-placeholder: #ababab;
1197
+ --avatar-presence-bg-online: #00c384; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
1198
+ --avatar-presence-bg-offline: #ababab; /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
1199
+ --avatar-presence-border: #000000; /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
1200
+ --accent-primary: #4586ff; /** The main brand color. Used for interactive elements, buttons, links, and primary actions. Override this to apply your brand color across the SDK. */
1201
+ --accent-success: #00c384; /** Indicates a positive or completed state. Used for confirmations, sent indicators, and success feedback. */
1202
+ --accent-warning: #fa922b; /** Indicates a cautionary state that requires attention. Used for moderation flags and non-critical alerts. */
1203
+ --accent-error: #fc526a; /** Indicates a failure or destructive state. Used for failed messages, validation errors, and deletions. */
1204
+ --accent-neutral: #ababab; /** A mid-tone gray for de-emphasized UI elements. */
1205
+ --brand-50: #091a3b;
1206
+ --brand-100: #142f63;
1207
+ --brand-150: #19418d;
1208
+ --brand-200: #1b53bd;
1209
+ --brand-300: #005fff;
1210
+ --brand-400: #4586ff;
1211
+ --brand-500: #78a8ff;
1212
+ --brand-600: #a5c5ff;
1213
+ --brand-700: #c3d9ff;
1214
+ --brand-800: #e3edff;
1215
+ --brand-900: #f3f7ff;
1216
+ --skeleton-loading-base: rgba(
1217
+ 255,
1218
+ 255,
1219
+ 255,
1220
+ 0
1221
+ ); /** Base color for the default skeleton loading gradient. Used as the background tone for placeholder surfaces. */
1222
+ --skeleton-loading-highlight: rgba(
1223
+ 0,
1224
+ 0,
1225
+ 0,
1226
+ 0.75
1227
+ ); /** Highlight color for the default skeleton loading gradient. Used for the moving shimmer to indicate loading activity. */
1228
+ --chrome-0: #000000;
1229
+ --chrome-50: #1c1c1c;
1230
+ --chrome-100: #323232;
1231
+ --chrome-150: #464646;
1232
+ --chrome-200: #565656;
1233
+ --chrome-300: #6a6a6a;
1234
+ --chrome-400: #8f8f8f;
1235
+ --chrome-500: #ababab;
1236
+ --chrome-600: #c4c4c4;
1237
+ --chrome-700: #d8d8d8;
1238
+ --chrome-800: #efefef;
1239
+ --chrome-900: #f8f8f8;
1240
+ --chrome-1000: #ffffff;
930
1241
  }
931
1242
 
932
1243
  /* Numeric styles are used for compact, layout-critical UI elements such as:
@@ -965,16 +1276,16 @@
965
1276
  var(--typography-font-size-md) / var(--typography-line-height-normal)
966
1277
  var(--str-chat__font-family);
967
1278
  --str-chat__font-caption-default: normal var(--typography-font-weight-regular)
968
- var(--typography-font-size-sm) / var(--typography-line-height-tight)
1279
+ var(--typography-font-size-sm) / var(--typography-line-height-normal)
969
1280
  var(--str-chat__font-family);
970
1281
  --str-chat__font-caption-emphasis: normal var(--typography-font-weight-semi-bold)
971
- var(--typography-font-size-sm) / var(--typography-line-height-tight)
1282
+ var(--typography-font-size-sm) / var(--typography-line-height-normal)
972
1283
  var(--str-chat__font-family);
973
1284
  --str-chat__font-caption-link: normal var(--typography-font-weight-regular)
974
- var(--typography-font-size-sm) / var(--typography-line-height-tight)
1285
+ var(--typography-font-size-sm) / var(--typography-line-height-normal)
975
1286
  var(--str-chat__font-family);
976
1287
  --str-chat__font-caption-link-emphasis: normal var(--typography-font-weight-semi-bold)
977
- var(--typography-font-size-sm) / var(--typography-line-height-tight)
1288
+ var(--typography-font-size-sm) / var(--typography-line-height-normal)
978
1289
  var(--str-chat__font-family);
979
1290
  --str-chat__font-metadata-default: normal var(--typography-font-weight-regular)
980
1291
  var(--typography-font-size-xs) / var(--typography-line-height-tight)
@@ -995,8 +1306,7 @@
995
1306
  --str-chat__font-numeric-lg: normal var(--typography-font-weight-bold)
996
1307
  var(--typography-font-size-xs) / 100% var(--str-chat__font-family);
997
1308
  --str-chat__font-numeric-xl: normal var(--typography-font-weight-bold)
998
- var(--typography-font-size-sm) / var(--line-height-line-height-14)
999
- var(--str-chat__font-family);
1309
+ var(--typography-font-size-sm) / 100% var(--str-chat__font-family);
1000
1310
  }
1001
1311
 
1002
1312
  /*
@@ -1100,6 +1410,9 @@ to create clearer separation from the base surface.
1100
1410
  .str-chat .str-chat__file-icon.str-chat__file-icon--size-lg .str-chat__file-icon__label {
1101
1411
  font-size: 10px;
1102
1412
  }
1413
+ .str-chat .str-chat__file-icon.str-chat__file-icon--size-xl .str-chat__file-icon__label {
1414
+ font-size: 12px;
1415
+ }
1103
1416
 
1104
1417
  .str-chat__badge {
1105
1418
  display: flex;
@@ -1137,7 +1450,7 @@ to create clearer separation from the base surface.
1137
1450
 
1138
1451
  .str-chat__badge--variant-inverse {
1139
1452
  background: var(--badge-bg-inverse);
1140
- color: var(--badge-text-inverse);
1453
+ color: var(--badge-text-on-inverse);
1141
1454
  border-color: var(--badge-border);
1142
1455
  }
1143
1456
 
@@ -1173,7 +1486,7 @@ to create clearer separation from the base surface.
1173
1486
  border: 1px solid var(--border-core-subtle);
1174
1487
  background: var(--badge-bg-default);
1175
1488
  box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.14);
1176
- font: var(--str-chat__numeric-xl-text);
1489
+ font: var(--str-chat__font-numeric-xl);
1177
1490
  color: var(--badge-text);
1178
1491
  }
1179
1492
  .str-chat__badge--variant-counter.str-chat__badge--size-xs {
@@ -1181,7 +1494,7 @@ to create clearer separation from the base surface.
1181
1494
  min-height: 20px;
1182
1495
  padding-inline: var(--spacing-xxs);
1183
1496
  box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.14);
1184
- font: var(--str-chat__numeric-md-text);
1497
+ font: var(--str-chat__font-numeric-md);
1185
1498
  }
1186
1499
  .str-chat__badge--variant-counter.str-chat__badge--size-sm {
1187
1500
  min-width: 24px;
@@ -1223,7 +1536,7 @@ to create clearer separation from the base surface.
1223
1536
  border-radius: var(--radius-max);
1224
1537
  background: var(--badge-bg-inverse);
1225
1538
  color: var(--badge-text-on-inverse);
1226
- font: var(--str-chat__numeric-md-text);
1539
+ font: var(--str-chat__font-numeric-md);
1227
1540
  overflow: hidden;
1228
1541
  text-overflow: ellipsis;
1229
1542
  }
@@ -1261,7 +1574,7 @@ to create clearer separation from the base surface.
1261
1574
  display: flex;
1262
1575
  align-items: center;
1263
1576
  justify-content: center;
1264
- font: var(--str-chat__heading-xs-text);
1577
+ font: var(--str-chat__font-heading-xs);
1265
1578
  text-transform: capitalize;
1266
1579
  }
1267
1580
  .str-chat .str-chat__button.str-chat__button--solid.str-chat__button--primary {
@@ -1337,7 +1650,7 @@ to create clearer separation from the base surface.
1337
1650
  border-color: var(--border-utility-disabled);
1338
1651
  }
1339
1652
  .str-chat .str-chat__button.str-chat__button--floating {
1340
- box-shadow: var(--light-elevation-2);
1653
+ box-shadow: var(--str-chat__box-shadow-2);
1341
1654
  }
1342
1655
  .str-chat .str-chat__button::after {
1343
1656
  border-radius: inherit;
@@ -1392,7 +1705,7 @@ to create clearer separation from the base surface.
1392
1705
  gap: var(--spacing-xs);
1393
1706
  }
1394
1707
  .str-chat .str-chat__theme-dark .str-chat__button.str-chat__button--floating {
1395
- box-shadow: var(--dark-elevation-2);
1708
+ box-shadow: var(--str-chat__box-shadow-2);
1396
1709
  }
1397
1710
 
1398
1711
  .str-chat__button-play svg {
@@ -1409,7 +1722,7 @@ to create clearer separation from the base surface.
1409
1722
  cursor: pointer;
1410
1723
  }
1411
1724
  .str-chat__dropdown .str-chat__dropdown__items {
1412
- background-color: var(--str-chat__background-color);
1725
+ background-color: transparent;
1413
1726
  }
1414
1727
 
1415
1728
  .str-chat__form-field-error {
@@ -1424,10 +1737,7 @@ to create clearer separation from the base surface.
1424
1737
  gap: var(--spacing-xs, 0.5rem);
1425
1738
  }
1426
1739
  .str-chat__form-numeric-input__label {
1427
- font-size: var(--typography-font-size-sm, 0.875rem);
1428
- font-weight: var(--typography-font-weight-medium, 500);
1429
- line-height: var(--typography-line-height-tight, 1.25);
1430
- color: var(--text-primary, #1a1b25);
1740
+ font: var(--str-chat__caption-default-text);
1431
1741
  }
1432
1742
  .str-chat__form-numeric-input__wrapper {
1433
1743
  display: flex;
@@ -1439,37 +1749,6 @@ to create clearer separation from the base surface.
1439
1749
  outline: none;
1440
1750
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
1441
1751
  }
1442
- .str-chat__form-numeric-input__stepper {
1443
- display: flex;
1444
- align-items: center;
1445
- justify-content: center;
1446
- flex-shrink: 0;
1447
- width: 24px;
1448
- height: 24px;
1449
- padding: 0;
1450
- background-color: transparent;
1451
- border: 1px solid var(--border-core-on-surface, #a3acba);
1452
- border-radius: var(--button-radius-full, 9999px);
1453
- color: var(--text-tertiary, #687385);
1454
- cursor: pointer;
1455
- transition: border-color 0.15s ease, color 0.15s ease;
1456
- }
1457
- .str-chat__form-numeric-input__stepper:hover:not(:disabled) {
1458
- color: var(--text-primary, #1a1b25);
1459
- }
1460
- .str-chat__form-numeric-input__stepper:disabled {
1461
- color: var(--text-disabled, #a3acba);
1462
- cursor: not-allowed;
1463
- }
1464
- .str-chat__form-numeric-input__stepper-icon {
1465
- display: inline-flex;
1466
- align-items: center;
1467
- justify-content: center;
1468
- font-size: 1.25rem;
1469
- font-weight: 300;
1470
- line-height: 1;
1471
- color: inherit;
1472
- }
1473
1752
  .str-chat__form-numeric-input__input {
1474
1753
  flex: 0 1 auto;
1475
1754
  min-width: 2ch;
@@ -1499,10 +1778,7 @@ to create clearer separation from the base surface.
1499
1778
  }
1500
1779
 
1501
1780
  .str-chat {
1502
- --str-chat__switch-field-background-color: var(
1503
- --input-cards-bg,
1504
- var(--background-core-surface-subtle)
1505
- );
1781
+ --str-chat__switch-field-background-color: var(--background-core-surface-card);
1506
1782
  --str-chat__switch-field-border-radius: var(--radius-md);
1507
1783
  --str-chat__switch-field__track-off-bg: var(
1508
1784
  --control-toggle-switch-bg,
@@ -1584,11 +1860,11 @@ to create clearer separation from the base surface.
1584
1860
  }
1585
1861
  .str-chat .str-chat__form__switch-field .str-chat__form__switch-field__label .str-chat__form__switch-field__label__text {
1586
1862
  color: var(--text-primary);
1587
- font: var(--str-chat__heading-xs-text);
1863
+ font: var(--str-chat__font-heading-xs);
1588
1864
  }
1589
1865
  .str-chat .str-chat__form__switch-field .str-chat__form__switch-field__label .str-chat__form__switch-field__label__description {
1590
1866
  color: var(--text-tertiary);
1591
- font: var(--str-chat__metadata-default-text);
1867
+ font: var(--str-chat__font-metadata-default);
1592
1868
  }
1593
1869
  .str-chat .str-chat__form__switch-field .str-chat__form__switch-field__label,
1594
1870
  .str-chat .str-chat__form__switch-field .str-chat__form__switch-field__label__content {
@@ -1603,59 +1879,98 @@ to create clearer separation from the base surface.
1603
1879
  flex-direction: column;
1604
1880
  gap: var(--spacing-xs);
1605
1881
  }
1882
+
1606
1883
  .str-chat__form-text-input__label {
1607
1884
  font-size: var(--typography-font-size-sm);
1608
1885
  font-weight: var(--typography-font-weight-medium);
1609
1886
  line-height: var(--typography-line-height-tight);
1610
1887
  color: var(--text-primary);
1611
1888
  }
1889
+
1890
+ /* Column shell: control row + optional in-border error */
1612
1891
  .str-chat__form-text-input__wrapper {
1613
1892
  display: flex;
1614
- align-items: center;
1615
- gap: var(--spacing-xs);
1616
- min-height: var(--size-40);
1617
- padding: 0 var(--spacing-sm);
1893
+ flex-direction: column;
1894
+ align-items: stretch;
1895
+ gap: 0;
1618
1896
  background-color: var(--background-core-elevation-0);
1619
1897
  border-radius: var(--radius-md);
1620
1898
  outline: none;
1621
1899
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
1622
1900
  }
1901
+
1902
+ .str-chat__form-text-input__control-row {
1903
+ display: flex;
1904
+ align-items: center;
1905
+ gap: var(--spacing-xs);
1906
+ padding: var(--spacing-xs) var(--spacing-sm);
1907
+ min-width: 0;
1908
+ width: 100%;
1909
+ }
1910
+
1623
1911
  .str-chat__form-text-input__wrapper--outline {
1624
1912
  border: 1px solid var(--border-core-default);
1625
1913
  box-shadow: none;
1626
1914
  }
1915
+
1627
1916
  .str-chat__form-text-input:focus-within .str-chat__form-text-input__wrapper--outline {
1628
1917
  border: 1px solid var(--input-border-focus);
1629
1918
  box-shadow: 0 0 0 2px var(--border-utility-focus, #c3d9ff);
1630
1919
  }
1920
+
1631
1921
  .str-chat__form-text-input--error .str-chat__form-text-input__wrapper--outline {
1632
1922
  border: 1px solid var(--border-utility-error);
1633
1923
  }
1924
+
1925
+ /* In-border error: shell keeps default outline (red only on message row) */
1926
+ .str-chat__form-text-input--error.str-chat__form-text-input--field-message-inside .str-chat__form-text-input__wrapper--outline {
1927
+ border: 1px solid var(--border-core-default);
1928
+ }
1929
+
1634
1930
  .str-chat__form-text-input:focus-within.str-chat__form-text-input--error .str-chat__form-text-input__wrapper--outline {
1635
1931
  border: 1px solid var(--border-utility-error);
1636
1932
  box-shadow: none;
1637
1933
  }
1638
1934
 
1935
+ .str-chat__form-text-input:focus-within.str-chat__form-text-input--error.str-chat__form-text-input--field-message-inside .str-chat__form-text-input__wrapper--outline {
1936
+ border: 1px solid var(--input-border-focus);
1937
+ box-shadow: 0 0 0 2px var(--border-utility-focus, #c3d9ff);
1938
+ }
1939
+
1639
1940
  .str-chat__form-text-input--disabled .str-chat__form-text-input__wrapper--outline {
1640
1941
  border: 1px solid var(--border-utility-disabled);
1641
1942
  }
1943
+
1642
1944
  .str-chat__form-text-input__wrapper--ghost {
1643
1945
  border: none;
1644
1946
  box-shadow: none;
1645
1947
  }
1948
+
1646
1949
  .str-chat__form-text-input:focus-within .str-chat__form-text-input__wrapper--ghost {
1647
1950
  border: none;
1648
1951
  box-shadow: 0 0 0 2px var(--border-utility-focus, #c3d9ff);
1649
1952
  }
1953
+
1650
1954
  .str-chat__form-text-input--error .str-chat__form-text-input__wrapper--ghost {
1651
1955
  border: 1px solid var(--border-utility-error);
1652
1956
  box-shadow: none;
1653
1957
  }
1958
+
1959
+ .str-chat__form-text-input--error.str-chat__form-text-input--field-message-inside .str-chat__form-text-input__wrapper--ghost {
1960
+ border: none;
1961
+ box-shadow: none;
1962
+ }
1963
+
1654
1964
  .str-chat__form-text-input:focus-within.str-chat__form-text-input--error .str-chat__form-text-input__wrapper--ghost {
1655
1965
  border: 1px solid var(--border-utility-error);
1656
1966
  box-shadow: none;
1657
1967
  }
1658
1968
 
1969
+ .str-chat__form-text-input:focus-within.str-chat__form-text-input--error.str-chat__form-text-input--field-message-inside .str-chat__form-text-input__wrapper--ghost {
1970
+ border: none;
1971
+ box-shadow: 0 0 0 2px var(--border-utility-focus, #c3d9ff);
1972
+ }
1973
+
1659
1974
  .str-chat__form-text-input__leading {
1660
1975
  display: flex;
1661
1976
  align-items: center;
@@ -1663,40 +1978,47 @@ to create clearer separation from the base surface.
1663
1978
  flex-shrink: 0;
1664
1979
  color: var(--input-text-icon);
1665
1980
  }
1666
- .str-chat__form-text-input__input {
1981
+
1982
+ .str-chat__form-text-input .str-chat__form-text-input__input {
1667
1983
  flex: 1;
1668
1984
  min-width: 0;
1669
- padding: var(--spacing-xs) 0;
1670
- font-size: var(--typography-font-size-sm);
1671
- font-weight: var(--typography-font-weight-regular);
1672
- line-height: var(--typography-line-height-normal);
1985
+ padding: 0;
1986
+ font: var(--str-chat__caption-default-text);
1673
1987
  color: var(--input-text-default);
1674
1988
  background: transparent;
1675
1989
  border: none;
1676
1990
  outline: none;
1991
+ outline-style: none;
1677
1992
  box-shadow: none;
1678
1993
  }
1679
- .str-chat__form-text-input__input::placeholder {
1994
+
1995
+ .str-chat__form-text-input .str-chat__form-text-input__input::placeholder {
1680
1996
  color: var(--input-text-placeholder);
1681
1997
  }
1682
- .str-chat__form-text-input--disabled .str-chat__form-text-input__input {
1998
+
1999
+ .str-chat__form-text-input.str-chat__form-text-input--disabled .str-chat__form-text-input__input {
1683
2000
  color: var(--input-text-placeholder);
1684
2001
  cursor: not-allowed;
1685
2002
  }
1686
- .str-chat__form-text-input--disabled .str-chat__form-text-input__input::placeholder {
2003
+
2004
+ .str-chat__form-text-input.str-chat__form-text-input--disabled .str-chat__form-text-input__input::placeholder {
1687
2005
  color: var(--input-text-placeholder);
1688
2006
  }
2007
+
1689
2008
  .str-chat__form-text-input .str-chat__form-text-input__input:focus,
1690
2009
  .str-chat__form-text-input .str-chat__form-text-input__input:focus-visible {
1691
2010
  outline: none;
2011
+ outline-style: none;
1692
2012
  box-shadow: none;
1693
2013
  }
2014
+
1694
2015
  .str-chat__form-text-input__suffix {
1695
2016
  flex-shrink: 0;
1696
2017
  font-size: var(--typography-font-size-sm);
1697
2018
  line-height: var(--typography-line-height-normal);
1698
2019
  color: var(--text-tertiary);
1699
2020
  }
2021
+
1700
2022
  .str-chat__form-text-input__trailing {
1701
2023
  display: flex;
1702
2024
  align-items: center;
@@ -1705,30 +2027,47 @@ to create clearer separation from the base surface.
1705
2027
  margin-inline-end: calc(-1 * var(--space-4));
1706
2028
  color: var(--input-text-icon);
1707
2029
  }
2030
+
1708
2031
  .str-chat__form-text-input--error .str-chat__form-text-input__trailing {
1709
2032
  color: var(--accent-error);
1710
2033
  }
2034
+
1711
2035
  .str-chat__form-text-input__message {
1712
2036
  display: flex;
1713
2037
  align-items: center;
1714
2038
  gap: var(--spacing-xxs);
1715
- line-height: var(--typography-line-height-tight);
1716
- /* Base typography/color only when not error (error uses str-chat__form-field-error) */
2039
+ font: var(--str-chat__metadata-default-text);
1717
2040
  }
2041
+
2042
+ /* Base typography/color only when not error (error uses str-chat__form-field-error) */
1718
2043
  .str-chat__form-text-input__message:not(.str-chat__form-field-error) {
1719
- font-size: var(--typography-font-size-xs);
1720
2044
  color: var(--text-tertiary);
1721
2045
  }
2046
+
2047
+ .str-chat__form-text-input__message--field-message-inside {
2048
+ padding: var(--spacing-none) var(--spacing-sm) var(--spacing-sm);
2049
+ }
2050
+
1722
2051
  .str-chat__form-text-input__message--success {
1723
2052
  color: var(--accent-success);
1724
2053
  }
1725
- .str-chat__form-text-input .str-chat__form-text-input__message-icon {
2054
+
2055
+ .str-chat__form-text-input__message-text {
2056
+ min-width: 0;
2057
+ flex: 1 1 auto;
2058
+ }
2059
+
2060
+ .str-chat__form-text-input__message-icon {
1726
2061
  display: inline-flex;
1727
2062
  align-items: center;
1728
2063
  justify-content: center;
1729
2064
  flex-shrink: 0;
1730
2065
  color: inherit;
1731
2066
  }
2067
+ .str-chat__form-text-input__message-icon svg {
2068
+ height: 13px;
2069
+ width: 13px;
2070
+ }
1732
2071
 
1733
2072
  .str-chat__form__input-fieldset {
1734
2073
  margin: 0;
@@ -1799,10 +2138,10 @@ to create clearer separation from the base surface.
1799
2138
  width: 100%;
1800
2139
  }
1801
2140
  .str-chat__alert-root .str-chat__alert-header .str-chat__alert-header__copy .str-chat__alert-header__title {
1802
- font: var(--str-chat__heading-sm-text);
2141
+ font: var(--str-chat__font-heading-sm);
1803
2142
  }
1804
2143
  .str-chat__alert-root .str-chat__alert-header .str-chat__alert-header__copy .str-chat__alert-header__description {
1805
- font: var(--str-chat__caption-default-text);
2144
+ font: var(--str-chat__font-caption-default);
1806
2145
  }
1807
2146
  .str-chat__alert-root .str-chat__alert-actions {
1808
2147
  display: flex;
@@ -1820,7 +2159,7 @@ to create clearer separation from the base surface.
1820
2159
  max-width: 320px;
1821
2160
  border-radius: var(--radius-lg);
1822
2161
  background-color: var(--background-core-elevation-2);
1823
- box-shadow: var(--light-elevation-3);
2162
+ box-shadow: var(--str-chat__box-shadow-3);
1824
2163
  }
1825
2164
  .str-chat__callout .str-chat__callout__close-button {
1826
2165
  position: absolute;
@@ -1902,7 +2241,7 @@ to create clearer separation from the base surface.
1902
2241
  --str-chat__dialog-menu-border-block-end: none;
1903
2242
  --str-chat__dialog-menu-border-inline-start: none;
1904
2243
  --str-chat__dialog-menu-border-inline-end: none;
1905
- --str-chat__dialog-menu-box-shadow: var(--light-elevation-3);
2244
+ --str-chat__dialog-menu-box-shadow: var(--str-chat__box-shadow-3);
1906
2245
  --str-chat__dialog-menu-button-border-radius: var(--radius-md);
1907
2246
  --str-chat__dialog-menu-button-color: var(--text-primary);
1908
2247
  --str-chat__dialog-menu-button-background-color: transparent;
@@ -2057,6 +2396,7 @@ to create clearer separation from the base surface.
2057
2396
  text-align: start;
2058
2397
  color: var(--text-primary);
2059
2398
  white-space: nowrap;
2399
+ min-width: 0;
2060
2400
  }
2061
2401
  .str-chat .str-chat__context-menu .str-chat__context-menu__button .str-chat__context-menu__button__details {
2062
2402
  flex: 1;
@@ -2169,17 +2509,21 @@ to create clearer separation from the base surface.
2169
2509
  min-width: 0;
2170
2510
  }
2171
2511
  .str-chat__prompt .str-chat__prompt__header .str-chat__prompt__header__title {
2172
- font: var(--str-chat__heading-sm-text);
2512
+ font: var(--str-chat__font-heading-sm);
2173
2513
  color: var(--text-primary);
2174
2514
  }
2175
2515
  .str-chat__prompt .str-chat__prompt__header .str-chat__prompt__header__description {
2176
- font: var(--str-chat__caption-default-text);
2516
+ font: var(--str-chat__font-caption-default);
2177
2517
  color: var(--text-secondary);
2178
2518
  }
2179
2519
  .str-chat__prompt .str-chat__prompt__header .str-chat__prompt__header__close-button {
2180
2520
  flex-shrink: 0;
2181
2521
  color: var(--text-primary);
2182
2522
  }
2523
+ .str-chat__prompt .str-chat__prompt__header .str-chat__prompt__header__close-button .str-chat__icon {
2524
+ width: var(--icon-size-md);
2525
+ height: var(--icon-size-md);
2526
+ }
2183
2527
  .str-chat__prompt .str-chat__prompt__body {
2184
2528
  /* Vertical padding so focus rings (e.g. TextInput wrapper box-shadow) are not clipped by scrollable-y */
2185
2529
  padding: var(--spacing-xxs) var(--spacing-xl);
@@ -2228,11 +2572,11 @@ to create clearer separation from the base surface.
2228
2572
  min-width: 0;
2229
2573
  }
2230
2574
  .str-chat__viewer .str-chat__viewer__header .str-chat__viewer__header__title {
2231
- font: var(--str-chat__heading-sm-text);
2575
+ font: var(--str-chat__font-heading-sm);
2232
2576
  color: var(--text-primary);
2233
2577
  }
2234
2578
  .str-chat__viewer .str-chat__viewer__header .str-chat__viewer__header__description {
2235
- font: var(--str-chat__caption-default-text);
2579
+ font: var(--str-chat__font-caption-default);
2236
2580
  color: var(--text-secondary);
2237
2581
  }
2238
2582
  .str-chat__viewer .str-chat__viewer__header .str-chat__viewer__header__go-back-button path {
@@ -2266,7 +2610,7 @@ to create clearer separation from the base surface.
2266
2610
  /* The border radius used for the borders of the content area of the component of the content area of the component */
2267
2611
  --str-chat__modal-border-radius: var(--radius-xl);
2268
2612
  /* The text/icon color of the content area of the component */
2269
- --str-chat__modal-color: var(--str-chat__text-color);
2613
+ --str-chat__modal-color: var(--text-primary);
2270
2614
  /* The background color of the content area of the component */
2271
2615
  --str-chat__modal-background-color: var(--background-core-elevation-1);
2272
2616
  /* The overlay color of the component */
@@ -2282,7 +2626,7 @@ to create clearer separation from the base surface.
2282
2626
  /* Right (left in RTL layout) border of the content area of the component */
2283
2627
  --str-chat__modal-border-inline-end: none;
2284
2628
  /* Box shadow applied to the content area of the component */
2285
- --str-chat__modal-box-shadow: var(--str-chat__box-shadow-elevation-1);
2629
+ --str-chat__modal-box-shadow: var(--str-chat__box-shadow-4);
2286
2630
  }
2287
2631
 
2288
2632
  .str-chat__modal--open {
@@ -2316,11 +2660,11 @@ to create clearer separation from the base surface.
2316
2660
 
2317
2661
  .str-chat__ai-state-indicator-container {
2318
2662
  padding: 0 8px;
2319
- background-color: var(--str-chat__grey300);
2663
+ background-color: var(--background-core-surface);
2320
2664
  }
2321
2665
 
2322
2666
  .str-chat__ai-state-indicator-text {
2323
- color: var(--str-chat__text-color);
2667
+ color: var(--text-primary);
2324
2668
  }
2325
2669
 
2326
2670
  .str-chat {
@@ -2329,7 +2673,7 @@ to create clearer separation from the base surface.
2329
2673
  /* The border radius used for the borders of the component */
2330
2674
  --str-chat__attachment-list-border-radius: 0;
2331
2675
  /* The text/icon color of the component */
2332
- --str-chat__attachment-list-color: var(--str-chat__text-color);
2676
+ --str-chat__attachment-list-color: var(--text-primary);
2333
2677
  /* The background color of the component */
2334
2678
  --str-chat__attachment-list-background-color: transparent;
2335
2679
  /* Top border of the component */
@@ -2347,7 +2691,7 @@ to create clearer separation from the base surface.
2347
2691
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
2348
2692
  );
2349
2693
  /* The text/icon color of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
2350
- --str-chat__image-attachment-color: var(--str-chat__text-color);
2694
+ --str-chat__image-attachment-color: var(--text-primary);
2351
2695
  /* The background color of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
2352
2696
  --str-chat__image-attachment-background-color: transparent;
2353
2697
  /* Top border of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
@@ -2365,7 +2709,7 @@ to create clearer separation from the base surface.
2365
2709
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
2366
2710
  );
2367
2711
  /* The text/icon color of image gallery attachments */
2368
- --str-chat__image-gallery-attachment-color: var(--str-chat__text-color);
2712
+ --str-chat__image-gallery-attachment-color: var(--text-primary);
2369
2713
  /* The background color of image gallery attachments */
2370
2714
  --str-chat__image-gallery-attachment-background-color: transparent;
2371
2715
  /* Top border of image gallery attachments */
@@ -2378,38 +2722,12 @@ to create clearer separation from the base surface.
2378
2722
  --str-chat__image-gallery-attachment-border-inline-end: none;
2379
2723
  /* Box shadow applied to image gallery attachments */
2380
2724
  --str-chat__image-gallery-attachment-box-shadow: none;
2381
- /* Overlay color applied to image gallery attachments */
2382
- --str-chat__image-gallery-attachment-overlay: var(--str-chat__secondary-overlay-color);
2383
- /* Text colors used on overlay applied to image gallery attachments */
2384
- --str-chat__image-gallery-attachment-overlay-text-color: var(
2385
- --str-chat__secondary-overlay-text-color
2386
- );
2387
- /* The border radius used for the borders of card attachments */
2388
- --str-chat__card-attachment-border-radius: 0;
2389
- /* The text/icon color of card attachments */
2390
- --str-chat__card-attachment-color: var(--str-chat__text-color);
2391
- /* The text color of links inside card attachments */
2392
- --str-chat__card-attachment-link-color: var(--str-chat__primary-color);
2393
- /* The background color of card attachments */
2394
- --str-chat__card-attachment-background-color: transparent;
2395
- /* Top border of card attachments */
2396
- --str-chat__card-attachment-border-block-start: none;
2397
- /* Bottom border of card attachments */
2398
- --str-chat__card-attachment-border-block-end: none;
2399
- /* Left (right in RTL layout) border of card attachments */
2400
- --str-chat__card-attachment-border-inline-start: none;
2401
- /* Right (left in RTL layout) border of card attachments */
2402
- --str-chat__card-attachment-border-inline-end: none;
2403
- /* Box shadow applied to card attachments */
2404
- --str-chat__card-attachment-box-shadow: none;
2405
2725
  /* The border radius used for the borders of file attachments */
2406
2726
  --str-chat__file-attachment-border-radius: calc(
2407
2727
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
2408
2728
  );
2409
2729
  /* The text/icon color of file attachments */
2410
- --str-chat__file-attachment-color: var(--str-chat__text-color);
2411
- /* The text/icon color of file attachments for low emphasis texts (for example file size) */
2412
- --str-chat__file-attachment-secondary-color: var(--str-chat__text-low-emphasis-color);
2730
+ --str-chat__file-attachment-color: var(--text-primary);
2413
2731
  /* The background color of file attachments */
2414
2732
  --str-chat__file-attachment-background-color: transparent;
2415
2733
  /* Top border of file attachments */
@@ -2422,32 +2740,6 @@ to create clearer separation from the base surface.
2422
2740
  --str-chat__file-attachment-border-inline-end: none;
2423
2741
  /* Box shadow applied to file attachments */
2424
2742
  --str-chat__file-attachment-box-shadow: none;
2425
- /* Border radius applied to the play / pause button of audio widget */
2426
- --str-chat__audio-attachment-controls-button-border-radius: var(
2427
- --str-chat__border-radius-circle
2428
- );
2429
- /* Text color applied to audio widget's play / pause button */
2430
- --str-chat__audio-attachment-controls-button-color: var(--str-chat__text-color);
2431
- /* Background color applied to audio widget's play / pause button */
2432
- --str-chat__audio-attachment-controls-button-background-color: var(
2433
- --str-chat__secondary-background-color
2434
- );
2435
- /* Background color applied to audio widget's play / pause button when in pressed (active) state */
2436
- --str-chat__audio-attachment-controls-button-pressed-background-color: var(
2437
- --str-chat__surface-color
2438
- );
2439
- /* Top border of audio widget's play / pause button */
2440
- --str-chat__audio-attachment-controls-button-border-block-start: none;
2441
- /* Bottom border of audio widget's play / pause button */
2442
- --str-chat__audio-attachment-controls-button-border-block-end: none;
2443
- /* Left (right in RTL layout) border of audio widget's play / pause button */
2444
- --str-chat__audio-attachment-controls-button-border-inline-start: none;
2445
- /* Right (left in RTL layout) border of audio widget's play / pause button */
2446
- --str-chat__audio-attachment-controls-button-border-inline-end: none;
2447
- /* Box shadow applied to audio widget's play / pause button */
2448
- --str-chat__audio-attachment-controls-button-box-shadow: var(
2449
- --str-chat__circle-fab-box-shadow
2450
- );
2451
2743
  }
2452
2744
 
2453
2745
  .str-chat__attachment-list {
@@ -2484,11 +2776,11 @@ to create clearer separation from the base surface.
2484
2776
  }
2485
2777
  .str-chat__attachment-list .str-chat__message-attachment {
2486
2778
  overflow: hidden;
2487
- background-color: var(--chat-bg-attachment-incoming);
2779
+ background-color: var(--chat-bg-attachment);
2488
2780
  border-radius: var(--message-bubble-radius-attachment);
2489
2781
  }
2490
2782
  .str-chat__attachment-list .str-chat__message-attachment .str-chat__button-play.str-chat__button--secondary.str-chat__button--outline {
2491
- border-color: var(--chat-border-on-chat-incoming);
2783
+ border-color: var(--chat-border-on-chat);
2492
2784
  background-color: transparent;
2493
2785
  }
2494
2786
  .str-chat__attachment-list .str-chat__message-attachment--image,
@@ -2639,7 +2931,7 @@ to create clearer separation from the base surface.
2639
2931
  border-inline-end: var(--str-chat__file-attachment-border-inline-end);
2640
2932
  }
2641
2933
  .str-chat__attachment-list .str-chat__message-attachment-download-icon {
2642
- --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 16);
2934
+ --str-chat-icon-height: var(--size-16);
2643
2935
  }
2644
2936
 
2645
2937
  .str-chat__message.str-chat__message--has-single-attachment.str-chat__message--has-no-text:not(.str-chat__message--has-quoted-message) .str-chat__message-bubble {
@@ -2650,30 +2942,16 @@ to create clearer separation from the base surface.
2650
2942
  --str-chat__attachment-max-width: var(--str-chat__message-max-width);
2651
2943
  }
2652
2944
  .str-chat__message.str-chat__message--has-single-attachment.str-chat__message--has-no-text .str-chat__message-bubble {
2653
- border: 1px solid var(--chat-border-incoming);
2945
+ border: 1px solid var(--chat-border);
2654
2946
  box-shadow: var(--background-core-elevation-0);
2655
2947
  }
2656
2948
  .str-chat__message.str-chat__message--has-single-attachment.str-chat__message--has-no-text .str-chat__message-attachment {
2657
- background-color: var(--chat-bg-incoming);
2949
+ background-color: var(--chat-bg);
2658
2950
  }
2659
2951
 
2660
2952
  .str-chat__message--me .str-chat__attachment-list {
2661
2953
  align-items: flex-end;
2662
2954
  }
2663
- .str-chat__message--me .str-chat__message-attachment {
2664
- background-color: var(--chat-bg-attachment-outgoing);
2665
- border-radius: var(--message-bubble-radius-attachment);
2666
- }
2667
- .str-chat__message--me .str-chat__message-attachment .str-chat__button-play.str-chat__button--secondary.str-chat__button--outline {
2668
- border-color: var(--chat-border-on-chat-outgoing);
2669
- }
2670
- .str-chat__message--me.str-chat__message--has-single-attachment.str-chat__message--has-no-text .str-chat__message-bubble {
2671
- border: 1px solid var(--chat-border-outgoing);
2672
- box-shadow: var(--background-core-elevation-0);
2673
- }
2674
- .str-chat__message--me.str-chat__message--has-single-attachment.str-chat__message--has-no-text .str-chat__message-attachment {
2675
- background-color: var(--chat-bg-outgoing);
2676
- }
2677
2955
 
2678
2956
  .str-chat__li--single .str-chat__message--other.str-chat__message--has-single-attachment.str-chat__message--has-no-text .str-chat__message-attachment,
2679
2957
  .str-chat__li--bottom .str-chat__message--other.str-chat__message--has-single-attachment.str-chat__message--has-no-text .str-chat__message-attachment {
@@ -2727,9 +3005,9 @@ to create clearer separation from the base surface.
2727
3005
  /* Box shadow applied to an attachment action */
2728
3006
  --str-chat__attachment-action-box-shadow: none;
2729
3007
  /* The text/icon color of an attachment action while in pressed state */
2730
- --str-chat__attachment-action-active-color: var(--str-chat__primary-color);
3008
+ --str-chat__attachment-action-active-color: var(--accent-primary);
2731
3009
  /* The text/icon color of an attachment action while in pressed state */
2732
- --str-chat__attachment-action-focus-color: var(--str-chat__primary-color);
3010
+ --str-chat__attachment-action-focus-color: var(--accent-primary);
2733
3011
  }
2734
3012
 
2735
3013
  .str-chat__message-attachment-actions {
@@ -2778,11 +3056,7 @@ to create clearer separation from the base surface.
2778
3056
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
2779
3057
  );
2780
3058
  /* Text color used in audio widget */
2781
- --str-chat__audio-attachment-widget-color: var(--str-chat__text-color);
2782
- /* Border radius applied audio widget */
2783
- --str-chat__audio-attachment-widget-secondary-color: var(
2784
- --str-chat__text-low-emphasis-color
2785
- );
3059
+ --str-chat__audio-attachment-widget-color: var(--text-primary);
2786
3060
  /* The text/icon color for low emphasis texts (for example file size) in audio widget */
2787
3061
  --str-chat__audio-attachment-widget-background-color: transparent;
2788
3062
  /* Top border of audio widget */
@@ -2832,7 +3106,7 @@ to create clearer separation from the base surface.
2832
3106
  flex-shrink: 0;
2833
3107
  }
2834
3108
  .str-chat__message-attachment-audio-widget .str-chat__message-attachment-audio-widget--title {
2835
- font: var(--str-chat__caption-emphasis-text);
3109
+ font: var(--str-chat__font-caption-emphasis);
2836
3110
  min-width: 0;
2837
3111
  overflow: hidden;
2838
3112
  text-overflow: ellipsis;
@@ -2843,7 +3117,7 @@ to create clearer separation from the base surface.
2843
3117
  }
2844
3118
  .str-chat__message-attachment-audio-widget .str-chat__duration-display {
2845
3119
  width: 40px;
2846
- font: var(--str-chat__metadata-default-text);
3120
+ font: var(--str-chat__font-metadata-default);
2847
3121
  color: var(--text-secondary);
2848
3122
  }
2849
3123
  .str-chat__message-attachment-audio-widget .str-chat__message-attachment-audio-widget--text-second-row {
@@ -2853,7 +3127,6 @@ to create clearer separation from the base surface.
2853
3127
  gap: var(--spacing-xs);
2854
3128
  }
2855
3129
  .str-chat__message-attachment-audio-widget .str-chat__message-attachment-audio-widget--text-second-row .str-chat__message-attachment-file--item-size {
2856
- line-height: calc(var(--str-chat__spacing-px) * 14);
2857
3130
  font: var(--str-chat__font-metadata-default);
2858
3131
  }
2859
3132
 
@@ -2867,21 +3140,28 @@ to create clearer separation from the base surface.
2867
3140
  padding: var(--spacing-md);
2868
3141
  }
2869
3142
 
3143
+ .str-chat__button.str-chat__button--secondary.str-chat__button--outline.str-chat__audio-attachment-download-button {
3144
+ border-color: var(--chat-border-on-chat-incoming);
3145
+ flex-shrink: 0;
3146
+ }
3147
+ .str-chat__button.str-chat__button--secondary.str-chat__button--outline.str-chat__audio-attachment-download-button .str-chat__attachment-download-button__icon {
3148
+ height: 20px;
3149
+ width: 20px;
3150
+ }
3151
+
3152
+ .str-chat__message--me .str-chat__button.str-chat__button--outline.str-chat__audio-attachment-download-button {
3153
+ border-color: var(--chat-border-on-chat-outgoing);
3154
+ }
3155
+
2870
3156
  .str-chat {
2871
3157
  /* The border radius used for the borders of file attachments */
2872
3158
  --str-chat__geolocation-attachment-border-radius: calc(
2873
3159
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
2874
3160
  );
2875
3161
  /* The text/icon color of geolocation attachments */
2876
- --str-chat__geolocation-attachment-color: var(--str-chat__text-color);
2877
- /* The text/icon color of geolocation attachments for low emphasis texts (for example file size) */
2878
- --str-chat__geolocation-attachment-secondary-color: var(
2879
- --str-chat__text-low-emphasis-color
2880
- );
3162
+ --str-chat__geolocation-attachment-color: var(--chat-text);
2881
3163
  /* The background color of geolocation attachments */
2882
- --str-chat__geolocation-attachment-background-color: var(
2883
- --str-chat__secondary-background-color
2884
- );
3164
+ --str-chat__geolocation-attachment-background-color: var(--chat-bg-attachment);
2885
3165
  /* Top border of geolocation attachments */
2886
3166
  --str-chat__geolocation-attachment-border-block-start: none;
2887
3167
  /* Bottom border of geolocation attachments */
@@ -2945,8 +3225,8 @@ to create clearer separation from the base surface.
2945
3225
  display: flex;
2946
3226
  justify-content: center;
2947
3227
  padding: 0.5rem;
2948
- background-color: var(--str-chat__tertiary-surface-color);
2949
- font: var(--str-chat__caption-default-text);
3228
+ background-color: var(--background-core-surface-subtle);
3229
+ font: var(--str-chat__font-caption-default);
2950
3230
  }
2951
3231
  .str-chat__message-attachment-geolocation .str-chat__message-attachment-geolocation__status .str-chat__message-attachment-geolocation__status--active {
2952
3232
  display: flex;
@@ -2955,16 +3235,16 @@ to create clearer separation from the base surface.
2955
3235
  gap: 0.375rem;
2956
3236
  }
2957
3237
  .str-chat__message-attachment-geolocation .str-chat__message-attachment-geolocation__status .str-chat__message-attachment-geolocation__status--active .str-chat__message-attachment-geolocation__status--active-status {
2958
- color: var(--str-chat__info-color);
3238
+ color: var(--accent-success);
2959
3239
  }
2960
3240
  .str-chat__message-attachment-geolocation .str-chat__message-attachment-geolocation__status .str-chat__message-attachment-geolocation__status--active .str-chat__message-attachment-geolocation__status--active-until {
2961
3241
  text-transform: lowercase;
2962
- font: var(--str-chat__metadata-emphasis-text);
3242
+ font: var(--str-chat__font-metadata-emphasis);
2963
3243
  }
2964
3244
 
2965
3245
  .str-chat {
2966
3246
  /* The height of GIFs */
2967
- --str-chat__gif-height: calc(var(--str-chat__spacing-px) * 200);
3247
+ --str-chat__gif-height: 200px;
2968
3248
  }
2969
3249
 
2970
3250
  .str-chat__message-attachment-giphy {
@@ -3018,7 +3298,7 @@ to create clearer separation from the base surface.
3018
3298
  align-items: center;
3019
3299
  gap: var(--spacing-xs, 8px);
3020
3300
  align-self: stretch;
3021
- color: var(--chat-text-outgoing);
3301
+ color: var(--chat-text);
3022
3302
  font-size: var(--typography-font-size-sm);
3023
3303
  font-weight: var(--typography-font-weight-semi-bold);
3024
3304
  line-height: var(--typography-line-height-tight);
@@ -3042,7 +3322,7 @@ to create clearer separation from the base surface.
3042
3322
  line-height: var(--typography-line-height-tight);
3043
3323
  }
3044
3324
  .str-chat__message-attachment-card * {
3045
- color: var(--chat-text-incoming);
3325
+ color: var(--chat-text);
3046
3326
  }
3047
3327
  .str-chat__message-attachment-card .str-chat__message-attachment-card--header {
3048
3328
  position: relative;
@@ -3139,16 +3419,12 @@ to create clearer separation from the base surface.
3139
3419
 
3140
3420
  .str-chat__message {
3141
3421
  --str-chat__modal-gallery-load-failed-indicator-background: var(--accent-error);
3142
- --str-chat__modal-gallery-load-failed-indicator-color: var(--text-inverse);
3143
- --str-chat__modal-gallery-loading-background: var(--chat-bg-incoming);
3422
+ --str-chat__modal-gallery-load-failed-indicator-color: var(--text-on-inverse);
3423
+ --str-chat__modal-gallery-loading-background: var(--chat-bg);
3144
3424
  --str-chat__modal-gallery-loading-base: var(--skeleton-loading-base);
3145
3425
  --str-chat__modal-gallery-loading-highlight: var(--skeleton-loading-highlight);
3146
3426
  }
3147
3427
 
3148
- .str-chat__message--me {
3149
- --str-chat__modal-gallery-loading-background: var(--chat-bg-outgoing);
3150
- }
3151
-
3152
3428
  .str-chat__attachment-list .str-chat__message-attachment--gallery .str-chat__modal-gallery {
3153
3429
  background: var(--str-chat__image-gallery-attachment-background-color);
3154
3430
  color: var(--str-chat__image-gallery-attachment-color);
@@ -3199,7 +3475,7 @@ to create clearer separation from the base surface.
3199
3475
  margin: 0;
3200
3476
  cursor: zoom-in;
3201
3477
  max-width: var(--str-chat__attachment-max-width);
3202
- color: var(--text-inverse);
3478
+ color: var(--text-on-inverse);
3203
3479
  border: none;
3204
3480
  font-size: var(--typography-font-size-2xl);
3205
3481
  font-weight: var(--typography-font-weight-medium);
@@ -3242,6 +3518,14 @@ to create clearer separation from the base surface.
3242
3518
  .str-chat__attachment-list .str-chat__message-attachment--gallery .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed,
3243
3519
  .str-chat__attachment-list .str-chat__message-attachment--image .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed {
3244
3520
  cursor: pointer;
3521
+ min-height: 200px;
3522
+ }
3523
+ .str-chat__attachment-list .str-chat__message-attachment--giphy .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed .str-chat__image-placeholder.str-chat__base-image--load-failed,
3524
+ .str-chat__attachment-list .str-chat__message-attachment--gallery .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed .str-chat__image-placeholder.str-chat__base-image--load-failed,
3525
+ .str-chat__attachment-list .str-chat__message-attachment--image .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed .str-chat__image-placeholder.str-chat__base-image--load-failed {
3526
+ width: 100%;
3527
+ min-height: 200px;
3528
+ align-self: stretch;
3245
3529
  }
3246
3530
  .str-chat__attachment-list .str-chat__message-attachment--giphy .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed img,
3247
3531
  .str-chat__attachment-list .str-chat__message-attachment--gallery .str-chat__modal-gallery__image.str-chat__modal-gallery__image--load-failed img,
@@ -3328,11 +3612,7 @@ to create clearer separation from the base surface.
3328
3612
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
3329
3613
  );
3330
3614
  /* The text/icon color of file attachments */
3331
- --str-chat__unsupported-attachment-color: var(--str-chat__text-color);
3332
- /* The text/icon color of file attachments for low emphasis texts (for example file size) */
3333
- --str-chat__unsupported-attachment-secondary-color: var(
3334
- --str-chat__text-low-emphasis-color
3335
- );
3615
+ --str-chat__unsupported-attachment-color: var(--text-primary);
3336
3616
  /* The background color of file attachments */
3337
3617
  --str-chat__unsupported-attachment-background-color: transparent;
3338
3618
  /* Top border of file attachments */
@@ -3363,8 +3643,8 @@ to create clearer separation from the base surface.
3363
3643
  column-gap: var(--spacing-xs);
3364
3644
  }
3365
3645
  .str-chat__message-attachment-unsupported .str-chat__icon {
3366
- height: calc(var(--str-chat__spacing-px) * 20);
3367
- width: calc(var(--str-chat__spacing-px) * 20);
3646
+ height: var(--size-20);
3647
+ width: var(--size-20);
3368
3648
  }
3369
3649
  .str-chat__message-attachment-unsupported .str-chat__message-attachment-unsupported__metadata {
3370
3650
  min-width: 0;
@@ -3390,11 +3670,7 @@ to create clearer separation from the base surface.
3390
3670
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
3391
3671
  );
3392
3672
  /* Text color used in audio recording widget */
3393
- --str-chat__voice-recording-attachment-widget-color: var(--str-chat__text-color);
3394
- /* Border radius applied to audio recording widget */
3395
- --str-chat__voice-recording-attachment-widget-secondary-color: var(
3396
- --str-chat__text-low-emphasis-color
3397
- );
3673
+ --str-chat__voice-recording-attachment-widget-color: var(--text-primary);
3398
3674
  /* The text/icon color for low emphasis texts (for example file size) in audio recording widget */
3399
3675
  --str-chat__voice-recording-attachment-widget-background-color: transparent;
3400
3676
  /* Top border of audio recording widget */
@@ -3439,13 +3715,13 @@ to create clearer separation from the base surface.
3439
3715
  color: var(--str-chat__voice-recording-attachment-widget-color);
3440
3716
  }
3441
3717
  .str-chat__message-attachment__voice-recording-widget .str-chat__message-attachment__voice-recording-widget__metadata .str-chat__message-attachment-download-icon svg {
3442
- width: calc(var(--str-chat__spacing-px) * 24);
3443
- height: calc(var(--str-chat__spacing-px) * 16);
3718
+ width: var(--size-24);
3719
+ height: var(--size-16);
3444
3720
  }
3445
3721
  .str-chat__message-attachment__voice-recording-widget .str-chat__message-attachment__voice-recording-widget__timer {
3446
- min-width: calc(var(--str-chat__spacing-px) * 40);
3447
- width: calc(var(--str-chat__spacing-px) * 40);
3448
- font: var(--str-chat__metadata-emphasis-text);
3722
+ min-width: var(--size-40);
3723
+ width: var(--size-40);
3724
+ font: var(--str-chat__font-metadata-emphasis);
3449
3725
  }
3450
3726
 
3451
3727
  .str-chat .str-chat__duration-display {
@@ -3456,9 +3732,6 @@ to create clearer separation from the base surface.
3456
3732
  white-space: nowrap;
3457
3733
  text-align: center;
3458
3734
  }
3459
- .str-chat .str-chat__duration-display--hasProgress .str-chat__duration-display__time-elapsed {
3460
- color: var(--str-chat__primary-color);
3461
- }
3462
3735
 
3463
3736
  .str-chat .str-chat__button.str-chat__playback-rate-button {
3464
3737
  text-transform: none;
@@ -3472,9 +3745,9 @@ to create clearer separation from the base surface.
3472
3745
  padding: var(--button-padding-y-sm) var(--spacing-xs);
3473
3746
  background-color: inherit;
3474
3747
  border-radius: var(--button-radius-lg);
3475
- border: 1px solid var(--control-playback-toggle-border);
3748
+ border: 1px solid var(--chat-border-on-chat);
3476
3749
  color: var(--control-playback-toggle-text, var(--text-primary));
3477
- font: var(--str-chat__metadata-emphasis-text);
3750
+ font: var(--str-chat__font-metadata-emphasis);
3478
3751
  }
3479
3752
  .str-chat .str-chat__button.str-chat__playback-rate-button:not(:disabled):hover::after {
3480
3753
  content: "";
@@ -3501,35 +3774,31 @@ to create clearer separation from the base surface.
3501
3774
  cursor: default;
3502
3775
  }
3503
3776
 
3504
- .str-chat__message--me .str-chat__message-attachment .str-chat__playback-rate-button {
3505
- border: 1px solid var(--chat-border-on-chat-outgoing);
3506
- }
3507
-
3508
3777
  .str-chat .str-chat__message-attachment-audio-widget--progress-track {
3509
3778
  position: relative;
3510
- height: calc(var(--str-chat__spacing-px) * 5);
3779
+ height: var(--size-4);
3511
3780
  flex: 1;
3512
3781
  min-width: 0;
3513
3782
  cursor: pointer;
3514
- background: linear-gradient(to var(--str-chat__progress-direction, right), var(--str-chat__primary-color) var(--str-chat__message-attachment-audio-widget-progress), var(--str-chat__disabled-color) var(--str-chat__message-attachment-audio-widget-progress));
3783
+ background: linear-gradient(to var(--str-chat__progress-direction, right), var(--chat-waveform-bar-playing) var(--str-chat__message-attachment-audio-widget-progress), var(--chat-waveform-bar) var(--str-chat__message-attachment-audio-widget-progress));
3515
3784
  }
3516
3785
  [dir=rtl] .str-chat .str-chat__message-attachment-audio-widget--progress-track {
3517
3786
  --str-chat__progress-direction: left;
3518
3787
  }
3519
3788
  .str-chat .str-chat__message-attachment-audio-widget--progress-track {
3520
- border-radius: calc(var(--str-chat__spacing-px) * 5);
3789
+ border-radius: var(--radius-max);
3521
3790
  }
3522
3791
  .str-chat .str-chat__message-attachment-audio-widget--progress-track .str-chat__message-attachment-audio-widget--progress-indicator {
3523
3792
  position: absolute;
3524
3793
  inset-inline-start: 0;
3525
3794
  top: 50%;
3526
3795
  transform: translateY(-50%);
3527
- height: calc(var(--str-chat__spacing-px) * 12);
3528
- width: calc(var(--str-chat__spacing-px) * 12);
3796
+ height: var(--size-12);
3797
+ width: var(--size-12);
3529
3798
  border-radius: var(--radius-max);
3530
3799
  border: 1px solid var(--control-playback-thumb-border-default);
3531
3800
  background: var(--control-playback-thumb-bg-default);
3532
- box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.14);
3801
+ box-shadow: var(--str-chat__box-shadow-2);
3533
3802
  cursor: grab;
3534
3803
  }
3535
3804
 
@@ -3564,7 +3833,7 @@ to create clearer separation from the base surface.
3564
3833
  position: absolute;
3565
3834
  inset-inline-start: 0;
3566
3835
  border: 2px solid var(--base-white);
3567
- box-shadow: var(--light-elevation-3);
3836
+ box-shadow: var(--str-chat__box-shadow-3);
3568
3837
  background: var(--accent-neutral);
3569
3838
  height: 14px;
3570
3839
  width: 14px;
@@ -3900,13 +4169,13 @@ to create clearer separation from the base surface.
3900
4169
  align-items: center;
3901
4170
  }
3902
4171
  .str-chat__loading-channel .str-chat__channel-header--loading .str-chat__loading-channel-header-name {
3903
- height: calc(var(--str-chat__spacing-px) * 16);
3904
- width: calc(var(--str-chat__spacing-px) * 120);
4172
+ height: var(--size-16);
4173
+ width: 120px;
3905
4174
  }
3906
4175
  .str-chat__loading-channel .str-chat__channel-header--loading .str-chat__loading-channel-header-avatar {
3907
4176
  flex-shrink: 0;
3908
- width: calc(var(--str-chat__spacing-px) * 40);
3909
- height: calc(var(--str-chat__spacing-px) * 40);
4177
+ width: var(--size-40);
4178
+ height: var(--size-40);
3910
4179
  border-radius: 50%;
3911
4180
  }
3912
4181
  .str-chat__loading-channel .str-chat__message-list--loading {
@@ -3923,8 +4192,8 @@ to create clearer separation from the base surface.
3923
4192
  width: 100%;
3924
4193
  display: flex;
3925
4194
  flex-direction: column;
3926
- gap: calc(var(--str-chat__spacing-px) * 28);
3927
- padding-block: calc(var(--str-chat__spacing-px) * 32) calc(var(--str-chat__spacing-px) * 24);
4195
+ gap: var(--size-28);
4196
+ padding-block: var(--size-32) var(--size-24);
3928
4197
  }
3929
4198
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message {
3930
4199
  display: flex;
@@ -3933,8 +4202,8 @@ to create clearer separation from the base surface.
3933
4202
  }
3934
4203
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-avatar {
3935
4204
  flex-shrink: 0;
3936
- width: calc(var(--str-chat__spacing-px) * 36);
3937
- height: calc(var(--str-chat__spacing-px) * 36);
4205
+ width: 36px;
4206
+ height: 36px;
3938
4207
  border-radius: 50%;
3939
4208
  align-self: end;
3940
4209
  }
@@ -3943,7 +4212,7 @@ to create clearer separation from the base surface.
3943
4212
  flex-direction: column;
3944
4213
  width: min(100%, var(--str-chat__message-max-width));
3945
4214
  max-width: var(--str-chat__message-max-width);
3946
- row-gap: calc(var(--str-chat__spacing-px) * 12);
4215
+ row-gap: var(--size-12);
3947
4216
  min-width: 0;
3948
4217
  }
3949
4218
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-bubble {
@@ -3951,23 +4220,23 @@ to create clearer separation from the base surface.
3951
4220
  border-radius: var(--radius-3xl);
3952
4221
  }
3953
4222
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-bubble--md {
3954
- height: calc(var(--str-chat__spacing-px) * 64);
3955
- width: min(58%, var(--str-chat__spacing-px) * 272);
4223
+ height: var(--size-64);
4224
+ width: min(58%, 272px);
3956
4225
  }
3957
4226
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-bubble--lg {
3958
- height: calc(var(--str-chat__spacing-px) * 84);
3959
- width: min(72%, var(--str-chat__spacing-px) * 352);
4227
+ height: 84px;
4228
+ width: min(72%, 352px);
3960
4229
  }
3961
4230
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-metadata {
3962
- height: calc(var(--str-chat__spacing-px) * 16);
4231
+ height: var(--size-16);
3963
4232
  width: min(100%, var(--str-chat__message-max-width));
3964
4233
  border-radius: 999px;
3965
4234
  }
3966
4235
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-metadata--sm {
3967
- width: calc(var(--str-chat__spacing-px) * 88);
4236
+ width: 88px;
3968
4237
  }
3969
4238
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message .str-chat__loading-channel-message-metadata--md {
3970
- width: calc(var(--str-chat__spacing-px) * 124);
4239
+ width: 124px;
3971
4240
  }
3972
4241
  .str-chat__loading-channel .str-chat__loading-channel-message-list .str-chat__loading-channel-message.str-chat__loading-channel-message--outgoing {
3973
4242
  justify-content: flex-end;
@@ -3983,14 +4252,14 @@ to create clearer separation from the base surface.
3983
4252
  }
3984
4253
  .str-chat__loading-channel .str-chat__message-composer-container--loading .str-chat__loading-channel-message-input-button {
3985
4254
  flex-shrink: 0;
3986
- width: calc(var(--str-chat__spacing-px) * 48);
3987
- height: calc(var(--str-chat__spacing-px) * 48);
4255
+ width: var(--size-48);
4256
+ height: var(--size-48);
3988
4257
  border-radius: var(--button-radius-full);
3989
4258
  }
3990
4259
  .str-chat__loading-channel .str-chat__message-composer-container--loading .str-chat__loading-channel-message-input-pill {
3991
4260
  flex: 1;
3992
4261
  min-width: 0;
3993
- height: calc(var(--str-chat__spacing-px) * 48);
4262
+ height: var(--size-48);
3994
4263
  border-radius: 999px;
3995
4264
  }
3996
4265
 
@@ -3998,9 +4267,9 @@ to create clearer separation from the base surface.
3998
4267
  /* The border radius used for the borders of the component */
3999
4268
  --str-chat__channel-border-radius: 0;
4000
4269
  /* The text/icon color of the component */
4001
- --str-chat__channel-color: var(--str-chat__text-color);
4270
+ --str-chat__channel-color: var(--text-primary);
4002
4271
  /* The background color of the component */
4003
- --str-chat__channel-background-color: var(--str-chat__background-color);
4272
+ --str-chat__channel-background-color: var(--background-core-app);
4004
4273
  /* Box shadow applied to the component */
4005
4274
  --str-chat__channel-box-shadow: none;
4006
4275
  /* Top border of the component */
@@ -4144,6 +4413,7 @@ to create clearer separation from the base surface.
4144
4413
  max-width: 100%;
4145
4414
  row-gap: var(--spacing-xxs);
4146
4415
  width: 100%;
4416
+ width: unset;
4147
4417
  }
4148
4418
  .str-chat__channel-header .str-chat__channel-header__end {
4149
4419
  flex: 1;
@@ -4159,10 +4429,10 @@ to create clearer separation from the base surface.
4159
4429
  text-overflow: ellipsis;
4160
4430
  }
4161
4431
  .str-chat__channel-header .str-chat__channel-header__data__title {
4162
- font: var(--str-chat__heading-sm-text);
4432
+ font: var(--str-chat__font-heading-sm);
4163
4433
  }
4164
4434
  .str-chat__channel-header .str-chat__channel-header__data__subtitle {
4165
- font: var(--str-chat__caption-default-text);
4435
+ font: var(--str-chat__font-caption-default);
4166
4436
  color: var(--str-chat__channel-header__data__subtitle-color);
4167
4437
  }
4168
4438
 
@@ -4170,9 +4440,9 @@ to create clearer separation from the base surface.
4170
4440
  /* The border radius used for the borders of the component */
4171
4441
  --str-chat__channel-list-border-radius: 0;
4172
4442
  /* The text/icon color of the component */
4173
- --str-chat__channel-list-color: var(--str-chat__text-color);
4443
+ --str-chat__channel-list-color: var(--text-primary);
4174
4444
  /* The background color of the component */
4175
- --str-chat__channel-list-background-color: var(--str-chat__secondary-background-color);
4445
+ --str-chat__channel-list-background-color: var(--background-core-elevation-1);
4176
4446
  /* Box shadow applied to the component */
4177
4447
  --str-chat__channel-list-box-shadow: none;
4178
4448
  /* Animation duration used when the component enters or exits */
@@ -4192,7 +4462,7 @@ to create clearer separation from the base surface.
4192
4462
  /* Left (right in RTL layout) border of the component */
4193
4463
  --str-chat__channel-list-border-inline-start: none;
4194
4464
  /* Right (left in RTL layout) border of the component */
4195
- --str-chat__channel-list-border-inline-end: 1px solid var(--str-chat__surface-color);
4465
+ --str-chat__channel-list-border-inline-end: 1px solid var(--border-core-default);
4196
4466
  /* The border radius used for the borders of the load more button */
4197
4467
  --str-chat__channel-list-load-more-border-radius: var(
4198
4468
  --str-chat__cta-button-border-radius
@@ -4234,9 +4504,7 @@ to create clearer separation from the base surface.
4234
4504
  --str-chat__cta-button-disabled-color
4235
4505
  );
4236
4506
  /* The text/icon color for the empty list state */
4237
- --str-chat__channel-list-empty-indicator-color: var(
4238
- --str-chat__text-low-emphasis-color
4239
- );
4507
+ --str-chat__channel-list-empty-indicator-color: var(--text-secondary);
4240
4508
  }
4241
4509
 
4242
4510
  .str-chat__channel-list {
@@ -4283,7 +4551,7 @@ to create clearer separation from the base surface.
4283
4551
  }
4284
4552
  .str-chat__channel-list .str-chat__channel-list-inner .str-chat__channel-list-inner__main .str-chat__channel-list-empty p {
4285
4553
  color: var(--text-secondary);
4286
- font: var(--str-chat__caption-default-text);
4554
+ font: var(--str-chat__font-caption-default);
4287
4555
  }
4288
4556
  .str-chat__channel-list .str-chat__load-more-button {
4289
4557
  display: flex;
@@ -4356,7 +4624,7 @@ to create clearer separation from the base surface.
4356
4624
  }
4357
4625
  .str-chat__channel-list__header .str-chat__channel-list__header__title {
4358
4626
  flex: 1;
4359
- font: var(--str-chat__heading-lg-text);
4627
+ font: var(--str-chat__font-heading-lg);
4360
4628
  color: var(--text-primary);
4361
4629
  }
4362
4630
 
@@ -4449,8 +4717,8 @@ to create clearer separation from the base surface.
4449
4717
  }
4450
4718
  .str-chat__channel-list-item .str-chat__channel-list-item-data .str-chat__channel-list-item-data__first-row .str-chat__channel-list-item-data__title > .str-chat__icon--mute {
4451
4719
  color: var(--text-tertiary);
4452
- width: var(--icon-size-md);
4453
- height: var(--icon-size-md);
4720
+ width: var(--icon-size-sm);
4721
+ height: var(--icon-size-sm);
4454
4722
  }
4455
4723
  .str-chat__channel-list-item .str-chat__channel-list-item-data .str-chat__channel-list-item-data__first-row .str-chat__channel-list-item-data__timestamp-and-badge {
4456
4724
  flex-shrink: 0;
@@ -4466,7 +4734,7 @@ to create clearer separation from the base surface.
4466
4734
  }
4467
4735
 
4468
4736
  .str-chat {
4469
- --str-chat-selector-background-color: var(--str-chat__secondary-background-color);
4737
+ --str-chat-selector-background-color: var(--background-core-elevation-1);
4470
4738
  --str-chat-selector-border-color: var(--border-core-subtle);
4471
4739
  --str-chat__chat-view-selector-transition-duration: 180ms;
4472
4740
  --str-chat__chat-view-selector-transition-easing: ease;
@@ -4474,10 +4742,10 @@ to create clearer separation from the base surface.
4474
4742
  --str-chat__chat-view-selector-mobile-width: calc(
4475
4743
  var(--spacing-md) + var(--spacing-md) + var(--spacing-xs) + var(--spacing-xs) + 20px
4476
4744
  );
4477
- --str-chat-selector-button-color-default: var(--str-chat__text-low-emphasis-color);
4478
- --str-chat-selector-button-color-selected: var(--str-chat__text-color);
4745
+ --str-chat-selector-button-color-default: var(--text-tertiary);
4746
+ --str-chat-selector-button-color-selected: var(--text-primary);
4479
4747
  --str-chat-selector-button-background-color-default: transparent;
4480
- --str-chat-selector-button-background-color-selected: var(--str-chat__surface-color);
4748
+ --str-chat-selector-button-background-color-selected: var(--background-core-surface);
4481
4749
  }
4482
4750
 
4483
4751
  .str-chat__chat-view {
@@ -4486,6 +4754,7 @@ to create clearer separation from the base surface.
4486
4754
  height: 100%;
4487
4755
  min-height: 0;
4488
4756
  position: relative;
4757
+ background-color: var(--background-core-app);
4489
4758
  }
4490
4759
  .str-chat__chat-view .str-chat__chat-view__selector {
4491
4760
  display: flex;
@@ -4499,7 +4768,7 @@ to create clearer separation from the base surface.
4499
4768
  display: flex;
4500
4769
  position: relative;
4501
4770
  }
4502
- .str-chat__chat-view .str-chat__chat-view__selector .str-chat__chat-view__selector-button-container:focus-within .str-chat__chat-view__selector-button-tooltip, .str-chat__chat-view .str-chat__chat-view__selector .str-chat__chat-view__selector-button-container:hover .str-chat__chat-view__selector-button-tooltip {
4771
+ .str-chat__chat-view .str-chat__chat-view__selector .str-chat__chat-view__selector-button-container:focus-visible + .str-chat__chat-view__selector-button-tooltip, .str-chat__chat-view .str-chat__chat-view__selector .str-chat__chat-view__selector-button-container:hover .str-chat__chat-view__selector-button-tooltip {
4503
4772
  opacity: 1;
4504
4773
  transform: translate3d(0, -50%, 0);
4505
4774
  visibility: visible;
@@ -4512,7 +4781,7 @@ to create clearer separation from the base surface.
4512
4781
  gap: 4px;
4513
4782
  padding: var(--spacing-xs);
4514
4783
  border-radius: var(--radius-md);
4515
- font: var(--str-chat__caption-emphasis-text);
4784
+ font: var(--str-chat__font-caption-emphasis);
4516
4785
  line-height: 1;
4517
4786
  position: relative;
4518
4787
  background: var(--str-chat-selector-button-background-color-default);
@@ -4566,8 +4835,7 @@ to create clearer separation from the base surface.
4566
4835
  }
4567
4836
 
4568
4837
  .str-chat {
4569
- --str-chat__date-separator-color: var(--str-chat__text-low-emphasis-color);
4570
- --str-chat__date-separator-line-color: var(--str-chat__disabled-color);
4838
+ --str-chat__date-separator-color: var(--chat-text-system);
4571
4839
  --str-chat__date-separator-border-radius: 0;
4572
4840
  --str-chat__date-separator-background-color: transparent;
4573
4841
  --str-chat__date-separator-border-block-start: none;
@@ -4611,10 +4879,7 @@ to create clearer separation from the base surface.
4611
4879
  color: var(--chat-text-system);
4612
4880
  background-color: var(--background-core-surface-subtle);
4613
4881
  border-radius: var(--radius-max);
4614
- /* metadata/emphasis */
4615
- font-size: var(--typography-font-size-xs);
4616
- font-weight: var(--typography-font-weight-semi-bold);
4617
- line-height: var(--typography-line-height-tight);
4882
+ font: var(--str-chat__font-metadata-emphasis);
4618
4883
  }
4619
4884
 
4620
4885
  .str-chat {
@@ -4624,10 +4889,10 @@ to create clearer separation from the base surface.
4624
4889
  --str-chat__drag-and-drop-container-border-block-end: 2px solid transparent;
4625
4890
  /* Top border of the component on dragover */
4626
4891
  --str-chat__drag-and-drop-container-on-dragover-border-block-start: 2px solid
4627
- var(--str-chat__primary-color);
4892
+ var(--accent-primary);
4628
4893
  /* Bottom border of the component on dragover */
4629
4894
  --str-chat__drag-and-drop-container-on-dragover-border-block-end: 2px solid
4630
- var(--str-chat__primary-color);
4895
+ var(--accent-primary);
4631
4896
  /* Left (right in RTL layout) border of the component on dragover */
4632
4897
  --str-chat__drag-and-drop-container-on-dragover-border-inline-start: none;
4633
4898
  /* Right (left in RTL layout) border of the component on dragover */
@@ -4679,7 +4944,7 @@ to create clearer separation from the base surface.
4679
4944
  border-inline-start: var(--str-chat__channel-border-inline-start);
4680
4945
  border-inline-end: var(--str-chat__channel-border-inline-end);
4681
4946
  color: var(--text-secondary);
4682
- font: var(--str-chat__caption-default-text);
4947
+ font: var(--str-chat__font-caption-default);
4683
4948
  }
4684
4949
  .str-chat__empty-channel svg {
4685
4950
  width: 32px;
@@ -4725,7 +4990,7 @@ to create clearer separation from the base surface.
4725
4990
  --str-chat__gallery-nav-background: rgba(255, 255, 255, 0.92);
4726
4991
  --str-chat__gallery-nav-color: #101828;
4727
4992
  --str-chat__gallery-nav-hover-background: #ffffff;
4728
- --str-chat__gallery-nav-box-shadow: var(--str-chat__box-shadow-elevation-1);
4993
+ --str-chat__gallery-nav-box-shadow: var(--str-chat__box-shadow-2);
4729
4994
  position: relative;
4730
4995
  display: flex;
4731
4996
  flex-direction: column;
@@ -4736,20 +5001,20 @@ to create clearer separation from the base surface.
4736
5001
  min-height: 0;
4737
5002
  padding: 0;
4738
5003
  box-sizing: border-box;
5004
+ backdrop-filter: blur(24px);
4739
5005
  }
4740
5006
  .str-chat.str-chat__modal.str-chat__gallery-modal {
4741
5007
  --str-chat__modal-overlay-color: var(--background-core-scrim);
4742
5008
  --str-chat__modal-overlay-backdrop-filter: none;
4743
5009
  }
4744
5010
  .str-chat .str-chat__gallery__header {
4745
- position: absolute;
4746
- inset: var(--spacing-sm) var(--spacing-sm) auto;
4747
- z-index: 2;
5011
+ padding: var(--spacing-md);
4748
5012
  display: grid;
4749
5013
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
4750
5014
  align-items: start;
4751
5015
  gap: var(--spacing-sm);
4752
5016
  pointer-events: none;
5017
+ width: 100%;
4753
5018
  }
4754
5019
  .str-chat .str-chat__gallery__header-spacer {
4755
5020
  min-width: 0;
@@ -4760,9 +5025,7 @@ to create clearer separation from the base surface.
4760
5025
  }
4761
5026
  .str-chat .str-chat__gallery__title {
4762
5027
  color: var(--str-chat__gallery-foreground);
4763
- font-size: var(--typography-font-size-sm);
4764
- font-weight: 600;
4765
- line-height: var(--typography-line-height-tight);
5028
+ font: var(--str-chat__font-heading-sm);
4766
5029
  overflow: hidden;
4767
5030
  text-overflow: ellipsis;
4768
5031
  white-space: nowrap;
@@ -4771,8 +5034,7 @@ to create clearer separation from the base surface.
4771
5034
  display: block;
4772
5035
  margin-top: 2px;
4773
5036
  color: var(--str-chat__gallery-muted-foreground);
4774
- font-size: var(--typography-font-size-xs);
4775
- line-height: var(--typography-line-height-tight);
5037
+ font: var(--str-chat__font-metadata-default);
4776
5038
  }
4777
5039
  .str-chat .str-chat__gallery__header-actions {
4778
5040
  display: inline-flex;
@@ -4817,18 +5079,13 @@ to create clearer separation from the base surface.
4817
5079
  outline: 2px solid var(--border-utility-focused);
4818
5080
  outline-offset: 2px;
4819
5081
  }
4820
- .str-chat .str-chat__button.str-chat__gallery__action-button .str-chat__button__content,
4821
- .str-chat .str-chat__gallery__action-button .str-chat__button__content {
4822
- display: inline-flex;
4823
- align-items: center;
4824
- justify-content: center;
4825
- }
4826
- .str-chat .str-chat__button.str-chat__gallery__action-button svg,
4827
- .str-chat .str-chat__gallery__action-button svg {
4828
- width: 1rem;
4829
- height: 1rem;
5082
+ .str-chat .str-chat__button.str-chat__gallery__action-button .str-chat__icon,
5083
+ .str-chat .str-chat__gallery__action-button .str-chat__icon {
5084
+ width: var(--icon-size-sm);
5085
+ height: var(--icon-size-sm);
4830
5086
  }
4831
5087
  .str-chat .str-chat__gallery__main {
5088
+ flex-direction: column;
4832
5089
  position: relative;
4833
5090
  display: flex;
4834
5091
  align-items: center;
@@ -4840,7 +5097,6 @@ to create clearer separation from the base surface.
4840
5097
  overflow: hidden;
4841
5098
  border-radius: 0;
4842
5099
  background: var(--str-chat__gallery-main-background);
4843
- backdrop-filter: blur(24px);
4844
5100
  }
4845
5101
  .str-chat .str-chat__gallery__slide-container {
4846
5102
  position: relative;
@@ -4850,11 +5106,15 @@ to create clearer separation from the base surface.
4850
5106
  width: 100%;
4851
5107
  height: 100%;
4852
5108
  min-height: 0;
4853
- padding: 2.5rem 3.5rem 2rem;
5109
+ padding: var(--size-64);
4854
5110
  box-sizing: border-box;
4855
5111
  overflow: hidden;
4856
5112
  touch-action: pan-y pinch-zoom;
4857
5113
  }
5114
+ .str-chat .str-chat__gallery__media-container {
5115
+ width: 100%;
5116
+ height: 100%;
5117
+ }
4858
5118
  .str-chat .str-chat__gallery__media {
4859
5119
  display: flex;
4860
5120
  align-items: center;
@@ -4932,18 +5192,15 @@ to create clearer separation from the base surface.
4932
5192
  inset-inline-end: var(--spacing-sm);
4933
5193
  }
4934
5194
  .str-chat .str-chat__gallery__position-indicator {
4935
- position: absolute;
4936
- left: 50%;
4937
- bottom: var(--spacing-sm);
4938
- z-index: 2;
4939
- transform: translateX(-50%);
4940
5195
  color: var(--str-chat__gallery-foreground);
4941
- font-size: var(--typography-font-size-xs);
4942
- font-weight: 500;
4943
- line-height: var(--typography-line-height-tight);
4944
- font-variant-numeric: tabular-nums;
5196
+ font: var(--str-chat__font-caption-emphasis);
4945
5197
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
4946
5198
  user-select: none;
5199
+ width: 100%;
5200
+ display: flex;
5201
+ align-items: center;
5202
+ justify-content: center;
5203
+ padding: var(--spacing-md);
4947
5204
  }
4948
5205
  .str-chat .str-chat__gallery__loading {
4949
5206
  display: flex;
@@ -4961,7 +5218,7 @@ to create clearer separation from the base surface.
4961
5218
  gap: var(--spacing-sm);
4962
5219
  width: 100%;
4963
5220
  height: 100%;
4964
- color: var(--str-chat__text-low-emphasis-color);
5221
+ color: var(--text-tertiary);
4965
5222
  font-size: var(--typography-font-size-sm);
4966
5223
  }
4967
5224
  .str-chat.str-chat__theme-dark .str-chat__gallery {
@@ -5028,25 +5285,25 @@ to create clearer separation from the base surface.
5028
5285
 
5029
5286
  .str-chat__loading-channels-avatar {
5030
5287
  flex-shrink: 0;
5031
- width: calc(var(--str-chat__spacing-px) * 48);
5032
- height: calc(var(--str-chat__spacing-px) * 48);
5288
+ width: var(--size-48);
5289
+ height: var(--size-48);
5033
5290
  border-radius: 50%;
5034
5291
  }
5035
5292
 
5036
5293
  .str-chat__loading-channels-username,
5037
5294
  .str-chat__loading-channels-status {
5038
- height: calc(var(--str-chat__spacing-px) * 20);
5295
+ height: var(--size-20);
5039
5296
  border-radius: 999px;
5040
5297
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 94%, rgba(0, 0, 0, 0.7) 98%, transparent 100%);
5041
5298
  mask-image: linear-gradient(90deg, #000 0%, #000 94%, rgba(0, 0, 0, 0.7) 98%, transparent 100%);
5042
5299
  }
5043
5300
 
5044
5301
  .str-chat__loading-channels-username {
5045
- width: min(62%, var(--str-chat__spacing-px) * 180);
5302
+ width: min(62%, 180px);
5046
5303
  }
5047
5304
 
5048
5305
  .str-chat__loading-channels-status {
5049
- width: min(84%, var(--str-chat__spacing-px) * 244);
5306
+ width: min(84%, 244px);
5050
5307
  }
5051
5308
 
5052
5309
  @keyframes loading-channels-shimmer {
@@ -5116,7 +5373,7 @@ to create clearer separation from the base surface.
5116
5373
  padding-bottom: var(--spacing-xxs);
5117
5374
  }
5118
5375
  .str-chat__share-location-dialog .str-chat__live-location-activation .str-chat__form__switch-field__label__text {
5119
- font: var(--str-chat__caption-emphasis-text);
5376
+ font: var(--str-chat__font-caption-emphasis);
5120
5377
  }
5121
5378
  .str-chat__share-location-dialog .str-chat__live-location-sharing-duration-selector {
5122
5379
  padding-inline: calc(var(--spacing-md) - var(--spacing-xs));
@@ -5135,7 +5392,7 @@ to create clearer separation from the base surface.
5135
5392
  display: flex;
5136
5393
  justify-content: space-between;
5137
5394
  min-width: var(--str-chat__duration-selector-min-width);
5138
- font: var(--str-chat__caption-default-text);
5395
+ font: var(--str-chat__font-caption-default);
5139
5396
  }
5140
5397
  .str-chat__share-location-dialog .str-chat__live-location-sharing-duration-selector .str-chat__context-menu {
5141
5398
  min-width: var(--str-chat__duration-selector-min-width);
@@ -5204,10 +5461,10 @@ to create clearer separation from the base surface.
5204
5461
  width: 32px;
5205
5462
  padding: 0;
5206
5463
  cursor: pointer;
5207
- --str-chat-icon-color: var(--str-chat__on-primary-color);
5208
- border-radius: var(--str-chat__border-radius-circle);
5209
- color: var(--str-chat__on-primary-color);
5210
- background-color: var(--str-chat__primary-color);
5464
+ --str-chat-icon-color: var(--text-on-accent);
5465
+ border-radius: var(--radius-max);
5466
+ color: var(--text-on-accent);
5467
+ background-color: var(--accent-primary);
5211
5468
  }
5212
5469
  .str-chat__audio_recorder .str-chat__audio_recorder__complete-button:disabled,
5213
5470
  .str-chat__audio_recorder .str-chat__audio_recorder__stop-button:disabled {
@@ -5215,7 +5472,7 @@ to create clearer separation from the base surface.
5215
5472
  }
5216
5473
  .str-chat__audio_recorder .str-chat__audio_recorder__complete-button .str-chat__loading-indicator svg linearGradient stop:last-child,
5217
5474
  .str-chat__audio_recorder .str-chat__audio_recorder__stop-button .str-chat__loading-indicator svg linearGradient stop:last-child {
5218
- stop-color: var(--str-chat__background-color);
5475
+ stop-color: var(--background-core-app);
5219
5476
  }
5220
5477
  .str-chat__audio_recorder .str-chat__audio_recorder__stop-button {
5221
5478
  --str-chat-icon-height: 12px;
@@ -5265,52 +5522,44 @@ to create clearer separation from the base surface.
5265
5522
 
5266
5523
  .str-chat {
5267
5524
  /* The width/height of the message options button(s), for Angular SDK it's only used on desktop devices starting from version 5 */
5268
- --str-chat__message-options-button-size: calc(var(--str-chat__spacing-px) * 26);
5525
+ --str-chat__message-options-button-size: var(--size-32);
5269
5526
  --str-chat__message-border-radius: 0;
5270
- --str-chat__message-color: var(--str-chat__text-color);
5271
5527
  --str-chat__message-link-color: var(--chat-text-link);
5272
- --str-chat__message-mention-color: var(--str-chat__primary-color);
5528
+ --str-chat__message-mention-color: var(--accent-primary);
5273
5529
  --str-chat__message-background-color: transparent;
5274
- --str-chat__message-highlighted-background-color: var(
5275
- --str-chat__message-highlight-color
5276
- );
5277
- --str-chat__message-border-block-start: none;
5278
- --str-chat__message-border-block-end: none;
5279
- --str-chat__message-border-inline-start: none;
5280
- --str-chat__message-border-inline-end: none;
5281
- --str-chat__message-box-shadow: none;
5530
+ --str-chat__message-highlighted-background-color: var(--background-core-highlight);
5282
5531
  --str-chat__message-active-background-color: transparent;
5283
- --str-chat__message-options-color: var(--button-secondary-text);
5284
- --str-chat__message-options-hover-background-color: var(
5285
- --str-chat__tertiary-surface-color
5286
- );
5287
- --str-chat__message-options-border-radius: var(--str-chat__border-radius-circle);
5288
- --str-chat__message-options-active-color: var(--str-chat__primary-color);
5289
5532
  --str-chat__message-bubble-border-radius: var(--message-bubble-radius-group-bottom);
5290
- --str-chat__message-bubble-color: var(--chat-text-message);
5291
- --str-chat__message-bubble-background-color: var(--chat-bg-incoming);
5292
- --str-chat__own-message-bubble-color: var(--chat-text-message);
5293
- --str-chat__own-message-bubble-background-color: var(--chat-bg-outgoing);
5294
- --str-chat__message-bubble-border-block-start: none;
5295
- --str-chat__message-bubble-border-block-end: none;
5296
- --str-chat__message-bubble-border-inline-start: none;
5297
- --str-chat__message-bubble-border-inline-end: none;
5298
- --str-chat__message-bubble-box-shadow: none;
5299
5533
  --str-chat__blocked-message-border-radius: var(--radius-md);
5300
- --str-chat__blocked-message-color: var(--str-chat__text-low-emphasis-color);
5301
- --str-chat__blocked-message-background-color: var(--str-chat__secondary-surface-color);
5302
- --str-chat__blocked-message-border-block-start: none;
5303
- --str-chat__blocked-message-border-block-end: none;
5304
- --str-chat__blocked-message-border-inline-start: none;
5305
- --str-chat__blocked-message-border-inline-end: none;
5306
- --str-chat__blocked-message-box-shadow: none;
5307
5534
  --str-chat__message-reactions-host-offset-x: calc(var(--spacing-xs) * -1);
5308
5535
  /* Background color for pinned messages (Figma: background/core/highlight) */
5309
5536
  --str-chat__message-pinned-background-color: var(--background-core-highlight);
5310
5537
  /* The maximum allowed width of the message component */
5311
- --str-chat__message-max-width: calc(var(--str-chat__spacing-px) * 400);
5538
+ --str-chat__message-max-width: 400px;
5312
5539
  /* The maximum allowed width of the message component, if it has attachments */
5313
- --str-chat__message-with-attachment-max-width: calc(var(--str-chat__spacing-px) * 400);
5540
+ --str-chat__message-with-attachment-max-width: 400px;
5541
+ }
5542
+ .str-chat .str-chat__message.str-chat__message--me {
5543
+ --chat-bg: var(--chat-bg-outgoing);
5544
+ --chat-bg-attachment: var(--chat-bg-attachment-outgoing);
5545
+ --chat-text: var(--chat-text-outgoing);
5546
+ --chat-border: var(--chat-border-outgoing);
5547
+ --chat-border-on-chat: var(--chat-border-on-chat-outgoing);
5548
+ --chat-reply-indicator: var(--chat-reply-indicator-outgoing);
5549
+ --chat-poll-progress-track: var(--chat-poll-progress-track-outgoing);
5550
+ --chat-poll-progress-fill: var(--chat-poll-progress-fill-outgoing);
5551
+ --chat-thread-connector: var(--chat-thread-connector-outgoing);
5552
+ }
5553
+ .str-chat .str-chat__message.str-chat__message--other {
5554
+ --chat-bg: var(--chat-bg-incoming);
5555
+ --chat-bg-attachment: var(--chat-bg-attachment-incoming);
5556
+ --chat-text: var(--chat-text-incoming);
5557
+ --chat-border: var(--chat-border-incoming);
5558
+ --chat-border-on-chat: var(--chat-border-on-chat-incoming);
5559
+ --chat-reply-indicator: var(--chat-reply-indicator-incoming);
5560
+ --chat-poll-progress-track: var(--chat-poll-progress-track-incoming);
5561
+ --chat-poll-progress-fill: var(--chat-poll-progress-fill-incoming);
5562
+ --chat-thread-connector: var(--chat-thread-connector-incoming);
5314
5563
  }
5315
5564
 
5316
5565
  /* Make spaces between message groups */
@@ -5336,6 +5585,11 @@ to create clearer separation from the base surface.
5336
5585
  --str-chat-message-options-size: calc(3 * var(--str-chat__message-options-button-size));
5337
5586
  padding-inline: var(--str-chat__message-composer-padding);
5338
5587
  }
5588
+ @media (max-width: 767px) {
5589
+ .str-chat__message {
5590
+ --str-chat-message-options-size: var(--str-chat__message-options-button-size);
5591
+ }
5592
+ }
5339
5593
  .str-chat__message .str-chat__message-bubble {
5340
5594
  width: min(100%, var(--str-chat__message-max-width));
5341
5595
  max-width: var(--str-chat__message-max-width);
@@ -5398,7 +5652,7 @@ to create clearer separation from the base surface.
5398
5652
 
5399
5653
  .str-chat__message-mention {
5400
5654
  color: var(--str-chat__message-mention-color);
5401
- font: var(--str-chat__body-emphasis-text);
5655
+ font: var(--str-chat__font-body-emphasis);
5402
5656
  }
5403
5657
 
5404
5658
  .str-chat__message {
@@ -5410,6 +5664,7 @@ to create clearer separation from the base surface.
5410
5664
  border-block-end: var(--str-chat__message-border-block-end);
5411
5665
  border-inline-start: var(--str-chat__message-border-inline-start);
5412
5666
  border-inline-end: var(--str-chat__message-border-inline-end);
5667
+ color: var(--str-chat__message-color, var(--chat-text));
5413
5668
  display: grid;
5414
5669
  word-wrap: break-word;
5415
5670
  word-break: break-word;
@@ -5424,7 +5679,7 @@ to create clearer separation from the base surface.
5424
5679
  display: flex;
5425
5680
  align-items: center;
5426
5681
  gap: var(--spacing-xxs);
5427
- font: var(--str-chat__metadata-emphasis-text);
5682
+ font: var(--str-chat__font-metadata-emphasis);
5428
5683
  color: var(--text-primary-text);
5429
5684
  }
5430
5685
  .str-chat__message .str-chat__message-pin-indicator .str-chat__message-pin-indicator__content .str-chat__message-pin-indicator__icon {
@@ -5553,6 +5808,8 @@ to create clearer separation from the base surface.
5553
5808
  border-block-end: var(--str-chat__message-bubble-border-block-end);
5554
5809
  border-inline-start: var(--str-chat__message-bubble-border-inline-start);
5555
5810
  border-inline-end: var(--str-chat__message-bubble-border-inline-end);
5811
+ color: var(--str-chat__message-bubble-color, inherit);
5812
+ background-color: var(--str-chat__message-bubble-background-color, var(--chat-bg));
5556
5813
  border-radius: var(--message-bubble-radius-group-bottom);
5557
5814
  overflow: hidden;
5558
5815
  }
@@ -5568,7 +5825,8 @@ to create clearer separation from the base surface.
5568
5825
  }
5569
5826
  .str-chat__message.str-chat__message--me .str-chat__message-bubble {
5570
5827
  justify-self: flex-end;
5571
- background-color: var(--str-chat__own-message-bubble-background-color);
5828
+ color: var(--str-chat__own-message-bubble-color, inherit);
5829
+ background-color: var(--str-chat__own-message-bubble-background-color, var(--chat-bg));
5572
5830
  }
5573
5831
  .str-chat__message.str-chat__message--me .str-chat__message-inner {
5574
5832
  grid-template-areas: "reminder reminder" ". reactions" "options message-bubble" "replies replies";
@@ -5590,7 +5848,7 @@ to create clearer separation from the base surface.
5590
5848
  color: var(--chat-text-timestamp);
5591
5849
  }
5592
5850
  .str-chat__message .str-chat__message-metadata * {
5593
- font: var(--str-chat__metadata-default-text);
5851
+ font: var(--str-chat__font-metadata-default);
5594
5852
  }
5595
5853
  .str-chat__message .str-chat__message-metadata .str-chat__message-metadata__name {
5596
5854
  overflow-y: hidden;
@@ -5619,6 +5877,8 @@ to create clearer separation from the base surface.
5619
5877
  border-block-end: var(--str-chat__blocked-message-border-block-end);
5620
5878
  border-inline-start: var(--str-chat__blocked-message-border-inline-start);
5621
5879
  border-inline-end: var(--str-chat__blocked-message-border-inline-end);
5880
+ color: var(--str-chat__blocked-message-color, var(--chat-text));
5881
+ background-color: var(--str-chat__blocked-message-background-color, var(--chat-bg));
5622
5882
  padding-block: var(--spacing-xs);
5623
5883
  }
5624
5884
  .str-chat__message .str-chat__message-error-indicator {
@@ -5640,7 +5900,7 @@ to create clearer separation from the base surface.
5640
5900
  display: block;
5641
5901
  position: absolute;
5642
5902
  top: 8px;
5643
- inset-inline-end: calc(-1 * calc(var(--str-chat__spacing-px) * 18) / 2);
5903
+ inset-inline-end: calc(-1 * 18px / 2);
5644
5904
  }
5645
5905
 
5646
5906
  .str-chat__message--highlighted {
@@ -5648,10 +5908,26 @@ to create clearer separation from the base surface.
5648
5908
  background-color: var(--str-chat__message-highlighted-background-color);
5649
5909
  }
5650
5910
 
5651
- .str-chat__message--pinned {
5911
+ .str-chat__li:has(.str-chat__message--pinned) {
5912
+ position: relative;
5913
+ isolation: isolate;
5914
+ }
5915
+ .str-chat__li:has(.str-chat__message--pinned)::before {
5916
+ content: "";
5917
+ position: absolute;
5918
+ inset-block: 0;
5919
+ inset-inline: -9999px;
5652
5920
  background-color: var(--str-chat__message-pinned-background-color);
5921
+ z-index: -1;
5922
+ pointer-events: none;
5653
5923
  }
5654
5924
 
5925
+ /* Fallback for browsers without :has() support */
5926
+ @supports not selector(:has(a, b)) {
5927
+ .str-chat__message--pinned {
5928
+ background-color: var(--str-chat__message-pinned-background-color);
5929
+ }
5930
+ }
5655
5931
  /* This rule won't be applied in browsers that don't support :has() */
5656
5932
  .str-chat__li:hover:not(:has(.str-chat__reaction-list:hover, .str-chat__modal--open)) {
5657
5933
  background-color: var(--str-chat__message-active-background-color);
@@ -5773,7 +6049,7 @@ to create clearer separation from the base surface.
5773
6049
  border-block-end: var(--str-chat__message-also-sent-in-channel-border-block-end);
5774
6050
  border-inline-start: var(--str-chat__message-also-sent-in-channel-border-inline-start);
5775
6051
  border-inline-end: var(--str-chat__message-also-sent-in-channel-border-inline-end);
5776
- font: var(--str-chat__metadata-emphasis-text);
6052
+ font: var(--str-chat__font-metadata-emphasis);
5777
6053
  }
5778
6054
  .str-chat__message-also-sent-in-channel .str-chat__icon {
5779
6055
  height: var(--spacing-sm);
@@ -5788,7 +6064,7 @@ to create clearer separation from the base surface.
5788
6064
  border: none;
5789
6065
  padding: 0;
5790
6066
  cursor: pointer;
5791
- font: var(--str-chat__metadata-default-text);
6067
+ font: var(--str-chat__font-metadata-default);
5792
6068
  color: var(--text-link);
5793
6069
  }
5794
6070
 
@@ -5824,7 +6100,7 @@ to create clearer separation from the base surface.
5824
6100
  border-radius: var(--radius-xl);
5825
6101
  border: 1px solid var(--border-core-subtle);
5826
6102
  background: var(--background-core-surface-subtle);
5827
- font: var(--str-chat__metadata-default-text);
6103
+ font: var(--str-chat__font-metadata-default);
5828
6104
  }
5829
6105
 
5830
6106
  .str-chat {
@@ -5855,10 +6131,10 @@ to create clearer separation from the base surface.
5855
6131
  }
5856
6132
  .str-chat__message-translation-indicator,
5857
6133
  .str-chat__message-translation-indicator .str-chat__message-translation-indicator__translation-toggle {
5858
- font: var(--str-chat__metadata-default-text);
6134
+ font: var(--str-chat__font-metadata-default);
5859
6135
  }
5860
6136
  .str-chat__message-translation-indicator .str-chat__message-translation-indicator__sign {
5861
- font: var(--str-chat__metadata-emphasis-text);
6137
+ font: var(--str-chat__font-metadata-emphasis);
5862
6138
  }
5863
6139
  .str-chat__message-translation-indicator svg path {
5864
6140
  stroke-width: 1.5px;
@@ -5870,17 +6146,14 @@ to create clearer separation from the base surface.
5870
6146
  );
5871
6147
  }
5872
6148
  .str-chat .str-chat__message .str-chat__quoted-message-preview {
5873
- background-color: var(--chat-bg-attachment-incoming);
6149
+ background-color: var(--chat-bg-attachment);
5874
6150
  width: calc(var(--str-chat__message-with-attachment-max-width) - 2 * var(--spacing-xs));
5875
6151
  max-width: 100%;
5876
6152
  min-width: 0;
5877
6153
  }
5878
- .str-chat .str-chat__message--me .str-chat__quoted-message-preview {
5879
- background-color: var(--chat-bg-attachment-outgoing);
5880
- }
5881
6154
 
5882
6155
  .str-chat {
5883
- --str-chat__message-saved-for-later-color: var(--str-chat__primary-color);
6156
+ --str-chat__message-saved-for-later-color: var(--accent-primary);
5884
6157
  --str-chat__message-saved-for-later-background-color: transparent;
5885
6158
  --str-chat__message-saved-for-later-border-block-start: none;
5886
6159
  --str-chat__message-saved-for-later-border-block-end: none;
@@ -5914,7 +6187,7 @@ to create clearer separation from the base surface.
5914
6187
  border-block-end: var(--str-chat__message-saved-for-later-border-block-end);
5915
6188
  border-inline-start: var(--str-chat__message-saved-for-later-border-inline-start);
5916
6189
  border-inline-end: var(--str-chat__message-saved-for-later-border-inline-end);
5917
- font: var(--str-chat__metadata-emphasis-text);
6190
+ font: var(--str-chat__font-metadata-emphasis);
5918
6191
  }
5919
6192
  .str-chat__message-saved-for-later svg {
5920
6193
  width: var(--icon-size-xs);
@@ -5941,13 +6214,13 @@ to create clearer separation from the base surface.
5941
6214
  border-block-end: var(--str-chat__message-reminder-border-block-end);
5942
6215
  border-inline-start: var(--str-chat__message-reminder-border-inline-start);
5943
6216
  border-inline-end: var(--str-chat__message-reminder-border-inline-end);
5944
- font: var(--str-chat__metadata-emphasis-text);
6217
+ font: var(--str-chat__font-metadata-emphasis);
5945
6218
  }
5946
6219
  .str-chat__message-reminder svg path {
5947
6220
  stroke-width: 1.5px;
5948
6221
  }
5949
6222
  .str-chat__message-reminder .str-chat__message-reminder__time-left {
5950
- font: var(--str-chat__metadata-default-text);
6223
+ font: var(--str-chat__font-metadata-default);
5951
6224
  }
5952
6225
 
5953
6226
  .str-chat__message-replies-count-button-wrapper {
@@ -5982,7 +6255,7 @@ to create clearer separation from the base surface.
5982
6255
  flex-direction: row;
5983
6256
  align-items: center;
5984
6257
  color: var(--text-link);
5985
- font: var(--str-chat__heading-xs-text);
6258
+ font: var(--str-chat__font-heading-xs);
5986
6259
  }
5987
6260
 
5988
6261
  .str-chat__message.str-chat__message--me .str-chat__message-replies-count-button-wrapper {
@@ -5996,8 +6269,8 @@ to create clearer separation from the base surface.
5996
6269
  }
5997
6270
  .str-chat__message.str-chat__message--me .str-chat__message-replies-count-button-wrapper::after {
5998
6271
  border-end-end-radius: var(--radius-max);
5999
- border-inline-end: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector-outgoing);
6000
- border-block-end: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector-outgoing);
6272
+ border-inline-end: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector);
6273
+ border-block-end: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector);
6001
6274
  inset-inline-end: 0;
6002
6275
  }
6003
6276
 
@@ -6012,14 +6285,21 @@ to create clearer separation from the base surface.
6012
6285
  }
6013
6286
  .str-chat__message.str-chat__message--other .str-chat__message-replies-count-button-wrapper::after {
6014
6287
  border-end-start-radius: var(--radius-max);
6015
- border-inline-start: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector-incoming);
6016
- border-block-end: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector-incoming);
6288
+ border-inline-start: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector);
6289
+ border-block-end: var(--replies-button-connector-stroke-width) solid var(--chat-thread-connector);
6017
6290
  inset-inline-start: 0;
6018
6291
  }
6019
6292
 
6020
6293
  .str-chat__message-actions-box {
6021
6294
  min-width: 180px;
6022
6295
  }
6296
+ .str-chat__message-actions-box .str-chat__message-actions-box__submenu--download-attachments {
6297
+ max-width: 256px;
6298
+ }
6299
+ .str-chat__message-actions-box.str-chat__message-actions-box--hidden {
6300
+ visibility: hidden;
6301
+ pointer-events: none;
6302
+ }
6023
6303
 
6024
6304
  .str-chat__message-options {
6025
6305
  grid-area: options;
@@ -6044,11 +6324,6 @@ to create clearer separation from the base surface.
6044
6324
  border-radius: var(--str-chat__message-options-border-radius);
6045
6325
  color: var(--str-chat__message-options-color);
6046
6326
  }
6047
- .str-chat__message-options .str-chat__message-actions-box-button:hover,
6048
- .str-chat__message-options .str-chat__message-reply-in-thread-button:hover,
6049
- .str-chat__message-options .str-chat__message-reactions-button:hover {
6050
- background-color: var(--str-chat__message-options-hover-background-color);
6051
- }
6052
6327
  .str-chat__message-options .str-chat__message-actions-box-button:active,
6053
6328
  .str-chat__message-options .str-chat__message-reply-in-thread-button:active,
6054
6329
  .str-chat__message-options .str-chat__message-reactions-button:active {
@@ -6058,6 +6333,19 @@ to create clearer separation from the base surface.
6058
6333
  position: relative;
6059
6334
  }
6060
6335
 
6336
+ .str-chat .str-chat__message-actions-list-item-button.str-chat__message-actions-list-item-button--react {
6337
+ display: none;
6338
+ }
6339
+
6340
+ @media (max-width: 767px) {
6341
+ .str-chat .str-chat__message-options .str-chat__button.str-chat__message-reactions-button,
6342
+ .str-chat .str-chat__message-options .str-chat__button.str-chat__message-reply-in-thread-button {
6343
+ display: none;
6344
+ }
6345
+ .str-chat .str-chat__message-actions-list-item-button.str-chat__message-actions-list-item-button--react {
6346
+ display: flex;
6347
+ }
6348
+ }
6061
6349
  .str-chat__message-bounce-alert {
6062
6350
  max-width: 300px;
6063
6351
  }
@@ -6078,12 +6366,13 @@ to create clearer separation from the base surface.
6078
6366
  --str-chat__attachment-preview-list-border-inline-start: none;
6079
6367
  --str-chat__attachment-preview-list-border-inline-end: none;
6080
6368
  --str-chat__attachment-preview-list-box-shadow: none;
6369
+ --str-chat__attachment-preview-row-height: 72px;
6081
6370
  --str-chat__attachment-preview-close-icon-background: var(--control-remove-control-bg);
6082
6371
  --str-chat__attachment-preview-close-icon-color: var(--control-remove-control-icon);
6083
6372
  --str-chat__attachment-preview-close-icon-border-color: var(
6084
6373
  --control-remove-control-border
6085
6374
  );
6086
- --str-chat__attachment-preview-retry-icon-color: var(--str-chat__primary-color);
6375
+ --str-chat__attachment-preview-retry-icon-color: var(--accent-primary);
6087
6376
  --str-chat__attachment-preview-download-icon-color: var(--text-secondary);
6088
6377
  --str-chat__attachment-preview-overlay-color: var(--background-core-overlay);
6089
6378
  --str-chat__attachment-preview-image-border-radius: var(
@@ -6167,8 +6456,11 @@ to create clearer separation from the base surface.
6167
6456
  width: 100%;
6168
6457
  min-width: 0;
6169
6458
  max-width: 100%;
6170
- overflow: visible;
6171
- flex: 0 0 auto;
6459
+ min-height: calc(var(--str-chat__attachment-preview-row-height) * 1.2);
6460
+ max-height: calc(var(--str-chat__attachment-preview-row-height) * 1.7);
6461
+ overflow-x: hidden;
6462
+ overflow-y: auto;
6463
+ flex: 0 1 auto;
6172
6464
  gap: var(--spacing-md);
6173
6465
  }
6174
6466
  .str-chat .str-chat__attachment-preview-audio,
@@ -6190,7 +6482,7 @@ to create clearer separation from the base surface.
6190
6482
  padding: var(--spacing-md);
6191
6483
  padding-inline-end: var(--spacing-sm);
6192
6484
  width: 290px;
6193
- height: 72px;
6485
+ height: var(--str-chat__attachment-preview-row-height);
6194
6486
  }
6195
6487
  .str-chat .str-chat__attachment-preview-audio .str-chat__attachment-preview-file__data {
6196
6488
  padding-inline-end: var(--spacing-xs);
@@ -6220,8 +6512,8 @@ to create clearer separation from the base surface.
6220
6512
  border-inline-start: var(--str-chat__attachment-preview-image-border-inline-start);
6221
6513
  border-inline-end: var(--str-chat__attachment-preview-image-border-inline-end);
6222
6514
  flex: 0 0 auto;
6223
- width: 72px;
6224
- height: 72px;
6515
+ width: var(--str-chat__attachment-preview-row-height);
6516
+ height: var(--str-chat__attachment-preview-row-height);
6225
6517
  cursor: pointer;
6226
6518
  }
6227
6519
  .str-chat .str-chat__attachment-preview-media .str-chat__attachment-preview-media__thumbnail-wrapper {
@@ -6414,10 +6706,10 @@ to create clearer separation from the base surface.
6414
6706
  align-items: center;
6415
6707
  gap: var(--spacing-xxs);
6416
6708
  border-radius: var(--radius-max);
6417
- color: var(--text-inverse);
6418
- background-color: var(--background-core-inverse, var(--slate-900));
6709
+ color: var(--text-on-inverse);
6710
+ background-color: var(--background-core-inverse);
6419
6711
  text-transform: uppercase;
6420
- font: var(--str-chat__metadata-emphasis-text);
6712
+ font: var(--str-chat__font-metadata-emphasis);
6421
6713
  }
6422
6714
  .str-chat__command-chip .str-chat__command-chip__close-button {
6423
6715
  background: none;
@@ -6427,7 +6719,7 @@ to create clearer separation from the base surface.
6427
6719
  justify-content: center;
6428
6720
  align-items: center;
6429
6721
  cursor: pointer;
6430
- color: var(--text-inverse);
6722
+ color: inherit;
6431
6723
  }
6432
6724
 
6433
6725
  .str-chat__context-menu.str-chat__context-menu--commands .str-chat__context-menu__button--command {
@@ -6480,7 +6772,7 @@ to create clearer separation from the base surface.
6480
6772
  background-color: var(--str-chat__dropzone-container-background-color);
6481
6773
  color: var(--str-chat__dropzone-container-color);
6482
6774
  backdrop-filter: var(--str-chat__dropzone-container-backdrop-filter);
6483
- font: var(--str-chat__heading-sm-text);
6775
+ font: var(--str-chat__font-heading-sm);
6484
6776
  }
6485
6777
  .str-chat__dropzone-container .str-chat__dropzone-container__content {
6486
6778
  display: flex;
@@ -6544,11 +6836,11 @@ to create clearer separation from the base surface.
6544
6836
  text-overflow: ellipsis;
6545
6837
  }
6546
6838
  .str-chat__location-preview .str-chat__location-preview__data .str-chat__location-preview__data__title {
6547
- font: var(--str-chat__metadata-emphasis-text);
6839
+ font: var(--str-chat__font-metadata-emphasis);
6548
6840
  }
6549
6841
  .str-chat__location-preview .str-chat__location-preview__data .str-chat__location-preview__data__subtitle,
6550
6842
  .str-chat__location-preview .str-chat__location-preview__data .str-chat__location-preview__data__sharing-duration {
6551
- font: var(--str-chat__metadata-default-text);
6843
+ font: var(--str-chat__font-metadata-default);
6552
6844
  }
6553
6845
 
6554
6846
  .str-chat__link-preview-list {
@@ -6570,7 +6862,7 @@ to create clearer separation from the base surface.
6570
6862
  gap: var(--spacing-xs);
6571
6863
  padding-inline: var(--spacing-xs) var(--spacing-sm);
6572
6864
  padding-block: var(--spacing-xs);
6573
- background-color: var(--chat-bg-outgoing);
6865
+ background-color: var(--chat-bg);
6574
6866
  border-radius: var(--message-bubble-radius-attachment);
6575
6867
  }
6576
6868
  .str-chat__link-preview-card .str-chat__tooltip {
@@ -6580,7 +6872,7 @@ to create clearer separation from the base surface.
6580
6872
  overflow-x: clip;
6581
6873
  text-overflow: ellipsis;
6582
6874
  display: block;
6583
- max-width: calc(var(--str-chat__spacing-px) * 250);
6875
+ max-width: 250px;
6584
6876
  padding-inline: 0.5rem;
6585
6877
  }
6586
6878
  .str-chat__link-preview-card .str-chat__link-preview-card__content {
@@ -6597,11 +6889,11 @@ to create clearer separation from the base surface.
6597
6889
  text-overflow: ellipsis;
6598
6890
  }
6599
6891
  .str-chat__link-preview-card .str-chat__link-preview-card__content .str-chat__link-preview-card__content-title {
6600
- font: var(--str-chat__metadata-emphasis-text);
6892
+ font: var(--str-chat__font-metadata-emphasis);
6601
6893
  }
6602
6894
  .str-chat__link-preview-card .str-chat__link-preview-card__content .str-chat__link-preview-card__content-description,
6603
6895
  .str-chat__link-preview-card .str-chat__link-preview-card__content .str-chat__link-preview-card__content__url {
6604
- font: var(--str-chat__metadata-default-text);
6896
+ font: var(--str-chat__font-metadata-default);
6605
6897
  }
6606
6898
  .str-chat__link-preview-card .str-chat__link-preview-card__content .str-chat__link-preview-card__content__url {
6607
6899
  display: flex;
@@ -6743,10 +7035,13 @@ to create clearer separation from the base surface.
6743
7035
  .str-chat .str-chat__message-composer-previews {
6744
7036
  display: flex;
6745
7037
  flex-direction: column;
7038
+ max-height: 400px;
7039
+ overflow: hidden;
6746
7040
  width: 100%;
6747
7041
  padding: var(--spacing-xs) var(--spacing-xs) 0;
6748
7042
  gap: var(--spacing-xxs);
6749
7043
  min-width: 0;
7044
+ min-height: 0;
6750
7045
  }
6751
7046
  .str-chat .str-chat__message-composer-controls {
6752
7047
  display: flex;
@@ -6891,7 +7186,7 @@ to create clearer separation from the base surface.
6891
7186
  }
6892
7187
 
6893
7188
  .str-chat__quoted-message-indicator {
6894
- background-color: var(--chat-reply-indicator-incoming);
7189
+ background-color: var(--chat-reply-indicator, var(--chat-reply-indicator-incoming));
6895
7190
  border-radius: var(--radius-max);
6896
7191
  height: 100%;
6897
7192
  width: 2px;
@@ -7070,7 +7365,7 @@ to create clearer separation from the base surface.
7070
7365
  opacity: 1;
7071
7366
  }
7072
7367
  .str-chat__send-to-channel-checkbox__container .str-chat__send-to-channel-checkbox__field .str-chat__send-to-channel-checkbox__label {
7073
- font: var(--str-chat__metadata-default-text);
7368
+ font: var(--str-chat__font-metadata-default);
7074
7369
  transition: color 0.15s ease, border-color 0.15s ease;
7075
7370
  }
7076
7371
 
@@ -7080,11 +7375,7 @@ to create clearer separation from the base surface.
7080
7375
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
7081
7376
  );
7082
7377
  /* The text/icon color of file attachments */
7083
- --str-chat__unsupported-attachment-preview-color: var(--str-chat__text-color);
7084
- /* The text/icon color of file attachments for low emphasis texts (for example file size) */
7085
- --str-chat__unsupported-attachment-preview-secondary-color: var(
7086
- --str-chat__text-low-emphasis-color
7087
- );
7378
+ --str-chat__unsupported-attachment-preview-color: var(--text-primary);
7088
7379
  /* The background color of file attachments */
7089
7380
  --str-chat__unsupported-attachment-preview-background-color: transparent;
7090
7381
  /* Top border of file attachments */
@@ -7115,8 +7406,8 @@ to create clearer separation from the base surface.
7115
7406
  column-gap: var(--spacing-xs);
7116
7407
  }
7117
7408
  .str-chat__attachment-preview-unsupported .str-chat__icon {
7118
- height: calc(var(--str-chat__spacing-px) * 20);
7119
- width: calc(var(--str-chat__spacing-px) * 20);
7409
+ height: var(--size-20);
7410
+ width: var(--size-20);
7120
7411
  }
7121
7412
  .str-chat__attachment-preview-unsupported .str-chat__attachment-preview-unsupported__metadata {
7122
7413
  min-width: 0;
@@ -7213,9 +7504,9 @@ to create clearer separation from the base surface.
7213
7504
  /* The border radius used for the borders of the component */
7214
7505
  --str-chat__message-list-border-radius: 0;
7215
7506
  /* The text/icon color of the component */
7216
- --str-chat__message-list-color: var(--str-chat__text-color);
7507
+ --str-chat__message-list-color: var(--text-primary);
7217
7508
  /* The background color of the component */
7218
- --str-chat__message-list-background-color: var(--str-chat__background-color);
7509
+ --str-chat__message-list-background-color: var(--background-core-app);
7219
7510
  /* Box shadow applied to the component */
7220
7511
  --str-chat__message-list-box-shadow: none;
7221
7512
  /* Top border of the component */
@@ -7227,9 +7518,9 @@ to create clearer separation from the base surface.
7227
7518
  /* Right (left in RTL layout) border of the component */
7228
7519
  --str-chat__message-list-border-inline-end: none;
7229
7520
  /* The color used for displaying thread replies and thread separator at the start of a thread */
7230
- --str-chat__thread-head-start-color: var(--str-chat__text-low-emphasis-color);
7521
+ --str-chat__thread-head-start-color: var(--text-tertiary);
7231
7522
  /* The color used for the separator below the first message in a thread */
7232
- --str-chat__thread-head-start-border-block-end-color: var(--str-chat__surface-color);
7523
+ --str-chat__thread-head-start-border-block-end-color: var(--background-core-surface);
7233
7524
  }
7234
7525
 
7235
7526
  .str-chat__new-message-notification {
@@ -7248,7 +7539,7 @@ to create clearer separation from the base surface.
7248
7539
  padding: var(--spacing-xxs) var(--spacing-sm);
7249
7540
  background-color: var(--background-core-surface-subtle);
7250
7541
  border-radius: var(--radius-max);
7251
- font: var(--str-chat__metadata-emphasis-text);
7542
+ font: var(--str-chat__font-metadata-emphasis);
7252
7543
  color: var(--chat-text-system);
7253
7544
  }
7254
7545
 
@@ -7302,7 +7593,7 @@ to create clearer separation from the base surface.
7302
7593
  gap: var(--spacing-xs);
7303
7594
  border-radius: var(--button-radius-lg) 0 0 var(--button-radius-lg);
7304
7595
  padding: var(--button-padding-y-md) var(--spacing-xxs) var(--button-padding-y-md) var(--button-padding-x-with-label-md);
7305
- font: var(--str-chat__caption-emphasis-text);
7596
+ font: var(--str-chat__font-caption-emphasis);
7306
7597
  }
7307
7598
  .str-chat .str-chat__unread-messages-notification button:last-of-type {
7308
7599
  border-radius: 0 var(--button-radius-lg) var(--button-radius-lg) 0;
@@ -7331,7 +7622,7 @@ to create clearer separation from the base surface.
7331
7622
  .str-chat__unread-messages-separator-wrapper .str-chat__unread-messages-separator .str-chat__unread-messages-separator__text {
7332
7623
  padding-inline: var(--spacing-xs) var(--spacing-xxs);
7333
7624
  border-radius: var(--button-radius-lg) 0 0 var(--button-radius-lg);
7334
- font: var(--str-chat__caption-emphasis-text);
7625
+ font: var(--str-chat__font-caption-emphasis);
7335
7626
  text-transform: lowercase;
7336
7627
  }
7337
7628
  .str-chat__unread-messages-separator-wrapper .str-chat__unread-messages-separator button.str-chat__button--secondary,
@@ -7347,9 +7638,9 @@ to create clearer separation from the base surface.
7347
7638
  /* The border radius used for the borders of the component */
7348
7639
  --str-chat__virtual-list-border-radius: 0;
7349
7640
  /* The text/icon color of the component */
7350
- --str-chat__virtual-list-color: var(--str-chat__text-color);
7641
+ --str-chat__virtual-list-color: var(--text-primary);
7351
7642
  /* The background color of the component */
7352
- --str-chat__virtual-list-background-color: var(--str-chat__background-color);
7643
+ --str-chat__virtual-list-background-color: var(--background-core-app);
7353
7644
  /* Box shadow applied to the component */
7354
7645
  --str-chat__virtual-list-box-shadow: none;
7355
7646
  /* Top border of the component */
@@ -7426,7 +7717,7 @@ to create clearer separation from the base surface.
7426
7717
  background: var(--str-chat__notification-background, var(--background-core-inverse));
7427
7718
  border-radius: var(--str-chat__notification-border-radius, var(--radius-3xl));
7428
7719
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 4px 8px 0 rgba(0, 0, 0, 0.14), 0 12px 24px 0 rgba(0, 0, 0, 0.1);
7429
- color: var(--str-chat__notification-color, var(--text-inverse));
7720
+ color: var(--str-chat__notification-color, var(--text-on-inverse));
7430
7721
  }
7431
7722
  .str-chat__notification .str-chat__notification-content {
7432
7723
  align-items: flex-start;
@@ -7447,7 +7738,7 @@ to create clearer separation from the base surface.
7447
7738
  .str-chat__notification .str-chat__notification-content .str-chat__notification-message {
7448
7739
  flex: 1 1 auto;
7449
7740
  padding-block: var(--spacing-xxxs);
7450
- font: var(--str-chat__caption-default-text);
7741
+ font: var(--str-chat__font-caption-default);
7451
7742
  text-align: center;
7452
7743
  white-space: nowrap;
7453
7744
  }
@@ -7616,6 +7907,10 @@ to create clearer separation from the base surface.
7616
7907
  max-width: 300px;
7617
7908
  }
7618
7909
 
7910
+ .str-chat__form__input-fieldset .str-chat__form__input-field .str-chat__form__input-field__value .str-chat__form__remove-option-button {
7911
+ color: var(--input-text-icon);
7912
+ }
7913
+
7619
7914
  .str-chat .str-chat__poll {
7620
7915
  display: flex;
7621
7916
  flex-direction: column;
@@ -7624,9 +7919,7 @@ to create clearer separation from the base surface.
7624
7919
  width: calc(var(--str-chat__message-with-attachment-max-width) - 2 * var(--spacing-xs));
7625
7920
  max-width: 100%;
7626
7921
  min-width: 260px;
7627
- font-size: var(--typography-font-size-sm);
7628
- font-weight: var(--typography-font-weight-regular);
7629
- line-height: var(--typography-line-height-tight);
7922
+ font: var(--str-chat__font-caption-default);
7630
7923
  }
7631
7924
  .str-chat .str-chat__poll button {
7632
7925
  background: none;
@@ -7635,9 +7928,7 @@ to create clearer separation from the base surface.
7635
7928
  cursor: pointer;
7636
7929
  }
7637
7930
  .str-chat .str-chat__poll .str-chat__poll-header .str-chat__poll-title {
7638
- font-size: var(--typography-font-size-md);
7639
- font-weight: var(--typography-font-weight-semi-bold);
7640
- line-height: var(--typography-line-height-normal);
7931
+ font: var(--str-chat__font-body-emphasis);
7641
7932
  }
7642
7933
  .str-chat .str-chat__poll .str-chat__poll-actions {
7643
7934
  display: flex;
@@ -7645,26 +7936,13 @@ to create clearer separation from the base surface.
7645
7936
  align-items: center;
7646
7937
  gap: var(--spacing-xs);
7647
7938
  }
7648
- .str-chat .str-chat__button.str-chat__poll-action {
7939
+ .str-chat .str-chat__poll .str-chat__poll-actions .str-chat__button.str-chat__poll-action {
7649
7940
  width: 100%;
7650
- color: var(--str-chat__primary-color);
7651
- border: 1px solid var(--chat-border-on-chat-incoming);
7652
- font-size: var(--typography-font-size-sm);
7941
+ border: 1px solid var(--chat-border-on-chat);
7653
7942
  padding: var(--button-padding-y-sm) var(--button-padding-x-with-label-sm);
7943
+ font: var(--str-chat__font-body-emphasis);
7654
7944
  }
7655
- .str-chat .str-chat__button.str-chat__poll-action.str-chat__poll-action--additional {
7656
- border: none;
7657
- }
7658
- .str-chat .str-chat__message--me .str-chat__poll .str-chat__poll-option-list:not(.str-chat__poll-option-list--full) .str-chat__poll-option__votes-bar {
7659
- background: linear-gradient(to right, var(--chat-poll-progress-fill-outgoing) var(--str-chat__amount-bar-fulfillment), var(--chat-poll-progress-track-outgoing) var(--str-chat__amount-bar-fulfillment));
7660
- }
7661
- .str-chat .str-chat__message--me .str-chat__poll .str-chat__poll-option-list:not(.str-chat__poll-option-list--full) .str-chat__poll-option__votes-bar--winner {
7662
- background: linear-gradient(to right, var(--chat-poll-progress-fill-outgoing) var(--str-chat__amount-bar-fulfillment), var(--chat-poll-progress-track-outgoing) var(--str-chat__amount-bar-fulfillment));
7663
- }
7664
- .str-chat .str-chat__message--me .str-chat__poll .str-chat__poll-actions .str-chat__poll-action {
7665
- border: 1px solid var(--chat-border-on-chat-outgoing);
7666
- }
7667
- .str-chat .str-chat__message--me .str-chat__poll .str-chat__poll-actions .str-chat__poll-action.str-chat__poll-action--additional {
7945
+ .str-chat .str-chat__poll .str-chat__poll-actions .str-chat__button.str-chat__poll-action.str-chat__poll-action--additional {
7668
7946
  border: none;
7669
7947
  }
7670
7948
 
@@ -7712,7 +7990,7 @@ to create clearer separation from the base surface.
7712
7990
  margin: 0;
7713
7991
  }
7714
7992
  .str-chat__modal__poll-answer-list .str-chat__poll-answer-list .str-chat__poll-answer .str-chat__poll-answer__data .str-chat__poll-answer__text {
7715
- font: var(--str-chat__body-default-text);
7993
+ font: var(--str-chat__font-body-default);
7716
7994
  }
7717
7995
  .str-chat__modal__poll-answer-list .str-chat__poll-answer-list .str-chat__poll-answer .str-chat__poll-answer__data .str-chat__poll-vote {
7718
7996
  padding-inline: var(--spacing-none);
@@ -7788,7 +8066,7 @@ to create clearer separation from the base surface.
7788
8066
  background-color: var(--background-core-surface-card);
7789
8067
  }
7790
8068
  .str-chat__modal__poll-option-list .str-chat__modal__poll-option-list__body .str-chat__poll-option-list--full .str-chat__poll-option {
7791
- padding: var(--spacing-sm) var(--spacing-xs);
8069
+ padding: var(--spacing-xs);
7792
8070
  border-radius: var(--radius-lg);
7793
8071
  }
7794
8072
  .str-chat__modal__poll-option-list .str-chat__modal__poll-option-list__body .str-chat__poll-option-list--full .str-chat__poll-option--votable:hover {
@@ -7822,16 +8100,16 @@ to create clearer separation from the base surface.
7822
8100
  grid-row: span 2;
7823
8101
  height: var(--str-chat__poll-checkmark-size);
7824
8102
  width: var(--str-chat__poll-checkmark-size);
7825
- border-radius: var(--str-chat__border-radius-circle);
7826
- border: 1px solid var(--str-chat__disabled-color);
8103
+ border-radius: var(--radius-max);
8104
+ border: 1px solid var(--chat-border-on-chat);
7827
8105
  }
7828
8106
  .str-chat__poll-option-list .str-chat__poll-option .str-chat__checkmark--checked {
7829
8107
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im00IDkuNC00LTRMMS40IDQgNCA2LjYgMTAuNiAwIDEyIDEuNGwtOCA4WiIvPjwvc3ZnPg==");
7830
8108
  background-repeat: no-repeat;
7831
8109
  background-position: center;
7832
8110
  background-size: 11px 10px;
7833
- background-color: var(--str-chat__primary-color);
7834
- border-color: var(--str-chat__primary-color);
8111
+ background-color: var(--control-radio-check-bg-selected);
8112
+ border: none;
7835
8113
  }
7836
8114
  .str-chat__poll-option-list .str-chat__poll-option .str-chat__poll-option-data {
7837
8115
  flex: 1;
@@ -7858,19 +8136,19 @@ to create clearer separation from the base surface.
7858
8136
  }
7859
8137
  .str-chat__poll-option-list .str-chat__poll-option .str-chat__poll-option-data .str-chat__poll-option-votes .str-chat__poll-option-vote-count {
7860
8138
  text-align: right;
7861
- font: var(--str-chat__metadata-default-text);
7862
- font-variant-numeric: tabular-nums;
8139
+ font: var(--str-chat__font-metadata-default);
7863
8140
  }
7864
8141
  .str-chat__poll-option-list .str-chat__poll-option .str-chat__poll-option__votes-bar {
7865
8142
  grid-column: 2/3;
7866
8143
  grid-row: 2/3;
7867
8144
  height: 8px;
7868
8145
  width: 100%;
7869
- background: linear-gradient(to right, var(--chat-poll-progress-fill-incoming) var(--str-chat__amount-bar-fulfillment), var(--chat-poll-progress-track-incoming) var(--str-chat__amount-bar-fulfillment));
7870
- border-radius: calc(var(--str-chat__spacing-px) * 4);
8146
+ background: linear-gradient(to right, var(--chat-poll-progress-fill) var(--str-chat__amount-bar-fulfillment), var(--chat-poll-progress-track) var(--str-chat__amount-bar-fulfillment));
8147
+ border-radius: var(--size-4);
7871
8148
  }
7872
- .str-chat__poll-option-list .str-chat__poll-option .str-chat__poll-option__votes-bar--winner {
7873
- background: linear-gradient(to right, var(--chat-poll-progress-fill-incoming) var(--str-chat__amount-bar-fulfillment), var(--str-chat__surface-color) var(--str-chat__amount-bar-fulfillment));
8149
+
8150
+ .str-chat__message--me .str-chat__poll-option-list .str-chat__checkmark {
8151
+ border: 1px solid var(--chat-border-on-chat-outgoing);
7874
8152
  }
7875
8153
 
7876
8154
  .str-chat__modal__poll-question {
@@ -7884,11 +8162,11 @@ to create clearer separation from the base surface.
7884
8162
  background: var(--background-core-surface-card);
7885
8163
  }
7886
8164
  .str-chat__modal__poll-question .str-chat__modal__poll-question__label {
7887
- font: var(--str-chat__heading-xs-text);
8165
+ font: var(--str-chat__font-heading-xs);
7888
8166
  color: var(--text-tertiary);
7889
8167
  }
7890
8168
  .str-chat__modal__poll-question .str-chat__modal__poll-question__text {
7891
- font: var(--str-chat__heading-sm-text);
8169
+ font: var(--str-chat__font-heading-sm);
7892
8170
  color: var(--text-primary);
7893
8171
  }
7894
8172
 
@@ -7933,7 +8211,7 @@ to create clearer separation from the base surface.
7933
8211
  }
7934
8212
  .str-chat__modal__poll-results .str-chat_poll-option-with-votes-list .str-chat__poll-option .str-chat__poll-option__header .str-chat__poll-option__header__label,
7935
8213
  .str-chat__modal__poll-results .str-chat__modal__poll-results__option-list .str-chat__poll-option .str-chat__poll-option__header .str-chat__poll-option__header__label {
7936
- font: var(--str-chat__heading-xs-text);
8214
+ font: var(--str-chat__font-heading-xs);
7937
8215
  color: var(--text-tertiary);
7938
8216
  }
7939
8217
  .str-chat__modal__poll-results .str-chat_poll-option-with-votes-list .str-chat__poll-option .str-chat__poll-option__header .str-chat__poll-option__header__title,
@@ -7942,7 +8220,7 @@ to create clearer separation from the base surface.
7942
8220
  align-items: start;
7943
8221
  gap: var(--spacing-md);
7944
8222
  width: 100%;
7945
- font: var(--str-chat__heading-sm-text);
8223
+ font: var(--str-chat__font-heading-sm);
7946
8224
  color: var(--text-primary);
7947
8225
  }
7948
8226
  .str-chat__modal__poll-results .str-chat_poll-option-with-votes-list .str-chat__poll-option .str-chat__poll-option__header .str-chat__poll-option__header__title .str-chat__poll-option__option-text,
@@ -7991,13 +8269,13 @@ to create clearer separation from the base surface.
7991
8269
  .str-chat__modal__poll-results .str-chat__modal__poll-results__options__footer .str-chat__modal__poll-results__options-total-count {
7992
8270
  width: 100%;
7993
8271
  text-align: center;
7994
- font: var(--str-chat__caption-default-text);
8272
+ font: var(--str-chat__font-caption-default);
7995
8273
  }
7996
8274
  .str-chat__modal__poll-results .str-chat__poll-result-option-vote-counter {
7997
8275
  display: flex;
7998
8276
  gap: var(--spacing-xs);
7999
8277
  align-items: center;
8000
- font: var(--str-chat__caption-emphasis-text);
8278
+ font: var(--str-chat__font-caption-emphasis);
8001
8279
  }
8002
8280
  .str-chat__modal__poll-results.str-chat__modal__poll-results--option-detail .str-chat__infinite-scroll-paginator {
8003
8281
  flex: 1;
@@ -8024,7 +8302,7 @@ to create clearer separation from the base surface.
8024
8302
  gap: var(--spacing-none, 0);
8025
8303
  align-self: stretch;
8026
8304
  width: 100%;
8027
- font: var(--str-chat__caption-default-text);
8305
+ font: var(--str-chat__font-caption-default);
8028
8306
  }
8029
8307
  .str-chat__poll-vote .str-chat__poll-vote__author {
8030
8308
  flex: 1;
@@ -8049,7 +8327,7 @@ to create clearer separation from the base surface.
8049
8327
  gap: var(--spacing-xs);
8050
8328
  border-radius: var(--radius-4xl, 32px);
8051
8329
  background: var(--background-core-elevation-2, #fff);
8052
- box-shadow: var(--light-elevation-3);
8330
+ box-shadow: var(--str-chat__box-shadow-3);
8053
8331
  }
8054
8332
  .str-chat__reaction-selector:has(.str-chat__reaction-selector-extended-list) {
8055
8333
  padding: 0;
@@ -8073,14 +8351,14 @@ to create clearer separation from the base surface.
8073
8351
  bottom: 0;
8074
8352
  border-end-end-radius: inherit;
8075
8353
  border-end-start-radius: inherit;
8076
- background: linear-gradient(to bottom, transparent 5%, var(--background-core-elevation-0) 95%);
8354
+ background: linear-gradient(to bottom, transparent 5%, var(--background-core-elevation-2) 95%);
8077
8355
  }
8078
8356
  .str-chat__reaction-selector:has(.str-chat__reaction-selector-extended-list)::before {
8079
8357
  z-index: 1;
8080
8358
  top: 0;
8081
8359
  border-start-end-radius: inherit;
8082
8360
  border-start-start-radius: inherit;
8083
- background: linear-gradient(to top, transparent 5%, var(--background-core-elevation-0) 95%);
8361
+ background: linear-gradient(to top, transparent 5%, var(--background-core-elevation-2) 95%);
8084
8362
  }
8085
8363
  .str-chat__reaction-selector .str-chat__reaction-selector__add-button {
8086
8364
  width: 32px;
@@ -8235,7 +8513,7 @@ to create clearer separation from the base surface.
8235
8513
  .str-chat__message-reactions .str-chat__message-reactions__list-item-button .str-chat__message-reactions__list-item-count {
8236
8514
  display: flex;
8237
8515
  align-items: center;
8238
- font: var(--str-chat__numeric-md-text);
8516
+ font: var(--str-chat__font-numeric-md);
8239
8517
  }
8240
8518
  .str-chat__message-reactions--bottom .str-chat__message-reactions__list-button,
8241
8519
  .str-chat__message-reactions--bottom .str-chat__message-reactions__list-item-button {
@@ -8263,14 +8541,14 @@ to create clearer separation from the base surface.
8263
8541
  bottom: 0;
8264
8542
  border-end-end-radius: inherit;
8265
8543
  border-end-start-radius: inherit;
8266
- background: linear-gradient(to bottom, transparent 5%, var(--background-core-elevation-0) 95%);
8544
+ background: linear-gradient(to bottom, transparent 5%, var(--background-core-elevation-2) 95%);
8267
8545
  }
8268
8546
  .str-chat__message-reactions-detail:has(.str-chat__reaction-selector-extended-list)::before {
8269
8547
  z-index: 1;
8270
8548
  top: 0;
8271
8549
  border-start-end-radius: inherit;
8272
8550
  border-start-start-radius: inherit;
8273
- background: linear-gradient(to top, transparent 5%, var(--background-core-elevation-0) 95%);
8551
+ background: linear-gradient(to top, transparent 5%, var(--background-core-elevation-2) 95%);
8274
8552
  }
8275
8553
  .str-chat__message-reactions-detail:has(.str-chat__reaction-selector-extended-list) {
8276
8554
  overflow-x: hidden;
@@ -8286,7 +8564,7 @@ to create clearer separation from the base surface.
8286
8564
  }
8287
8565
  .str-chat__message-reactions-detail {
8288
8566
  font-family: var(--typography-font-family-sans);
8289
- box-shadow: var(--light-elevation-3);
8567
+ box-shadow: var(--str-chat__box-shadow-3);
8290
8568
  padding-block-start: var(--spacing-xxs);
8291
8569
  display: flex;
8292
8570
  flex-direction: column;
@@ -8360,6 +8638,8 @@ to create clearer separation from the base surface.
8360
8638
  .str-chat__message-reactions-detail .str-chat__message-reactions-detail__reaction-type-list .str-chat__message-reactions-detail__reaction-type-list-item .str-chat__message-reactions-detail__reaction-type-list-item-button {
8361
8639
  box-shadow: unset;
8362
8640
  min-width: var(--size-48);
8641
+ background: none;
8642
+ border: 1px solid var(--control-chip-border);
8363
8643
  }
8364
8644
  .str-chat__message-reactions-detail .str-chat__message-reactions-detail__reaction-type-list .str-chat__message-reactions-detail__reaction-type-list-item .str-chat__message-reactions-detail__reaction-type-list-item-button .str-chat__message-reactions-detail__reaction-type-list-item-icon {
8365
8645
  font-family: system-ui;
@@ -8378,7 +8658,7 @@ to create clearer separation from the base surface.
8378
8658
  }
8379
8659
  .str-chat__message-reactions-detail .str-chat__message-reactions-detail__reaction-type-list .str-chat__message-reactions-detail__reaction-type-list-item .str-chat__message-reactions-detail__reaction-type-list-item-button .str-chat__message-reactions-detail__reaction-type-list-item-count {
8380
8660
  color: var(--reaction-text);
8381
- font: var(--str-chat__metadata-emphasis-text);
8661
+ font: var(--str-chat__font-metadata-emphasis);
8382
8662
  }
8383
8663
  .str-chat__message-reactions-detail .str-chat__message-reactions-detail__user-list-container {
8384
8664
  position: relative;
@@ -8395,14 +8675,14 @@ to create clearer separation from the base surface.
8395
8675
  bottom: 0;
8396
8676
  border-end-end-radius: inherit;
8397
8677
  border-end-start-radius: inherit;
8398
- background: linear-gradient(to bottom, transparent 5%, var(--background-core-elevation-0) 95%);
8678
+ background: linear-gradient(to bottom, transparent 5%, var(--background-core-elevation-2) 95%);
8399
8679
  }
8400
8680
  .str-chat__message-reactions-detail .str-chat__message-reactions-detail__user-list-container::before {
8401
8681
  z-index: 1;
8402
8682
  top: 0;
8403
8683
  border-start-end-radius: inherit;
8404
8684
  border-start-start-radius: inherit;
8405
- background: linear-gradient(to top, transparent 5%, var(--background-core-elevation-0) 95%);
8685
+ background: linear-gradient(to top, transparent 5%, var(--background-core-elevation-2) 95%);
8406
8686
  }
8407
8687
  .str-chat__message-reactions-detail .str-chat__message-reactions-detail__user-list-container::before {
8408
8688
  display: none;
@@ -8480,7 +8760,7 @@ to create clearer separation from the base surface.
8480
8760
  border: unset;
8481
8761
  border-radius: var(--radius-max);
8482
8762
  color: var(--text-tertiary);
8483
- font: var(--str-chat__metadata-default-text);
8763
+ font: var(--str-chat__font-metadata-default);
8484
8764
  cursor: pointer;
8485
8765
  align-self: flex-start;
8486
8766
  }
@@ -8578,7 +8858,7 @@ to create clearer separation from the base surface.
8578
8858
  text-align: start;
8579
8859
  }
8580
8860
  .str-chat__search-source-result-list .str-chat__search-result-container .str-chat__search-result--user .str-chat__search-result-data .str-chat__search-result__display-name {
8581
- font: var(--str-chat__heading-xs-text);
8861
+ font: var(--str-chat__font-heading-xs);
8582
8862
  color: var(--text-primary);
8583
8863
  flex: 1;
8584
8864
  min-width: 0;
@@ -8684,21 +8964,21 @@ to create clearer separation from the base surface.
8684
8964
  /* The border radius used for the borders of the component */
8685
8965
  --str-chat__thread-border-radius: 0;
8686
8966
  /* The text/icon color of the component */
8687
- --str-chat__thread-color: var(--str-chat__text-color);
8967
+ --str-chat__thread-color: var(--text-primary);
8688
8968
  /* The background color of the component */
8689
- --str-chat__thread-background-color: var(--str-chat__secondary-background-color);
8969
+ --str-chat__thread-background-color: none;
8690
8970
  /* Top border of the component */
8691
8971
  --str-chat__thread-border-block-start: none;
8692
8972
  /* Bottom border of the component */
8693
8973
  --str-chat__thread-border-block-end: none;
8694
8974
  /* Left (right in RTL layout) border of the component */
8695
- --str-chat__thread-border-inline-start: 1px solid var(--str-chat__surface-color);
8975
+ --str-chat__thread-border-inline-start: 1px solid var(--border-core-default);
8696
8976
  /* Right (left in RTL layout) border of the component */
8697
8977
  --str-chat__thread-border-inline-end: none;
8698
8978
  /* Box shadow applied to the component */
8699
8979
  --str-chat__thread-box-shadow: none;
8700
8980
  /* The text/icon color used to display less emphasized text in the channel header */
8701
- --str-chat__thread-header-info-color: var(--str-chat__text-low-emphasis-color);
8981
+ --str-chat__thread-header-info-color: var(--text-secondary);
8702
8982
  }
8703
8983
 
8704
8984
  .str-chat__thread-container {
@@ -8737,14 +9017,14 @@ to create clearer separation from the base surface.
8737
9017
  border-bottom: 1px solid var(--border-core-subtle);
8738
9018
  background: var(--background-core-surface-subtle);
8739
9019
  color: var(--chat-text-system);
8740
- font: var(--str-chat__metadata-emphasis-text);
9020
+ font: var(--str-chat__font-metadata-emphasis);
8741
9021
  }
8742
9022
 
8743
9023
  .str-chat {
8744
9024
  /* The border radius used for the borders of the thread header */
8745
9025
  --str-chat__thread-header-border-radius: 0;
8746
9026
  /* The text/icon color of the thread header */
8747
- --str-chat__thread-header-color: var(--str-chat__text-color);
9027
+ --str-chat__thread-header-color: var(--text-primary);
8748
9028
  /* The background color of the thread header */
8749
9029
  --str-chat__thread-header-background-color: var(--background-core-elevation-1);
8750
9030
  /* Top border of the thread header */
@@ -8777,10 +9057,10 @@ to create clearer separation from the base surface.
8777
9057
  border-inline-end: var(--str-chat__thread-header-border-inline-end);
8778
9058
  }
8779
9059
  .str-chat__thread-header .str-chat__thread-header-title {
8780
- font: var(--str-chat__heading-sm-text);
9060
+ font: var(--str-chat__font-heading-sm);
8781
9061
  }
8782
9062
  .str-chat__thread-header .str-chat__thread-header-subtitle {
8783
- font: var(--str-chat__caption-default-text);
9063
+ font: var(--str-chat__font-caption-default);
8784
9064
  color: var(--str-chat__thread-header-info-color);
8785
9065
  }
8786
9066
  .str-chat__thread-header .str-chat__thread-header-details {
@@ -8817,8 +9097,8 @@ to create clearer separation from the base surface.
8817
9097
  display: flex;
8818
9098
  align-items: flex-start;
8819
9099
  justify-content: flex-end;
8820
- width: calc(var(--str-chat__spacing-px) * 40);
8821
- height: calc(var(--str-chat__spacing-px) * 40);
9100
+ width: var(--size-40);
9101
+ height: var(--size-40);
8822
9102
  cursor: pointer;
8823
9103
  background-color: transparent;
8824
9104
  border: none;
@@ -8836,8 +9116,8 @@ to create clearer separation from the base surface.
8836
9116
 
8837
9117
  /* Only available in React SDK. */
8838
9118
  .str-chat {
8839
- --str-chat-unread-count-badge-color: var(--str-chat__on-unread-badge-color);
8840
- --str-chat-unread-count-badge-background-color: var(--str-chat__danger-color);
9119
+ --str-chat-unread-count-badge-color: var(--badge-text-on-accent);
9120
+ --str-chat-unread-count-badge-background-color: var(--accent-error);
8841
9121
  }
8842
9122
 
8843
9123
  .str-chat__unread-count-badge {
@@ -8869,7 +9149,6 @@ to create clearer separation from the base surface.
8869
9149
  display: flex;
8870
9150
  align-items: center;
8871
9151
  justify-content: center;
8872
- font-variant-numeric: tabular-nums;
8873
9152
  }
8874
9153
  .str-chat__unread-count-badge--top-right {
8875
9154
  position: absolute;
@@ -8890,12 +9169,12 @@ to create clearer separation from the base surface.
8890
9169
 
8891
9170
  .str-chat {
8892
9171
  --str-chat__thread-list-border-radius: 0;
8893
- --str-chat__thread-list-color: var(--str-chat__text-color);
8894
- --str-chat__thread-list-background-color: var(--str-chat__secondary-background-color);
9172
+ --str-chat__thread-list-color: var(--text-primary);
9173
+ --str-chat__thread-list-background-color: var(--background-core-elevation-1);
8895
9174
  --str-chat__thread-list-border-block-start: none;
8896
9175
  --str-chat__thread-list-border-block-end: none;
8897
9176
  --str-chat__thread-list-border-inline-start: none;
8898
- --str-chat__thread-list-border-inline-end: 1px solid var(--str-chat__surface-color);
9177
+ --str-chat__thread-list-border-inline-end: 1px solid var(--border-core-default);
8899
9178
  --str-chat__thread-list-box-shadow: none;
8900
9179
  --str-chat__thread-list-transition-duration: var(
8901
9180
  --str-chat__channel-list-transition-duration,
@@ -8963,7 +9242,7 @@ to create clearer separation from the base surface.
8963
9242
  background: unset;
8964
9243
  border: unset;
8965
9244
  border-radius: var(--radius-max);
8966
- font: var(--str-chat__metadata-emphasis-text);
9245
+ font: var(--str-chat__font-metadata-emphasis);
8967
9246
  cursor: pointer;
8968
9247
  display: flex;
8969
9248
  color: var(--text-secondary);
@@ -9032,7 +9311,7 @@ to create clearer separation from the base surface.
9032
9311
  }
9033
9312
  .str-chat__thread-list__header .str-chat__thread-list__header__title {
9034
9313
  flex: 1;
9035
- font: var(--str-chat__heading-lg-text);
9314
+ font: var(--str-chat__font-heading-lg);
9036
9315
  color: var(--text-primary);
9037
9316
  }
9038
9317
 
@@ -9144,9 +9423,9 @@ to create clearer separation from the base surface.
9144
9423
  /* The border radius used for the borders of the component */
9145
9424
  --str-chat__tooltip-border-radius: var(--radius-md);
9146
9425
  /* The text/icon color of the component */
9147
- --str-chat__tooltip-color: var(--str-chat__text-color);
9426
+ --str-chat__tooltip-color: var(--text-on-accent);
9148
9427
  /* The background color of the component */
9149
- --str-chat__tooltip-background-color: var(--background-core-elevation-2);
9428
+ --str-chat__tooltip-background-color: var(--background-core-inverse);
9150
9429
  /* Top border of the component */
9151
9430
  --str-chat__tooltip-border-block-start: none;
9152
9431
  /* Bottom border of the component */
@@ -9156,7 +9435,10 @@ to create clearer separation from the base surface.
9156
9435
  /* Right (left in RTL layout) border of the component */
9157
9436
  --str-chat__tooltip-border-inline-end: none;
9158
9437
  /* Box shadow applied to the component */
9159
- --str-chat__tooltip-box-shadow: 0 0 20px var(--str-chat__box-shadow-color);
9438
+ --str-chat__tooltip-box-shadow: var(--str-chat__box-shadow-3);
9439
+ }
9440
+ .str-chat.str-chat__theme-dark {
9441
+ --str-chat__tooltip-background-color: var(--background-core-elevation-2);
9160
9442
  }
9161
9443
 
9162
9444
  .str-chat__tooltip {
@@ -9170,11 +9452,12 @@ to create clearer separation from the base surface.
9170
9452
  border-inline-end: var(--str-chat__tooltip-border-inline-end);
9171
9453
  overflow-y: hidden;
9172
9454
  display: flex;
9173
- padding: var(--space-8);
9455
+ gap: var(--spacing-xs);
9456
+ padding: var(--spacing-xs);
9174
9457
  z-index: 1;
9175
- max-width: calc(var(--str-chat__spacing-px) * 150);
9458
+ max-width: 150px;
9176
9459
  width: max-content;
9177
- font: var(--str-chat__metadata-emphasis-text);
9460
+ font: var(--str-chat__font-metadata-emphasis);
9178
9461
  }
9179
9462
  .str-chat__tooltip::after {
9180
9463
  background-color: var(--str-chat__tooltip-background-color);
@@ -9217,9 +9500,8 @@ to create clearer separation from the base surface.
9217
9500
  padding-block: var(--spacing-xs);
9218
9501
  padding-inline: var(--spacing-sm);
9219
9502
  border-radius: var(--message-bubble-radius-group-bottom) var(--message-bubble-radius-group-bottom) var(--message-bubble-radius-group-bottom) var(--message-bubble-radius-tail);
9220
- background: var(--chat-bg-incoming);
9221
- border: 1px solid var(--chat-bg-incoming);
9222
- background: var(--chat-bg-incoming, #ebeef1);
9503
+ border: 1px solid var(--chat-bg);
9504
+ background: var(--chat-bg);
9223
9505
  }
9224
9506
 
9225
9507
  .str-chat__typing-indicator__dots {
@@ -9266,7 +9548,7 @@ to create clearer separation from the base surface.
9266
9548
  gap: var(--spacing-xs, 4px);
9267
9549
  white-space: nowrap;
9268
9550
  color: var(--text-secondary);
9269
- font: var(--str-chat__caption-default-text);
9551
+ font: var(--str-chat__font-caption-default);
9270
9552
  }
9271
9553
 
9272
9554
  .str-chat__typing-indicator-header__dots {