@titan-design/react-ui 0.0.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/README.md +319 -0
- package/dist/chunk-NA3EES23.mjs +1481 -0
- package/dist/chunk-NA3EES23.mjs.map +1 -0
- package/dist/index.d.mts +2484 -0
- package/dist/index.d.ts +2484 -0
- package/dist/index.js +6065 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +4412 -0
- package/dist/index.mjs.map +1 -0
- package/dist/theme/index.d.mts +1287 -0
- package/dist/theme/index.d.ts +1287 -0
- package/dist/theme/index.js +1522 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/index.mjs +3 -0
- package/dist/theme/index.mjs.map +1 -0
- package/package.json +116 -0
- package/tailwind.config.js +195 -0
|
@@ -0,0 +1,1287 @@
|
|
|
1
|
+
import { ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Primitive Design Tokens
|
|
5
|
+
*
|
|
6
|
+
* Raw values with no semantic meaning. These are the foundation of the design system
|
|
7
|
+
* and should rarely be used directly in components. Use semantic tokens instead.
|
|
8
|
+
*/
|
|
9
|
+
declare const primitiveColors: {
|
|
10
|
+
readonly blue: {
|
|
11
|
+
readonly 50: "#EFF6FF";
|
|
12
|
+
readonly 100: "#DBEAFE";
|
|
13
|
+
readonly 200: "#BFDBFE";
|
|
14
|
+
readonly 300: "#93C5FD";
|
|
15
|
+
readonly 400: "#60A5FA";
|
|
16
|
+
readonly 500: "#3B82F6";
|
|
17
|
+
readonly 600: "#5048E5";
|
|
18
|
+
readonly 700: "#3832A0";
|
|
19
|
+
readonly 800: "#1E40AF";
|
|
20
|
+
readonly 900: "#1E3A8A";
|
|
21
|
+
};
|
|
22
|
+
readonly green: {
|
|
23
|
+
readonly 50: "#ECFDF5";
|
|
24
|
+
readonly 100: "#D1FAE5";
|
|
25
|
+
readonly 200: "#A7F3D0";
|
|
26
|
+
readonly 300: "#6EE7B7";
|
|
27
|
+
readonly 400: "#3FC79A";
|
|
28
|
+
readonly 500: "#10B981";
|
|
29
|
+
readonly 600: "#059669";
|
|
30
|
+
readonly 700: "#0B815A";
|
|
31
|
+
readonly 800: "#065F46";
|
|
32
|
+
readonly 900: "#064E3B";
|
|
33
|
+
};
|
|
34
|
+
readonly teal: {
|
|
35
|
+
readonly 50: "#F0FDFA";
|
|
36
|
+
readonly 100: "#CCFBF1";
|
|
37
|
+
readonly 200: "#99F6E4";
|
|
38
|
+
readonly 300: "#5EEAD4";
|
|
39
|
+
readonly 400: "#43C6B7";
|
|
40
|
+
readonly 500: "#14B8A6";
|
|
41
|
+
readonly 600: "#0D9488";
|
|
42
|
+
readonly 700: "#0E8074";
|
|
43
|
+
readonly 800: "#115E59";
|
|
44
|
+
readonly 900: "#134E4A";
|
|
45
|
+
};
|
|
46
|
+
readonly red: {
|
|
47
|
+
readonly 50: "#FEF2F2";
|
|
48
|
+
readonly 100: "#FEE2E2";
|
|
49
|
+
readonly 200: "#FECACA";
|
|
50
|
+
readonly 300: "#FCA5A5";
|
|
51
|
+
readonly 400: "#DA6868";
|
|
52
|
+
readonly 500: "#EF4444";
|
|
53
|
+
readonly 600: "#D14343";
|
|
54
|
+
readonly 700: "#922E2E";
|
|
55
|
+
readonly 800: "#991B1B";
|
|
56
|
+
readonly 900: "#7F1D1D";
|
|
57
|
+
};
|
|
58
|
+
readonly amber: {
|
|
59
|
+
readonly 50: "#FFFBEB";
|
|
60
|
+
readonly 100: "#FEF3C7";
|
|
61
|
+
readonly 200: "#FDE68A";
|
|
62
|
+
readonly 300: "#FCD34D";
|
|
63
|
+
readonly 400: "#FFBF4C";
|
|
64
|
+
readonly 500: "#FFB020";
|
|
65
|
+
readonly 600: "#B27B16";
|
|
66
|
+
readonly 700: "#B45309";
|
|
67
|
+
readonly 800: "#92400E";
|
|
68
|
+
readonly 900: "#78350F";
|
|
69
|
+
};
|
|
70
|
+
readonly sky: {
|
|
71
|
+
readonly 50: "#F0F9FF";
|
|
72
|
+
readonly 100: "#E0F2FE";
|
|
73
|
+
readonly 200: "#BAE6FD";
|
|
74
|
+
readonly 300: "#7DD3FC";
|
|
75
|
+
readonly 400: "#64B6F7";
|
|
76
|
+
readonly 500: "#2196F3";
|
|
77
|
+
readonly 600: "#0284C7";
|
|
78
|
+
readonly 700: "#0B79D0";
|
|
79
|
+
readonly 800: "#075985";
|
|
80
|
+
readonly 900: "#0C4A6E";
|
|
81
|
+
};
|
|
82
|
+
readonly neutral: {
|
|
83
|
+
readonly 50: "#FAFAFA";
|
|
84
|
+
readonly 100: "#F3F4F6";
|
|
85
|
+
readonly 200: "#E5E7EB";
|
|
86
|
+
readonly 300: "#D1D5DB";
|
|
87
|
+
readonly 400: "#9CA3AF";
|
|
88
|
+
readonly 500: "#6B7280";
|
|
89
|
+
readonly 600: "#4B5563";
|
|
90
|
+
readonly 700: "#374151";
|
|
91
|
+
readonly 800: "#1F2937";
|
|
92
|
+
readonly 900: "#111827";
|
|
93
|
+
readonly 950: "#030712";
|
|
94
|
+
};
|
|
95
|
+
readonly accent: {
|
|
96
|
+
readonly 100: "#FFA860";
|
|
97
|
+
readonly 200: "#FF9630";
|
|
98
|
+
readonly 300: "#FF8500";
|
|
99
|
+
readonly 400: "#FF7900";
|
|
100
|
+
readonly 500: "#F56C00";
|
|
101
|
+
readonly 600: "#E06D10";
|
|
102
|
+
readonly 700: "#D0620C";
|
|
103
|
+
readonly 800: "#B75500";
|
|
104
|
+
readonly 900: "#A34900";
|
|
105
|
+
};
|
|
106
|
+
readonly charcoal: {
|
|
107
|
+
readonly 0: "#6E6E6E";
|
|
108
|
+
readonly 50: "#5D5D5D";
|
|
109
|
+
readonly 100: "#4C4C4C";
|
|
110
|
+
readonly 200: "#3C3C3C";
|
|
111
|
+
readonly 300: "#2C2C2C";
|
|
112
|
+
readonly 400: "#1F1F1F";
|
|
113
|
+
readonly 500: "#1C1C1C";
|
|
114
|
+
readonly 600: "#191919";
|
|
115
|
+
readonly 700: "#161616";
|
|
116
|
+
readonly 800: "#131313";
|
|
117
|
+
readonly 900: "#101010";
|
|
118
|
+
};
|
|
119
|
+
readonly steel: {
|
|
120
|
+
readonly 100: "#8AA4B8";
|
|
121
|
+
readonly 200: "#7894A8";
|
|
122
|
+
readonly 300: "#678498";
|
|
123
|
+
readonly 400: "#557488";
|
|
124
|
+
readonly 500: "#406D87";
|
|
125
|
+
readonly 600: "#39617A";
|
|
126
|
+
readonly 700: "#32556D";
|
|
127
|
+
readonly 800: "#243D53";
|
|
128
|
+
readonly 900: "#1D3146";
|
|
129
|
+
};
|
|
130
|
+
readonly white: "#FFFFFF";
|
|
131
|
+
readonly black: "#000000";
|
|
132
|
+
readonly transparent: "transparent";
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Discrete rainbow palette for data visualization
|
|
136
|
+
* Based on Paul Tol's color schemes: https://personal.sron.nl/~pault/#fig:scheme_rainbow_discrete
|
|
137
|
+
*/
|
|
138
|
+
declare const discreteRainbow: readonly ["#E8ECFB", "#D9CCE3", "#D1BBD7", "#CAACCB", "#BA8DB4", "#AE76A3", "#AA6F9E", "#994F88", "#882E72", "#1965B0", "#437DBF", "#5289C7", "#6195CF", "#7BAFDE", "#4EB265", "#90C987", "#CAE0AB", "#F7F056", "#F7CB45", "#F6C141", "#F4A736", "#F1932D", "#EE8026", "#E8601C", "#E65518", "#DC050C", "#A5170E", "#72190E", "#42150A"];
|
|
139
|
+
/**
|
|
140
|
+
* Get a color from the discrete rainbow palette for a given index and palette size.
|
|
141
|
+
* Colors are optimized for visual distinction at each palette size.
|
|
142
|
+
*
|
|
143
|
+
* @param index - The index of the color in the series (0-based)
|
|
144
|
+
* @param size - The total number of colors needed (1-23)
|
|
145
|
+
* @returns The hex color string
|
|
146
|
+
*/
|
|
147
|
+
declare function getDiscreteRainbowColor(index: number, size: number): string;
|
|
148
|
+
declare const primitiveTypography: {
|
|
149
|
+
readonly fontFamilies: {
|
|
150
|
+
readonly sans: readonly ["Inter", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Helvetica", "Arial", "sans-serif"];
|
|
151
|
+
readonly body: readonly ["Nunito Sans", "sans-serif"];
|
|
152
|
+
readonly heading: readonly ["Space Grotesk", "sans-serif"];
|
|
153
|
+
readonly mono: readonly ["SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", "monospace"];
|
|
154
|
+
};
|
|
155
|
+
readonly fontSizes: {
|
|
156
|
+
readonly xs: "0.75rem";
|
|
157
|
+
readonly sm: "0.875rem";
|
|
158
|
+
readonly base: "1rem";
|
|
159
|
+
readonly lg: "1.125rem";
|
|
160
|
+
readonly xl: "1.5rem";
|
|
161
|
+
readonly '2xl': "2rem";
|
|
162
|
+
readonly '3xl': "2.25rem";
|
|
163
|
+
readonly '4xl': "3rem";
|
|
164
|
+
readonly '5xl': "3.5rem";
|
|
165
|
+
};
|
|
166
|
+
readonly fontWeights: {
|
|
167
|
+
readonly normal: 400;
|
|
168
|
+
readonly medium: 500;
|
|
169
|
+
readonly semibold: 600;
|
|
170
|
+
readonly bold: 700;
|
|
171
|
+
};
|
|
172
|
+
readonly lineHeights: {
|
|
173
|
+
readonly none: 1;
|
|
174
|
+
readonly tight: 1.375;
|
|
175
|
+
readonly snug: 1.5;
|
|
176
|
+
readonly normal: 1.57;
|
|
177
|
+
readonly relaxed: 1.66;
|
|
178
|
+
readonly loose: 1.75;
|
|
179
|
+
};
|
|
180
|
+
readonly letterSpacing: {
|
|
181
|
+
readonly tighter: "-0.05em";
|
|
182
|
+
readonly tight: "-0.025em";
|
|
183
|
+
readonly normal: "0em";
|
|
184
|
+
readonly wide: "0.025em";
|
|
185
|
+
readonly wider: "0.05em";
|
|
186
|
+
readonly widest: "0.5px";
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
declare const primitiveSpacing: {
|
|
190
|
+
readonly 0: "0";
|
|
191
|
+
readonly px: "1px";
|
|
192
|
+
readonly 0.5: "0.125rem";
|
|
193
|
+
readonly 1: "0.25rem";
|
|
194
|
+
readonly 1.5: "0.375rem";
|
|
195
|
+
readonly 2: "0.5rem";
|
|
196
|
+
readonly 2.5: "0.625rem";
|
|
197
|
+
readonly 3: "0.75rem";
|
|
198
|
+
readonly 3.5: "0.875rem";
|
|
199
|
+
readonly 4: "1rem";
|
|
200
|
+
readonly 5: "1.25rem";
|
|
201
|
+
readonly 6: "1.5rem";
|
|
202
|
+
readonly 7: "1.75rem";
|
|
203
|
+
readonly 8: "2rem";
|
|
204
|
+
readonly 9: "2.25rem";
|
|
205
|
+
readonly 10: "2.5rem";
|
|
206
|
+
readonly 11: "2.75rem";
|
|
207
|
+
readonly 12: "3rem";
|
|
208
|
+
readonly 14: "3.5rem";
|
|
209
|
+
readonly 16: "4rem";
|
|
210
|
+
readonly 20: "5rem";
|
|
211
|
+
readonly 24: "6rem";
|
|
212
|
+
readonly 28: "7rem";
|
|
213
|
+
readonly 32: "8rem";
|
|
214
|
+
};
|
|
215
|
+
declare const primitiveBorderRadius: {
|
|
216
|
+
readonly none: "0";
|
|
217
|
+
readonly sm: "4px";
|
|
218
|
+
readonly DEFAULT: "8px";
|
|
219
|
+
readonly md: "8px";
|
|
220
|
+
readonly lg: "12px";
|
|
221
|
+
readonly xl: "16px";
|
|
222
|
+
readonly '2xl': "24px";
|
|
223
|
+
readonly full: "9999px";
|
|
224
|
+
};
|
|
225
|
+
declare const primitiveShadows: {
|
|
226
|
+
readonly none: "none";
|
|
227
|
+
readonly sm: "0px 1px 2px rgba(100, 116, 139, 0.12)";
|
|
228
|
+
readonly DEFAULT: "0px 1px 3px rgba(100, 116, 139, 0.12), 0px 1px 2px rgba(100, 116, 139, 0.24)";
|
|
229
|
+
readonly md: "0px 4px 6px rgba(100, 116, 139, 0.12)";
|
|
230
|
+
readonly lg: "0px 10px 15px rgba(100, 116, 139, 0.12)";
|
|
231
|
+
readonly xl: "0px 20px 25px rgba(100, 116, 139, 0.12)";
|
|
232
|
+
readonly '2xl': "0px 25px 50px rgba(100, 116, 139, 0.25)";
|
|
233
|
+
readonly inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)";
|
|
234
|
+
};
|
|
235
|
+
declare const primitiveBreakpoints: {
|
|
236
|
+
readonly xs: 0;
|
|
237
|
+
readonly sm: 600;
|
|
238
|
+
readonly md: 1000;
|
|
239
|
+
readonly lg: 1200;
|
|
240
|
+
readonly xl: 1920;
|
|
241
|
+
};
|
|
242
|
+
declare const primitiveZIndex: {
|
|
243
|
+
readonly hide: -1;
|
|
244
|
+
readonly auto: "auto";
|
|
245
|
+
readonly base: 0;
|
|
246
|
+
readonly docked: 10;
|
|
247
|
+
readonly dropdown: 1000;
|
|
248
|
+
readonly sticky: 1100;
|
|
249
|
+
readonly drawer: 1100;
|
|
250
|
+
readonly banner: 1200;
|
|
251
|
+
readonly appBar: 1200;
|
|
252
|
+
readonly overlay: 1300;
|
|
253
|
+
readonly modal: 1400;
|
|
254
|
+
readonly popover: 1500;
|
|
255
|
+
readonly skipLink: 1600;
|
|
256
|
+
readonly toast: 1700;
|
|
257
|
+
readonly tooltip: 1800;
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Semantic Design Tokens
|
|
262
|
+
*
|
|
263
|
+
* Meaningful tokens following DTCG (Design Tokens Community Group) naming conventions.
|
|
264
|
+
* Pattern: {category}-{intent}-{variant?}-{state?}
|
|
265
|
+
*
|
|
266
|
+
* Categories:
|
|
267
|
+
* - brand-* : Brand colors (primary, secondary, accent)
|
|
268
|
+
* - status-* : Feedback colors (success, error, warning, info)
|
|
269
|
+
* - result-* : Outcome indicators (improve, degrade, inconclusive, neutral)
|
|
270
|
+
* - data-* : Data visualization colors (chart series)
|
|
271
|
+
* - on-* : Text on colored backgrounds
|
|
272
|
+
* - surface-* : Elevated containers (NOT "paper")
|
|
273
|
+
* - background-* : Page backgrounds
|
|
274
|
+
* - text-* : Text colors
|
|
275
|
+
* - border-* : Border colors
|
|
276
|
+
* - interactive-* : Hover/focus/active/disabled states
|
|
277
|
+
*/
|
|
278
|
+
declare const semanticColorsLight: {
|
|
279
|
+
readonly 'brand-primary': "#FF7900";
|
|
280
|
+
readonly 'brand-primary-light': "#FF9630";
|
|
281
|
+
readonly 'brand-primary-dark': "#D0620C";
|
|
282
|
+
readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
|
|
283
|
+
readonly 'brand-primary-hover': "#F56C00";
|
|
284
|
+
readonly 'brand-primary-active': "#E06D10";
|
|
285
|
+
readonly 'brand-secondary': "#406D87";
|
|
286
|
+
readonly 'brand-secondary-light': "#678498";
|
|
287
|
+
readonly 'brand-secondary-dark': "#32556D";
|
|
288
|
+
readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
|
|
289
|
+
readonly 'brand-secondary-hover': "#39617A";
|
|
290
|
+
readonly 'brand-secondary-active': "#32556D";
|
|
291
|
+
readonly 'on-brand-primary': "#FFFFFF";
|
|
292
|
+
readonly 'on-brand-secondary': "#FFFFFF";
|
|
293
|
+
readonly 'status-success': "#14B8A6";
|
|
294
|
+
readonly 'status-success-light': "#43C6B7";
|
|
295
|
+
readonly 'status-success-dark': "#0E8074";
|
|
296
|
+
readonly 'status-success-subtle': "#F0FDFA";
|
|
297
|
+
readonly 'status-error': "#D14343";
|
|
298
|
+
readonly 'status-error-light': "#DA6868";
|
|
299
|
+
readonly 'status-error-dark': "#922E2E";
|
|
300
|
+
readonly 'status-error-subtle': "#FEF2F2";
|
|
301
|
+
readonly 'status-warning': "#FFB020";
|
|
302
|
+
readonly 'status-warning-light': "#FFBF4C";
|
|
303
|
+
readonly 'status-warning-dark': "#B27B16";
|
|
304
|
+
readonly 'status-warning-subtle': "#FFFBEB";
|
|
305
|
+
readonly 'status-info': "#2196F3";
|
|
306
|
+
readonly 'status-info-light': "#64B6F7";
|
|
307
|
+
readonly 'status-info-dark': "#0B79D0";
|
|
308
|
+
readonly 'status-info-subtle': "#F0F9FF";
|
|
309
|
+
readonly 'on-status-success': "#FFFFFF";
|
|
310
|
+
readonly 'on-status-error': "#FFFFFF";
|
|
311
|
+
readonly 'on-status-warning': "#FFFFFF";
|
|
312
|
+
readonly 'on-status-info': "#FFFFFF";
|
|
313
|
+
readonly 'result-improve': "#4caf50";
|
|
314
|
+
readonly 'result-improve-light': "rgba(76, 175, 80, 0.12)";
|
|
315
|
+
readonly 'result-improve-dark': "#248a24";
|
|
316
|
+
readonly 'result-degrade': "#ef5350";
|
|
317
|
+
readonly 'result-degrade-light': "rgba(239, 83, 80, 0.12)";
|
|
318
|
+
readonly 'result-degrade-dark': "#b30000";
|
|
319
|
+
readonly 'result-inconclusive': "#9E9A97";
|
|
320
|
+
readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.12)";
|
|
321
|
+
readonly 'result-neutral': "#6B7280";
|
|
322
|
+
readonly 'on-result-improve': "#FFFFFF";
|
|
323
|
+
readonly 'on-result-degrade': "#FFFFFF";
|
|
324
|
+
readonly 'on-result-inconclusive': "#FFFFFF";
|
|
325
|
+
readonly 'data-1': "#1965B0";
|
|
326
|
+
readonly 'data-2': "#4EB265";
|
|
327
|
+
readonly 'data-3': "#F7F056";
|
|
328
|
+
readonly 'data-4': "#DC050C";
|
|
329
|
+
readonly 'data-5': "#882E72";
|
|
330
|
+
readonly 'data-6': "#F4A736";
|
|
331
|
+
readonly 'data-7': "#7BAFDE";
|
|
332
|
+
readonly 'data-8': "#90C987";
|
|
333
|
+
readonly 'data-9': "#CAACCB";
|
|
334
|
+
readonly 'data-10': "#EE8026";
|
|
335
|
+
readonly 'text-primary': "#121828";
|
|
336
|
+
readonly 'text-secondary': "#65748B";
|
|
337
|
+
readonly 'text-tertiary': "#9CA3AF";
|
|
338
|
+
readonly 'text-disabled': "rgba(55, 65, 81, 0.48)";
|
|
339
|
+
readonly 'text-inverse': "#FFFFFF";
|
|
340
|
+
readonly 'text-link': "#5048E5";
|
|
341
|
+
readonly 'text-link-hover': "#3832A0";
|
|
342
|
+
readonly 'surface-base': "#FFFFFF";
|
|
343
|
+
readonly 'surface-elevated': "#FAFAFA";
|
|
344
|
+
readonly 'surface-raised': "#F3F4F6";
|
|
345
|
+
readonly 'surface-overlay': "#FFFFFF";
|
|
346
|
+
readonly 'surface-input': "#FAFAFA";
|
|
347
|
+
readonly 'background-base': "#EBEBEB";
|
|
348
|
+
readonly 'background-default': "#FFFFFF";
|
|
349
|
+
readonly 'background-subtle': "#FAFAFA";
|
|
350
|
+
readonly 'border-default': "#E8E9EB";
|
|
351
|
+
readonly 'border-subtle': "#F3F4F6";
|
|
352
|
+
readonly 'border-strong': "#D1D5DB";
|
|
353
|
+
readonly 'border-focus': "#5048E5";
|
|
354
|
+
readonly 'border-input': "#D1D5DB";
|
|
355
|
+
readonly 'border-input-hover': "#9CA3AF";
|
|
356
|
+
readonly 'border-input-focus': "#5048E5";
|
|
357
|
+
readonly 'border-input-error': "#D14343";
|
|
358
|
+
readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
359
|
+
readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
360
|
+
readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
361
|
+
readonly 'interactive-selected': "rgba(55, 65, 81, 0.08)";
|
|
362
|
+
readonly 'interactive-disabled': "rgba(55, 65, 81, 0.12)";
|
|
363
|
+
readonly 'interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
|
|
364
|
+
readonly divider: "#E8E9EB";
|
|
365
|
+
readonly 'avatar-background': "#6B7280";
|
|
366
|
+
readonly 'avatar-text': "#FFFFFF";
|
|
367
|
+
};
|
|
368
|
+
declare const semanticColorsDark: {
|
|
369
|
+
readonly 'brand-primary': "#FF7900";
|
|
370
|
+
readonly 'brand-primary-light': "#FF9630";
|
|
371
|
+
readonly 'brand-primary-dark': "#D0620C";
|
|
372
|
+
readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
|
|
373
|
+
readonly 'brand-primary-hover': "#FF8500";
|
|
374
|
+
readonly 'brand-primary-active': "#FF9630";
|
|
375
|
+
readonly 'brand-secondary': "#406D87";
|
|
376
|
+
readonly 'brand-secondary-light': "#678498";
|
|
377
|
+
readonly 'brand-secondary-dark': "#32556D";
|
|
378
|
+
readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
|
|
379
|
+
readonly 'brand-secondary-hover': "#557488";
|
|
380
|
+
readonly 'brand-secondary-active': "#678498";
|
|
381
|
+
readonly 'on-brand-primary': "#FFFFFF";
|
|
382
|
+
readonly 'on-brand-secondary': "#FFFFFF";
|
|
383
|
+
readonly 'status-success': "#14B8A6";
|
|
384
|
+
readonly 'status-success-light': "#43C6B7";
|
|
385
|
+
readonly 'status-success-dark': "#0E8074";
|
|
386
|
+
readonly 'status-success-subtle': "rgba(20, 184, 166, 0.12)";
|
|
387
|
+
readonly 'status-error': "#D14343";
|
|
388
|
+
readonly 'status-error-light': "#DA6868";
|
|
389
|
+
readonly 'status-error-dark': "#922E2E";
|
|
390
|
+
readonly 'status-error-subtle': "rgba(209, 67, 67, 0.12)";
|
|
391
|
+
readonly 'status-warning': "#FFB020";
|
|
392
|
+
readonly 'status-warning-light': "#FFBF4C";
|
|
393
|
+
readonly 'status-warning-dark': "#B27B16";
|
|
394
|
+
readonly 'status-warning-subtle': "rgba(255, 176, 32, 0.12)";
|
|
395
|
+
readonly 'status-info': "#2196F3";
|
|
396
|
+
readonly 'status-info-light': "#64B6F7";
|
|
397
|
+
readonly 'status-info-dark': "#0B79D0";
|
|
398
|
+
readonly 'status-info-subtle': "rgba(33, 150, 243, 0.12)";
|
|
399
|
+
readonly 'on-status-success': "#FFFFFF";
|
|
400
|
+
readonly 'on-status-error': "#FFFFFF";
|
|
401
|
+
readonly 'on-status-warning': "#FFFFFF";
|
|
402
|
+
readonly 'on-status-info': "#FFFFFF";
|
|
403
|
+
readonly 'result-improve': "#4caf50";
|
|
404
|
+
readonly 'result-improve-light': "rgba(76, 175, 80, 0.16)";
|
|
405
|
+
readonly 'result-improve-dark': "#248a24";
|
|
406
|
+
readonly 'result-degrade': "#ef5350";
|
|
407
|
+
readonly 'result-degrade-light': "rgba(239, 83, 80, 0.16)";
|
|
408
|
+
readonly 'result-degrade-dark': "#b30000";
|
|
409
|
+
readonly 'result-inconclusive': "#9E9A97";
|
|
410
|
+
readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.16)";
|
|
411
|
+
readonly 'result-neutral': "#9CA3AF";
|
|
412
|
+
readonly 'on-result-improve': "#FFFFFF";
|
|
413
|
+
readonly 'on-result-degrade': "#FFFFFF";
|
|
414
|
+
readonly 'on-result-inconclusive': "#FFFFFF";
|
|
415
|
+
readonly 'data-1': "#1965B0";
|
|
416
|
+
readonly 'data-2': "#4EB265";
|
|
417
|
+
readonly 'data-3': "#F7F056";
|
|
418
|
+
readonly 'data-4': "#DC050C";
|
|
419
|
+
readonly 'data-5': "#882E72";
|
|
420
|
+
readonly 'data-6': "#F4A736";
|
|
421
|
+
readonly 'data-7': "#7BAFDE";
|
|
422
|
+
readonly 'data-8': "#90C987";
|
|
423
|
+
readonly 'data-9': "#CAACCB";
|
|
424
|
+
readonly 'data-10': "#EE8026";
|
|
425
|
+
readonly 'text-primary': "#F3F4F6";
|
|
426
|
+
readonly 'text-secondary': "#9CA3AF";
|
|
427
|
+
readonly 'text-tertiary': "#6B7280";
|
|
428
|
+
readonly 'text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
429
|
+
readonly 'text-inverse': "#111827";
|
|
430
|
+
readonly 'text-link': "#828DF8";
|
|
431
|
+
readonly 'text-link-hover': "#60A5FA";
|
|
432
|
+
readonly 'surface-base': "#161616";
|
|
433
|
+
readonly 'surface-elevated': "#191919";
|
|
434
|
+
readonly 'surface-raised': "#1C1C1C";
|
|
435
|
+
readonly 'surface-overlay': "#191919";
|
|
436
|
+
readonly 'surface-input': "#191919";
|
|
437
|
+
readonly 'background-base': "#101010";
|
|
438
|
+
readonly 'background-default': "#161616";
|
|
439
|
+
readonly 'background-subtle': "#1C1C1C";
|
|
440
|
+
readonly 'border-default': "#1F1F1F";
|
|
441
|
+
readonly 'border-subtle': "#1C1C1C";
|
|
442
|
+
readonly 'border-strong': "#2C2C2C";
|
|
443
|
+
readonly 'border-focus': "#828DF8";
|
|
444
|
+
readonly 'border-input': "#4B5563";
|
|
445
|
+
readonly 'border-input-hover': "#6B7280";
|
|
446
|
+
readonly 'border-input-focus': "#828DF8";
|
|
447
|
+
readonly 'border-input-error': "#EF4444";
|
|
448
|
+
readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
449
|
+
readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
450
|
+
readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
451
|
+
readonly 'interactive-selected': "rgba(255, 255, 255, 0.08)";
|
|
452
|
+
readonly 'interactive-disabled': "rgba(255, 255, 255, 0.12)";
|
|
453
|
+
readonly 'interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
|
|
454
|
+
readonly divider: "#1F1F1F";
|
|
455
|
+
readonly 'avatar-background': "#4B5563";
|
|
456
|
+
readonly 'avatar-text': "#FFFFFF";
|
|
457
|
+
};
|
|
458
|
+
declare const semanticTypography: {
|
|
459
|
+
readonly h1: {
|
|
460
|
+
readonly fontFamily: "heading";
|
|
461
|
+
readonly fontSize: "3.5rem";
|
|
462
|
+
readonly fontWeight: 700;
|
|
463
|
+
readonly lineHeight: 1.375;
|
|
464
|
+
};
|
|
465
|
+
readonly h2: {
|
|
466
|
+
readonly fontFamily: "heading";
|
|
467
|
+
readonly fontSize: "3rem";
|
|
468
|
+
readonly fontWeight: 700;
|
|
469
|
+
readonly lineHeight: 1.375;
|
|
470
|
+
};
|
|
471
|
+
readonly h3: {
|
|
472
|
+
readonly fontFamily: "heading";
|
|
473
|
+
readonly fontSize: "2.25rem";
|
|
474
|
+
readonly fontWeight: 700;
|
|
475
|
+
readonly lineHeight: 1.375;
|
|
476
|
+
};
|
|
477
|
+
readonly h4: {
|
|
478
|
+
readonly fontFamily: "heading";
|
|
479
|
+
readonly fontSize: "2rem";
|
|
480
|
+
readonly fontWeight: 700;
|
|
481
|
+
readonly lineHeight: 1.375;
|
|
482
|
+
};
|
|
483
|
+
readonly h5: {
|
|
484
|
+
readonly fontFamily: "heading";
|
|
485
|
+
readonly fontSize: "1.5rem";
|
|
486
|
+
readonly fontWeight: 600;
|
|
487
|
+
readonly lineHeight: 1.375;
|
|
488
|
+
};
|
|
489
|
+
readonly h6: {
|
|
490
|
+
readonly fontFamily: "heading";
|
|
491
|
+
readonly fontSize: "1.125rem";
|
|
492
|
+
readonly fontWeight: 600;
|
|
493
|
+
readonly lineHeight: 1.375;
|
|
494
|
+
};
|
|
495
|
+
readonly body1: {
|
|
496
|
+
readonly fontFamily: "body";
|
|
497
|
+
readonly fontSize: "1rem";
|
|
498
|
+
readonly fontWeight: 400;
|
|
499
|
+
readonly lineHeight: 1.5;
|
|
500
|
+
};
|
|
501
|
+
readonly body2: {
|
|
502
|
+
readonly fontFamily: "body";
|
|
503
|
+
readonly fontSize: "0.875rem";
|
|
504
|
+
readonly fontWeight: 400;
|
|
505
|
+
readonly lineHeight: 1.57;
|
|
506
|
+
};
|
|
507
|
+
readonly subtitle1: {
|
|
508
|
+
readonly fontFamily: "body";
|
|
509
|
+
readonly fontSize: "1rem";
|
|
510
|
+
readonly fontWeight: 500;
|
|
511
|
+
readonly lineHeight: 1.75;
|
|
512
|
+
};
|
|
513
|
+
readonly subtitle2: {
|
|
514
|
+
readonly fontFamily: "body";
|
|
515
|
+
readonly fontSize: "0.875rem";
|
|
516
|
+
readonly fontWeight: 500;
|
|
517
|
+
readonly lineHeight: 1.57;
|
|
518
|
+
};
|
|
519
|
+
readonly caption: {
|
|
520
|
+
readonly fontFamily: "body";
|
|
521
|
+
readonly fontSize: "0.75rem";
|
|
522
|
+
readonly fontWeight: 400;
|
|
523
|
+
readonly lineHeight: 1.66;
|
|
524
|
+
};
|
|
525
|
+
readonly overline: {
|
|
526
|
+
readonly fontFamily: "body";
|
|
527
|
+
readonly fontSize: "0.75rem";
|
|
528
|
+
readonly fontWeight: 600;
|
|
529
|
+
readonly lineHeight: 2.5;
|
|
530
|
+
readonly letterSpacing: "0.5px";
|
|
531
|
+
readonly textTransform: "uppercase";
|
|
532
|
+
};
|
|
533
|
+
readonly button: {
|
|
534
|
+
readonly fontFamily: "sans";
|
|
535
|
+
readonly fontSize: "0.875rem";
|
|
536
|
+
readonly fontWeight: 600;
|
|
537
|
+
readonly lineHeight: 1.75;
|
|
538
|
+
};
|
|
539
|
+
};
|
|
540
|
+
declare const buttonSizes: {
|
|
541
|
+
readonly sm: {
|
|
542
|
+
readonly paddingX: "16px";
|
|
543
|
+
readonly paddingY: "6px";
|
|
544
|
+
readonly fontSize: "0.875rem";
|
|
545
|
+
};
|
|
546
|
+
readonly md: {
|
|
547
|
+
readonly paddingX: "20px";
|
|
548
|
+
readonly paddingY: "8px";
|
|
549
|
+
readonly fontSize: "0.875rem";
|
|
550
|
+
};
|
|
551
|
+
readonly lg: {
|
|
552
|
+
readonly paddingX: "24px";
|
|
553
|
+
readonly paddingY: "11px";
|
|
554
|
+
readonly fontSize: "1rem";
|
|
555
|
+
};
|
|
556
|
+
};
|
|
557
|
+
type ThemeMode = 'light' | 'dark';
|
|
558
|
+
declare function getSemanticColors(mode: ThemeMode): {
|
|
559
|
+
readonly 'brand-primary': "#FF7900";
|
|
560
|
+
readonly 'brand-primary-light': "#FF9630";
|
|
561
|
+
readonly 'brand-primary-dark': "#D0620C";
|
|
562
|
+
readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
|
|
563
|
+
readonly 'brand-primary-hover': "#F56C00";
|
|
564
|
+
readonly 'brand-primary-active': "#E06D10";
|
|
565
|
+
readonly 'brand-secondary': "#406D87";
|
|
566
|
+
readonly 'brand-secondary-light': "#678498";
|
|
567
|
+
readonly 'brand-secondary-dark': "#32556D";
|
|
568
|
+
readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
|
|
569
|
+
readonly 'brand-secondary-hover': "#39617A";
|
|
570
|
+
readonly 'brand-secondary-active': "#32556D";
|
|
571
|
+
readonly 'on-brand-primary': "#FFFFFF";
|
|
572
|
+
readonly 'on-brand-secondary': "#FFFFFF";
|
|
573
|
+
readonly 'status-success': "#14B8A6";
|
|
574
|
+
readonly 'status-success-light': "#43C6B7";
|
|
575
|
+
readonly 'status-success-dark': "#0E8074";
|
|
576
|
+
readonly 'status-success-subtle': "#F0FDFA";
|
|
577
|
+
readonly 'status-error': "#D14343";
|
|
578
|
+
readonly 'status-error-light': "#DA6868";
|
|
579
|
+
readonly 'status-error-dark': "#922E2E";
|
|
580
|
+
readonly 'status-error-subtle': "#FEF2F2";
|
|
581
|
+
readonly 'status-warning': "#FFB020";
|
|
582
|
+
readonly 'status-warning-light': "#FFBF4C";
|
|
583
|
+
readonly 'status-warning-dark': "#B27B16";
|
|
584
|
+
readonly 'status-warning-subtle': "#FFFBEB";
|
|
585
|
+
readonly 'status-info': "#2196F3";
|
|
586
|
+
readonly 'status-info-light': "#64B6F7";
|
|
587
|
+
readonly 'status-info-dark': "#0B79D0";
|
|
588
|
+
readonly 'status-info-subtle': "#F0F9FF";
|
|
589
|
+
readonly 'on-status-success': "#FFFFFF";
|
|
590
|
+
readonly 'on-status-error': "#FFFFFF";
|
|
591
|
+
readonly 'on-status-warning': "#FFFFFF";
|
|
592
|
+
readonly 'on-status-info': "#FFFFFF";
|
|
593
|
+
readonly 'result-improve': "#4caf50";
|
|
594
|
+
readonly 'result-improve-light': "rgba(76, 175, 80, 0.12)";
|
|
595
|
+
readonly 'result-improve-dark': "#248a24";
|
|
596
|
+
readonly 'result-degrade': "#ef5350";
|
|
597
|
+
readonly 'result-degrade-light': "rgba(239, 83, 80, 0.12)";
|
|
598
|
+
readonly 'result-degrade-dark': "#b30000";
|
|
599
|
+
readonly 'result-inconclusive': "#9E9A97";
|
|
600
|
+
readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.12)";
|
|
601
|
+
readonly 'result-neutral': "#6B7280";
|
|
602
|
+
readonly 'on-result-improve': "#FFFFFF";
|
|
603
|
+
readonly 'on-result-degrade': "#FFFFFF";
|
|
604
|
+
readonly 'on-result-inconclusive': "#FFFFFF";
|
|
605
|
+
readonly 'data-1': "#1965B0";
|
|
606
|
+
readonly 'data-2': "#4EB265";
|
|
607
|
+
readonly 'data-3': "#F7F056";
|
|
608
|
+
readonly 'data-4': "#DC050C";
|
|
609
|
+
readonly 'data-5': "#882E72";
|
|
610
|
+
readonly 'data-6': "#F4A736";
|
|
611
|
+
readonly 'data-7': "#7BAFDE";
|
|
612
|
+
readonly 'data-8': "#90C987";
|
|
613
|
+
readonly 'data-9': "#CAACCB";
|
|
614
|
+
readonly 'data-10': "#EE8026";
|
|
615
|
+
readonly 'text-primary': "#121828";
|
|
616
|
+
readonly 'text-secondary': "#65748B";
|
|
617
|
+
readonly 'text-tertiary': "#9CA3AF";
|
|
618
|
+
readonly 'text-disabled': "rgba(55, 65, 81, 0.48)";
|
|
619
|
+
readonly 'text-inverse': "#FFFFFF";
|
|
620
|
+
readonly 'text-link': "#5048E5";
|
|
621
|
+
readonly 'text-link-hover': "#3832A0";
|
|
622
|
+
readonly 'surface-base': "#FFFFFF";
|
|
623
|
+
readonly 'surface-elevated': "#FAFAFA";
|
|
624
|
+
readonly 'surface-raised': "#F3F4F6";
|
|
625
|
+
readonly 'surface-overlay': "#FFFFFF";
|
|
626
|
+
readonly 'surface-input': "#FAFAFA";
|
|
627
|
+
readonly 'background-base': "#EBEBEB";
|
|
628
|
+
readonly 'background-default': "#FFFFFF";
|
|
629
|
+
readonly 'background-subtle': "#FAFAFA";
|
|
630
|
+
readonly 'border-default': "#E8E9EB";
|
|
631
|
+
readonly 'border-subtle': "#F3F4F6";
|
|
632
|
+
readonly 'border-strong': "#D1D5DB";
|
|
633
|
+
readonly 'border-focus': "#5048E5";
|
|
634
|
+
readonly 'border-input': "#D1D5DB";
|
|
635
|
+
readonly 'border-input-hover': "#9CA3AF";
|
|
636
|
+
readonly 'border-input-focus': "#5048E5";
|
|
637
|
+
readonly 'border-input-error': "#D14343";
|
|
638
|
+
readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
639
|
+
readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
640
|
+
readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
641
|
+
readonly 'interactive-selected': "rgba(55, 65, 81, 0.08)";
|
|
642
|
+
readonly 'interactive-disabled': "rgba(55, 65, 81, 0.12)";
|
|
643
|
+
readonly 'interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
|
|
644
|
+
readonly divider: "#E8E9EB";
|
|
645
|
+
readonly 'avatar-background': "#6B7280";
|
|
646
|
+
readonly 'avatar-text': "#FFFFFF";
|
|
647
|
+
} | {
|
|
648
|
+
readonly 'brand-primary': "#FF7900";
|
|
649
|
+
readonly 'brand-primary-light': "#FF9630";
|
|
650
|
+
readonly 'brand-primary-dark': "#D0620C";
|
|
651
|
+
readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
|
|
652
|
+
readonly 'brand-primary-hover': "#FF8500";
|
|
653
|
+
readonly 'brand-primary-active': "#FF9630";
|
|
654
|
+
readonly 'brand-secondary': "#406D87";
|
|
655
|
+
readonly 'brand-secondary-light': "#678498";
|
|
656
|
+
readonly 'brand-secondary-dark': "#32556D";
|
|
657
|
+
readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
|
|
658
|
+
readonly 'brand-secondary-hover': "#557488";
|
|
659
|
+
readonly 'brand-secondary-active': "#678498";
|
|
660
|
+
readonly 'on-brand-primary': "#FFFFFF";
|
|
661
|
+
readonly 'on-brand-secondary': "#FFFFFF";
|
|
662
|
+
readonly 'status-success': "#14B8A6";
|
|
663
|
+
readonly 'status-success-light': "#43C6B7";
|
|
664
|
+
readonly 'status-success-dark': "#0E8074";
|
|
665
|
+
readonly 'status-success-subtle': "rgba(20, 184, 166, 0.12)";
|
|
666
|
+
readonly 'status-error': "#D14343";
|
|
667
|
+
readonly 'status-error-light': "#DA6868";
|
|
668
|
+
readonly 'status-error-dark': "#922E2E";
|
|
669
|
+
readonly 'status-error-subtle': "rgba(209, 67, 67, 0.12)";
|
|
670
|
+
readonly 'status-warning': "#FFB020";
|
|
671
|
+
readonly 'status-warning-light': "#FFBF4C";
|
|
672
|
+
readonly 'status-warning-dark': "#B27B16";
|
|
673
|
+
readonly 'status-warning-subtle': "rgba(255, 176, 32, 0.12)";
|
|
674
|
+
readonly 'status-info': "#2196F3";
|
|
675
|
+
readonly 'status-info-light': "#64B6F7";
|
|
676
|
+
readonly 'status-info-dark': "#0B79D0";
|
|
677
|
+
readonly 'status-info-subtle': "rgba(33, 150, 243, 0.12)";
|
|
678
|
+
readonly 'on-status-success': "#FFFFFF";
|
|
679
|
+
readonly 'on-status-error': "#FFFFFF";
|
|
680
|
+
readonly 'on-status-warning': "#FFFFFF";
|
|
681
|
+
readonly 'on-status-info': "#FFFFFF";
|
|
682
|
+
readonly 'result-improve': "#4caf50";
|
|
683
|
+
readonly 'result-improve-light': "rgba(76, 175, 80, 0.16)";
|
|
684
|
+
readonly 'result-improve-dark': "#248a24";
|
|
685
|
+
readonly 'result-degrade': "#ef5350";
|
|
686
|
+
readonly 'result-degrade-light': "rgba(239, 83, 80, 0.16)";
|
|
687
|
+
readonly 'result-degrade-dark': "#b30000";
|
|
688
|
+
readonly 'result-inconclusive': "#9E9A97";
|
|
689
|
+
readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.16)";
|
|
690
|
+
readonly 'result-neutral': "#9CA3AF";
|
|
691
|
+
readonly 'on-result-improve': "#FFFFFF";
|
|
692
|
+
readonly 'on-result-degrade': "#FFFFFF";
|
|
693
|
+
readonly 'on-result-inconclusive': "#FFFFFF";
|
|
694
|
+
readonly 'data-1': "#1965B0";
|
|
695
|
+
readonly 'data-2': "#4EB265";
|
|
696
|
+
readonly 'data-3': "#F7F056";
|
|
697
|
+
readonly 'data-4': "#DC050C";
|
|
698
|
+
readonly 'data-5': "#882E72";
|
|
699
|
+
readonly 'data-6': "#F4A736";
|
|
700
|
+
readonly 'data-7': "#7BAFDE";
|
|
701
|
+
readonly 'data-8': "#90C987";
|
|
702
|
+
readonly 'data-9': "#CAACCB";
|
|
703
|
+
readonly 'data-10': "#EE8026";
|
|
704
|
+
readonly 'text-primary': "#F3F4F6";
|
|
705
|
+
readonly 'text-secondary': "#9CA3AF";
|
|
706
|
+
readonly 'text-tertiary': "#6B7280";
|
|
707
|
+
readonly 'text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
708
|
+
readonly 'text-inverse': "#111827";
|
|
709
|
+
readonly 'text-link': "#828DF8";
|
|
710
|
+
readonly 'text-link-hover': "#60A5FA";
|
|
711
|
+
readonly 'surface-base': "#161616";
|
|
712
|
+
readonly 'surface-elevated': "#191919";
|
|
713
|
+
readonly 'surface-raised': "#1C1C1C";
|
|
714
|
+
readonly 'surface-overlay': "#191919";
|
|
715
|
+
readonly 'surface-input': "#191919";
|
|
716
|
+
readonly 'background-base': "#101010";
|
|
717
|
+
readonly 'background-default': "#161616";
|
|
718
|
+
readonly 'background-subtle': "#1C1C1C";
|
|
719
|
+
readonly 'border-default': "#1F1F1F";
|
|
720
|
+
readonly 'border-subtle': "#1C1C1C";
|
|
721
|
+
readonly 'border-strong': "#2C2C2C";
|
|
722
|
+
readonly 'border-focus': "#828DF8";
|
|
723
|
+
readonly 'border-input': "#4B5563";
|
|
724
|
+
readonly 'border-input-hover': "#6B7280";
|
|
725
|
+
readonly 'border-input-focus': "#828DF8";
|
|
726
|
+
readonly 'border-input-error': "#EF4444";
|
|
727
|
+
readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
728
|
+
readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
729
|
+
readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
730
|
+
readonly 'interactive-selected': "rgba(255, 255, 255, 0.08)";
|
|
731
|
+
readonly 'interactive-disabled': "rgba(255, 255, 255, 0.12)";
|
|
732
|
+
readonly 'interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
|
|
733
|
+
readonly divider: "#1F1F1F";
|
|
734
|
+
readonly 'avatar-background': "#4B5563";
|
|
735
|
+
readonly 'avatar-text': "#FFFFFF";
|
|
736
|
+
};
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* Theme Configuration
|
|
740
|
+
*
|
|
741
|
+
* Maps semantic tokens to CSS custom properties for runtime theming.
|
|
742
|
+
* Dark mode is the default theme.
|
|
743
|
+
*/
|
|
744
|
+
|
|
745
|
+
declare const lightThemeCSSVars: {
|
|
746
|
+
readonly '--color-brand-primary': "#FF7900";
|
|
747
|
+
readonly '--color-brand-primary-light': "#FF9630";
|
|
748
|
+
readonly '--color-brand-primary-dark': "#D0620C";
|
|
749
|
+
readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
|
|
750
|
+
readonly '--color-brand-secondary': "#406D87";
|
|
751
|
+
readonly '--color-brand-secondary-light': "#678498";
|
|
752
|
+
readonly '--color-brand-secondary-dark': "#32556D";
|
|
753
|
+
readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
|
|
754
|
+
readonly '--color-on-brand-primary': "#FFFFFF";
|
|
755
|
+
readonly '--color-on-brand-secondary': "#FFFFFF";
|
|
756
|
+
readonly '--color-status-success': "#14B8A6";
|
|
757
|
+
readonly '--color-status-success-subtle': "#F0FDFA";
|
|
758
|
+
readonly '--color-status-error': "#D14343";
|
|
759
|
+
readonly '--color-status-error-subtle': "#FEF2F2";
|
|
760
|
+
readonly '--color-status-warning': "#FFB020";
|
|
761
|
+
readonly '--color-status-warning-subtle': "#FFFBEB";
|
|
762
|
+
readonly '--color-status-info': "#2196F3";
|
|
763
|
+
readonly '--color-status-info-subtle': "#F0F9FF";
|
|
764
|
+
readonly '--color-text-primary': "#121828";
|
|
765
|
+
readonly '--color-text-secondary': "#65748B";
|
|
766
|
+
readonly '--color-text-tertiary': "#9CA3AF";
|
|
767
|
+
readonly '--color-text-disabled': "rgba(55, 65, 81, 0.48)";
|
|
768
|
+
readonly '--color-text-inverse': "#FFFFFF";
|
|
769
|
+
readonly '--color-text-link': "#5048E5";
|
|
770
|
+
readonly '--color-surface-base': "#FFFFFF";
|
|
771
|
+
readonly '--color-surface-elevated': "#FAFAFA";
|
|
772
|
+
readonly '--color-surface-raised': "#F3F4F6";
|
|
773
|
+
readonly '--color-background-base': "#EBEBEB";
|
|
774
|
+
readonly '--color-background-default': "#FFFFFF";
|
|
775
|
+
readonly '--color-background-subtle': "#FAFAFA";
|
|
776
|
+
readonly '--color-border-default': "#E8E9EB";
|
|
777
|
+
readonly '--color-border-subtle': "#F3F4F6";
|
|
778
|
+
readonly '--color-border-strong': "#D1D5DB";
|
|
779
|
+
readonly '--color-border-focus': "#5048E5";
|
|
780
|
+
readonly '--color-interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
781
|
+
readonly '--color-interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
782
|
+
readonly '--color-interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
783
|
+
readonly '--color-interactive-selected': "rgba(55, 65, 81, 0.08)";
|
|
784
|
+
readonly '--color-interactive-disabled': "rgba(55, 65, 81, 0.12)";
|
|
785
|
+
readonly '--color-divider': "#E8E9EB";
|
|
786
|
+
};
|
|
787
|
+
declare const darkThemeCSSVars: {
|
|
788
|
+
readonly '--color-brand-primary': "#FF7900";
|
|
789
|
+
readonly '--color-brand-primary-light': "#FF9630";
|
|
790
|
+
readonly '--color-brand-primary-dark': "#D0620C";
|
|
791
|
+
readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
|
|
792
|
+
readonly '--color-brand-secondary': "#406D87";
|
|
793
|
+
readonly '--color-brand-secondary-light': "#678498";
|
|
794
|
+
readonly '--color-brand-secondary-dark': "#32556D";
|
|
795
|
+
readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
|
|
796
|
+
readonly '--color-on-brand-primary': "#FFFFFF";
|
|
797
|
+
readonly '--color-on-brand-secondary': "#FFFFFF";
|
|
798
|
+
readonly '--color-status-success': "#14B8A6";
|
|
799
|
+
readonly '--color-status-success-subtle': "rgba(20, 184, 166, 0.12)";
|
|
800
|
+
readonly '--color-status-error': "#D14343";
|
|
801
|
+
readonly '--color-status-error-subtle': "rgba(209, 67, 67, 0.12)";
|
|
802
|
+
readonly '--color-status-warning': "#FFB020";
|
|
803
|
+
readonly '--color-status-warning-subtle': "rgba(255, 176, 32, 0.12)";
|
|
804
|
+
readonly '--color-status-info': "#2196F3";
|
|
805
|
+
readonly '--color-status-info-subtle': "rgba(33, 150, 243, 0.12)";
|
|
806
|
+
readonly '--color-text-primary': "#F3F4F6";
|
|
807
|
+
readonly '--color-text-secondary': "#9CA3AF";
|
|
808
|
+
readonly '--color-text-tertiary': "#6B7280";
|
|
809
|
+
readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
810
|
+
readonly '--color-text-inverse': "#111827";
|
|
811
|
+
readonly '--color-text-link': "#828DF8";
|
|
812
|
+
readonly '--color-surface-base': "#161616";
|
|
813
|
+
readonly '--color-surface-elevated': "#191919";
|
|
814
|
+
readonly '--color-surface-raised': "#1C1C1C";
|
|
815
|
+
readonly '--color-background-base': "#101010";
|
|
816
|
+
readonly '--color-background-default': "#161616";
|
|
817
|
+
readonly '--color-background-subtle': "#1C1C1C";
|
|
818
|
+
readonly '--color-border-default': "#1F1F1F";
|
|
819
|
+
readonly '--color-border-subtle': "#1C1C1C";
|
|
820
|
+
readonly '--color-border-strong': "#2C2C2C";
|
|
821
|
+
readonly '--color-border-focus': "#828DF8";
|
|
822
|
+
readonly '--color-interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
823
|
+
readonly '--color-interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
824
|
+
readonly '--color-interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
825
|
+
readonly '--color-interactive-selected': "rgba(255, 255, 255, 0.08)";
|
|
826
|
+
readonly '--color-interactive-disabled': "rgba(255, 255, 255, 0.12)";
|
|
827
|
+
readonly '--color-divider': "#1F1F1F";
|
|
828
|
+
};
|
|
829
|
+
declare function getThemeCSSVars(mode: ThemeMode): {
|
|
830
|
+
readonly '--color-brand-primary': "#FF7900";
|
|
831
|
+
readonly '--color-brand-primary-light': "#FF9630";
|
|
832
|
+
readonly '--color-brand-primary-dark': "#D0620C";
|
|
833
|
+
readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
|
|
834
|
+
readonly '--color-brand-secondary': "#406D87";
|
|
835
|
+
readonly '--color-brand-secondary-light': "#678498";
|
|
836
|
+
readonly '--color-brand-secondary-dark': "#32556D";
|
|
837
|
+
readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
|
|
838
|
+
readonly '--color-on-brand-primary': "#FFFFFF";
|
|
839
|
+
readonly '--color-on-brand-secondary': "#FFFFFF";
|
|
840
|
+
readonly '--color-status-success': "#14B8A6";
|
|
841
|
+
readonly '--color-status-success-subtle': "#F0FDFA";
|
|
842
|
+
readonly '--color-status-error': "#D14343";
|
|
843
|
+
readonly '--color-status-error-subtle': "#FEF2F2";
|
|
844
|
+
readonly '--color-status-warning': "#FFB020";
|
|
845
|
+
readonly '--color-status-warning-subtle': "#FFFBEB";
|
|
846
|
+
readonly '--color-status-info': "#2196F3";
|
|
847
|
+
readonly '--color-status-info-subtle': "#F0F9FF";
|
|
848
|
+
readonly '--color-text-primary': "#121828";
|
|
849
|
+
readonly '--color-text-secondary': "#65748B";
|
|
850
|
+
readonly '--color-text-tertiary': "#9CA3AF";
|
|
851
|
+
readonly '--color-text-disabled': "rgba(55, 65, 81, 0.48)";
|
|
852
|
+
readonly '--color-text-inverse': "#FFFFFF";
|
|
853
|
+
readonly '--color-text-link': "#5048E5";
|
|
854
|
+
readonly '--color-surface-base': "#FFFFFF";
|
|
855
|
+
readonly '--color-surface-elevated': "#FAFAFA";
|
|
856
|
+
readonly '--color-surface-raised': "#F3F4F6";
|
|
857
|
+
readonly '--color-background-base': "#EBEBEB";
|
|
858
|
+
readonly '--color-background-default': "#FFFFFF";
|
|
859
|
+
readonly '--color-background-subtle': "#FAFAFA";
|
|
860
|
+
readonly '--color-border-default': "#E8E9EB";
|
|
861
|
+
readonly '--color-border-subtle': "#F3F4F6";
|
|
862
|
+
readonly '--color-border-strong': "#D1D5DB";
|
|
863
|
+
readonly '--color-border-focus': "#5048E5";
|
|
864
|
+
readonly '--color-interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
865
|
+
readonly '--color-interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
866
|
+
readonly '--color-interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
867
|
+
readonly '--color-interactive-selected': "rgba(55, 65, 81, 0.08)";
|
|
868
|
+
readonly '--color-interactive-disabled': "rgba(55, 65, 81, 0.12)";
|
|
869
|
+
readonly '--color-divider': "#E8E9EB";
|
|
870
|
+
} | {
|
|
871
|
+
readonly '--color-brand-primary': "#FF7900";
|
|
872
|
+
readonly '--color-brand-primary-light': "#FF9630";
|
|
873
|
+
readonly '--color-brand-primary-dark': "#D0620C";
|
|
874
|
+
readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
|
|
875
|
+
readonly '--color-brand-secondary': "#406D87";
|
|
876
|
+
readonly '--color-brand-secondary-light': "#678498";
|
|
877
|
+
readonly '--color-brand-secondary-dark': "#32556D";
|
|
878
|
+
readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
|
|
879
|
+
readonly '--color-on-brand-primary': "#FFFFFF";
|
|
880
|
+
readonly '--color-on-brand-secondary': "#FFFFFF";
|
|
881
|
+
readonly '--color-status-success': "#14B8A6";
|
|
882
|
+
readonly '--color-status-success-subtle': "rgba(20, 184, 166, 0.12)";
|
|
883
|
+
readonly '--color-status-error': "#D14343";
|
|
884
|
+
readonly '--color-status-error-subtle': "rgba(209, 67, 67, 0.12)";
|
|
885
|
+
readonly '--color-status-warning': "#FFB020";
|
|
886
|
+
readonly '--color-status-warning-subtle': "rgba(255, 176, 32, 0.12)";
|
|
887
|
+
readonly '--color-status-info': "#2196F3";
|
|
888
|
+
readonly '--color-status-info-subtle': "rgba(33, 150, 243, 0.12)";
|
|
889
|
+
readonly '--color-text-primary': "#F3F4F6";
|
|
890
|
+
readonly '--color-text-secondary': "#9CA3AF";
|
|
891
|
+
readonly '--color-text-tertiary': "#6B7280";
|
|
892
|
+
readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
893
|
+
readonly '--color-text-inverse': "#111827";
|
|
894
|
+
readonly '--color-text-link': "#828DF8";
|
|
895
|
+
readonly '--color-surface-base': "#161616";
|
|
896
|
+
readonly '--color-surface-elevated': "#191919";
|
|
897
|
+
readonly '--color-surface-raised': "#1C1C1C";
|
|
898
|
+
readonly '--color-background-base': "#101010";
|
|
899
|
+
readonly '--color-background-default': "#161616";
|
|
900
|
+
readonly '--color-background-subtle': "#1C1C1C";
|
|
901
|
+
readonly '--color-border-default': "#1F1F1F";
|
|
902
|
+
readonly '--color-border-subtle': "#1C1C1C";
|
|
903
|
+
readonly '--color-border-strong': "#2C2C2C";
|
|
904
|
+
readonly '--color-border-focus': "#828DF8";
|
|
905
|
+
readonly '--color-interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
906
|
+
readonly '--color-interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
907
|
+
readonly '--color-interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
908
|
+
readonly '--color-interactive-selected': "rgba(255, 255, 255, 0.08)";
|
|
909
|
+
readonly '--color-interactive-disabled': "rgba(255, 255, 255, 0.12)";
|
|
910
|
+
readonly '--color-divider': "#1F1F1F";
|
|
911
|
+
};
|
|
912
|
+
declare const gluestackConfig: {
|
|
913
|
+
readonly tokens: {
|
|
914
|
+
readonly colors: {
|
|
915
|
+
readonly primary500: "var(--color-brand-primary)";
|
|
916
|
+
readonly primary600: "var(--color-brand-primary-dark)";
|
|
917
|
+
readonly primary400: "var(--color-brand-primary-light)";
|
|
918
|
+
readonly secondary500: "var(--color-brand-secondary)";
|
|
919
|
+
readonly secondary600: "var(--color-brand-secondary-dark)";
|
|
920
|
+
readonly secondary400: "var(--color-brand-secondary-light)";
|
|
921
|
+
readonly success500: "var(--color-status-success)";
|
|
922
|
+
readonly error500: "var(--color-status-error)";
|
|
923
|
+
readonly warning500: "var(--color-status-warning)";
|
|
924
|
+
readonly info500: "var(--color-status-info)";
|
|
925
|
+
readonly textLight: "var(--color-text-primary)";
|
|
926
|
+
readonly textDark: "var(--color-text-inverse)";
|
|
927
|
+
readonly backgroundLight: "var(--color-background-default)";
|
|
928
|
+
readonly backgroundDark: "var(--color-surface-base)";
|
|
929
|
+
};
|
|
930
|
+
readonly space: {
|
|
931
|
+
readonly '0': 0;
|
|
932
|
+
readonly '1': 4;
|
|
933
|
+
readonly '2': 8;
|
|
934
|
+
readonly '3': 12;
|
|
935
|
+
readonly '4': 16;
|
|
936
|
+
readonly '5': 20;
|
|
937
|
+
readonly '6': 24;
|
|
938
|
+
readonly '8': 32;
|
|
939
|
+
readonly '10': 40;
|
|
940
|
+
readonly '12': 48;
|
|
941
|
+
readonly '16': 64;
|
|
942
|
+
readonly '20': 80;
|
|
943
|
+
readonly '24': 96;
|
|
944
|
+
};
|
|
945
|
+
readonly radii: {
|
|
946
|
+
readonly none: 0;
|
|
947
|
+
readonly sm: 4;
|
|
948
|
+
readonly md: 8;
|
|
949
|
+
readonly lg: 12;
|
|
950
|
+
readonly xl: 16;
|
|
951
|
+
readonly '2xl': 24;
|
|
952
|
+
readonly full: 9999;
|
|
953
|
+
};
|
|
954
|
+
readonly fontSizes: {
|
|
955
|
+
readonly xs: 12;
|
|
956
|
+
readonly sm: 14;
|
|
957
|
+
readonly md: 16;
|
|
958
|
+
readonly lg: 18;
|
|
959
|
+
readonly xl: 20;
|
|
960
|
+
readonly '2xl': 24;
|
|
961
|
+
readonly '3xl': 30;
|
|
962
|
+
readonly '4xl': 36;
|
|
963
|
+
readonly '5xl': 48;
|
|
964
|
+
};
|
|
965
|
+
};
|
|
966
|
+
readonly aliases: {
|
|
967
|
+
readonly bg: "backgroundColor";
|
|
968
|
+
readonly p: "padding";
|
|
969
|
+
readonly px: "paddingHorizontal";
|
|
970
|
+
readonly py: "paddingVertical";
|
|
971
|
+
readonly m: "margin";
|
|
972
|
+
readonly mx: "marginHorizontal";
|
|
973
|
+
readonly my: "marginVertical";
|
|
974
|
+
readonly h: "height";
|
|
975
|
+
readonly w: "width";
|
|
976
|
+
readonly rounded: "borderRadius";
|
|
977
|
+
};
|
|
978
|
+
};
|
|
979
|
+
type ThemeConfig = typeof gluestackConfig;
|
|
980
|
+
|
|
981
|
+
/**
|
|
982
|
+
* Neumorphic Shadow Utilities
|
|
983
|
+
*
|
|
984
|
+
* Neumorphism creates soft, extruded UI using dual opposing shadows.
|
|
985
|
+
* - Light source assumed from top-left
|
|
986
|
+
* - Raised elements: dark shadow bottom-right, light highlight top-left
|
|
987
|
+
* - Pressed elements: inverted with `inset` shadows
|
|
988
|
+
*/
|
|
989
|
+
|
|
990
|
+
/**
|
|
991
|
+
* Parse a hex color to RGB values (0-255).
|
|
992
|
+
* Supports both #RGB and #RRGGBB formats.
|
|
993
|
+
*/
|
|
994
|
+
declare function hexToRgb(hex: string): {
|
|
995
|
+
r: number;
|
|
996
|
+
g: number;
|
|
997
|
+
b: number;
|
|
998
|
+
} | null;
|
|
999
|
+
/**
|
|
1000
|
+
* Convert RGB (0-255) to HSV (h: 0-360, s: 0-1, v: 0-1).
|
|
1001
|
+
*/
|
|
1002
|
+
declare function rgbToHsv(r: number, g: number, b: number): {
|
|
1003
|
+
h: number;
|
|
1004
|
+
s: number;
|
|
1005
|
+
v: number;
|
|
1006
|
+
};
|
|
1007
|
+
/**
|
|
1008
|
+
* Convert HSV (h: 0-360, s: 0-1, v: 0-1) to RGB (0-255).
|
|
1009
|
+
*/
|
|
1010
|
+
declare function hsvToRgb(h: number, s: number, v: number): {
|
|
1011
|
+
r: number;
|
|
1012
|
+
g: number;
|
|
1013
|
+
b: number;
|
|
1014
|
+
};
|
|
1015
|
+
/**
|
|
1016
|
+
* Convert RGB values to hex string.
|
|
1017
|
+
*/
|
|
1018
|
+
declare function rgbToHex(r: number, g: number, b: number): string;
|
|
1019
|
+
/**
|
|
1020
|
+
* Lighten a color by increasing its HSV Value component.
|
|
1021
|
+
*
|
|
1022
|
+
* @param hex - The hex color to lighten
|
|
1023
|
+
* @param amount - Amount to increase V by (0-1)
|
|
1024
|
+
*/
|
|
1025
|
+
declare function lighten(hex: string, amount?: number): string;
|
|
1026
|
+
/**
|
|
1027
|
+
* Darken a color by decreasing its HSV Value component.
|
|
1028
|
+
*
|
|
1029
|
+
* @param hex - The hex color to darken
|
|
1030
|
+
* @param amount - Amount to decrease V by (0-1)
|
|
1031
|
+
*/
|
|
1032
|
+
declare function darken(hex: string, amount?: number): string;
|
|
1033
|
+
/**
|
|
1034
|
+
* Get hover colors for a button based on its background color.
|
|
1035
|
+
* Automatically adapts intensity based on the color's luminance.
|
|
1036
|
+
*
|
|
1037
|
+
* @param bgColor - The button's background color (hex)
|
|
1038
|
+
* @param intensity - How strong the hover effect should be ('subtle' | 'medium' | 'strong')
|
|
1039
|
+
*/
|
|
1040
|
+
declare function getHoverColors(bgColor: string, intensity?: 'subtle' | 'medium' | 'strong'): {
|
|
1041
|
+
raised: string;
|
|
1042
|
+
pressed: string;
|
|
1043
|
+
};
|
|
1044
|
+
/**
|
|
1045
|
+
* Check if a color is considered "dark" (for choosing text color).
|
|
1046
|
+
* Uses HSV Value component for simplicity.
|
|
1047
|
+
*/
|
|
1048
|
+
declare function isDark(hex: string): boolean;
|
|
1049
|
+
/**
|
|
1050
|
+
* Shadow configuration for different surface colors.
|
|
1051
|
+
* Each surface needs calibrated light/dark shadow colors.
|
|
1052
|
+
*
|
|
1053
|
+
* - dark: soft shadow for depth (bottom-right)
|
|
1054
|
+
* - light: sharp rim highlight (top-left) - higher opacity for crisp edge
|
|
1055
|
+
* - darker: deeper shadow for pressed/inset states
|
|
1056
|
+
*/
|
|
1057
|
+
declare const shadowColors: {
|
|
1058
|
+
charcoal: {
|
|
1059
|
+
dark: string;
|
|
1060
|
+
light: string;
|
|
1061
|
+
darker: string;
|
|
1062
|
+
};
|
|
1063
|
+
neutralDark: {
|
|
1064
|
+
dark: string;
|
|
1065
|
+
light: string;
|
|
1066
|
+
darker: string;
|
|
1067
|
+
};
|
|
1068
|
+
neutralLight: {
|
|
1069
|
+
dark: string;
|
|
1070
|
+
light: string;
|
|
1071
|
+
darker: string;
|
|
1072
|
+
};
|
|
1073
|
+
};
|
|
1074
|
+
type ShadowIntensity = 'subtle' | 'medium' | 'strong';
|
|
1075
|
+
type ShadowSurface = keyof typeof shadowColors;
|
|
1076
|
+
/**
|
|
1077
|
+
* Creates a raised (elevated) neumorphic shadow.
|
|
1078
|
+
* Element appears to float above the surface.
|
|
1079
|
+
*
|
|
1080
|
+
* Uses a soft dark shadow (bottom-right) and a sharp rim light (top-left).
|
|
1081
|
+
*/
|
|
1082
|
+
declare function createRaisedShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
|
|
1083
|
+
/**
|
|
1084
|
+
* Creates a pressed (inset) neumorphic shadow.
|
|
1085
|
+
* Element appears pushed into the surface.
|
|
1086
|
+
*
|
|
1087
|
+
* Uses a soft dark inset shadow (top-left) and a thin sharp rim light (bottom-right).
|
|
1088
|
+
*/
|
|
1089
|
+
declare function createPressedShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
|
|
1090
|
+
/**
|
|
1091
|
+
* Creates a flat (no shadow) style for hover states.
|
|
1092
|
+
*/
|
|
1093
|
+
declare function createFlatShadow(): ViewStyle;
|
|
1094
|
+
/**
|
|
1095
|
+
* Creates a hover shadow for raised elements.
|
|
1096
|
+
* Reduces shadow depth but keeps a subtle rim light to maintain visual boundary.
|
|
1097
|
+
*/
|
|
1098
|
+
declare function createRaisedHoverShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
|
|
1099
|
+
/**
|
|
1100
|
+
* Creates a hover shadow for pressed elements.
|
|
1101
|
+
* Reduces shadow depth but keeps a subtle rim light to maintain visual boundary.
|
|
1102
|
+
*/
|
|
1103
|
+
declare function createPressedHoverShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
|
|
1104
|
+
/**
|
|
1105
|
+
* Pre-built shadow presets for common use cases.
|
|
1106
|
+
*/
|
|
1107
|
+
declare const neumorphicShadows: {
|
|
1108
|
+
charcoal: {
|
|
1109
|
+
raised: {
|
|
1110
|
+
subtle: ViewStyle;
|
|
1111
|
+
medium: ViewStyle;
|
|
1112
|
+
strong: ViewStyle;
|
|
1113
|
+
};
|
|
1114
|
+
raisedHover: {
|
|
1115
|
+
subtle: ViewStyle;
|
|
1116
|
+
medium: ViewStyle;
|
|
1117
|
+
strong: ViewStyle;
|
|
1118
|
+
};
|
|
1119
|
+
pressed: {
|
|
1120
|
+
subtle: ViewStyle;
|
|
1121
|
+
medium: ViewStyle;
|
|
1122
|
+
strong: ViewStyle;
|
|
1123
|
+
};
|
|
1124
|
+
pressedHover: {
|
|
1125
|
+
subtle: ViewStyle;
|
|
1126
|
+
medium: ViewStyle;
|
|
1127
|
+
strong: ViewStyle;
|
|
1128
|
+
};
|
|
1129
|
+
flat: ViewStyle;
|
|
1130
|
+
};
|
|
1131
|
+
neutralDark: {
|
|
1132
|
+
raised: {
|
|
1133
|
+
subtle: ViewStyle;
|
|
1134
|
+
medium: ViewStyle;
|
|
1135
|
+
strong: ViewStyle;
|
|
1136
|
+
};
|
|
1137
|
+
raisedHover: {
|
|
1138
|
+
subtle: ViewStyle;
|
|
1139
|
+
medium: ViewStyle;
|
|
1140
|
+
strong: ViewStyle;
|
|
1141
|
+
};
|
|
1142
|
+
pressed: {
|
|
1143
|
+
subtle: ViewStyle;
|
|
1144
|
+
medium: ViewStyle;
|
|
1145
|
+
strong: ViewStyle;
|
|
1146
|
+
};
|
|
1147
|
+
pressedHover: {
|
|
1148
|
+
subtle: ViewStyle;
|
|
1149
|
+
medium: ViewStyle;
|
|
1150
|
+
strong: ViewStyle;
|
|
1151
|
+
};
|
|
1152
|
+
flat: ViewStyle;
|
|
1153
|
+
};
|
|
1154
|
+
neutralLight: {
|
|
1155
|
+
raised: {
|
|
1156
|
+
subtle: ViewStyle;
|
|
1157
|
+
medium: ViewStyle;
|
|
1158
|
+
strong: ViewStyle;
|
|
1159
|
+
};
|
|
1160
|
+
raisedHover: {
|
|
1161
|
+
subtle: ViewStyle;
|
|
1162
|
+
medium: ViewStyle;
|
|
1163
|
+
strong: ViewStyle;
|
|
1164
|
+
};
|
|
1165
|
+
pressed: {
|
|
1166
|
+
subtle: ViewStyle;
|
|
1167
|
+
medium: ViewStyle;
|
|
1168
|
+
strong: ViewStyle;
|
|
1169
|
+
};
|
|
1170
|
+
pressedHover: {
|
|
1171
|
+
subtle: ViewStyle;
|
|
1172
|
+
medium: ViewStyle;
|
|
1173
|
+
strong: ViewStyle;
|
|
1174
|
+
};
|
|
1175
|
+
flat: ViewStyle;
|
|
1176
|
+
};
|
|
1177
|
+
};
|
|
1178
|
+
|
|
1179
|
+
/**
|
|
1180
|
+
* Elevation System
|
|
1181
|
+
*
|
|
1182
|
+
* A unified depth system where each elevation level corresponds to:
|
|
1183
|
+
* - Calculated surface color (derived from base using lighten)
|
|
1184
|
+
* - Shadow intensity and style (raised/pressed)
|
|
1185
|
+
* - Dynamically calculated shadow colors (derived from surface color)
|
|
1186
|
+
* - Semantic name for reference
|
|
1187
|
+
*
|
|
1188
|
+
* Elevation range: -2 (deep inset) to +5 (floating overlay)
|
|
1189
|
+
*
|
|
1190
|
+
* Negative elevations: Inset/pressed elements (sunken into surface)
|
|
1191
|
+
* Zero elevation: Base surface (background/page level)
|
|
1192
|
+
* Positive elevations: Raised elements (floating above surface)
|
|
1193
|
+
*
|
|
1194
|
+
* All colors are calculated dynamically from a base surface color,
|
|
1195
|
+
* allowing for custom surfaces and consistent color relationships.
|
|
1196
|
+
*
|
|
1197
|
+
* Lighting Model: Light source from upper-right corner
|
|
1198
|
+
* - Raised elements are always lighter than base (consistent across themes)
|
|
1199
|
+
* - Base colors must allow sufficient lightening in both themes
|
|
1200
|
+
*/
|
|
1201
|
+
|
|
1202
|
+
type ElevationLevel = -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5;
|
|
1203
|
+
interface ElevationConfig {
|
|
1204
|
+
/** Semantic name for this elevation level */
|
|
1205
|
+
name: string;
|
|
1206
|
+
/** Amount to lighten base color (0-1) */
|
|
1207
|
+
colorAdjustment: number;
|
|
1208
|
+
/** Shadow intensity */
|
|
1209
|
+
shadowIntensity: 'subtle' | 'medium' | 'strong';
|
|
1210
|
+
/** Shadow style: raised (floating) or pressed (inset) */
|
|
1211
|
+
shadowStyle: 'raised' | 'pressed';
|
|
1212
|
+
/** Description of use case */
|
|
1213
|
+
description: string;
|
|
1214
|
+
}
|
|
1215
|
+
declare const elevationSystem: Record<ElevationLevel, ElevationConfig>;
|
|
1216
|
+
/**
|
|
1217
|
+
* Get elevation configuration for a given level
|
|
1218
|
+
*/
|
|
1219
|
+
declare function getElevationConfig(level: ElevationLevel): ElevationConfig;
|
|
1220
|
+
/**
|
|
1221
|
+
* Calculate surface color for an elevation level from a base color.
|
|
1222
|
+
* Results are cached to avoid redundant calculations.
|
|
1223
|
+
*
|
|
1224
|
+
* @param baseColor - Base surface color (hex)
|
|
1225
|
+
* @param level - Elevation level
|
|
1226
|
+
* @param theme - Current theme ('light' or 'dark')
|
|
1227
|
+
* @returns Calculated surface color (hex)
|
|
1228
|
+
*/
|
|
1229
|
+
declare function getElevationSurface(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark'): string;
|
|
1230
|
+
/**
|
|
1231
|
+
* Get shadow style for an elevation level, calculated dynamically from surface color.
|
|
1232
|
+
* Results are cached to avoid redundant calculations.
|
|
1233
|
+
*
|
|
1234
|
+
* @param baseColor - Base surface color (hex)
|
|
1235
|
+
* @param level - Elevation level
|
|
1236
|
+
* @param theme - Current theme ('light' or 'dark')
|
|
1237
|
+
* @param isHovered - Whether element is hovered
|
|
1238
|
+
* @returns ViewStyle with shadow properties
|
|
1239
|
+
*/
|
|
1240
|
+
declare function getElevationShadow(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark', isHovered?: boolean): ViewStyle;
|
|
1241
|
+
/**
|
|
1242
|
+
* Get base surface color from theme.
|
|
1243
|
+
* This is the foundation color that all elevations are calculated from.
|
|
1244
|
+
*
|
|
1245
|
+
* IMPORTANT: Base colors must be chosen to allow sufficient lightening.
|
|
1246
|
+
*
|
|
1247
|
+
* **Light Mode**: Cannot use `#FFFFFF` (white) - cannot lighten white!
|
|
1248
|
+
* - Use `#F3F4F6` (neutral[100]) - can lighten to `#FAFAFA` → `#FFFFFF`
|
|
1249
|
+
* - This allows raised elevations to be lighter (closer to white)
|
|
1250
|
+
*
|
|
1251
|
+
* **Dark Mode**: Need lighter base to allow sufficient lightening
|
|
1252
|
+
* - Use `#191919` (charcoal[600]) - allows lightening to `#2A2A2A` at max elevation
|
|
1253
|
+
*
|
|
1254
|
+
* Can be overridden to use custom base colors for special cases.
|
|
1255
|
+
*/
|
|
1256
|
+
declare function getBaseSurfaceColor(theme: 'light' | 'dark'): string;
|
|
1257
|
+
/**
|
|
1258
|
+
* Component-specific elevation ranges
|
|
1259
|
+
* Defines which elevation levels each component type can use
|
|
1260
|
+
*/
|
|
1261
|
+
declare const componentElevationRanges: {
|
|
1262
|
+
readonly button: {
|
|
1263
|
+
readonly allowed: readonly [2];
|
|
1264
|
+
readonly default: 2;
|
|
1265
|
+
readonly hover: 3;
|
|
1266
|
+
};
|
|
1267
|
+
readonly card: {
|
|
1268
|
+
readonly allowed: readonly [1, 2, 3];
|
|
1269
|
+
readonly default: 2;
|
|
1270
|
+
readonly hover: 3;
|
|
1271
|
+
};
|
|
1272
|
+
readonly input: {
|
|
1273
|
+
readonly allowed: readonly [-2, -1, 0];
|
|
1274
|
+
readonly default: -1;
|
|
1275
|
+
};
|
|
1276
|
+
readonly overlay: {
|
|
1277
|
+
readonly allowed: readonly [4, 5];
|
|
1278
|
+
readonly default: 4;
|
|
1279
|
+
};
|
|
1280
|
+
};
|
|
1281
|
+
type ComponentType = keyof typeof componentElevationRanges;
|
|
1282
|
+
/**
|
|
1283
|
+
* Validate and clamp elevation to component's allowed range
|
|
1284
|
+
*/
|
|
1285
|
+
declare function getValidatedElevation(component: ComponentType, requested: ElevationLevel): ElevationLevel;
|
|
1286
|
+
|
|
1287
|
+
export { type ComponentType, type ElevationConfig, type ElevationLevel, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, buttonSizes, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, discreteRainbow, elevationSystem, getBaseSurfaceColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isDark, lightThemeCSSVars, lighten, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, shadowColors };
|