@stream-io/video-styling 2.0.0-beta.0 → 2.0.0-beta.1
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.
- package/CHANGELOG.md +21 -0
- package/dist/css/embedded.css +2592 -1498
- package/dist/css/embedded.css.map +1 -1
- package/dist/css/styles.css +2388 -1222
- package/dist/css/styles.css.map +1 -1
- package/index.scss +4 -2
- package/package.json +1 -1
- package/project.json +1 -1
- package/src/AudioBlockedNotification/AudioBlockedNotification-layout.scss +9 -9
- package/src/AudioBlockedNotification/AudioBlockedNotification-theme.scss +6 -11
- package/src/Avatar/Avatar-layout.scss +21 -5
- package/src/Avatar/Avatar-theme.scss +33 -9
- package/src/Badge/Badge-layout.scss +52 -0
- package/src/Badge/Badge-theme.scss +39 -0
- package/src/Badge/index.scss +2 -0
- package/src/Button/Button-layout.scss +62 -89
- package/src/Button/Button-theme.scss +79 -144
- package/src/Button/CompositeButton.scss +125 -0
- package/src/Button/index.scss +1 -0
- package/src/CallControls/CallControls-layout.scss +27 -63
- package/src/CallControls/CancelCallButton.scss +39 -85
- package/src/CallLayout/LivestreamLayout-layout.scss +80 -77
- package/src/CallLayout/LivestreamLayout-theme.scss +23 -0
- package/src/CallLayout/PaginatedGridLayout-layout.scss +8 -8
- package/src/CallLayout/PipLayout-layout.scss +26 -20
- package/src/CallLayout/PipLayout-theme.scss +2 -1
- package/src/CallLayout/SpeakerLayout-layout.scss +13 -13
- package/src/CallLayout/index.scss +1 -0
- package/src/CallParticipantList/CallParticiantListingItem-layout.scss +6 -8
- package/src/CallParticipantList/CallParticiantListingItem-theme.scss +19 -17
- package/src/CallParticipantList/CallParticipantList-layout.scss +25 -19
- package/src/CallRecodingList/CallRecordingList-layout.scss +46 -27
- package/src/CallRecodingList/CallRecordingList-theme.scss +25 -37
- package/src/DeviceSettings/DeviceSettings-layout.scss +154 -69
- package/src/DropdownSelect/DropdownSelect.scss +62 -52
- package/src/Embedded/_base.scss +2 -2
- package/src/Embedded/call/CallLayout-layout.scss +22 -12
- package/src/Embedded/call/CallLayout-theme.scss +2 -2
- package/src/Embedded/livestream/Livestream-layout.scss +28 -41
- package/src/Embedded/livestream/Livestream-theme.scss +12 -34
- package/src/Embedded/shared/BlurToggleButton/BlurToggleButton-layout.scss +8 -20
- package/src/Embedded/shared/BlurToggleButton/BlurToggleButton-theme.scss +1 -19
- package/src/Embedded/shared/CallControls/CallControls-layout.scss +10 -11
- package/src/Embedded/shared/CallControls/CallControls-theme.scss +5 -7
- package/src/Embedded/shared/ConnectionNotification/ConnectionNotification-layout.scss +1 -1
- package/src/Embedded/shared/EmbeddedParticipantViewUI/EmbeddedParticipantViewUI.scss +2 -2
- package/src/Embedded/shared/ErrorScreen/ErrorScreen-layout.scss +3 -3
- package/src/Embedded/shared/Feedback/CallFeedback-layout.scss +21 -36
- package/src/Embedded/shared/Feedback/CallFeedback-theme.scss +11 -33
- package/src/Embedded/shared/Icons.scss +6 -8
- package/src/Embedded/shared/JoinError/JoinError-layout.scss +7 -3
- package/src/Embedded/shared/JoinError/JoinError-theme.scss +3 -3
- package/src/Embedded/shared/LoadingScreen/LoadingScreen-layout.scss +4 -4
- package/src/Embedded/shared/Lobby/Lobby-layout.scss +66 -55
- package/src/Embedded/shared/Lobby/Lobby-theme.scss +20 -15
- package/src/Icon/Icon-layout.scss +3 -2
- package/src/Icon/Icon-theme.scss +59 -20
- package/src/LoadingIndicator/LoadingIndicator-layout.scss +5 -0
- package/src/LoadingIndicator/LoadingIndicator-theme.scss +4 -3
- package/src/Menu/GenericMenu-layout.scss +56 -29
- package/src/Menu/Menu-theme.scss +3 -3
- package/src/Menu/Portal-layout.scss +1 -1
- package/src/Notification/Notification-layout.scss +13 -8
- package/src/Notification/Notification-theme.scss +8 -14
- package/src/ParticipantView/ParticipantView-layout.scss +80 -77
- package/src/ParticipantView/ParticipantView-theme.scss +28 -0
- package/src/ParticipantView/index.scss +1 -0
- package/src/Permissions/Permissions-layout.scss +16 -23
- package/src/Reaction/Reaction-layout.scss +3 -3
- package/src/RingingCall/RingingCall-layout.scss +8 -7
- package/src/RingingCall/RingingCall-theme.scss +17 -16
- package/src/ScreenShareOverlay/ScreenShareOverlay-layout.scss +6 -14
- package/src/ScreenShareOverlay/ScreenShareOverlay-theme.scss +6 -11
- package/src/Search/SearchInput-layout.scss +16 -10
- package/src/Search/SearchInput-theme.scss +41 -21
- package/src/StreamCall.scss +4 -4
- package/src/Tooltip/Tooltip-layout.scss +11 -3
- package/src/Tooltip/Tooltip-theme.scss +8 -25
- package/src/Video/Video-theme.scss +1 -1
- package/src/Video/VideoPlaceholder-layout.scss +0 -14
- package/src/Video/VideoPlaceholder-theme.scss +2 -13
- package/src/VideoPreview/VideoPreview-layout.scss +2 -3
- package/src/VideoPreview/VideoPreview-theme.scss +22 -15
- package/src/_icons.scss +56 -0
- package/src/_shadows.scss +13 -0
- package/src/_variable-tokens.scss +10 -0
- package/src/tokens/generated/dark.scss +167 -0
- package/src/tokens/generated/light.scss +853 -0
- package/src/CallStats.scss +0 -118
- package/src/_global-theme-variables.scss +0 -167
|
@@ -0,0 +1,853 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@mixin variables {
|
|
6
|
+
--str-video__subtle: 25px; /** Subtle background blur. Used on scrims and glass surfaces where the content behind stays partly legible. */
|
|
7
|
+
--str-video__strong: 50px; /** Strong background blur. Used on scrims and glass surfaces where the content behind should be obscured. */
|
|
8
|
+
--str-video__base-transparent-white-10: rgba(255, 255, 255, 0.1);
|
|
9
|
+
--str-video__base-transparent-white-20: rgba(255, 255, 255, 0.2);
|
|
10
|
+
--str-video__base-transparent-white-30: rgba(
|
|
11
|
+
255,
|
|
12
|
+
255,
|
|
13
|
+
255,
|
|
14
|
+
0.3
|
|
15
|
+
); /** Legacy value, no longer defined in Figma. Kept for compatibility; prefer the 0/10/15/20/25/50/75 scale. */
|
|
16
|
+
--str-video__base-transparent-white-70: rgba(
|
|
17
|
+
255,
|
|
18
|
+
255,
|
|
19
|
+
255,
|
|
20
|
+
0.7
|
|
21
|
+
); /** Legacy value, no longer defined in Figma. Kept for compatibility; prefer the 0/10/15/20/25/50/75 scale. */
|
|
22
|
+
--str-video__base-transparent-black-5: rgba(
|
|
23
|
+
0,
|
|
24
|
+
0,
|
|
25
|
+
0,
|
|
26
|
+
0.05
|
|
27
|
+
); /** Legacy value, no longer defined in Figma. Kept for compatibility; prefer the 0/10/15/20/25/50/75 scale. */
|
|
28
|
+
--str-video__base-transparent-black-10: rgba(
|
|
29
|
+
0,
|
|
30
|
+
0,
|
|
31
|
+
0,
|
|
32
|
+
0.1
|
|
33
|
+
); /** Used for bg in closeButton */
|
|
34
|
+
--str-video__base-transparent-black-70: rgba(
|
|
35
|
+
0,
|
|
36
|
+
0,
|
|
37
|
+
0,
|
|
38
|
+
0.7
|
|
39
|
+
); /** Legacy value, no longer defined in Figma. Kept for compatibility; prefer the 0/10/15/20/25/50/75 scale. */
|
|
40
|
+
--str-video__base-transparent-black-0: rgba(0, 0, 0, 0);
|
|
41
|
+
--str-video__base-transparent-black-15: rgba(0, 0, 0, 0.15);
|
|
42
|
+
--str-video__base-transparent-black-20: rgba(0, 0, 0, 0.2);
|
|
43
|
+
--str-video__base-transparent-black-25: rgba(0, 0, 0, 0.25);
|
|
44
|
+
--str-video__base-transparent-black-50: rgba(0, 0, 0, 0.5);
|
|
45
|
+
--str-video__base-transparent-black-75: rgba(0, 0, 0, 0.75);
|
|
46
|
+
--str-video__base-transparent-white-0: rgba(255, 255, 255, 0);
|
|
47
|
+
--str-video__base-transparent-white-15: rgba(255, 255, 255, 0.15);
|
|
48
|
+
--str-video__base-transparent-white-25: rgba(255, 255, 255, 0.25);
|
|
49
|
+
--str-video__base-transparent-white-50: rgba(255, 255, 255, 0.5);
|
|
50
|
+
--str-video__base-transparent-white-75: rgba(255, 255, 255, 0.75);
|
|
51
|
+
--str-video__base-black: #000000;
|
|
52
|
+
--str-video__base-white: #ffffff;
|
|
53
|
+
--str-video__slate-50: #f6f8fa;
|
|
54
|
+
--str-video__slate-100: #ebeef1;
|
|
55
|
+
--str-video__slate-150: #d5dbe1;
|
|
56
|
+
--str-video__slate-200: #c0c8d2;
|
|
57
|
+
--str-video__slate-300: #a3acba;
|
|
58
|
+
--str-video__slate-400: #87909f;
|
|
59
|
+
--str-video__slate-500: #687385;
|
|
60
|
+
--str-video__slate-600: #545969;
|
|
61
|
+
--str-video__slate-700: #414552;
|
|
62
|
+
--str-video__slate-800: #30313d;
|
|
63
|
+
--str-video__slate-900: #1a1b25;
|
|
64
|
+
--str-video__neutral-50: #f8f8f8;
|
|
65
|
+
--str-video__neutral-100: #efefef;
|
|
66
|
+
--str-video__neutral-150: #d8d8d8;
|
|
67
|
+
--str-video__neutral-200: #c4c4c4;
|
|
68
|
+
--str-video__neutral-300: #ababab;
|
|
69
|
+
--str-video__neutral-400: #8f8f8f;
|
|
70
|
+
--str-video__neutral-500: #6a6a6a;
|
|
71
|
+
--str-video__neutral-600: #565656;
|
|
72
|
+
--str-video__neutral-700: #464646;
|
|
73
|
+
--str-video__neutral-800: #323232;
|
|
74
|
+
--str-video__neutral-900: #1c1c1c;
|
|
75
|
+
--str-video__blue-50: #f3f7ff;
|
|
76
|
+
--str-video__blue-100: #e3edff;
|
|
77
|
+
--str-video__blue-150: #c3d9ff;
|
|
78
|
+
--str-video__blue-200: #a5c5ff;
|
|
79
|
+
--str-video__blue-300: #78a8ff;
|
|
80
|
+
--str-video__blue-400: #4586ff;
|
|
81
|
+
--str-video__blue-500: #005fff;
|
|
82
|
+
--str-video__blue-600: #1b53bd;
|
|
83
|
+
--str-video__blue-700: #19418d;
|
|
84
|
+
--str-video__blue-800: #142f63;
|
|
85
|
+
--str-video__blue-900: #091a3b;
|
|
86
|
+
--str-video__cyan-50: #f1fbfc;
|
|
87
|
+
--str-video__cyan-100: #d1f3f6;
|
|
88
|
+
--str-video__cyan-150: #a9e4ea;
|
|
89
|
+
--str-video__cyan-200: #72d7e0;
|
|
90
|
+
--str-video__cyan-300: #45bcc7;
|
|
91
|
+
--str-video__cyan-400: #1e9ea9;
|
|
92
|
+
--str-video__cyan-500: #248088;
|
|
93
|
+
--str-video__cyan-600: #006970;
|
|
94
|
+
--str-video__cyan-700: #065056;
|
|
95
|
+
--str-video__cyan-800: #003a3f;
|
|
96
|
+
--str-video__cyan-900: #002124;
|
|
97
|
+
--str-video__green-50: #e1ffee;
|
|
98
|
+
--str-video__green-100: #bdfcdb;
|
|
99
|
+
--str-video__green-150: #8febbd;
|
|
100
|
+
--str-video__green-200: #59dea3;
|
|
101
|
+
--str-video__green-300: #00c384;
|
|
102
|
+
--str-video__green-400: #00a46e;
|
|
103
|
+
--str-video__green-500: #277e59;
|
|
104
|
+
--str-video__green-600: #006643;
|
|
105
|
+
--str-video__green-700: #004f33;
|
|
106
|
+
--str-video__green-800: #003a25;
|
|
107
|
+
--str-video__green-900: #002213;
|
|
108
|
+
--str-video__purple-50: #f7f8ff;
|
|
109
|
+
--str-video__purple-100: #ecedff;
|
|
110
|
+
--str-video__purple-150: #d4d7ff;
|
|
111
|
+
--str-video__purple-200: #c1c5ff;
|
|
112
|
+
--str-video__purple-300: #a1a3ff;
|
|
113
|
+
--str-video__purple-400: #8482fc;
|
|
114
|
+
--str-video__purple-500: #644af9;
|
|
115
|
+
--str-video__purple-600: #553bd8;
|
|
116
|
+
--str-video__purple-700: #4032a1;
|
|
117
|
+
--str-video__purple-800: #2e2576;
|
|
118
|
+
--str-video__purple-900: #1a114d;
|
|
119
|
+
--str-video__yellow-50: #fef9da;
|
|
120
|
+
--str-video__yellow-100: #fcedb9;
|
|
121
|
+
--str-video__yellow-150: #fcd579;
|
|
122
|
+
--str-video__yellow-200: #f6bf57;
|
|
123
|
+
--str-video__yellow-300: #fa922b;
|
|
124
|
+
--str-video__yellow-400: #f26d10;
|
|
125
|
+
--str-video__yellow-500: #c84801;
|
|
126
|
+
--str-video__yellow-600: #a82c00;
|
|
127
|
+
--str-video__yellow-700: #842106;
|
|
128
|
+
--str-video__yellow-800: #5f1a05;
|
|
129
|
+
--str-video__yellow-900: #331302;
|
|
130
|
+
--str-video__red-50: #fff5fa;
|
|
131
|
+
--str-video__red-100: #ffe7f2;
|
|
132
|
+
--str-video__red-150: #ffccdf;
|
|
133
|
+
--str-video__red-200: #ffb1cd;
|
|
134
|
+
--str-video__red-300: #fe87a1;
|
|
135
|
+
--str-video__red-400: #fc526a;
|
|
136
|
+
--str-video__red-500: #d90d10;
|
|
137
|
+
--str-video__red-600: #b3093c;
|
|
138
|
+
--str-video__red-700: #890d37;
|
|
139
|
+
--str-video__red-800: #68052b;
|
|
140
|
+
--str-video__red-900: #3e021a;
|
|
141
|
+
--str-video__violet-50: #fef4ff;
|
|
142
|
+
--str-video__violet-100: #fbe8fe;
|
|
143
|
+
--str-video__violet-150: #f7cffc;
|
|
144
|
+
--str-video__violet-200: #eeb5f4;
|
|
145
|
+
--str-video__violet-300: #e68bec;
|
|
146
|
+
--str-video__violet-400: #d75fe7;
|
|
147
|
+
--str-video__violet-500: #b716ca;
|
|
148
|
+
--str-video__violet-600: #9d00ae;
|
|
149
|
+
--str-video__violet-700: #7c0089;
|
|
150
|
+
--str-video__violet-800: #5c0066;
|
|
151
|
+
--str-video__violet-900: #36003d;
|
|
152
|
+
--str-video__lime-50: #f1fde8;
|
|
153
|
+
--str-video__lime-100: #d4ffb0;
|
|
154
|
+
--str-video__lime-150: #b1ee79;
|
|
155
|
+
--str-video__lime-200: #9cda5d;
|
|
156
|
+
--str-video__lime-300: #78c100;
|
|
157
|
+
--str-video__lime-400: #639e11;
|
|
158
|
+
--str-video__lime-500: #4b7a0a;
|
|
159
|
+
--str-video__lime-600: #3e6213;
|
|
160
|
+
--str-video__lime-700: #355315;
|
|
161
|
+
--str-video__lime-800: #203a00;
|
|
162
|
+
--str-video__lime-900: #112100;
|
|
163
|
+
--str-video__size-2: 2px;
|
|
164
|
+
--str-video__size-4: 4px;
|
|
165
|
+
--str-video__size-6: 6px;
|
|
166
|
+
--str-video__size-8: 8px;
|
|
167
|
+
--str-video__size-12: 12px;
|
|
168
|
+
--str-video__size-16: 16px;
|
|
169
|
+
--str-video__size-20: 20px;
|
|
170
|
+
--str-video__size-24: 24px;
|
|
171
|
+
--str-video__size-32: 32px;
|
|
172
|
+
--str-video__size-40: 40px;
|
|
173
|
+
--str-video__size-48: 48px;
|
|
174
|
+
--str-video__size-64: 64px;
|
|
175
|
+
--str-video__size-28: 28px;
|
|
176
|
+
--str-video__size-80: 80px;
|
|
177
|
+
--str-video__size-128: 128px;
|
|
178
|
+
--str-video__size-240: 240px;
|
|
179
|
+
--str-video__size-320: 320px;
|
|
180
|
+
--str-video__size-480: 480px;
|
|
181
|
+
--str-video__size-560: 560px;
|
|
182
|
+
--str-video__size-640: 640px;
|
|
183
|
+
--str-video__size-760: 760px;
|
|
184
|
+
--str-video__size-144: 144px;
|
|
185
|
+
--str-video__size-208: 208px;
|
|
186
|
+
--str-video__size-56: 56px;
|
|
187
|
+
--str-video__size-10: 10px;
|
|
188
|
+
--str-video__size-13: 13px;
|
|
189
|
+
--str-video__size-14: 14px;
|
|
190
|
+
--str-video__size-15: 15px;
|
|
191
|
+
--str-video__size-17: 17px;
|
|
192
|
+
--str-video__size-18: 18px;
|
|
193
|
+
--str-video__size-22: 22px;
|
|
194
|
+
--str-video__radius-0: 0px;
|
|
195
|
+
--str-video__radius-2: 2px;
|
|
196
|
+
--str-video__radius-4: 4px;
|
|
197
|
+
--str-video__radius-6: 6px;
|
|
198
|
+
--str-video__radius-8: 8px;
|
|
199
|
+
--str-video__radius-12: 12px;
|
|
200
|
+
--str-video__radius-16: 16px;
|
|
201
|
+
--str-video__radius-20: 20px;
|
|
202
|
+
--str-video__radius-24: 24px;
|
|
203
|
+
--str-video__radius-32: 32px;
|
|
204
|
+
--str-video__radius-full: 9999px;
|
|
205
|
+
--str-video__space-0: 0px;
|
|
206
|
+
--str-video__space-2: 2px;
|
|
207
|
+
--str-video__space-4: 4px;
|
|
208
|
+
--str-video__space-8: 8px;
|
|
209
|
+
--str-video__space-12: 12px;
|
|
210
|
+
--str-video__space-16: 16px;
|
|
211
|
+
--str-video__space-20: 20px;
|
|
212
|
+
--str-video__space-24: 24px;
|
|
213
|
+
--str-video__space-32: 32px;
|
|
214
|
+
--str-video__space-40: 40px;
|
|
215
|
+
--str-video__space-48: 48px;
|
|
216
|
+
--str-video__space-64: 64px;
|
|
217
|
+
--str-video__space-80: 80px;
|
|
218
|
+
--str-video__space-6: 6px;
|
|
219
|
+
--str-video__space-10: 10px;
|
|
220
|
+
--str-video__space-14: 14px;
|
|
221
|
+
--str-video__w100: 1px;
|
|
222
|
+
--str-video__w150: 1.5px;
|
|
223
|
+
--str-video__w200: 2px;
|
|
224
|
+
--str-video__w300: 3px;
|
|
225
|
+
--str-video__w400: 4px;
|
|
226
|
+
--str-video__w120: 1.2px;
|
|
227
|
+
--str-video__w80: 0.8px;
|
|
228
|
+
--str-video__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. */
|
|
229
|
+
--str-video__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. */
|
|
230
|
+
--str-video__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. */
|
|
231
|
+
--str-video__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. */
|
|
232
|
+
--str-video__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. */
|
|
233
|
+
--str-video__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. */
|
|
234
|
+
--str-video__font-family-inter: 'Inter'; /** Sans-serif typeface available for custom themes. */
|
|
235
|
+
--str-video__font-family-dm-mono: 'DM Mono'; /** Monospace typeface available for custom themes. */
|
|
236
|
+
--str-video__font-weight-w400: 400;
|
|
237
|
+
--str-video__font-weight-w500: 500;
|
|
238
|
+
--str-video__font-weight-w600: 600;
|
|
239
|
+
--str-video__font-weight-w700: 700;
|
|
240
|
+
--str-video__font-size-size-8: 8px;
|
|
241
|
+
--str-video__font-size-size-10: 10px;
|
|
242
|
+
--str-video__font-size-size-11: 11px;
|
|
243
|
+
--str-video__font-size-size-12: 12px;
|
|
244
|
+
--str-video__font-size-size-13: 13px;
|
|
245
|
+
--str-video__font-size-size-14: 14px;
|
|
246
|
+
--str-video__font-size-size-16: 16px;
|
|
247
|
+
--str-video__font-size-size-15: 15px;
|
|
248
|
+
--str-video__font-size-size-17: 17px;
|
|
249
|
+
--str-video__font-size-size-18: 18px;
|
|
250
|
+
--str-video__font-size-size-20: 20px;
|
|
251
|
+
--str-video__font-size-size-22: 22px;
|
|
252
|
+
--str-video__font-size-size-24: 24px;
|
|
253
|
+
--str-video__font-size-size-28: 28px;
|
|
254
|
+
--str-video__font-size-size-32: 32px;
|
|
255
|
+
--str-video__font-size-size-40: 40px;
|
|
256
|
+
--str-video__font-size-size-48: 48px;
|
|
257
|
+
--str-video__font-size-size-64: 64px;
|
|
258
|
+
--str-video__line-height-line-height-8: 8px;
|
|
259
|
+
--str-video__line-height-line-height-10: 10px;
|
|
260
|
+
--str-video__line-height-line-height-12: 12px;
|
|
261
|
+
--str-video__line-height-line-height-13: 13px;
|
|
262
|
+
--str-video__line-height-line-height-14: 14px;
|
|
263
|
+
--str-video__line-height-line-height-15: 15px;
|
|
264
|
+
--str-video__line-height-line-height-16: 16px;
|
|
265
|
+
--str-video__line-height-line-height-17: 17px;
|
|
266
|
+
--str-video__line-height-line-height-18: 18px;
|
|
267
|
+
--str-video__line-height-line-height-20: 20px;
|
|
268
|
+
--str-video__line-height-line-height-24: 24px;
|
|
269
|
+
--str-video__line-height-line-height-28: 28px;
|
|
270
|
+
--str-video__line-height-line-height-32: 32px;
|
|
271
|
+
--str-video__line-height-line-height-40: 40px;
|
|
272
|
+
--str-video__line-height-line-height-48: 48px;
|
|
273
|
+
--str-video__typography-font-weight-regular: 400; /** Default weight for body text and low-emphasis content. */
|
|
274
|
+
--str-video__typography-font-weight-medium: 500; /** Slightly emphasized weight for interactive labels, list items, and secondary headings. */
|
|
275
|
+
--str-video__typography-font-weight-semi-bold: 600; /** Strong emphasis for subheadings, active states, and UI labels that need to stand out. */
|
|
276
|
+
--str-video__typography-font-weight-bold: 700; /** Highest emphasis weight for titles, primary headings, and critical labels. */
|
|
277
|
+
--str-video__light-elevation-1:
|
|
278
|
+
0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 1px 2px 0px rgba(0, 0, 0, 0.1),
|
|
279
|
+
0px 4px 8px 0px rgba(0, 0, 0, 0.06); /** Low elevation level for subtle separation. */
|
|
280
|
+
--str-video__light-elevation-2:
|
|
281
|
+
0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 2px 4px 0px rgba(0, 0, 0, 0.12),
|
|
282
|
+
0px 6px 16px 0px rgba(0, 0, 0, 0.06);
|
|
283
|
+
--str-video__light-elevation-3:
|
|
284
|
+
0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 4px 8px 0px rgba(0, 0, 0, 0.14),
|
|
285
|
+
0px 12px 24px 0px rgba(0, 0, 0, 0.1);
|
|
286
|
+
--str-video__light-elevation-4:
|
|
287
|
+
0px 0px 0px 1px rgba(0, 0, 0, 0.05), 0px 6px 12px 0px rgba(0, 0, 0, 0.16),
|
|
288
|
+
0px 20px 32px 0px rgba(0, 0, 0, 0.12);
|
|
289
|
+
--str-video__dark-elevation-1:
|
|
290
|
+
0px 0px 0px 1px rgba(255, 255, 255, 0.15),
|
|
291
|
+
0px 1px 2px 0px rgba(0, 0, 0, 0.2), 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
|
|
292
|
+
--str-video__dark-elevation-2:
|
|
293
|
+
0px 0px 0px 1px rgba(255, 255, 255, 0.15),
|
|
294
|
+
0px 2px 4px 0px rgba(0, 0, 0, 0.22), 0px 6px 16px 0px rgba(0, 0, 0, 0.12);
|
|
295
|
+
--str-video__dark-elevation-3:
|
|
296
|
+
0px 0px 0px 1px rgba(255, 255, 255, 0.15),
|
|
297
|
+
0px 4px 8px 0px rgba(0, 0, 0, 0.24), 0px 12px 24px 0px rgba(0, 0, 0, 0.14);
|
|
298
|
+
--str-video__dark-elevation-4:
|
|
299
|
+
0px 0px 0px 1px rgba(255, 255, 255, 0.15),
|
|
300
|
+
0px 6px 12px 0px rgba(0, 0, 0, 0.28), 0px 20px 32px 0px rgba(0, 0, 0, 0.16);
|
|
301
|
+
--str-video__button-padding-y-lg: 14px;
|
|
302
|
+
--str-video__button-padding-y-md: 10px;
|
|
303
|
+
--str-video__button-padding-y-sm: 6px;
|
|
304
|
+
--str-video__button-padding-y-xs: 2px;
|
|
305
|
+
--str-video__button-padding-x-icon-only-lg: 16px;
|
|
306
|
+
--str-video__button-padding-x-icon-only-md: 12px;
|
|
307
|
+
--str-video__button-padding-x-icon-only-sm: 8px;
|
|
308
|
+
--str-video__button-padding-x-icon-only-xs: 4px;
|
|
309
|
+
--str-video__button-padding-x-with-label-lg: 16px;
|
|
310
|
+
--str-video__button-padding-x-with-label-md: 16px;
|
|
311
|
+
--str-video__button-padding-x-with-label-sm: 16px;
|
|
312
|
+
--str-video__button-padding-x-with-label-xs: 12px;
|
|
313
|
+
--str-video__background-core-overlay-dark: rgba(
|
|
314
|
+
26,
|
|
315
|
+
27,
|
|
316
|
+
37,
|
|
317
|
+
0.25
|
|
318
|
+
); /** A dark semi-transparent layer. Used for image overlays. */
|
|
319
|
+
--str-video__background-core-overlay-dark-strong: rgba(
|
|
320
|
+
26,
|
|
321
|
+
27,
|
|
322
|
+
37,
|
|
323
|
+
0.75
|
|
324
|
+
); /** A dark semi-transparent layer. Used for image overlays. */
|
|
325
|
+
--str-video__background-core-overlay-light: rgba(
|
|
326
|
+
255,
|
|
327
|
+
255,
|
|
328
|
+
255,
|
|
329
|
+
0.75
|
|
330
|
+
); /** A light semi-transparent layer. Used to lighten surfaces and for hover states on dark backgrounds. */
|
|
331
|
+
--str-video__background-core-scrim: rgba(
|
|
332
|
+
26,
|
|
333
|
+
27,
|
|
334
|
+
37,
|
|
335
|
+
0.5
|
|
336
|
+
); /** A heavy semi-transparent layer. Used behind sheets, drawers, and modals to separate them from content. */
|
|
337
|
+
--str-video__background-utility-hover: rgba(
|
|
338
|
+
26,
|
|
339
|
+
27,
|
|
340
|
+
37,
|
|
341
|
+
0.1
|
|
342
|
+
); /** A semi-transparent overlay applied on pointer hover. Sits on top of any surface without replacing it. */
|
|
343
|
+
--str-video__background-utility-pressed: rgba(
|
|
344
|
+
26,
|
|
345
|
+
27,
|
|
346
|
+
37,
|
|
347
|
+
0.15
|
|
348
|
+
); /** A slightly stronger overlay applied during an active press or tap. Provides tactile feedback on interactive elements. */
|
|
349
|
+
--str-video__background-utility-selected: rgba(
|
|
350
|
+
26,
|
|
351
|
+
27,
|
|
352
|
+
37,
|
|
353
|
+
0.2
|
|
354
|
+
); /** Indicates an active or selected state. Used for selected messages, active list items, and toggled controls. */
|
|
355
|
+
--str-video__border-utility-hover: rgba(
|
|
356
|
+
26,
|
|
357
|
+
27,
|
|
358
|
+
37,
|
|
359
|
+
0.1
|
|
360
|
+
); /** Applied on pointer hover over bordered interactive elements. */
|
|
361
|
+
--str-video__border-utility-pressed: rgba(
|
|
362
|
+
26,
|
|
363
|
+
27,
|
|
364
|
+
37,
|
|
365
|
+
0.2
|
|
366
|
+
); /** Applied during an active press on bordered interactive elements. */
|
|
367
|
+
--str-video__border-utility-selected: rgba(
|
|
368
|
+
26,
|
|
369
|
+
27,
|
|
370
|
+
37,
|
|
371
|
+
0.15
|
|
372
|
+
); /** Border for selected or active items. Used for highlighted list items and active controls. */
|
|
373
|
+
--str-video__border-core-opacity-strong: rgba(
|
|
374
|
+
26,
|
|
375
|
+
27,
|
|
376
|
+
37,
|
|
377
|
+
0.25
|
|
378
|
+
); /** A stronger transparent border for elements on colored or dark backgrounds. Used for waveform bars and similar treatments. */
|
|
379
|
+
--str-video__border-core-opacity-subtle: rgba(
|
|
380
|
+
26,
|
|
381
|
+
27,
|
|
382
|
+
37,
|
|
383
|
+
0.1
|
|
384
|
+
); /** A very light transparent border. Used as a frame treatment on images and media attachments. */
|
|
385
|
+
--str-video__system-bg-blur: rgba(255, 255, 255, 0.01);
|
|
386
|
+
--str-video__system-scrollbar: rgba(0, 0, 0, 0.5);
|
|
387
|
+
--str-video__badge-bg-overlay: rgba(0, 0, 0, 0.75);
|
|
388
|
+
--str-video__base-transparent-0: var(
|
|
389
|
+
--str-video__base-transparent-white-0
|
|
390
|
+
); /** Deprecated. Superseded by base/transparent/white-0%. Kept as an alias so existing integrations keep working; will be removed in a later release. */
|
|
391
|
+
--str-video__typography-font-family-sans: var(
|
|
392
|
+
--str-video__font-family-geist
|
|
393
|
+
); /** The primary UI typeface. Maps to SF Pro on iOS, Roboto on Android, and Geist on web. */
|
|
394
|
+
--str-video__typography-font-family-mono: var(
|
|
395
|
+
--str-video__font-family-geist-mono
|
|
396
|
+
); /** The monospace typeface. Used for code snippets, and technical string values. */
|
|
397
|
+
--str-video__typography-font-size-xxs: var(
|
|
398
|
+
--str-video__font-size-size-10
|
|
399
|
+
); /** Very small text for fine-print labels, counters, and compact secondary information */
|
|
400
|
+
--str-video__typography-font-size-xs: var(
|
|
401
|
+
--str-video__font-size-size-12
|
|
402
|
+
); /** Small text for supporting labels, timestamps, and low-hierarchy metadata. */
|
|
403
|
+
--str-video__typography-font-size-sm: var(
|
|
404
|
+
--str-video__font-size-size-14
|
|
405
|
+
); /** Secondary body text for subtitles, helper text, and de-emphasized UI copy. */
|
|
406
|
+
--str-video__typography-font-size-md: var(
|
|
407
|
+
--str-video__font-size-size-16
|
|
408
|
+
); /** Default body text size for most readable UI content. */
|
|
409
|
+
--str-video__typography-font-size-lg: var(
|
|
410
|
+
--str-video__font-size-size-18
|
|
411
|
+
); /** Emphasized body text for primary labels, section headings, and prominent UI copy. */
|
|
412
|
+
--str-video__typography-font-size-xl: var(
|
|
413
|
+
--str-video__font-size-size-20
|
|
414
|
+
); /** Large text for titles, screen headings, and high-hierarchy labels */
|
|
415
|
+
--str-video__typography-font-size-2xl: var(
|
|
416
|
+
--str-video__font-size-size-24
|
|
417
|
+
); /** Section titles, important headings. */
|
|
418
|
+
--str-video__typography-font-size-micro: var(
|
|
419
|
+
--str-video__font-size-size-8
|
|
420
|
+
); /** Smallest text size. Reserved for legal, captions, or secondary metadata where space is extremely constrained. */
|
|
421
|
+
--str-video__typography-line-height-tight: var(
|
|
422
|
+
--str-video__line-height-line-height-16
|
|
423
|
+
); /** Compact line spacing for short labels, badges, and single-line UI text where vertical density matters. */
|
|
424
|
+
--str-video__typography-line-height-normal: var(
|
|
425
|
+
--str-video__line-height-line-height-20
|
|
426
|
+
); /** Compact line spacing for short labels, badges, and single-line UI text where vertical density matters. */
|
|
427
|
+
--str-video__typography-line-height-relaxed: var(
|
|
428
|
+
--str-video__line-height-line-height-24
|
|
429
|
+
); /** Generous line spacing for multi-line body text and message content where readability is the priority. */
|
|
430
|
+
--str-video__radius-none: var(
|
|
431
|
+
--str-video__radius-0
|
|
432
|
+
); /** No border radius. Used for elements that must have sharp corners, such as full-width banners or flush containers. */
|
|
433
|
+
--str-video__radius-xxs: var(
|
|
434
|
+
--str-video__radius-2
|
|
435
|
+
); /** 2px radius. Minimal rounding for compact elements like inline badges and tight chips. */
|
|
436
|
+
--str-video__radius-xs: var(
|
|
437
|
+
--str-video__radius-4
|
|
438
|
+
); /** 4px radius. Subtle rounding for small interactive elements like tags and small buttons. */
|
|
439
|
+
--str-video__radius-sm: var(
|
|
440
|
+
--str-video__radius-6
|
|
441
|
+
); /** 6px radius. Light rounding for inputs, secondary buttons, and contained UI elements. */
|
|
442
|
+
--str-video__radius-md: var(
|
|
443
|
+
--str-video__radius-8
|
|
444
|
+
); /** 8px radius. Default radius for cards, modals, and standard interactive components. */
|
|
445
|
+
--str-video__radius-lg: var(
|
|
446
|
+
--str-video__radius-12
|
|
447
|
+
); /** 12px radius. Prominent rounding for sheets, drawers, and larger containers. */
|
|
448
|
+
--str-video__radius-xl: var(--str-video__radius-16);
|
|
449
|
+
--str-video__radius-2xl: var(--str-video__radius-20);
|
|
450
|
+
--str-video__radius-max: var(--str-video__radius-full);
|
|
451
|
+
--str-video__radius-3xl: var(--str-video__radius-24);
|
|
452
|
+
--str-video__radius-4xl: var(--str-video__radius-32);
|
|
453
|
+
--str-video__spacing-none: var(
|
|
454
|
+
--str-video__space-0
|
|
455
|
+
); /** No spacing. Used for tight component joins. */
|
|
456
|
+
--str-video__spacing-xxs: var(
|
|
457
|
+
--str-video__space-4
|
|
458
|
+
); /** Base unit. Minimal padding, tight gaps. */
|
|
459
|
+
--str-video__spacing-xs: var(
|
|
460
|
+
--str-video__space-8
|
|
461
|
+
); /** Small padding and default vertical gaps. */
|
|
462
|
+
--str-video__spacing-sm: var(
|
|
463
|
+
--str-video__space-12
|
|
464
|
+
); /** Common internal spacing in inputs and buttons. */
|
|
465
|
+
--str-video__spacing-md: var(
|
|
466
|
+
--str-video__space-16
|
|
467
|
+
); /** Default large padding for sections and cards. */
|
|
468
|
+
--str-video__spacing-xl: var(
|
|
469
|
+
--str-video__space-24
|
|
470
|
+
); /** Comfortable spacing for chat bubbles and list items. */
|
|
471
|
+
--str-video__spacing-2xl: var(
|
|
472
|
+
--str-video__space-32
|
|
473
|
+
); /** Larger spacing for panels, modals, and gutters. */
|
|
474
|
+
--str-video__spacing-3xl: var(
|
|
475
|
+
--str-video__space-40
|
|
476
|
+
); /** Used for wide layout spacing and breathing room. */
|
|
477
|
+
--str-video__spacing-lg: var(
|
|
478
|
+
--str-video__space-20
|
|
479
|
+
); /** Medium spacing for grouping elements and section breaks. */
|
|
480
|
+
--str-video__spacing-xxxs: var(--str-video__space-2);
|
|
481
|
+
--str-video__device-safe-area-bottom: var(--str-video__space-0);
|
|
482
|
+
--str-video__device-safe-area-top: var(--str-video__space-0);
|
|
483
|
+
--str-video__button-radius-lg: var(--str-video__radius-full);
|
|
484
|
+
--str-video__button-radius-md: var(--str-video__radius-full);
|
|
485
|
+
--str-video__button-radius-sm: var(--str-video__radius-full);
|
|
486
|
+
--str-video__button-radius-full: var(--str-video__radius-full);
|
|
487
|
+
--str-video__button-visual-height-sm: var(--str-video__size-32);
|
|
488
|
+
--str-video__button-visual-height-md: var(--str-video__size-40);
|
|
489
|
+
--str-video__button-visual-height-lg: var(--str-video__size-48);
|
|
490
|
+
--str-video__button-visual-height-xs: var(--str-video__size-24);
|
|
491
|
+
/**
|
|
492
|
+
* Minimum interactive hit target size.
|
|
493
|
+
*
|
|
494
|
+
* iOS / Android: enforce minimum touch target.
|
|
495
|
+
* Web: do not apply a min-width or min-height; size to content.
|
|
496
|
+
*
|
|
497
|
+
* Note: Web uses a placeholder value in Figma due to variable mode constraints.
|
|
498
|
+
*/
|
|
499
|
+
--str-video__button-hit-target-min-height: var(--str-video__size-48);
|
|
500
|
+
/**
|
|
501
|
+
* Minimum interactive hit target size.
|
|
502
|
+
*
|
|
503
|
+
* iOS / Android: enforce minimum touch target.
|
|
504
|
+
* Web: do not apply a min-width or min-height; size to content.
|
|
505
|
+
*
|
|
506
|
+
* Note: Web uses a placeholder value in Figma due to variable mode constraints.
|
|
507
|
+
*/
|
|
508
|
+
--str-video__button-hit-target-min-width: var(--str-video__size-48);
|
|
509
|
+
--str-video__icon-size-xs: var(--str-video__size-12);
|
|
510
|
+
--str-video__icon-size-sm: var(--str-video__size-16);
|
|
511
|
+
--str-video__icon-size-md: var(--str-video__size-20);
|
|
512
|
+
--str-video__icon-size-lg: var(--str-video__size-32);
|
|
513
|
+
--str-video__icon-stroke-subtle: var(--str-video__w120);
|
|
514
|
+
--str-video__icon-stroke-default: var(--str-video__w150);
|
|
515
|
+
--str-video__icon-stroke-emphasis: var(--str-video__w200);
|
|
516
|
+
--str-video__emoji-md: var(--str-video__font-size-size-24);
|
|
517
|
+
--str-video__emoji-lg: var(--str-video__font-size-size-32);
|
|
518
|
+
--str-video__emoji-xl: var(--str-video__font-size-size-48);
|
|
519
|
+
--str-video__emoji-2xl: var(--str-video__font-size-size-64);
|
|
520
|
+
--str-video__input-radius-search-input: var(--str-video__radius-full);
|
|
521
|
+
--str-video__background-core-highlight: var(
|
|
522
|
+
--str-video__yellow-50
|
|
523
|
+
); /** A tint for drawing attention to content. Used for highlights and pinned messages. */
|
|
524
|
+
--str-video__background-utility-skeleton-loading-highlight: var(
|
|
525
|
+
--str-video__background-core-overlay-light
|
|
526
|
+
); /** Highlight color for the default skeleton loading gradient. Used for the moving shimmer to indicate loading activity. */
|
|
527
|
+
--str-video__control-call-control-error-badge-text: var(
|
|
528
|
+
--str-video__base-black
|
|
529
|
+
); /** Icon or text on the error badge. Pinned to black in every mode, because the badge background does not invert and a mode-aware text token would flip to white on yellow. */
|
|
530
|
+
--str-video__accent-success: var(
|
|
531
|
+
--str-video__green-400
|
|
532
|
+
); /** Indicates a positive or completed state. Used for confirmations, sent indicators, and success feedback. */
|
|
533
|
+
--str-video__accent-warning: var(
|
|
534
|
+
--str-video__yellow-200
|
|
535
|
+
); /** Indicates a cautionary state that requires attention. Used for moderation flags and non-critical alerts. */
|
|
536
|
+
--str-video__accent-error: var(
|
|
537
|
+
--str-video__red-500
|
|
538
|
+
); /** Indicates a failure or destructive state. Used for failed messages, validation errors, and deletions. */
|
|
539
|
+
--str-video__brand-50: var(--str-video__blue-50);
|
|
540
|
+
--str-video__brand-100: var(--str-video__blue-100);
|
|
541
|
+
--str-video__brand-150: var(--str-video__blue-150);
|
|
542
|
+
--str-video__brand-200: var(--str-video__blue-200);
|
|
543
|
+
--str-video__brand-300: var(--str-video__blue-300);
|
|
544
|
+
--str-video__brand-400: var(--str-video__blue-400);
|
|
545
|
+
--str-video__brand-500: var(--str-video__blue-500);
|
|
546
|
+
--str-video__brand-600: var(--str-video__blue-600);
|
|
547
|
+
--str-video__brand-700: var(--str-video__blue-700);
|
|
548
|
+
--str-video__brand-800: var(--str-video__blue-800);
|
|
549
|
+
--str-video__brand-900: var(--str-video__blue-900);
|
|
550
|
+
--str-video__chrome-0: var(--str-video__base-white);
|
|
551
|
+
--str-video__chrome-50: var(--str-video__slate-50);
|
|
552
|
+
--str-video__chrome-100: var(--str-video__slate-100);
|
|
553
|
+
--str-video__chrome-150: var(--str-video__slate-150);
|
|
554
|
+
--str-video__chrome-200: var(--str-video__slate-200);
|
|
555
|
+
--str-video__chrome-300: var(--str-video__slate-300);
|
|
556
|
+
--str-video__chrome-400: var(--str-video__slate-400);
|
|
557
|
+
--str-video__chrome-500: var(--str-video__slate-500);
|
|
558
|
+
--str-video__chrome-600: var(--str-video__slate-600);
|
|
559
|
+
--str-video__chrome-700: var(--str-video__slate-700);
|
|
560
|
+
--str-video__chrome-800: var(--str-video__slate-800);
|
|
561
|
+
--str-video__chrome-900: var(--str-video__slate-900);
|
|
562
|
+
--str-video__chrome-1000: var(--str-video__base-black);
|
|
563
|
+
--str-video__device-radius: var(--str-video__radius-md);
|
|
564
|
+
--str-video__button-primary-bg-liquid-glass: var(
|
|
565
|
+
--str-video__base-transparent-0
|
|
566
|
+
);
|
|
567
|
+
--str-video__button-primary-border: var(--str-video__brand-200);
|
|
568
|
+
--str-video__button-destructive-bg: var(--str-video__accent-error);
|
|
569
|
+
--str-video__button-destructive-text: var(--str-video__accent-error);
|
|
570
|
+
--str-video__button-destructive-border: var(--str-video__accent-error);
|
|
571
|
+
--str-video__emoji-sm: var(--str-video__typography-font-size-md);
|
|
572
|
+
--str-video__input-radius-text-input: var(--str-video__radius-lg);
|
|
573
|
+
--str-video__input-radius-select-input: var(--str-video__radius-lg);
|
|
574
|
+
--str-video__input-radius-option-card: var(--str-video__radius-lg);
|
|
575
|
+
--str-video__background-core-app: var(
|
|
576
|
+
--str-video__chrome-0
|
|
577
|
+
); /** The outermost application background. Sits behind all surfaces and is generally not overridden directly. */
|
|
578
|
+
--str-video__background-core-elevation-0: var(
|
|
579
|
+
--str-video__chrome-0
|
|
580
|
+
); /** 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. */
|
|
581
|
+
--str-video__background-core-elevation-1: var(
|
|
582
|
+
--str-video__chrome-0
|
|
583
|
+
); /** Slightly raised surfaces. Used for content containers that sit directly on the base layer, such as the message list and channel list. */
|
|
584
|
+
--str-video__background-core-elevation-2: var(
|
|
585
|
+
--str-video__chrome-0
|
|
586
|
+
); /** Floating and modal surfaces. Used for popovers, dropdowns, dialogs, and any element that interrupts the content flow. */
|
|
587
|
+
--str-video__background-core-elevation-3: var(
|
|
588
|
+
--str-video__chrome-0
|
|
589
|
+
); /** Used for badge counts that float above other UI elements. */
|
|
590
|
+
--str-video__background-core-inverse: var(
|
|
591
|
+
--str-video__chrome-1000
|
|
592
|
+
); /** The opposite of the primary surface. Used for tooltips, snackbars, and high-contrast floating elements. */
|
|
593
|
+
--str-video__background-core-on-accent: var(
|
|
594
|
+
--str-video__chrome-0
|
|
595
|
+
); /** Background for elements placed on an accent-colored surface. Ensures legibility against brand colors. */
|
|
596
|
+
--str-video__background-core-on-elevation: var(
|
|
597
|
+
--str-video__chrome-100
|
|
598
|
+
); /** Background for controls and elements inside a floating surface, such as a menu, dialog, or popover. Steps up in dark mode, where the elevated surface has already lightened and a plain surface background would disappear into it. */
|
|
599
|
+
--str-video__background-core-surface-card: var(
|
|
600
|
+
--str-video__chrome-50
|
|
601
|
+
); /** Background for contained, card-style elements. Matches the surface in light mode but lifts slightly in dark mode to maintain visual separation. */
|
|
602
|
+
--str-video__background-core-surface-default: var(
|
|
603
|
+
--str-video__chrome-100
|
|
604
|
+
); /** Background for sectioned content areas. Used for grouped containers, and distinct content regions. */
|
|
605
|
+
--str-video__background-core-surface-strong: var(
|
|
606
|
+
--str-video__chrome-150
|
|
607
|
+
); /** A more prominent background. Used for elements that need to stand out from the main surface. */
|
|
608
|
+
--str-video__background-core-surface-subtle: var(
|
|
609
|
+
--str-video__chrome-50
|
|
610
|
+
); /** A slightly receded background. Used for secondary containers or to create soft visual separation. */
|
|
611
|
+
--str-video__background-utility-disabled: var(
|
|
612
|
+
--str-video__chrome-100
|
|
613
|
+
); /** Background for non-interactive elements. Flattens the element visually to signal unavailability. */
|
|
614
|
+
--str-video__background-utility-skeleton-loading-base: var(
|
|
615
|
+
--str-video__base-transparent-0
|
|
616
|
+
); /** Base color for the default skeleton loading gradient. Used as the background tone for placeholder surfaces. */
|
|
617
|
+
--str-video__border-utility-focused: var(
|
|
618
|
+
--str-video__brand-150
|
|
619
|
+
); /** Focus ring for keyboard and accessibility navigation. Uses the brand color to signal input focus. */
|
|
620
|
+
--str-video__border-utility-success: var(
|
|
621
|
+
--str-video__accent-success
|
|
622
|
+
); /** Border for positive or confirmed states. Used on validated inputs and success indicators. */
|
|
623
|
+
--str-video__border-utility-warning: var(
|
|
624
|
+
--str-video__accent-warning
|
|
625
|
+
); /** Border for cautionary states. Used on inputs or elements requiring attention. */
|
|
626
|
+
--str-video__border-utility-error: var(
|
|
627
|
+
--str-video__accent-error
|
|
628
|
+
); /** Border for failure or invalid states. Used on failed inputs and destructive confirmations. */
|
|
629
|
+
--str-video__border-utility-disabled: var(
|
|
630
|
+
--str-video__chrome-100
|
|
631
|
+
); /** Border for non-interactive elements. Matches the disabled surface to visually flatten the element. */
|
|
632
|
+
--str-video__border-utility-disabled-on-surface: var(
|
|
633
|
+
--str-video__chrome-150
|
|
634
|
+
); /** Border for disabled elements on elevated surfaces. Stays visually distinct from the surface without drawing attention to a non-interactive element. */
|
|
635
|
+
--str-video__border-core-default: var(
|
|
636
|
+
--str-video__chrome-150
|
|
637
|
+
); /** Standard border for surfaces and containers. Used for input fields, cards, and dividers on neutral backgrounds. */
|
|
638
|
+
--str-video__border-core-on-accent: var(
|
|
639
|
+
--str-video__chrome-0
|
|
640
|
+
); /** Border on accent-colored surfaces. Stays white in both modes since the accent background doesn't invert. */
|
|
641
|
+
--str-video__border-core-on-elevation: var(
|
|
642
|
+
--str-video__chrome-150
|
|
643
|
+
); /** Border for controls and elements inside a floating surface, such as a menu, dialog, or popover. Steps up in dark mode to keep the edge visible once the elevated surface has lightened. Use border/core/on-surface instead for elements on a plain surface. */
|
|
644
|
+
--str-video__border-core-on-inverse: var(
|
|
645
|
+
--str-video__chrome-0
|
|
646
|
+
); /** Border on inverse-colored surfaces. Stays legible when the background flips between light and dark mode. */
|
|
647
|
+
--str-video__border-core-on-surface: var(
|
|
648
|
+
--str-video__chrome-300
|
|
649
|
+
); /** Border for elements sitting on elevated surfaces. Uses a stronger value than default to maintain visible separation when the background is darker. */
|
|
650
|
+
--str-video__border-core-strong: var(
|
|
651
|
+
--str-video__chrome-300
|
|
652
|
+
); /** An emphatic border for elements that need clear definition. Used for focused containers and prominent dividers. */
|
|
653
|
+
--str-video__border-core-subtle: var(
|
|
654
|
+
--str-video__chrome-100
|
|
655
|
+
); /** A lighter border for minimal separation. Used where a full-strength border would feel too heavy. */
|
|
656
|
+
--str-video__avatar-presence-bg-online: var(
|
|
657
|
+
--str-video__accent-success
|
|
658
|
+
); /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
|
|
659
|
+
--str-video__avatar-bg-default: var(--str-video__brand-150);
|
|
660
|
+
--str-video__avatar-bg-placeholder: var(--str-video__chrome-150);
|
|
661
|
+
--str-video__avatar-text-default: var(--str-video__brand-900);
|
|
662
|
+
--str-video__avatar-text-placeholder: var(--str-video__chrome-500);
|
|
663
|
+
--str-video__system-text: var(--str-video__chrome-1000);
|
|
664
|
+
--str-video__badge-bg-error: var(--str-video__accent-error);
|
|
665
|
+
--str-video__badge-bg-inverse: var(--str-video__chrome-1000);
|
|
666
|
+
--str-video__control-checkbox-bg: var(--str-video__base-transparent-0);
|
|
667
|
+
--str-video__control-radio-button-bg: var(--str-video__base-transparent-0);
|
|
668
|
+
--str-video__control-radio-check-bg: var(--str-video__base-transparent-0);
|
|
669
|
+
--str-video__control-accept-call-button-bg: var(
|
|
670
|
+
--str-video__accent-success
|
|
671
|
+
); /** Background for the accept call action. Green rather than the primary accent, so accept and decline read as opposites rather than as two primary actions. */
|
|
672
|
+
--str-video__control-call-control-error-badge-bg: var(
|
|
673
|
+
--str-video__accent-warning
|
|
674
|
+
); /** Background for the error badge on a call control button. Yellow rather than red, so it stays legible on a red button and over video. */
|
|
675
|
+
--str-video__control-decline-call-button-bg: var(
|
|
676
|
+
--str-video__accent-error
|
|
677
|
+
); /** Background for the decline call action. Red rather than the destructive button token, so accept and decline read as a matched pair. */
|
|
678
|
+
--str-video__text-primary: var(
|
|
679
|
+
--str-video__chrome-900
|
|
680
|
+
); /** Main body text. Used for message content, titles, and any text that carries primary meaning. */
|
|
681
|
+
--str-video__text-secondary: var(
|
|
682
|
+
--str-video__chrome-700
|
|
683
|
+
); /** Supporting metadata text. Used for timestamps, subtitles, and secondary labels. */
|
|
684
|
+
--str-video__text-tertiary: var(
|
|
685
|
+
--str-video__chrome-500
|
|
686
|
+
); /** De-emphasized text. Used for hints, placeholders, and lowest-priority supporting information. */
|
|
687
|
+
--str-video__text-on-inverse: var(
|
|
688
|
+
--str-video__chrome-0
|
|
689
|
+
); /** Text on inverse-colored surfaces. Flips between light and dark to maintain legibility when the background inverts. */
|
|
690
|
+
--str-video__text-on-accent: var(
|
|
691
|
+
--str-video__chrome-0
|
|
692
|
+
); /** Text on accent-colored surfaces. Stays white in both light and dark mode since the accent background doesn't invert. */
|
|
693
|
+
--str-video__text-disabled: var(
|
|
694
|
+
--str-video__chrome-300
|
|
695
|
+
); /** Text for non-interactive or unavailable states. Communicates that an element can't be interacted with. */
|
|
696
|
+
--str-video__text-link: var(
|
|
697
|
+
--str-video__brand-500
|
|
698
|
+
); /** Hyperlinks and inline actions. Uses the brand color to signal interactivity within text content. */
|
|
699
|
+
--str-video__accent-primary: var(
|
|
700
|
+
--str-video__brand-500
|
|
701
|
+
); /** The main brand color. Used for interactive elements, buttons, links, and primary actions. Override this to apply your brand color across the SDK. */
|
|
702
|
+
--str-video__accent-neutral: var(
|
|
703
|
+
--str-video__chrome-500
|
|
704
|
+
); /** A mid-tone gray for de-emphasized UI elements. */
|
|
705
|
+
--str-video__label-bg-neutral: var(
|
|
706
|
+
--str-video__chrome-150
|
|
707
|
+
); /** Background for a neutral label. */
|
|
708
|
+
--str-video__label-bg-primary: var(
|
|
709
|
+
--str-video__brand-150
|
|
710
|
+
); /** Background for a primary label. */
|
|
711
|
+
--str-video__label-text-primary: var(
|
|
712
|
+
--str-video__brand-900
|
|
713
|
+
); /** Text on a primary label. */
|
|
714
|
+
--str-video__indicator-connection-quality-fair: var(
|
|
715
|
+
--str-video__accent-warning
|
|
716
|
+
); /** Reduced connection. Fills two bars on the connection quality indicator. */
|
|
717
|
+
--str-video__indicator-connection-quality-great: var(
|
|
718
|
+
--str-video__accent-success
|
|
719
|
+
); /** Strongest connection. Fills all three bars on the connection quality indicator. */
|
|
720
|
+
--str-video__indicator-connection-quality-poor: var(
|
|
721
|
+
--str-video__accent-error
|
|
722
|
+
); /** Weak connection. Fills one bar, and is the only quality state worth interrupting the user for. */
|
|
723
|
+
--str-video__indicator-microphone-level-bar-active: var(
|
|
724
|
+
--str-video__brand-400
|
|
725
|
+
); /** A filled bar in the microphone level meter. The number filled tracks the live input level from the selected device. */
|
|
726
|
+
--str-video__indicator-microphone-level-bar-inactive: var(
|
|
727
|
+
--str-video__chrome-200
|
|
728
|
+
); /** An unfilled bar in the microphone level meter. Always drawn, so the meter keeps a constant width as the level moves. */
|
|
729
|
+
--str-video__indicator-sound-indicator-speaking: var(
|
|
730
|
+
--str-video__brand-400
|
|
731
|
+
); /** Shown while a remote participant is talking. Only meaningful once the call is connected, since speaking state arrives from SFU events. */
|
|
732
|
+
--str-video__button-primary-bg: var(--str-video__accent-primary);
|
|
733
|
+
--str-video__button-primary-text: var(--str-video__accent-primary);
|
|
734
|
+
--str-video__button-primary-text-on-accent: var(--str-video__text-on-accent);
|
|
735
|
+
--str-video__button-primary-text-on-dark: var(--str-video__text-on-inverse);
|
|
736
|
+
--str-video__button-primary-border-on-dark: var(
|
|
737
|
+
--str-video__border-core-on-inverse
|
|
738
|
+
);
|
|
739
|
+
--str-video__button-secondary-bg: var(
|
|
740
|
+
--str-video__background-core-surface-default
|
|
741
|
+
);
|
|
742
|
+
--str-video__button-secondary-bg-liquid-glass: var(
|
|
743
|
+
--str-video__background-core-elevation-0
|
|
744
|
+
);
|
|
745
|
+
--str-video__button-secondary-text: var(--str-video__text-primary);
|
|
746
|
+
--str-video__button-secondary-text-on-accent: var(--str-video__text-primary);
|
|
747
|
+
--str-video__button-secondary-text-on-dark: var(--str-video__text-on-inverse);
|
|
748
|
+
--str-video__button-secondary-border: var(--str-video__border-core-default);
|
|
749
|
+
--str-video__button-secondary-border-on-dark: var(
|
|
750
|
+
--str-video__border-core-on-inverse
|
|
751
|
+
);
|
|
752
|
+
--str-video__button-destructive-bg-liquid-glass: var(
|
|
753
|
+
--str-video__background-core-elevation-0
|
|
754
|
+
);
|
|
755
|
+
--str-video__button-destructive-text-on-accent: var(
|
|
756
|
+
--str-video__text-on-accent
|
|
757
|
+
);
|
|
758
|
+
--str-video__button-destructive-text-on-dark: var(
|
|
759
|
+
--str-video__text-on-inverse
|
|
760
|
+
);
|
|
761
|
+
--str-video__button-destructive-border-on-dark: var(
|
|
762
|
+
--str-video__text-on-inverse
|
|
763
|
+
);
|
|
764
|
+
--str-video__input-text-default: var(
|
|
765
|
+
--str-video__text-primary
|
|
766
|
+
); /** Main text inside the chat input. */
|
|
767
|
+
--str-video__input-text-placeholder: var(
|
|
768
|
+
--str-video__text-tertiary
|
|
769
|
+
); /** Placeholder text for the input. Lower emphasis than main text. */
|
|
770
|
+
--str-video__input-text-disabled: var(
|
|
771
|
+
--str-video__text-disabled
|
|
772
|
+
); /** Placeholder text for the input. Lower emphasis than main text. */
|
|
773
|
+
--str-video__input-text-icon: var(
|
|
774
|
+
--str-video__text-tertiary
|
|
775
|
+
); /** Icons inside the input area (attach, emoji, camera, send when idle). Matches secondary text strength. */
|
|
776
|
+
--str-video__input-text-icon-active: var(
|
|
777
|
+
--str-video__text-primary
|
|
778
|
+
); /** Icons inside the input area in their active state. Steps up from the resting icon colour to primary text. */
|
|
779
|
+
--str-video__border-utility-active: var(
|
|
780
|
+
--str-video__accent-primary
|
|
781
|
+
); /** Active input border. Used for focused text fields and selected form elements. */
|
|
782
|
+
--str-video__avatar-presence-border: var(
|
|
783
|
+
--str-video__border-core-on-inverse
|
|
784
|
+
); /** The thin outline around the presence dot. Matches the local surface behind the avatar. In high-contrast it uses the base surface. */
|
|
785
|
+
--str-video__avatar-presence-bg-offline: var(
|
|
786
|
+
--str-video__accent-neutral
|
|
787
|
+
); /** The green online indicator. Uses success accent in normal themes. In high-contrast, color is dropped and replaced with strong black for maximum clarity. */
|
|
788
|
+
--str-video__system-caret: var(--str-video__accent-primary);
|
|
789
|
+
--str-video__badge-bg-default: var(--str-video__background-core-elevation-3);
|
|
790
|
+
--str-video__badge-bg-primary: var(--str-video__accent-primary);
|
|
791
|
+
--str-video__badge-bg-neutral: var(--str-video__accent-neutral);
|
|
792
|
+
--str-video__badge-text: var(--str-video__text-primary);
|
|
793
|
+
--str-video__badge-text-on-inverse: var(--str-video__text-on-inverse);
|
|
794
|
+
--str-video__badge-text-on-accent: var(--str-video__text-on-accent);
|
|
795
|
+
--str-video__badge-border: var(--str-video__border-core-on-inverse);
|
|
796
|
+
--str-video__control-progress-bar-fill: var(--str-video__accent-neutral);
|
|
797
|
+
--str-video__control-progress-bar-track: var(
|
|
798
|
+
--str-video__background-core-surface-strong
|
|
799
|
+
);
|
|
800
|
+
--str-video__control-progress-bar-fill-audio: var(
|
|
801
|
+
--str-video__accent-primary
|
|
802
|
+
); /** Progress fill for audio playback, distinct from the neutral fill used elsewhere. */
|
|
803
|
+
--str-video__control-toggle-switch-bg: var(--str-video__accent-neutral);
|
|
804
|
+
--str-video__control-toggle-switch-bg-selected: var(
|
|
805
|
+
--str-video__accent-primary
|
|
806
|
+
);
|
|
807
|
+
--str-video__control-toggle-switch-bg-disabled: var(
|
|
808
|
+
--str-video__background-utility-disabled
|
|
809
|
+
);
|
|
810
|
+
--str-video__control-toggle-switch-knob: var(
|
|
811
|
+
--str-video__background-core-on-accent
|
|
812
|
+
);
|
|
813
|
+
--str-video__control-checkbox-border: var(--str-video__border-core-default);
|
|
814
|
+
--str-video__control-checkbox-bg-selected: var(--str-video__accent-primary);
|
|
815
|
+
--str-video__control-checkbox-icon: var(--str-video__text-on-accent);
|
|
816
|
+
--str-video__control-radio-button-border: var(
|
|
817
|
+
--str-video__border-core-default
|
|
818
|
+
);
|
|
819
|
+
--str-video__control-radio-button-bg-selected: var(
|
|
820
|
+
--str-video__accent-primary
|
|
821
|
+
);
|
|
822
|
+
--str-video__control-radio-button-indicator: var(--str-video__text-on-accent);
|
|
823
|
+
--str-video__control-radio-check-border: var(
|
|
824
|
+
--str-video__border-core-default
|
|
825
|
+
);
|
|
826
|
+
--str-video__control-radio-check-bg-selected: var(
|
|
827
|
+
--str-video__accent-primary
|
|
828
|
+
);
|
|
829
|
+
--str-video__control-radio-check-icon: var(--str-video__text-on-accent);
|
|
830
|
+
--str-video__control-chip-border: var(--str-video__border-core-default);
|
|
831
|
+
--str-video__control-chip-text: var(--str-video__text-primary);
|
|
832
|
+
--str-video__control-accept-call-button-text: var(
|
|
833
|
+
--str-video__text-on-accent
|
|
834
|
+
); /** Icon or label on the accept call action, sitting on the success background. */
|
|
835
|
+
--str-video__control-decline-call-button-text: var(
|
|
836
|
+
--str-video__text-on-accent
|
|
837
|
+
); /** Icon or label on the decline call action, sitting on the error background. */
|
|
838
|
+
--str-video__label-text-neutral: var(
|
|
839
|
+
--str-video__text-primary
|
|
840
|
+
); /** Text on a neutral label. */
|
|
841
|
+
--str-video__tab-indicator: var(
|
|
842
|
+
--str-video__accent-primary
|
|
843
|
+
); /** The underline on the selected tab. */
|
|
844
|
+
--str-video__tab-text: var(
|
|
845
|
+
--str-video__text-secondary
|
|
846
|
+
); /** Label colour of an unselected tab. */
|
|
847
|
+
--str-video__tab-text-selected: var(
|
|
848
|
+
--str-video__accent-primary
|
|
849
|
+
); /** Label colour of the selected tab. */
|
|
850
|
+
--str-video__tab-track: var(
|
|
851
|
+
--str-video__border-core-default
|
|
852
|
+
); /** The line running under the tab bar. */
|
|
853
|
+
}
|