@tamagui/themes 1.89.0-1706360676826 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/generated-v3.js +3498 -0
  2. package/dist/cjs/generated-v3.js.map +6 -0
  3. package/dist/cjs/generated-v3.native.js +5086 -0
  4. package/dist/cjs/generated-v3.native.js.map +6 -0
  5. package/dist/cjs/v3-themes.js +541 -0
  6. package/dist/cjs/v3-themes.js.map +6 -0
  7. package/dist/cjs/v3-themes.native.js +559 -0
  8. package/dist/cjs/v3-themes.native.js.map +6 -0
  9. package/dist/cjs/v3.js +47 -0
  10. package/dist/cjs/v3.js.map +6 -0
  11. package/dist/cjs/v3.native.js +69 -0
  12. package/dist/cjs/v3.native.js.map +6 -0
  13. package/dist/esm/componentThemeDefinitions.native.js +22 -44
  14. package/dist/esm/componentThemeDefinitions.native.js.map +1 -1
  15. package/dist/esm/generated-new.native.js +2 -1430
  16. package/dist/esm/generated-new.native.js.map +1 -1
  17. package/dist/esm/generated-v2.native.js +2 -1408
  18. package/dist/esm/generated-v2.native.js.map +1 -1
  19. package/dist/esm/generated-v3.js +3482 -0
  20. package/dist/esm/generated-v3.js.map +6 -0
  21. package/dist/esm/generated-v3.mjs +1708 -0
  22. package/dist/esm/generated-v3.native.js +3482 -0
  23. package/dist/esm/generated-v3.native.js.map +6 -0
  24. package/dist/esm/helpers.native.js +2 -25
  25. package/dist/esm/helpers.native.js.map +1 -1
  26. package/dist/esm/index.native.js +8 -33
  27. package/dist/esm/index.native.js.map +1 -1
  28. package/dist/esm/masks.native.js +34 -47
  29. package/dist/esm/masks.native.js.map +1 -1
  30. package/dist/esm/palettes.native.js +10 -30
  31. package/dist/esm/palettes.native.js.map +1 -1
  32. package/dist/esm/shadows.native.js +2 -23
  33. package/dist/esm/shadows.native.js.map +1 -1
  34. package/dist/esm/templates.native.js +4 -26
  35. package/dist/esm/templates.native.js.map +1 -1
  36. package/dist/esm/themes-new.native.js +17 -32
  37. package/dist/esm/themes-new.native.js.map +1 -1
  38. package/dist/esm/themes-old.native.js +25 -38
  39. package/dist/esm/themes-old.native.js.map +1 -1
  40. package/dist/esm/themes.native.js +3 -32
  41. package/dist/esm/themes.native.js.map +1 -1
  42. package/dist/esm/tokens.native.js +38 -49
  43. package/dist/esm/tokens.native.js.map +1 -1
  44. package/dist/esm/v2-themes.native.js +43 -48
  45. package/dist/esm/v2-themes.native.js.map +2 -2
  46. package/dist/esm/v2.native.js +12 -49
  47. package/dist/esm/v2.native.js.map +2 -2
  48. package/dist/esm/v3-themes.js +544 -0
  49. package/dist/esm/v3-themes.js.map +6 -0
  50. package/dist/esm/v3-themes.mjs +474 -0
  51. package/dist/esm/v3-themes.native.js +544 -0
  52. package/dist/esm/v3-themes.native.js.map +6 -0
  53. package/dist/esm/v3.js +32 -0
  54. package/dist/esm/v3.js.map +6 -0
  55. package/dist/esm/v3.mjs +12 -0
  56. package/dist/esm/v3.native.js +32 -0
  57. package/dist/esm/v3.native.js.map +6 -0
  58. package/package.json +20 -7
  59. package/src/generated-v3.ts +3847 -0
  60. package/src/v3-themes.ts +703 -0
  61. package/src/v3.tsx +14 -0
  62. package/types/generated-v3.d.ts +1717 -0
  63. package/types/generated-v3.d.ts.map +1 -0
  64. package/types/v3-themes.d.ts +59730 -0
  65. package/types/v3-themes.d.ts.map +1 -0
  66. package/types/v3.d.ts +12 -0
  67. package/types/v3.d.ts.map +1 -0
