@aviala-design/spiral 0.0.2

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.
@@ -0,0 +1,865 @@
1
+ /* Generated from ALD base-numbers — do not edit by hand */
2
+ :root {
3
+ --size-tiny: 10px;
4
+ --size-small: 12px;
5
+ --size-regular: 14px;
6
+ --size-middle: 16px;
7
+ --size-big: 20px;
8
+ --size-semilarge: 22px;
9
+ --size-semilarger: 24px;
10
+ --size-large: 26px;
11
+ --size-huge: 30px;
12
+ --size-huger: 34px;
13
+ --size-max: 38px;
14
+ --gap-none: 0px;
15
+ --gap-inside: 4px;
16
+ --gap-inside-space: 6px;
17
+ --gap-component-space: 8px;
18
+ --gap-content-space: 10px;
19
+ --gap-block-space: 14px;
20
+ --gap-chapter-space: 18px;
21
+ --gap-page-space: 24px;
22
+ --border-radius-none: 0px;
23
+ --border-radius-extra-small-2: 6px;
24
+ --border-radius-small: 8px;
25
+ --border-radius-middle: 10px;
26
+ --border-radius-big: 12px;
27
+ --border-radius-large: 16px;
28
+ --border-radius-allround: 99px;
29
+ --border-thickness-none: 0px;
30
+ --border-thickness-default: 1px;
31
+ --border-thickness-middle: 2px;
32
+ --border-thickness-large: 3px;
33
+ --line-height-tiny: 12px;
34
+ --line-height-small: 16px;
35
+ --line-height-regular: 18px;
36
+ --line-height-middle: 22px;
37
+ --line-height-big: 30px;
38
+ --line-height-semilarge: 34px;
39
+ --line-height-large: 46px;
40
+ --line-height-huge: 52px;
41
+ --line-height-max: 44px;
42
+ --padding-none: 0px;
43
+ --padding-min: 2px;
44
+ --padding-tinyer: 3px;
45
+ --padding-tiny: 4px;
46
+ --padding-smaller: 5px;
47
+ --padding-small: 6px;
48
+ --padding-littlesmall: 7px;
49
+ --padding-default: 8px;
50
+ --padding-middle: 10px;
51
+ --padding-big: 14px;
52
+ --padding-large: 18px;
53
+ --padding-max: 28px;
54
+ --transparency-loading: 0.6;
55
+ --transparency-disable: 0.55;
56
+ --transparency-placeholder: 0.6;
57
+ }
58
+ [data-density="mobile-friendly"] {
59
+ --size-tiny: 12px;
60
+ --size-small: 16px;
61
+ --size-regular: 18px;
62
+ --size-middle: 20px;
63
+ --size-big: 20px;
64
+ --size-semilarge: 22px;
65
+ --size-semilarger: 24px;
66
+ --size-large: 26px;
67
+ --size-huge: 30px;
68
+ --size-huger: 34px;
69
+ --size-max: 38px;
70
+ --gap-none: 0px;
71
+ --gap-inside: 4px;
72
+ --gap-inside-space: 6px;
73
+ --gap-component-space: 8px;
74
+ --gap-content-space: 10px;
75
+ --gap-block-space: 14px;
76
+ --gap-chapter-space: 18px;
77
+ --gap-page-space: 24px;
78
+ --border-radius-none: 0px;
79
+ --border-radius-extra-small-2: 6px;
80
+ --border-radius-small: 8px;
81
+ --border-radius-middle: 10px;
82
+ --border-radius-big: 12px;
83
+ --border-radius-large: 16px;
84
+ --border-radius-allround: 99px;
85
+ --border-thickness-none: 0px;
86
+ --border-thickness-default: 1px;
87
+ --border-thickness-middle: 2px;
88
+ --border-thickness-large: 3px;
89
+ --line-height-tiny: 16px;
90
+ --line-height-small: 20px;
91
+ --line-height-regular: 24px;
92
+ --line-height-middle: 26px;
93
+ --line-height-big: 30px;
94
+ --line-height-semilarge: 34px;
95
+ --line-height-large: 46px;
96
+ --line-height-huge: 52px;
97
+ --line-height-max: 44px;
98
+ --padding-none: 0px;
99
+ --padding-min: 2px;
100
+ --padding-tinyer: 3px;
101
+ --padding-tiny: 4px;
102
+ --padding-smaller: 5px;
103
+ --padding-small: 6px;
104
+ --padding-littlesmall: 7px;
105
+ --padding-default: 8px;
106
+ --padding-middle: 10px;
107
+ --padding-big: 14px;
108
+ --padding-large: 18px;
109
+ --padding-max: 28px;
110
+ --transparency-loading: 0.6;
111
+ --transparency-disable: 0.55;
112
+ --transparency-placeholder: 0.6;
113
+ }
114
+
115
+ :root {
116
+ /* ALD semantic colors → runtime aviala palette steps (set by generateTheme / applyTheme) */
117
+ --control-control-theme-background: var(--aviala-primary-primary-8, #ff856b);
118
+ --control-control-theme-lightbackground: var(--aviala-primary-primary-2, #fff9f8);
119
+ --box-box-theme-secondarybackground: var(--aviala-primary-primary-4, #ffe9e5);
120
+ --box-box-theme-lightbackground: var(--aviala-primary-primary-2, #fff9f8);
121
+ --text-text-theme-primary-black: var(--aviala-primary-primary-10, #bf2300);
122
+ --text-text-theme-secondary-black: var(--aviala-primary-primary-7, #ffab98);
123
+ --text-text-theme-light-black: var(--aviala-primary-primary-5, #ffd6cd);
124
+ --border-border-theme-light: var(--border-border-normal-light, #f5f3f3);
125
+ --border-border-theme-primary: var(--aviala-primary-primary-8, #ff856b);
126
+ --border-border-normal-light: #f5f3f3;
127
+ --border-border-normal-primary: #e2e0e0;
128
+ --control-control-fail-background: var(--aviala-error-error-8, #ff646f);
129
+
130
+ /* Neutral text series (body copy, labels, icons) */
131
+ --text-text-normal-text-black: #343333;
132
+ --text-text-normal-text-caption-black: #858484;
133
+ --text-text-normal-text-white: #fefcfc;
134
+ --text-text-normal-text-caption-white: #a8a8a8;
135
+
136
+ /* shadcn semantic aliases — default typography/surfaces use neutral tokens, not theme tint */
137
+ --background: var(--normal-background-theme, #faf8f8);
138
+ --foreground: var(--text-text-normal-text-black, #343333);
139
+ --primary: var(--control-control-theme-background, #ff856b);
140
+ --primary-foreground: #ffffff;
141
+ --secondary: var(--control-control-normal-lightbackground-deep, #fdfbfb);
142
+ --secondary-foreground: var(--text-text-normal-text-black, #343333);
143
+ --muted: var(--control-control-normal-lightbackground-light, #f5f3f3);
144
+ --muted-foreground: var(--text-text-normal-text-caption-black, #858484);
145
+ --accent: var(--control-control-normal-lightbackground-light, #f5f3f3);
146
+ --accent-foreground: var(--text-text-normal-text-black, #343333);
147
+ --destructive: var(--control-control-fail-background, #ff646f);
148
+ --destructive-foreground: #ffffff;
149
+ --border: var(--border-border-normal-light, #f5f3f3);
150
+ --input: var(--border-border-normal-light, #f5f3f3);
151
+ --ring: var(--border-border-theme-primary, #ff856b);
152
+ --card: #ffffff;
153
+ --card-foreground: var(--foreground);
154
+ --popover: var(--card);
155
+ --popover-foreground: var(--foreground);
156
+ --radius: var(--border-radius-middle, 10px);
157
+ }
158
+
159
+ [data-mode="dark"] {
160
+ --background: #1a1a1a;
161
+ --foreground: var(--text-text-normal-text-white, #e8e8e8);
162
+ --muted-foreground: var(--text-text-normal-text-caption-white, #a8a8a8);
163
+ --secondary-foreground: var(--text-text-normal-text-white, #e8e8e8);
164
+ --accent-foreground: var(--text-text-normal-text-white, #e8e8e8);
165
+ --card: #242424;
166
+ --card-foreground: var(--foreground);
167
+ --popover: var(--card);
168
+ --border: var(--border-border-normal-light, #3d3d3d);
169
+ --input: var(--border);
170
+ --muted: var(--control-control-normal-lightbackground-light, #2a2a2a);
171
+ --accent: var(--control-control-normal-lightbackground-light, #2a2a2a);
172
+ }
173
+
174
+ :root {
175
+ --button-gap: var(--gap-inside-space, 6px);
176
+ --button-min-width: 46px;
177
+ --button-min-width-allround: 48px;
178
+ --button-loading-opacity: var(--transparency-loading, 0.6);
179
+ --button-disabled-opacity: var(--transparency-disable, 0.55);
180
+
181
+ --button-primary-bg: var(
182
+ --control-control-theme-background,
183
+ var(--aviala-primary-primary-8, #ff856b)
184
+ );
185
+ --button-primary-fg: var(--primary-foreground, #fefcfc);
186
+ --button-second-bg: var(
187
+ --box-box-theme-secondarybackground,
188
+ var(--aviala-primary-primary-4, #ffe9e5)
189
+ );
190
+ --button-second-fg: var(
191
+ --text-text-theme-primary-black,
192
+ var(--aviala-primary-primary-10, #bf2300)
193
+ );
194
+ --button-default-bg: var(--control-control-normal-lightbackground-light, #f5f3f3);
195
+ --button-default-fg: var(
196
+ --text-text-theme-primary-black,
197
+ var(--aviala-primary-primary-10, #bf2300)
198
+ );
199
+ --button-default-custom-fg: var(--text-text-normal-text-black, #343333);
200
+ --button-no-bg-fg: var(
201
+ --text-text-theme-primary-black,
202
+ var(--aviala-primary-primary-10, #bf2300)
203
+ );
204
+ --button-destructive-bg: var(
205
+ --control-control-fail-background,
206
+ var(--aviala-error-error-8, #ff646f)
207
+ );
208
+ --button-destructive-fg: var(--destructive-foreground, #fefcfc);
209
+
210
+ /* Button hover/active — ALD palette steps (primary-7 hover, primary-9 press) */
211
+ --button-primary-bg-hover: var(--aviala-primary-primary-7, #ffab98);
212
+ --button-primary-bg-active: var(--aviala-primary-primary-9, #e92d00);
213
+ --button-hover-brightness: 1.05;
214
+ --button-active-brightness: 0.95;
215
+ --button-second-bg-hover: var(--aviala-primary-primary-5, #ffc5b9);
216
+ --button-default-bg-hover: var(--aviala-neutral-neutral-6, #edebeb);
217
+ /* noBackground — theme palette -2 hover, -5 press */
218
+ --button-no-bg-hover: var(
219
+ --control-control-theme-lightbackground,
220
+ var(--aviala-primary-primary-2, #fff9f8)
221
+ );
222
+ --button-no-bg-active: var(--aviala-primary-primary-5, #ffc5b9);
223
+ /* noBackgroundCustom — neutral-4 hover, neutral-5 press */
224
+ --button-no-bg-custom-hover: var(--aviala-neutral-neutral-4, #faf8f8);
225
+ --button-no-bg-custom-active: var(--aviala-neutral-neutral-5, #f5f3f3);
226
+ --button-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
227
+ --button-icon-slot-height: var(--line-height-regular, 18px);
228
+
229
+ /* Button size — padding / line-height / radius (height is content-driven) */
230
+ --button-tiny-padding-x: var(--padding-tiny, 4px);
231
+ --button-tiny-padding-y: var(--padding-min, 2px);
232
+ --button-tiny-radius: var(--border-radius-extra-small-2, 6px);
233
+ --button-tiny-line-height: var(--line-height-small, 16px);
234
+ --button-tiny-icon-size: var(--icon-size-caption-bigger, var(--size-regular, 14px));
235
+ --button-tiny-icon-slot-height: var(--line-height-small, 16px);
236
+
237
+ --button-small-padding-x: var(--padding-small, 6px);
238
+ --button-small-padding-y: var(--padding-min, 2px);
239
+ --button-small-radius: var(--border-radius-extra-small-2, 6px);
240
+ --button-small-line-height: var(--line-height-regular, 18px);
241
+ --button-small-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
242
+ --button-small-icon-slot-height: var(--line-height-regular, 18px);
243
+
244
+ --button-regular-padding-x: var(--padding-middle, 10px);
245
+ --button-regular-padding-y: var(--padding-small, 6px);
246
+ --button-regular-radius: var(--border-radius-small, 8px);
247
+ --button-regular-line-height: var(--line-height-regular, 18px);
248
+ --button-regular-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
249
+ --button-regular-icon-slot-height: var(--line-height-regular, 18px);
250
+
251
+ --button-big-padding-x: var(--padding-big, 14px);
252
+ --button-big-padding-y: var(--padding-default, 8px);
253
+ --button-big-radius: var(--border-radius-small, 8px);
254
+ --button-big-line-height: var(--line-height-regular, 18px);
255
+ --button-big-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
256
+ --button-big-icon-slot-height: var(--line-height-regular, 18px);
257
+
258
+ /* Segmentator — padding / line-height (height is content-driven) */
259
+ --segmentator-group-padding: var(--padding-min, 2px);
260
+ --segmentator-group-gap: var(--gap-inside, 4px);
261
+ --segmentator-group-radius: var(--border-radius-small, 8px);
262
+ --segmentator-item-gap: var(--gap-inside-space, 6px);
263
+ --segmentator-item-line-height: var(--line-height-regular, 18px);
264
+ --segmentator-icon-slot-height: var(--line-height-regular, 18px);
265
+ --segmentator-item-nested-padding-y: var(--padding-tiny, 4px);
266
+ --segmentator-item-nested-padding-x: var(--padding-small, 6px);
267
+ --segmentator-item-nested-radius: var(--border-radius-extra-small-2, 6px);
268
+ --segmentator-item-tiled-padding-y: var(--padding-small, 6px);
269
+ --segmentator-item-tiled-padding-x: var(--padding-middle, 10px);
270
+ --segmentator-item-tiled-radius: var(--border-radius-small, 8px);
271
+
272
+ /* Icons component — Figma Components → Icons (level × BiggerSize) */
273
+ --icon-size-display: var(--size-max, 38px);
274
+ --icon-size-display-bigger: var(--size-max, 38px);
275
+ --icon-size-headline1: var(--size-huge, 30px);
276
+ --icon-size-headline1-bigger: var(--size-huger, 34px);
277
+ --icon-size-headline2: var(--size-large, 26px);
278
+ --icon-size-headline2-bigger: var(--size-huge, 30px);
279
+ --icon-size-title: var(--size-semilarge, 22px);
280
+ --icon-size-title-bigger: var(--size-semilarger, 24px);
281
+ --icon-size-subtitle: var(--size-middle, 16px);
282
+ --icon-size-subtitle-bigger: var(--size-big, 20px);
283
+ --icon-size-text: var(--size-regular, 14px);
284
+ --icon-size-text-bigger: var(--size-middle, 16px);
285
+ --icon-size-caption: var(--size-small, 12px);
286
+ --icon-size-caption-bigger: var(--size-regular, 14px);
287
+
288
+ --input-bg-default: var(--control-control-normal-lightbackground-light, #f5f3f3);
289
+ --input-bg-hover: var(--control-control-normal-background-deep, #e2e0e0);
290
+ --input-bg-activated: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
291
+ --input-border-activated: var(--border-border-theme-primary, var(--primary));
292
+ --input-fg: var(--text-text-normal-text-black, var(--foreground));
293
+ --input-placeholder-opacity: var(--transparency-placeholder, 0.6);
294
+ --input-disabled-opacity: var(--transparency-disable, 0.55);
295
+ --input-icon-opacity: 1;
296
+ --input-shadow: inset 0 -0.5px 0
297
+ var(--special-effort-se-lineshadow-bottom, rgba(0, 0, 0, 0.04));
298
+ --input-radius: var(--border-radius-small, 8px);
299
+ --input-radius-allround: var(--border-radius-allround, 99px);
300
+ --input-gap-regular: var(--gap-inside-space, 6px);
301
+ --input-gap-big: var(--gap-component-space, 8px);
302
+ --input-px-regular: var(--padding-middle, 10px);
303
+ --input-px-big: var(--padding-big, 14px);
304
+ --input-field-py-regular: var(--padding-small, 6px);
305
+ --input-field-py-big: var(--padding-default, 8px);
306
+ --input-slot-py-regular: var(--padding-small, 6px);
307
+ --input-slot-py-big: var(--padding-default, 8px);
308
+ --input-font-size: var(--typography-text-size);
309
+ --input-line-height: var(--typography-text-line-height);
310
+ --input-icon-slot-height: var(--input-line-height);
311
+ --input-slot-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
312
+
313
+ --textarea-min-height-regular: 70px;
314
+ --textarea-min-height-big: 70px;
315
+ --textarea-min-width: var(--button-min-width, 46px);
316
+ --textarea-radius: var(--border-radius-small, 8px);
317
+ --textarea-controller-bg: var(--control-control-normal-lightbackground-light, #f5f3f3);
318
+ --textarea-counter-fg: var(--text-text-normal-text-caption-black, #858484);
319
+
320
+ --radio-size: var(--size-big, 20px);
321
+ --radio-indicator-size: 8px;
322
+ --radio-bg-unchecked: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
323
+ --radio-border-unchecked: var(--border-border-normal-light, #e8e6e6);
324
+ --radio-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
325
+ --radio-indicator-bg: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
326
+ --radio-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.06);
327
+ --radio-input-gap: var(--gap-component-space, 8px);
328
+ --radio-group-gap: var(--gap-content-space, 10px);
329
+ --radio-label-fg: var(--text-text-normal-text-black, #343333);
330
+ --radio-caption-fg: var(--text-text-normal-text-caption-black, #858484);
331
+ --radio-card-border-selected: var(--border-border-theme-primary, #ff5532);
332
+ --radio-disabled-opacity: var(--input-disabled-opacity, 0.55);
333
+
334
+ --select-menu-bg: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
335
+ --select-menu-border: var(--border-border-normal-light, #f5f3f3);
336
+ --select-menu-radius: var(--border-radius-middle, 10px);
337
+ --select-menu-shadow: 0 5px 20px rgba(0, 0, 0, 0.06);
338
+ --select-item-highlight-bg: var(--control-control-normal-lightbackground-light, #f5f3f3);
339
+ --select-item-selected-bg: var(--box-box-theme-secondarybackground, #ffdad2);
340
+ --select-item-selected-fg: var(--text-text-theme-primary-black, #bf2300);
341
+ --select-item-checked-bg: var(--box-box-theme-lightbackground, #fff3f0);
342
+ --select-item-avatar-size: 26px;
343
+ --select-item-form-control-size: 20px;
344
+ --select-item-subtitle-fg: var(--select-label-fg);
345
+ --select-item-subtitle-font-size: var(--select-label-font-size);
346
+ --select-item-subtitle-line-height: var(--select-label-line-height);
347
+ --select-label-fg: var(--text-text-normal-text-caption-black, #858484);
348
+ --select-menu-py: var(--gap-inside-space, 6px);
349
+ --select-group-gap: var(--gap-inside, 4px);
350
+ --select-group-px: var(--gap-inside-space, 6px);
351
+ --select-slot-gap: var(--gap-inside, 4px);
352
+ --select-item-font-size: var(--input-font-size);
353
+ --select-item-line-height: var(--input-line-height);
354
+ --select-item-fg: var(--text-text-normal-text-black, #343333);
355
+ --select-item-gap: var(--gap-component-space, 8px);
356
+ --select-item-px: var(--padding-default, 8px);
357
+ --select-item-py: var(--padding-tiny, 4px);
358
+ --select-item-function-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
359
+ --select-item-function-height: var(--line-height-regular, 18px);
360
+ --select-label-font-size: var(--typography-caption-size);
361
+ --select-label-line-height: var(--typography-caption-line-height);
362
+ --select-label-pt: var(--padding-tiny, 4px);
363
+ --select-label-pb: var(--padding-min, 2px);
364
+ --select-label-px: var(--padding-default, 8px);
365
+
366
+ --cascader-menu-bg: var(--select-menu-bg);
367
+ --cascader-menu-border: var(--select-menu-border);
368
+ --cascader-menu-radius: var(--select-menu-radius);
369
+ --cascader-menu-shadow: var(--select-menu-shadow);
370
+ --cascader-menu-max-height: 400px;
371
+ --cascader-menu-max-width: min(
372
+ var(--radix-popover-content-available-width, 100vw),
373
+ calc(100vw - var(--padding-default, 8px))
374
+ );
375
+ --cascader-column-min-width: 152px;
376
+ --cascader-column-py: var(--padding-tiny, 4px);
377
+ --cascader-item-highlight-bg: var(--select-item-highlight-bg);
378
+ --cascader-item-selected-bg: var(--select-item-selected-bg);
379
+ --cascader-item-selected-fg: var(--select-item-selected-fg);
380
+ --cascader-item-selected-shadow: var(--input-surface-shadow);
381
+ --cascader-item-fg: var(--select-item-fg);
382
+ --cascader-item-gap: var(--select-item-gap);
383
+ --cascader-item-px: var(--select-item-px);
384
+ --cascader-item-py: var(--select-item-py);
385
+ --cascader-item-font-size: var(--select-item-font-size);
386
+ --cascader-item-line-height: var(--select-item-line-height);
387
+ --cascader-item-radius: var(--border-radius-extra-small-2, 6px);
388
+ --cascader-item-form-control-size: var(--select-item-form-control-size);
389
+ --cascader-item-function-icon-size: var(--select-item-function-icon-size);
390
+ --cascader-item-function-height: var(--select-item-function-height);
391
+ --cascader-group-gap: var(--select-group-gap);
392
+ --cascader-group-px: var(--select-group-px);
393
+ --cascader-slot-gap: var(--select-slot-gap);
394
+ --cascader-label-fg: var(--select-label-fg);
395
+ --cascader-label-font-size: var(--select-label-font-size);
396
+ --cascader-label-line-height: var(--select-label-line-height);
397
+ --cascader-label-pt: var(--select-label-pt);
398
+ --cascader-label-pb: var(--select-label-pb);
399
+ --cascader-label-px: var(--select-label-px);
400
+ --cascader-trigger-min-width: 46px;
401
+
402
+ /* Legacy aliases */
403
+ --input-height-md: var(--input-line-height);
404
+ --input-border: var(--input-border-activated);
405
+ --input-bg: var(--input-bg-activated);
406
+
407
+ --checkbox-size: var(--size-big, 20px);
408
+ --checkbox-radius: var(--border-radius-small, 8px);
409
+ --checkbox-radius-round: var(--border-radius-allround, 99px);
410
+ --checkbox-icon-size: 12px;
411
+ --checkbox-indeterminate-mark-size: 12px;
412
+ --checkbox-indeterminate-mark-radius: var(--border-radius-extra-small-2, 6px);
413
+ --checkbox-bg-unchecked: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
414
+ --checkbox-border-unchecked: var(--border-border-normal-primary, #e2e0e0);
415
+ --checkbox-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
416
+ --checkbox-checked-icon: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
417
+ --checkbox-indeterminate-bg: var(--box-box-theme-secondarybackground, #ffdad2);
418
+ --checkbox-indeterminate-mark-bg: var(--box-box-theme-primarybackground, #ff5532);
419
+ --checkbox-input-gap: var(--gap-component-space, 8px);
420
+ --checkbox-group-gap: var(--gap-content-space, 10px);
421
+ --checkbox-label-fg: var(--text-text-normal-text-black, #343333);
422
+ --checkbox-caption-fg: var(--text-text-normal-text-caption-black, #858484);
423
+ --checkbox-disabled-opacity: var(--input-disabled-opacity, 0.55);
424
+ --switch-width: 34px;
425
+ --switch-height-regular: 22px;
426
+ --switch-height-small: 20px;
427
+ --switch-track-bg: var(--control-control-normal-background-deep, #e2e0e0);
428
+ --switch-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
429
+ --switch-thumb-bg: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
430
+ --switch-thumb-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.06);
431
+ --switch-thumb-size-regular: 18px;
432
+ --switch-thumb-size-small: 16px;
433
+ --switch-padding: var(--padding-min, 2px);
434
+ --switch-thumb-travel-regular: calc(
435
+ var(--switch-width) - 2 * var(--switch-padding) - var(--switch-thumb-size-regular)
436
+ );
437
+ --switch-thumb-travel-small: calc(
438
+ var(--switch-width) - 2 * var(--switch-padding) - var(--switch-thumb-size-small)
439
+ );
440
+ --switch-transition-duration: 0.3s;
441
+ --switch-transition-easing: ease-in-out;
442
+ --switch-press-transition-duration: 0.2s;
443
+ --switch-thumb-press-scale: 1.28;
444
+ --switch-disabled-opacity: 0.55;
445
+
446
+ --link-fg-theme: var(--text-text-theme-primary-black, var(--button-no-bg-fg));
447
+ --link-fg-custom: var(--text-text-normal-text-black, var(--button-default-custom-fg));
448
+
449
+ --segmentator-bg: var(--control-control-normal-lightbackground-light, #f5f3f3);
450
+ --segmentator-selected-bg: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
451
+ --segmentator-selected-fg: var(--text-text-theme-primary-black, var(--button-no-bg-fg));
452
+ --segmentator-fg: var(--text-text-normal-text-black, var(--button-default-custom-fg));
453
+ --segmentator-tiled-bg: var(--box-box-theme-secondarybackground, var(--button-second-bg));
454
+ --segmentator-shadow-selected: 0 4px 8px rgba(0, 0, 0, 0.06);
455
+ --segmentator-shadow-tiled: inset 0 -0.5px 0
456
+ var(--special-effort-se-lineshadow-bottom, rgba(0, 0, 0, 0.04));
457
+ --segmentator-item-hover-bg: var(--aviala-neutral-neutral-6, #edebeb);
458
+ --segmentator-press-scale: 0.96;
459
+ --segmentator-press-transition-duration: var(--segmentator-transition-duration, 0.3s);
460
+ --segmentator-press-transition-easing: var(
461
+ --segmentator-transition-easing,
462
+ cubic-bezier(0.33, 1, 0.68, 1)
463
+ );
464
+ --segmentator-haptic-press-ms: 20;
465
+ --segmentator-haptic-select-ms: 16;
466
+
467
+ --badge-bg: var(--control-control-normal-lightbackground-deep, #fdfbfb);
468
+ --badge-gap: var(--padding-min, 2px);
469
+ --badge-px: var(--padding-tiny, 4px);
470
+ --badge-radius: var(--border-radius-extra-small-2, 6px);
471
+ --badge-fg: var(--text-text-normal-text-black, #343333);
472
+
473
+ --color-picker-panel-width: 370px;
474
+ --color-picker-area-height: 160px;
475
+ --color-picker-swatch-input: 18px;
476
+ --color-picker-swatch-button: 26px;
477
+ --color-picker-swatch-button-size: 32px;
478
+ --color-picker-slider-height: 8px;
479
+ --color-picker-slider-thumb: 10px;
480
+ --color-picker-panel-bg: var(--select-menu-bg);
481
+ --color-picker-panel-border: var(--select-menu-border);
482
+ --color-picker-panel-radius: var(--select-menu-radius);
483
+ --color-picker-panel-shadow: var(--select-menu-shadow);
484
+ --color-picker-panel-gap: var(--gap-content-space, 10px);
485
+ --color-picker-panel-px: var(--padding-default, 8px);
486
+ --color-picker-thumb-border: var(--border-border-normal-primary, #e2e0e0);
487
+ --color-picker-checkerboard-light: #e2e0e0;
488
+ --color-picker-checkerboard-dark: #fefcfc;
489
+
490
+ --datepicker-trigger-min-width: 46px;
491
+ --datepicker-panel-width: 290px;
492
+ --datepicker-panel-gap: var(--gap-inside-space, 6px);
493
+ --datepicker-panel-bg: var(--select-menu-bg);
494
+ --datepicker-panel-border: var(--select-menu-border);
495
+ --datepicker-panel-radius: var(--select-menu-radius);
496
+ --datepicker-panel-shadow: var(--select-menu-shadow);
497
+ --datepicker-panel-px: var(--padding-default, 8px);
498
+ --datepicker-panel-py: var(--padding-default, 8px);
499
+ --datepicker-header-gap: 5px;
500
+ --datepicker-header-fg: var(--select-item-fg);
501
+ --datepicker-weekday-bg: var(--box-box-normal-lightbackground-white, #fdfbfb);
502
+ --datepicker-weekday-height: 18px;
503
+ --datepicker-weekday-fg: var(--select-label-fg);
504
+ --datepicker-grid-gap: 4px;
505
+ --datepicker-row-gap: 2px;
506
+ --datepicker-day-radius: var(--border-radius-small, 8px);
507
+ --datepicker-day-fg: var(--select-item-fg);
508
+ --datepicker-day-fg-selected: var(--text-text-theme-primary-black, var(--select-item-selected-fg));
509
+ --datepicker-day-bg-hover: var(--select-item-highlight-bg);
510
+ --datepicker-day-bg-in-range: var(--control-theme-lightbackground, #ffdad2);
511
+ --datepicker-day-bg-selected: var(--control-theme-lightbackground, #ffdad2);
512
+ --datepicker-day-today-dot: var(--text-text-theme-primary-black, #bf2300);
513
+ --datepicker-footer-bg: var(--control-normal-lightbackground-light, #f5f3f3);
514
+ --datepicker-grid-rows: 6;
515
+ --datepicker-day-height: calc(
516
+ var(--padding-min, 2px) * 2 + var(--line-height-line-height-regular, 18px)
517
+ );
518
+ --datepicker-header-height: calc(
519
+ var(--padding-tiny, 4px) * 4 + var(--icon-size-text-bigger, var(--size-middle, 16px))
520
+ );
521
+ --datepicker-grid-height: calc(
522
+ var(--datepicker-grid-rows) * var(--datepicker-day-height) +
523
+ (var(--datepicker-grid-rows) - 1) * var(--datepicker-row-gap)
524
+ );
525
+ --datepicker-panel-body-height: calc(
526
+ var(--datepicker-header-height) + var(--datepicker-panel-gap) +
527
+ var(--datepicker-weekday-height) + var(--datepicker-panel-gap) + var(--datepicker-grid-height)
528
+ );
529
+ --datepicker-time-wheel-item-height: 36px;
530
+ --datepicker-time-wheel-visible-count: 5;
531
+ --datepicker-time-wheel-height: calc(
532
+ var(--datepicker-time-wheel-item-height) * var(--datepicker-time-wheel-visible-count)
533
+ );
534
+ --datepicker-time-wheel-fade-height: calc(var(--datepicker-time-wheel-item-height) * 1.5);
535
+
536
+ --popover-content-bg: var(--popover, var(--select-menu-bg));
537
+ --popover-content-fg: var(--popover-foreground, var(--select-item-fg));
538
+ --popover-content-border: var(--select-menu-border);
539
+ --popover-content-radius: var(--select-menu-radius);
540
+ --popover-content-shadow: var(--select-menu-shadow);
541
+ --popover-content-px: var(--padding-default, 8px);
542
+ --popover-content-py: var(--padding-default, 8px);
543
+ --popover-content-max-width: 320px;
544
+ --popover-content-arrow-stroke: var(--border-border-normal-primary, #e2e0e0);
545
+
546
+ /* Modal — Figma Information Display → Modal (553:58593) */
547
+ --modal-overlay-bg: rgba(0, 0, 0, 0.45);
548
+ --modal-content-width: 260px;
549
+ --modal-content-width-large: 480px;
550
+ --modal-content-max-width: calc(100vw - 32px);
551
+ --modal-content-bg: var(--box-box-normal-background-whiteonly, #fefcfc);
552
+ --modal-content-fg: var(--text-text-normal-text-black, #343333);
553
+ --modal-content-border: var(--border-border-normal-light, #f5f3f3);
554
+ --modal-content-radius: var(--border-radius-big, 12px);
555
+ --modal-content-shadow: 0 8px 24px 2px rgba(0, 0, 0, 0.06);
556
+ --modal-header-bg: var(--modal-content-bg);
557
+ --modal-header-pl: var(--padding-big, 14px);
558
+ --modal-header-pr: var(--padding-small, 6px);
559
+ --modal-header-py: var(--gap-none, 0);
560
+ --modal-header-main-py: var(--padding-default, 8px);
561
+ --modal-header-gap: var(--gap-content-space, 10px);
562
+ --modal-section-px: var(--padding-big, 14px);
563
+ --modal-section-py: var(--padding-default, 8px);
564
+ --modal-section-border: var(--border-border-normal-light, #f5f3f3);
565
+ --modal-body-bg: var(--modal-content-bg);
566
+ --modal-footer-bg: var(--modal-content-bg);
567
+ --modal-footer-gap: var(--gap-content-space, 10px);
568
+ --modal-footer-actions-gap: var(--gap-component-space, 8px);
569
+ --modal-icon-size: var(--size-middle, 16px);
570
+ --modal-icon-slot-height: var(--size-semilarge, 22px);
571
+ --modal-icon-py: var(--padding-min, 2px);
572
+ --modal-icon-fg: var(--text-text-infomation-primary-black, #3489c8);
573
+ --modal-close-icon-size: var(--size-middle, 16px);
574
+ --modal-close-fg: var(--text-text-normal-text-caption-black, #858484);
575
+ --modal-description-fg: var(--text-text-normal-text-caption-black, #858484);
576
+
577
+ --tooltip-content-bg: var(--text-text-normal-text-black, var(--aviala-neutral-neutral-10, #343333));
578
+ --tooltip-content-fg: var(
579
+ --control-control-normal-lightbackground-whiteonly,
580
+ var(--aviala-neutral-neutral-2, #fefcfc)
581
+ );
582
+ --tooltip-content-radius: var(--border-radius-small, 8px);
583
+ --tooltip-content-px: var(--padding-default, 8px);
584
+ --tooltip-content-py: var(--padding-tiny, 4px);
585
+ --tooltip-content-max-width: 240px;
586
+ --tooltip-content-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
587
+
588
+ --list-bg: var(--box-box-normal-lightbackground-white, #fdfbfb);
589
+ --list-gap: var(--gap-component-space, 8px);
590
+ --list-title-px: 12px;
591
+ --list-title-fg: var(--text-text-normal-text-black, #343333);
592
+ --list-group-radius: var(--border-radius-middle, 10px);
593
+ --list-item-radius: var(--border-radius-small, 8px);
594
+ --list-item-fg: var(--text-text-normal-text-black, #343333);
595
+ --list-item-block-gap: var(--gap-block-space, 14px);
596
+ --list-item-pl: var(--padding-big, 14px);
597
+ --list-item-icon-py: var(--padding-default, 8px);
598
+ --list-item-content-py: var(--padding-default, 8px);
599
+ --list-item-content-pr: var(--padding-big, 14px);
600
+ --list-item-content-gap: var(--gap-content-space, 10px);
601
+ --list-item-border: var(--border-border-normal-light, #f5f3f3);
602
+ --list-item-icon-shaped-size: 36px;
603
+ --list-item-icon-default-size: 22px;
604
+ --list-item-icon-shaped-bg: var(--box-box-theme-primarybackground, #ff5532);
605
+ --list-item-icon-shaped-fg: var(
606
+ --control-control-normal-lightbackground-whiteonly,
607
+ #fefcfc
608
+ );
609
+ --list-item-trailing-gap: 10px;
610
+ --list-item-divider-height: 14px;
611
+ --list-item-select-width: 143px;
612
+ --list-item-highlight-bg: var(--select-item-highlight-bg);
613
+ --list-item-selected-bg: var(--select-item-selected-bg);
614
+ --list-item-selected-fg: var(--select-item-selected-fg);
615
+ --list-item-disabled-opacity: var(--input-disabled-opacity, 0.55);
616
+ --list-separator-my: var(--list-gap);
617
+
618
+ --navigation-bg: var(--box-box-normal-background-whiteonly, #fefcfc);
619
+ --navigation-gap: var(--gap-content-space, 10px);
620
+ --navigation-py: var(--padding-big, 14px);
621
+ --navigation-height-horizontal: 48px;
622
+ --navigation-px-horizontal: var(--padding-large, 18px);
623
+ --navigation-divider: var(--border-border-normal-light, #f5f3f3);
624
+ --navigation-brand-px: var(--padding-big, 14px);
625
+ --navigation-brand-title-height: 26px;
626
+ --navigation-brand-fg: var(--text-text-normal-text-black, #343333);
627
+ --navigation-section-px: var(--gap-inside-space, 6px);
628
+ --navigation-section-fg: var(--muted-foreground, #858484);
629
+ --navigation-group-gap: var(--gap-inside-space, 6px);
630
+ --navigation-group-gap-horizontal: var(--gap-inside-space, 6px);
631
+ --navigation-item-px: var(--padding-default, 8px);
632
+ --navigation-item-py-horizontal: var(--padding-default, 8px);
633
+ --navigation-item-child-pl: 26px;
634
+ --navigation-item-fg: var(--button-default-custom-fg);
635
+ --navigation-item-active-bg: var(--button-second-bg);
636
+ --navigation-item-active-fg: var(--button-second-fg);
637
+ --navigation-item-active-shadow: var(--button-shadow-light);
638
+ --navigation-item-rail: var(--border-border-theme-primary, #ff5532);
639
+ --navigation-rail-inset: 6px;
640
+ --navigation-rail-left: 1px;
641
+ --navigation-rail-width: 3px;
642
+ --navigation-indicator-width-horizontal: 50px;
643
+ --navigation-transition-duration: var(--switch-transition-duration, 0.3s);
644
+ --navigation-transition-easing: cubic-bezier(0.33, 1, 0.68, 1);
645
+ --navigation-icon-box: var(--line-height-regular, 18px);
646
+ --navigation-icon-size: var(--icon-size-text-bigger, var(--size-middle, 16px));
647
+ --navigation-item-hover-bg: var(--button-no-bg-custom-hover);
648
+ --navigation-actions-slot-gap: 2px;
649
+
650
+ /* Loading Icon — Figma 30×30 artboard uses 2px ring (r15 − r13) */
651
+ --loading-ring-stroke: 2px;
652
+ --loading-fg-theme: var(
653
+ --control-control-theme-background,
654
+ var(--button-primary-bg)
655
+ );
656
+ --loading-fg-theme-text: var(
657
+ --text-text-theme-primary-black,
658
+ var(--button-no-bg-fg)
659
+ );
660
+ --loading-fg-black: var(--text-text-normal-text-black, #343333);
661
+ --loading-fg-white: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
662
+
663
+ /* Feedback — Figma Response And Feedback → Feedback (553:58620) */
664
+ --feedback-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
665
+ --feedback-radius-default: var(--border-radius-middle, 10px);
666
+ --feedback-radius-small: var(--border-radius-allround, 99px);
667
+ --feedback-body-gap: var(--gap-component-space, 8px);
668
+ --feedback-body-px: var(--padding-middle, 10px);
669
+ --feedback-body-py: var(--padding-default, 8px);
670
+ --feedback-icon-size: var(--size-semilarge, 22px);
671
+ --feedback-icon-slot-height: var(--feedback-icon-size);
672
+ --feedback-close-icon-size: var(--size-middle, 16px);
673
+ --feedback-close-icon-size-primary: var(--size-regular, 14px);
674
+ --feedback-content-max-width: 480px;
675
+ --feedback-title-fg-default: var(--text-text-normal-text-black, #343333);
676
+ --feedback-description-fg-default: var(--text-text-normal-text-caption-black, #858484);
677
+ --feedback-title-fg-primary: var(--text-text-normal-text-white, #fefcfc);
678
+ --feedback-description-fg-primary: var(--text-text-normal-text-caption-white, #fefcfc);
679
+ --feedback-close-fg: var(--text-text-normal-text-caption-black, #858484);
680
+ --feedback-close-fg-on-primary: var(--text-text-normal-text-white, #fefcfc);
681
+ --feedback-icon-fg-primary: var(--text-text-normal-text-white, #fefcfc);
682
+ --feedback-information-bg-default: var(--box-box-infomation-lightbackground, #fafbff);
683
+ --feedback-information-bg-primary: var(--box-box-infomation-primarybackground, #66b6fa);
684
+ --feedback-information-border: var(--border-border-infomation-primary, #66b6fa);
685
+ --feedback-warning-bg-default: var(--box-box-warning-lightbackground, #fff8f5);
686
+ --feedback-warning-bg-primary: var(--box-box-warning-primarybackground, #ec8b09);
687
+ --feedback-warning-border: var(--border-border-warning-primary, #ec8b09);
688
+ --feedback-wrong-bg-default: var(--box-box-fail-lightbackground, #fff4f3);
689
+ --feedback-wrong-bg-primary: var(--box-box-fail-primarybackground, #f41544);
690
+ --feedback-wrong-border: var(--border-border-fail-primary, #f41544);
691
+ --feedback-success-bg-default: var(--box-box-success-lightbackground, #f4fde9);
692
+ --feedback-success-bg-primary: var(--box-box-success-primarybackground, #70b450);
693
+ --feedback-success-border: var(--border-border-success-primary, #70b450);
694
+ --feedback-normal-bg-default: var(--box-box-normal-background-whiteonly, #fefcfc);
695
+ --feedback-normal-border: var(--border-border-normal-light, #f5f3f3);
696
+ --feedback-information-icon-fg: var(--text-text-infomation-primary-black, #3489c8);
697
+ --feedback-warning-icon-fg: var(--text-text-warning-primary-black, #ab6200);
698
+ --feedback-wrong-icon-fg: var(--text-text-fail-primary-black, #960024);
699
+ --feedback-success-icon-fg: var(--text-text-success-primary-black, #47842b);
700
+ --feedback-normal-icon-fg: var(--text-text-normal-text-caption-black, #858484);
701
+
702
+ /* Alert — Figma Response And Feedback → Alert (527:56855) */
703
+ --alert-radius: var(--border-radius-small, 8px);
704
+ --alert-body-gap: var(--gap-component-space, 8px);
705
+ --alert-body-px: var(--padding-default, 8px);
706
+ --alert-body-py: var(--padding-small, 6px);
707
+ --alert-icon-size: var(--size-middle, 16px);
708
+ --alert-icon-slot-height: var(--line-height-regular, 18px);
709
+ --alert-title-fg: var(--text-text-normal-text-black, #343333);
710
+ --alert-description-fg: var(--text-text-normal-text-caption-black, #858484);
711
+ --alert-close-fg: var(--text-text-normal-text-caption-black, #858484);
712
+ --alert-secondary-action-fg: var(--text-text-normal-text-caption-black, #858484);
713
+ --alert-actions-gap: var(--gap-component-space, 8px);
714
+ --alert-actions-pl: 30px;
715
+ --alert-actions-pr: var(--gap-content-space, 10px);
716
+ --alert-actions-pb: var(--gap-component-space, 8px);
717
+ --alert-info-bg-default: var(--box-box-infomation-lightbackground, #fafbff);
718
+ --alert-info-bg-light: var(--box-box-infomation-secondarybackground, #eaf3ff);
719
+ --alert-info-border: var(--border-border-infomation-primary, #66b6fa);
720
+ --alert-warning-bg-default: var(--box-box-warning-lightbackground, #fff8f5);
721
+ --alert-warning-bg-light: var(--box-box-warning-secondarybackground, #ffebdd);
722
+ --alert-warning-border: var(--border-border-warning-primary, #ec8b09);
723
+ --alert-error-bg-default: var(--box-box-fail-lightbackground, #fff4f3);
724
+ --alert-error-bg-light: var(--box-box-fail-secondarybackground, #ffdfdf);
725
+ --alert-error-border: var(--border-border-fail-primary, #f41544);
726
+ --alert-success-bg-default: var(--box-box-success-lightbackground, #f4fde9);
727
+ --alert-success-bg-light: var(--box-box-success-secondarybackground, #dff6ce);
728
+ --alert-success-border: var(--border-border-success-primary, #70b450);
729
+ --alert-neutral-bg-default: var(--box-box-normal-background-whiteonly, #fefcfc);
730
+ --alert-neutral-bg-light: var(--box-box-normal-lightbackground-white, #fdfbfb);
731
+ --alert-neutral-border: var(--border-border-normal-light, #f5f3f3);
732
+ --alert-info-icon-fg: var(--text-text-infomation-primary-black, #3489c8);
733
+ --alert-warning-icon-fg: var(--text-text-warning-primary-black, #ab6200);
734
+ --alert-error-icon-fg: var(--text-text-fail-primary-black, #960024);
735
+ --alert-success-icon-fg: var(--text-text-success-primary-black, #47842b);
736
+ --alert-neutral-icon-fg: var(--text-text-normal-text-caption-black, #858484);
737
+
738
+ /* Keyboard focus ring — Tab focus: ring 12px→3px, flush outer border, 250ms */
739
+ --focus-ring-width-start: var(--size-small, 12px);
740
+ --focus-ring-width-end: var(--border-thickness-large, 3px);
741
+ --focus-ring-color: var(--ring, var(--border-border-theme-primary, #ff5532));
742
+ --focus-transition-duration: 250ms;
743
+ --focus-transition-easing: ease;
744
+ }
745
+
746
+ @theme inline {
747
+ --color-background: var(--background);
748
+ --color-foreground: var(--foreground);
749
+ --color-primary: var(--primary);
750
+ --color-primary-foreground: var(--primary-foreground);
751
+ --color-secondary: var(--secondary);
752
+ --color-secondary-foreground: var(--secondary-foreground);
753
+ --color-muted: var(--muted);
754
+ --color-muted-foreground: var(--muted-foreground);
755
+ --color-accent: var(--accent);
756
+ --color-accent-foreground: var(--accent-foreground);
757
+ --color-destructive: var(--destructive);
758
+ --color-destructive-foreground: var(--destructive-foreground);
759
+ --color-border: var(--border);
760
+ --color-input: var(--input);
761
+ --color-ring: var(--ring);
762
+ --color-card: var(--card);
763
+ --color-card-foreground: var(--card-foreground);
764
+ --color-popover: var(--popover);
765
+ --color-popover-foreground: var(--popover-foreground);
766
+ --radius-sm: var(--border-radius-small, 8px);
767
+ --radius-md: var(--border-radius-middle, 10px);
768
+ --radius-lg: var(--border-radius-big, 12px);
769
+ }
770
+
771
+ :root {
772
+ --radius-none: var(--border-radius-none, 0px);
773
+ --radius-xs: var(--border-radius-extra-small-2, 6px);
774
+ --radius-sm: var(--border-radius-small, 8px);
775
+ --radius-md: var(--border-radius-middle, 10px);
776
+ --radius-lg: var(--border-radius-big, 12px);
777
+ --radius-xl: var(--border-radius-large, 16px);
778
+ --radius-full: var(--border-radius-allround, 99px);
779
+
780
+ --gap-component: var(--gap-component-space, 8px);
781
+ --gap-content: var(--gap-content-space, 10px);
782
+ --gap-block: var(--gap-block-space, 14px);
783
+ --padding-md: var(--padding-middle, 10px);
784
+ }
785
+
786
+ :root {
787
+ --font-sans: "Inter", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
788
+ --font-weight-light: 300;
789
+ --font-weight-semilight: 350;
790
+ --font-weight-regular: 400;
791
+ --font-weight-medium: 500;
792
+ --font-weight-semibold: 600;
793
+ --font-weight-bold: 700;
794
+
795
+ --font-size-xs: 12px;
796
+ --font-size-sm: 14px;
797
+ --font-size-base: 16px;
798
+ --font-size-lg: 18px;
799
+ --font-size-xl: 20px;
800
+
801
+ --line-height-xs: var(--line-height-tiny, 12px);
802
+ --line-height-sm: var(--line-height-small, 16px);
803
+ --line-height-base: var(--line-height-regular, 18px);
804
+ --line-height-lg: var(--line-height-middle, 22px);
805
+ --line-height-xl: var(--line-height-big, 30px);
806
+
807
+ /* Typography levels — Figma System Composition → Typography (128:85) */
808
+ --typography-display-size: var(--size-huge, 30px);
809
+ --typography-display-line-height: var(--line-height-max, 44px);
810
+ --typography-display-weight-text: var(--font-weight-medium, 500);
811
+ --typography-display-weight-number: var(--font-weight-medium, 500);
812
+
813
+ --typography-headline1-size: var(--size-large, 26px);
814
+ --typography-headline1-line-height: var(--line-height-large, 46px);
815
+ --typography-headline1-weight-text: var(--font-weight-medium, 500);
816
+ --typography-headline1-weight-number: var(--font-weight-medium, 500);
817
+
818
+ --typography-headline2-size: var(--size-semilarge, 22px);
819
+ --typography-headline2-line-height: var(--line-height-semilarge, 34px);
820
+ --typography-headline2-weight-text: var(--font-weight-medium, 500);
821
+ --typography-headline2-weight-number: var(--font-weight-medium, 500);
822
+
823
+ --typography-title-size: var(--size-big, 20px);
824
+ --typography-title-line-height: var(--line-height-big, 30px);
825
+ --typography-title-weight-text: var(--font-weight-semibold, 600);
826
+ --typography-title-weight-number: var(--font-weight-bold, 700);
827
+
828
+ --typography-subtitle-size: var(--size-middle, 16px);
829
+ --typography-subtitle-line-height: var(--line-height-middle, 22px);
830
+ --typography-subtitle-weight-text: var(--font-weight-medium, 500);
831
+ --typography-subtitle-weight-number: var(--font-weight-medium, 500);
832
+
833
+ --typography-text-size: var(--size-regular, 14px);
834
+ --typography-text-line-height: var(--line-height-regular, 18px);
835
+ --typography-text-weight-text: var(--font-weight-regular, 400);
836
+ --typography-text-weight-number: var(--font-weight-light, 300);
837
+
838
+ --typography-caption-size: var(--size-small, 12px);
839
+ --typography-caption-line-height: var(--line-height-small, 16px);
840
+ --typography-caption-weight-text: var(--font-weight-regular, 400);
841
+ --typography-caption-weight-number: var(--font-weight-light, 300);
842
+
843
+ --typography-title-fg: var(--text-text-normal-title-black, #000000);
844
+ --typography-title-fg-white: var(--text-text-normal-title-white, #fefcfc);
845
+ --typography-body-fg: var(--text-text-normal-text-black, #343333);
846
+ --typography-body-fg-white: var(--text-text-normal-text-white, #fefcfc);
847
+ --typography-caption-fg: var(--text-text-normal-text-caption-black, #858484);
848
+ --typography-caption-fg-white: var(--text-text-normal-text-caption-white, #fefcfc);
849
+
850
+ --typeface-gap: var(--gap-inside, 4px);
851
+ }
852
+
853
+
854
+
855
+ @layer base {
856
+ * {
857
+ border-color: var(--border);
858
+ }
859
+ body {
860
+ background-color: var(--background);
861
+ color: var(--foreground);
862
+ font-family: var(--font-sans);
863
+ -webkit-font-smoothing: antialiased;
864
+ }
865
+ }