@@ -0,0 +1,474 @@
1
+ import { blue, blueDark, gray, grayDark, green, greenDark, orange, orangeDark, pink, pinkDark, purple, purpleDark, red, redDark, yellow, yellowDark } from "@tamagui/colors";
2
+ import { createThemeBuilder } from "@tamagui/theme-builder";
3
+ import { createTokens } from "@tamagui/web";
4
+ const colorTokens = {
5
+ light: {
6
+ blue,
7
+ gray,
8
+ green,
9
+ orange,
10
+ pink,
11
+ purple,
12
+ red,
13
+ yellow
14
+ },
15
+ dark: {
16
+ blue: blueDark,
17
+ gray: grayDark,
18
+ green: greenDark,
19
+ orange: orangeDark,
20
+ pink: pinkDark,
21
+ purple: purpleDark,
22
+ red: redDark,
23
+ yellow: yellowDark
24
+ }
25
+ },
26
+ lightShadowColor = "rgba(0,0,0,0.04)",
27
+ lightShadowColorStrong = "rgba(0,0,0,0.085)",
28
+ darkShadowColor = "rgba(0,0,0,0.2)",
29
+ darkShadowColorStrong = "rgba(0,0,0,0.3)",
30
+ darkColors = {
31
+ ...colorTokens.dark.blue,
32
+ ...colorTokens.dark.gray,
33
+ ...colorTokens.dark.green,
34
+ ...colorTokens.dark.orange,
35
+ ...colorTokens.dark.pink,
36
+ ...colorTokens.dark.purple,
37
+ ...colorTokens.dark.red,
38
+ ...colorTokens.dark.yellow
39
+ },
40
+ lightColors = {
41
+ ...colorTokens.light.blue,
42
+ ...colorTokens.light.gray,
43
+ ...colorTokens.light.green,
44
+ ...colorTokens.light.orange,
45
+ ...colorTokens.light.pink,
46
+ ...colorTokens.light.purple,
47
+ ...colorTokens.light.red,
48
+ ...colorTokens.light.yellow
49
+ },
50
+ color = {
51
+ white0: "rgba(255,255,255,0)",
52
+ white075: "rgba(255,255,255,0.75)",
53
+ white05: "rgba(255,255,255,0.5)",
54
+ white025: "rgba(255,255,255,0.25)",
55
+ black0: "rgba(10,10,10,0)",
56
+ black075: "rgba(10,10,10,0.75)",
57
+ black05: "rgba(10,10,10,0.5)",
58
+ black025: "rgba(10,10,10,0.25)",
59
+ white1: "#fff",
60
+ white2: "#f8f8f8",
61
+ white3: "hsl(0, 0%, 96.3%)",
62
+ white4: "hsl(0, 0%, 94.1%)",
63
+ white5: "hsl(0, 0%, 92.0%)",
64
+ white6: "hsl(0, 0%, 90.0%)",
65
+ white7: "hsl(0, 0%, 88.5%)",
66
+ white8: "hsl(0, 0%, 81.0%)",
67
+ white9: "hsl(0, 0%, 56.1%)",
68
+ white10: "hsl(0, 0%, 50.3%)",
69
+ white11: "hsl(0, 0%, 42.5%)",
70
+ white12: "hsl(0, 0%, 9.0%)",
71
+ black1: "#050505",
72
+ black2: "#151515",
73
+ black3: "#191919",
74
+ black4: "#232323",
75
+ black5: "#282828",
76
+ black6: "#323232",
77
+ black7: "#424242",
78
+ black8: "#494949",
79
+ black9: "#545454",
80
+ black10: "#626262",
81
+ black11: "#a5a5a5",
82
+ black12: "#fff",
83
+ ...postfixObjKeys(lightColors, "Light"),
84
+ ...postfixObjKeys(darkColors, "Dark")
85
+ },
86
+ palettes = (() => {
87
+ const transparent = (hsl, opacity = 0) => hsl.replace("%)", `%, ${opacity})`).replace("hsl(", "hsla("),
88
+ getColorPalette = colors => {
89
+ const colorPalette = Object.values(colors),
90
+ colorI = colorPalette.length - 4;
91
+ return [transparent(colorPalette[0], 0), transparent(colorPalette[0], 0.25), transparent(colorPalette[0], 0.5), transparent(colorPalette[0], 0.75), ...colorPalette, transparent(colorPalette[colorI], 0.75), transparent(colorPalette[colorI], 0.5), transparent(colorPalette[colorI], 0.25), transparent(colorPalette[colorI], 0)];
92
+ },
93
+ lightPalette = [color.white0, color.white075, color.white05, color.white025, color.white1, color.white2, color.white3, color.white4, color.white5, color.white6, color.white7, color.white8, color.white9, color.white10, color.white11, color.white12, color.black075, color.black05, color.black025, color.black0],
94
+ darkPalette = [color.black0, color.black075, color.black05, color.black025, color.black1, color.black2, color.black3, color.black4, color.black5, color.black6, color.black7, color.black8, color.black9, color.black10, color.black11, color.black12, color.white075, color.white05, color.white025, color.white0],
95
+ lightPalettes = objectFromEntries(objectKeys(colorTokens.light).map(key => [`light_${key}`, getColorPalette(colorTokens.light[key])])),
96
+ darkPalettes = objectFromEntries(objectKeys(colorTokens.dark).map(key => [`dark_${key}`, getColorPalette(colorTokens.dark[key])])),
97
+ colorPalettes = {
98
+ ...lightPalettes,
99
+ ...darkPalettes
100
+ };
101
+ return {
102
+ light: lightPalette,
103
+ dark: darkPalette,
104
+ ...colorPalettes
105
+ };
106
+ })(),
107
+ templates = (() => {
108
+ const base = {
109
+ background0: 0,
110
+ background025: 1,
111
+ background05: 2,
112
+ background075: 3,
113
+ color1: 4,
114
+ color2: 5,
115
+ color3: 6,
116
+ color4: 7,
117
+ color5: 8,
118
+ color6: 9,
119
+ color7: 10,
120
+ color8: 11,
121
+ color9: 12,
122
+ color10: 13,
123
+ color11: 14,
124
+ color12: 15,
125
+ color0: -0,
126
+ color025: -1,
127
+ color05: -2,
128
+ color075: -3,
129
+ // the background, color, etc keys here work like generics - they make it so you
130
+ // can publish components for others to use without mandating a specific color scale
131
+ // the @tamagui/button Button component looks for `$background`, so you set the
132
+ // dark_red_Button theme to have a stronger background than the dark_red theme.
133
+ background: 4,
134
+ backgroundHover: 5,
135
+ backgroundPress: 6,
136
+ backgroundFocus: 4,
137
+ borderColor: 7,
138
+ borderColorHover: 8,
139
+ borderColorFocus: 5,
140
+ borderColorPress: 7,
141
+ color: -4,
142
+ colorHover: -5,
143
+ colorPress: -4,
144
+ colorFocus: -5,
145
+ colorTransparent: -0,
146
+ placeholderColor: -7,
147
+ outlineColor: -1
148
+ },
149
+ surface12 = {
150
+ background: base.background + 1,
151
+ backgroundHover: base.backgroundHover + 1,
152
+ backgroundPress: base.backgroundPress + 1,
153
+ backgroundFocus: base.backgroundFocus + 1,
154
+ borderColor: base.borderColor + 1,
155
+ borderColorHover: base.borderColorHover + 1,
156
+ borderColorFocus: base.borderColorFocus + 1,
157
+ borderColorPress: base.borderColorPress + 1
158
+ },
159
+ surface22 = {
160
+ background: base.background + 2,
161
+ backgroundHover: base.backgroundHover + 2,
162
+ backgroundPress: base.backgroundPress + 2,
163
+ backgroundFocus: base.backgroundFocus + 2,
164
+ borderColor: base.borderColor + 2,
165
+ borderColorHover: base.borderColorHover + 2,
166
+ borderColorFocus: base.borderColorFocus + 2,
167
+ borderColorPress: base.borderColorPress + 2
168
+ },
169
+ surface32 = {
170
+ background: base.background + 3,
171
+ backgroundHover: base.backgroundHover + 3,
172
+ backgroundPress: base.backgroundPress + 3,
173
+ backgroundFocus: base.backgroundFocus + 3,
174
+ borderColor: base.borderColor + 3,
175
+ borderColorHover: base.borderColorHover + 3,
176
+ borderColorFocus: base.borderColorFocus + 3,
177
+ borderColorPress: base.borderColorPress + 3
178
+ },
179
+ surfaceActive = {
180
+ background: base.background + 5,
181
+ backgroundHover: base.background + 5,
182
+ backgroundPress: base.backgroundPress + 5,
183
+ backgroundFocus: base.backgroundFocus + 5,
184
+ borderColor: base.borderColor + 5,
185
+ borderColorHover: base.borderColor + 5,
186
+ borderColorFocus: base.borderColorFocus + 5,
187
+ borderColorPress: base.borderColorPress + 5
188
+ },
189
+ inverseSurface12 = {
190
+ color: surface12.background,
191
+ colorHover: surface12.backgroundHover,
192
+ colorPress: surface12.backgroundPress,
193
+ colorFocus: surface12.backgroundFocus,
194
+ background: base.color,
195
+ backgroundHover: base.colorHover,
196
+ backgroundPress: base.colorPress,
197
+ backgroundFocus: base.colorFocus,
198
+ borderColor: base.color - 2,
199
+ borderColorHover: base.color - 3,
200
+ borderColorFocus: base.color - 4,
201
+ borderColorPress: base.color - 5
202
+ },
203
+ inverseActive = {
204
+ ...inverseSurface12,
205
+ background: base.color - 2,
206
+ backgroundHover: base.colorHover - 2,
207
+ backgroundPress: base.colorPress - 2,
208
+ backgroundFocus: base.colorFocus - 2,
209
+ borderColor: base.color - 2 - 2,
210
+ borderColorHover: base.color - 3 - 2,
211
+ borderColorFocus: base.color - 4 - 2,
212
+ borderColorPress: base.color - 5 - 2
213
+ },
214
+ alt1 = {
215
+ color: base.color - 1,
216
+ colorHover: base.colorHover - 1,
217
+ colorPress: base.colorPress - 1,
218
+ colorFocus: base.colorFocus - 1
219
+ },
220
+ alt2 = {
221
+ color: base.color - 2,
222
+ colorHover: base.colorHover - 2,
223
+ colorPress: base.colorPress - 2,
224
+ colorFocus: base.colorFocus - 2
225
+ };
226
+ return {
227
+ base,
228
+ alt1,
229
+ alt2,
230
+ surface1: surface12,
231
+ surface2: surface22,
232
+ surface3: surface32,
233
+ inverseSurface1: inverseSurface12,
234
+ inverseActive,
235
+ surfaceActive
236
+ };
237
+ })(),
238
+ shadows = {
239
+ light: {
240
+ shadowColor: lightShadowColorStrong,
241
+ shadowColorHover: lightShadowColorStrong,
242
+ shadowColorPress: lightShadowColor,
243
+ shadowColorFocus: lightShadowColor
244
+ },
245
+ dark: {
246
+ shadowColor: darkShadowColorStrong,
247
+ shadowColorHover: darkShadowColorStrong,
248
+ shadowColorPress: darkShadowColor,
249
+ shadowColorFocus: darkShadowColor
250
+ }
251
+ },
252
+ nonInherited = {
253
+ light: {
254
+ ...lightColors,
255
+ ...shadows.light
256
+ },
257
+ dark: {
258
+ ...darkColors,
259
+ ...shadows.dark
260
+ }
261
+ },
262
+ overlayThemeDefinitions = [{
263
+ parent: "light",
264
+ theme: {
265
+ background: "rgba(0,0,0,0.5)"
266
+ }
267
+ }, {
268
+ parent: "dark",
269
+ theme: {
270
+ background: "rgba(0,0,0,0.9)"
271
+ }
272
+ }],
273
+ inverseSurface1 = [{
274
+ parent: "active",
275
+ template: "inverseActive"
276
+ }, {
277
+ parent: "",
278
+ template: "inverseSurface1"
279
+ }],
280
+ surface1 = [{
281
+ parent: "active",
282
+ template: "surfaceActive"
283
+ }, {
284
+ parent: "",
285
+ template: "surface1"
286
+ }],
287
+ surface2 = [{
288
+ parent: "active",
289
+ template: "surfaceActive"
290
+ }, {
291
+ parent: "",
292
+ template: "surface2"
293
+ }],
294
+ surface3 = [{
295
+ parent: "active",
296
+ template: "surfaceActive"
297
+ }, {
298
+ parent: "",
299
+ template: "surface3"
300
+ }],
301
+ themeBuilder = createThemeBuilder().addPalettes(palettes).addTemplates(templates).addThemes({
302
+ light: {
303
+ template: "base",
304
+ palette: "light",
305
+ nonInheritedValues: nonInherited.light
306
+ },
307
+ dark: {
308
+ template: "base",
309
+ palette: "dark",
310
+ nonInheritedValues: nonInherited.dark
311
+ }
312
+ }).addChildThemes({
313
+ orange: {
314
+ palette: "orange",
315
+ template: "base"
316
+ },
317
+ yellow: {
318
+ palette: "yellow",
319
+ template: "base"
320
+ },
321
+ green: {
322
+ palette: "green",
323
+ template: "base"
324
+ },
325
+ blue: {
326
+ palette: "blue",
327
+ template: "base"
328
+ },
329
+ purple: {
330
+ palette: "purple",
331
+ template: "base"
332
+ },
333
+ pink: {
334
+ palette: "pink",
335
+ template: "base"
336
+ },
337
+ red: {
338
+ palette: "red",
339
+ template: "base"
340
+ },
341
+ gray: {
342
+ palette: "gray",
343
+ template: "base"
344
+ }
345
+ }).addChildThemes({
346
+ alt1: {
347
+ template: "alt1"
348
+ },
349
+ alt2: {
350
+ template: "alt2"
351
+ },
352
+ active: {
353
+ template: "surface3"
354
+ }
355
+ }).addChildThemes({
356
+ ListItem: {
357
+ template: "surface1"
358
+ },
359
+ Card: surface1,
360
+ Button: surface3,
361
+ Checkbox: surface2,
362
+ Switch: surface2,
363
+ SwitchThumb: inverseSurface1,
364
+ TooltipContent: surface2,
365
+ DrawerFrame: {
366
+ template: "surface1"
367
+ },
368
+ Progress: {
369
+ template: "surface1"
370
+ },
371
+ RadioGroupItem: surface2,
372
+ TooltipArrow: {
373
+ template: "surface1"
374
+ },
375
+ SliderTrackActive: {
376
+ template: "surface3"
377
+ },
378
+ SliderTrack: {
379
+ template: "surface1"
380
+ },
381
+ SliderThumb: inverseSurface1,
382
+ Tooltip: inverseSurface1,
383
+ ProgressIndicator: inverseSurface1,
384
+ SheetOverlay: overlayThemeDefinitions,
385
+ DialogOverlay: overlayThemeDefinitions,
386
+ ModalOverlay: overlayThemeDefinitions,
387
+ Input: surface1,
388
+ TextArea: surface1
389
+ }, {
390
+ avoidNestingWithin: ["alt1", "alt2"]
391
+ }),
392
+ themesIn = themeBuilder.build(),
393
+ themes = themesIn,
394
+ size = {
395
+ $0: 0,
396
+ "$0.25": 2,
397
+ "$0.5": 4,
398
+ "$0.75": 8,
399
+ $1: 20,
400
+ "$1.5": 24,
401
+ $2: 28,
402
+ "$2.5": 32,
403
+ $3: 36,
404
+ "$3.5": 40,
405
+ $4: 44,
406
+ $true: 44,
407
+ "$4.5": 48,
408
+ $5: 52,
409
+ $6: 64,
410
+ $7: 74,
411
+ $8: 84,
412
+ $9: 94,
413
+ $10: 104,
414
+ $11: 124,
415
+ $12: 144,
416
+ $13: 164,
417
+ $14: 184,
418
+ $15: 204,
419
+ $16: 224,
420
+ $17: 224,
421
+ $18: 244,
422
+ $19: 264,
423
+ $20: 284
424
+ },
425
+ spaces = Object.entries(size).map(([k, v]) => [k, sizeToSpace(v)]),
426
+ spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v]),
427
+ space = {
428
+ ...Object.fromEntries(spaces),
429
+ ...Object.fromEntries(spacesNegative)
430
+ },
431
+ zIndex = {
432
+ 0: 0,
433
+ 1: 100,
434
+ 2: 200,
435
+ 3: 300,
436
+ 4: 400,
437
+ 5: 500
438
+ },
439
+ radius = {
440
+ 0: 0,
441
+ 1: 3,
442
+ 2: 5,
443
+ 3: 7,
444
+ 4: 9,
445
+ true: 9,
446
+ 5: 10,
447
+ 6: 16,
448
+ 7: 19,
449
+ 8: 22,
450
+ 9: 26,
451
+ 10: 34,
452
+ 11: 42,
453
+ 12: 50
454
+ },
455
+ tokens = createTokens({
456
+ color,
457
+ radius,
458
+ zIndex,
459
+ space,
460
+ size
461
+ });
462
+ function postfixObjKeys(obj, postfix) {
463
+ return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v]));
464
+ }
465
+ function sizeToSpace(v) {
466
+ return v === 0 ? 0 : v === 2 ? 0.5 : v === 4 ? 1 : v === 8 ? 1.5 : v <= 16 ? Math.round(v * 0.333) : Math.floor(v * 0.7 - 12);
467
+ }
468
+ function objectFromEntries(arr) {
469
+ return Object.fromEntries(arr);
470
+ }
471
+ function objectKeys(obj) {
472
+ return Object.keys(obj);
473
+ }
474
+ export { palettes, templates, themes, tokens };