@tamagui/themes 1.121.12 → 1.122.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.
Files changed (211) hide show
  1. package/biome.json +3 -1
  2. package/dist/cjs/generated-new.cjs +1414 -2818
  3. package/dist/cjs/generated-new.js +1414 -1411
  4. package/dist/cjs/generated-new.js.map +1 -1
  5. package/dist/cjs/generated-new.native.js +1993 -3396
  6. package/dist/cjs/generated-new.native.js.map +2 -2
  7. package/dist/cjs/generated-v2.cjs +1914 -3296
  8. package/dist/cjs/generated-v2.js +1392 -1389
  9. package/dist/cjs/generated-v2.js.map +1 -1
  10. package/dist/cjs/generated-v2.native.js +2439 -3820
  11. package/dist/cjs/generated-v2.native.js.map +2 -2
  12. package/dist/cjs/generated-v3.cjs +906 -1802
  13. package/dist/cjs/generated-v3.js +906 -3083
  14. package/dist/cjs/generated-v3.js.map +1 -1
  15. package/dist/cjs/generated-v3.native.js +1071 -1966
  16. package/dist/cjs/generated-v3.native.js.map +2 -2
  17. package/dist/cjs/generated-v4-tamagui.cjs +767 -0
  18. package/dist/cjs/generated-v4-tamagui.js +1425 -0
  19. package/dist/cjs/generated-v4-tamagui.js.map +6 -0
  20. package/dist/cjs/{v4-tamagui-out.native.js → generated-v4-tamagui.native.js} +5220 -4932
  21. package/dist/cjs/generated-v4-tamagui.native.js.map +6 -0
  22. package/dist/cjs/index.cjs +3 -1
  23. package/dist/cjs/index.js +2 -0
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/index.native.js +5 -1
  26. package/dist/cjs/index.native.js.map +1 -1
  27. package/dist/cjs/themes.cjs +6 -17
  28. package/dist/cjs/themes.js +4 -12
  29. package/dist/cjs/themes.js.map +1 -1
  30. package/dist/cjs/themes.native.js +4 -12
  31. package/dist/cjs/themes.native.js.map +1 -1
  32. package/dist/cjs/types.native.js.map +1 -1
  33. package/dist/cjs/v2.cjs +7 -19
  34. package/dist/cjs/v2.js +4 -13
  35. package/dist/cjs/v2.js.map +1 -1
  36. package/dist/cjs/v2.native.js +4 -12
  37. package/dist/cjs/v2.native.js.map +2 -2
  38. package/dist/cjs/v3-themes.cjs +4 -73
  39. package/dist/cjs/v3-themes.js +4 -68
  40. package/dist/cjs/v3-themes.js.map +2 -2
  41. package/dist/cjs/v3-themes.native.js +5 -87
  42. package/dist/cjs/v3-themes.native.js.map +2 -2
  43. package/dist/cjs/v3-tokens.cjs +99 -0
  44. package/dist/cjs/v3-tokens.js +88 -0
  45. package/dist/cjs/v3-tokens.js.map +6 -0
  46. package/dist/cjs/v3-tokens.native.js +110 -0
  47. package/dist/cjs/v3-tokens.native.js.map +6 -0
  48. package/dist/cjs/v3.cjs +7 -19
  49. package/dist/cjs/v3.js +4 -13
  50. package/dist/cjs/v3.js.map +1 -1
  51. package/dist/cjs/v3.native.js +4 -12
  52. package/dist/cjs/v3.native.js.map +2 -2
  53. package/dist/cjs/v4-tamagui.cjs +121 -79
  54. package/dist/cjs/v4-tamagui.js +116 -77
  55. package/dist/cjs/v4-tamagui.js.map +1 -1
  56. package/dist/cjs/v4-tamagui.native.js +115 -76
  57. package/dist/cjs/v4-tamagui.native.js.map +2 -2
  58. package/dist/cjs/v4.cjs +11 -22
  59. package/dist/cjs/v4.js +7 -14
  60. package/dist/cjs/v4.js.map +1 -1
  61. package/dist/cjs/v4.native.js +9 -16
  62. package/dist/cjs/v4.native.js.map +1 -1
  63. package/dist/esm/generated-new.js +1414 -1411
  64. package/dist/esm/generated-new.js.map +1 -1
  65. package/dist/esm/generated-new.mjs +1413 -1411
  66. package/dist/esm/generated-new.mjs.map +1 -1
  67. package/dist/esm/generated-new.native.js +1991 -1988
  68. package/dist/esm/generated-new.native.js.map +2 -2
  69. package/dist/esm/generated-v2.js +1392 -1389
  70. package/dist/esm/generated-v2.js.map +1 -1
  71. package/dist/esm/generated-v2.mjs +1913 -1911
  72. package/dist/esm/generated-v2.mjs.map +1 -1
  73. package/dist/esm/generated-v2.native.js +2437 -2434
  74. package/dist/esm/generated-v2.native.js.map +2 -2
  75. package/dist/esm/generated-v3.js +906 -3083
  76. package/dist/esm/generated-v3.js.map +1 -1
  77. package/dist/esm/generated-v3.mjs +905 -903
  78. package/dist/esm/generated-v3.mjs.map +1 -1
  79. package/dist/esm/generated-v3.native.js +1069 -1066
  80. package/dist/esm/generated-v3.native.js.map +2 -2
  81. package/dist/esm/generated-v4-tamagui.js +1409 -0
  82. package/dist/esm/generated-v4-tamagui.js.map +6 -0
  83. package/dist/esm/generated-v4-tamagui.mjs +743 -0
  84. package/dist/esm/generated-v4-tamagui.mjs.map +1 -0
  85. package/dist/esm/{v4-tamagui-out.native.js → generated-v4-tamagui.native.js} +5215 -4411
  86. package/dist/esm/generated-v4-tamagui.native.js.map +6 -0
  87. package/dist/esm/index.js +2 -0
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/index.mjs +2 -0
  90. package/dist/esm/index.mjs.map +1 -1
  91. package/dist/esm/index.native.js +2 -0
  92. package/dist/esm/index.native.js.map +1 -1
  93. package/dist/esm/themes.js +1 -1
  94. package/dist/esm/themes.js.map +1 -1
  95. package/dist/esm/themes.mjs +1 -1
  96. package/dist/esm/themes.mjs.map +1 -1
  97. package/dist/esm/themes.native.js +1 -1
  98. package/dist/esm/themes.native.js.map +1 -1
  99. package/dist/esm/v2.js +1 -2
  100. package/dist/esm/v2.js.map +1 -1
  101. package/dist/esm/v2.mjs +1 -2
  102. package/dist/esm/v2.mjs.map +1 -1
  103. package/dist/esm/v2.native.js +1 -2
  104. package/dist/esm/v2.native.js.map +2 -2
  105. package/dist/esm/v3-themes.js +5 -68
  106. package/dist/esm/v3-themes.js.map +1 -1
  107. package/dist/esm/v3-themes.mjs +4 -67
  108. package/dist/esm/v3-themes.mjs.map +1 -1
  109. package/dist/esm/v3-themes.native.js +5 -80
  110. package/dist/esm/v3-themes.native.js.map +2 -2
  111. package/dist/esm/v3-tokens.js +72 -0
  112. package/dist/esm/v3-tokens.js.map +6 -0
  113. package/dist/esm/v3-tokens.mjs +70 -0
  114. package/dist/esm/v3-tokens.mjs.map +1 -0
  115. package/dist/esm/v3-tokens.native.js +84 -0
  116. package/dist/esm/v3-tokens.native.js.map +6 -0
  117. package/dist/esm/v3.js +1 -2
  118. package/dist/esm/v3.js.map +1 -1
  119. package/dist/esm/v3.mjs +1 -2
  120. package/dist/esm/v3.mjs.map +1 -1
  121. package/dist/esm/v3.native.js +1 -2
  122. package/dist/esm/v3.native.js.map +2 -2
  123. package/dist/esm/v4-tamagui.js +107 -93
  124. package/dist/esm/v4-tamagui.js.map +1 -1
  125. package/dist/esm/v4-tamagui.mjs +106 -75
  126. package/dist/esm/v4-tamagui.mjs.map +1 -1
  127. package/dist/esm/v4-tamagui.native.js +107 -76
  128. package/dist/esm/v4-tamagui.native.js.map +2 -2
  129. package/dist/esm/v4.js +4 -3
  130. package/dist/esm/v4.js.map +1 -1
  131. package/dist/esm/v4.mjs +4 -4
  132. package/dist/esm/v4.mjs.map +1 -1
  133. package/dist/esm/v4.native.js +5 -4
  134. package/dist/esm/v4.native.js.map +2 -2
  135. package/package.json +11 -9
  136. package/src/generated-new.ts +1479 -1987
  137. package/src/generated-v2.ts +1988 -2434
  138. package/src/generated-v3.ts +1492 -3685
  139. package/src/generated-v4-tamagui.ts +1895 -0
  140. package/src/index.tsx +2 -0
  141. package/src/themes.tsx +1 -4
  142. package/src/types.ts +1 -7
  143. package/src/v2.tsx +1 -4
  144. package/src/v3-themes.ts +4 -101
  145. package/src/v3-tokens.ts +103 -0
  146. package/src/v3.tsx +1 -3
  147. package/src/v4-tamagui.ts +129 -100
  148. package/src/v4.tsx +3 -4
  149. package/types/generated-new.d.ts +3 -1408
  150. package/types/generated-v2.d.ts +3 -1386
  151. package/types/generated-v3.d.ts +3 -900
  152. package/types/generated-v4-tamagui.d.ts +185 -0
  153. package/types/index.d.ts +2 -0
  154. package/types/themes.d.ts +1 -2
  155. package/types/types.d.ts +1 -5
  156. package/types/v2.d.ts +1 -2
  157. package/types/v3-themes.d.ts +114 -180
  158. package/types/v3-tokens.d.ts +184 -0
  159. package/types/v3.d.ts +1 -2
  160. package/types/v4-tamagui.d.ts +11 -15572
  161. package/types/v4.d.ts +3 -3
  162. package/dist/cjs/v4-createTheme.cjs +0 -257
  163. package/dist/cjs/v4-createTheme.js +0 -232
  164. package/dist/cjs/v4-createTheme.js.map +0 -6
  165. package/dist/cjs/v4-createTheme.native.js +0 -284
  166. package/dist/cjs/v4-createTheme.native.js.map +0 -6
  167. package/dist/cjs/v4-default.cjs +0 -102
  168. package/dist/cjs/v4-default.js +0 -89
  169. package/dist/cjs/v4-default.js.map +0 -6
  170. package/dist/cjs/v4-default.native.js +0 -99
  171. package/dist/cjs/v4-default.native.js.map +0 -6
  172. package/dist/cjs/v4-defaultTemplates.cjs +0 -158
  173. package/dist/cjs/v4-defaultTemplates.js +0 -144
  174. package/dist/cjs/v4-defaultTemplates.js.map +0 -6
  175. package/dist/cjs/v4-defaultTemplates.native.js +0 -154
  176. package/dist/cjs/v4-defaultTemplates.native.js.map +0 -6
  177. package/dist/cjs/v4-tamagui-out.cjs +0 -1217
  178. package/dist/cjs/v4-tamagui-out.js +0 -1241
  179. package/dist/cjs/v4-tamagui-out.js.map +0 -6
  180. package/dist/cjs/v4-tamagui-out.native.js.map +0 -6
  181. package/dist/esm/v4-createTheme.js +0 -221
  182. package/dist/esm/v4-createTheme.js.map +0 -6
  183. package/dist/esm/v4-createTheme.mjs +0 -226
  184. package/dist/esm/v4-createTheme.mjs.map +0 -1
  185. package/dist/esm/v4-createTheme.native.js +0 -261
  186. package/dist/esm/v4-createTheme.native.js.map +0 -6
  187. package/dist/esm/v4-default.js +0 -74
  188. package/dist/esm/v4-default.js.map +0 -6
  189. package/dist/esm/v4-default.mjs +0 -79
  190. package/dist/esm/v4-default.mjs.map +0 -1
  191. package/dist/esm/v4-default.native.js +0 -80
  192. package/dist/esm/v4-default.native.js.map +0 -6
  193. package/dist/esm/v4-defaultTemplates.js +0 -128
  194. package/dist/esm/v4-defaultTemplates.js.map +0 -6
  195. package/dist/esm/v4-defaultTemplates.mjs +0 -135
  196. package/dist/esm/v4-defaultTemplates.mjs.map +0 -1
  197. package/dist/esm/v4-defaultTemplates.native.js +0 -134
  198. package/dist/esm/v4-defaultTemplates.native.js.map +0 -6
  199. package/dist/esm/v4-tamagui-out.js +0 -1225
  200. package/dist/esm/v4-tamagui-out.js.map +0 -6
  201. package/dist/esm/v4-tamagui-out.mjs +0 -677
  202. package/dist/esm/v4-tamagui-out.mjs.map +0 -1
  203. package/dist/esm/v4-tamagui-out.native.js.map +0 -6
  204. package/src/v4-createTheme.ts +0 -403
  205. package/src/v4-default.ts +0 -88
  206. package/src/v4-defaultTemplates.ts +0 -165
  207. package/src/v4-tamagui-out.ts +0 -1667
  208. package/types/v4-createTheme.d.ts +0 -157
  209. package/types/v4-default.d.ts +0 -797
  210. package/types/v4-defaultTemplates.d.ts +0 -44
  211. package/types/v4-tamagui-out.d.ts +0 -659
package/src/index.tsx CHANGED
@@ -6,3 +6,5 @@ export * from './palettes'
6
6
  export * from '@tamagui/colors'
7
7
  export * from './templates'
8
8
  export * from './shadows'
9
+ export * from './types'
10
+ export * from './helpers'
package/src/themes.tsx CHANGED
@@ -1,4 +1 @@
1
- import * as themes from './generated-new'
2
- export { themes }
3
-
4
- // export { themes } from './themes-new'
1
+ export { themes } from './generated-new'
package/src/types.ts CHANGED
@@ -1,18 +1,12 @@
1
- import type { Template, ThemeDefinitions } from '@tamagui/create-theme'
1
+ import type { Template } from '@tamagui/create-theme'
2
2
 
3
3
  type ThemeSuiteItem = {
4
4
  id: string
5
5
  name: string
6
6
  createdAt: number
7
7
  updatedAt: number
8
-
9
8
  schemes: { light: boolean; dark: boolean }
10
9
  palettes: Record<string, BuildPalette>
11
- templates: BuildTemplates
12
-
13
- baseTheme: BuildTheme
14
- subThemes: BuildSubTheme[]
15
- componentThemes: ThemeDefinitions
16
10
  }
17
11
 
18
12
  export type ThemeSuiteItemData = Omit<ThemeSuiteItem, 'id' | 'createdAt' | 'updatedAt'>
package/src/v2.tsx CHANGED
@@ -1,8 +1,5 @@
1
- import * as generatedThemes from './generated-v2'
2
- export const themes = generatedThemes
3
-
1
+ export { themes } from './generated-v2'
4
2
  export { tokens } from './tokens'
5
-
6
3
  // specific colors since we have cjs here
7
4
  export { blue, blueDark } from '@tamagui/colors'
8
5
  export { green, greenDark } from '@tamagui/colors'
package/src/v3-themes.ts CHANGED
@@ -18,7 +18,8 @@ import {
18
18
  } from '@tamagui/colors'
19
19
  import { createThemeBuilder, objectFromEntries } from '@tamagui/theme-builder'
20
20
  import { createTokens } from '@tamagui/web'
21
- import { objectKeys, postfixObjKeys, sizeToSpace } from './utils'
21
+ import { objectKeys, postfixObjKeys } from './utils'
22
+ import { tokens as v3Tokens } from './v3-tokens'
22
23
 
23
24
  const colorTokens = {
24
25
  light: {
@@ -641,107 +642,9 @@ export type ThemesOut = Record<keyof typeof themesIn, Theme>
641
642
 
642
643
  export const themes = themesIn as any as ThemesOut
643
644
 
644
- // --- tokens ---
645
-
646
- // should roughly map to button/input etc height at each level
647
- // fonts should match that height/lineHeight at each stop
648
- // so these are really non-linear on purpose
649
- // why?
650
- // - at sizes <1, used for fine grained things (borders, smallest paddingY)
651
- // - so smallest padY should be roughly 1-4px so it can join with lineHeight
652
- // - at sizes >=1, have to consider "pressability" (jumps up)
653
- // - after that it should go upwards somewhat naturally
654
- // - H1 / headings top out at 10 naturally, so after 10 we can go upwards faster
655
- // but also one more wrinkle...
656
- // space is used in conjunction with size
657
- // i'm setting space to generally just a fixed fraction of size (~1/3-2/3 still fine tuning)
658
- export const size = {
659
- $0: 0,
660
- '$0.25': 2,
661
- '$0.5': 4,
662
- '$0.75': 8,
663
- $1: 20,
664
- '$1.5': 24,
665
- $2: 28,
666
- '$2.5': 32,
667
- $3: 36,
668
- '$3.5': 40,
669
- $4: 44,
670
- $true: 44,
671
- '$4.5': 48,
672
- $5: 52,
673
- $6: 64,
674
- $7: 74,
675
- $8: 84,
676
- $9: 94,
677
- $10: 104,
678
- $11: 124,
679
- $12: 144,
680
- $13: 164,
681
- $14: 184,
682
- $15: 204,
683
- $16: 224,
684
- $17: 224,
685
- $18: 244,
686
- $19: 264,
687
- $20: 284,
688
- }
689
-
690
- type SizeKeysIn = keyof typeof size
691
- type Sizes = {
692
- [Key in SizeKeysIn extends `$${infer Key}` ? Key : SizeKeysIn]: number
693
- }
694
- type SizeKeys = `${keyof Sizes extends `${infer K}` ? K : never}`
695
-
696
- export const spaces = Object.entries(size).map(([k, v]) => {
697
- return [k, sizeToSpace(v)] as const
698
- })
699
-
700
- export const spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v])
701
-
702
- type SizeKeysWithNegatives =
703
- | Exclude<`-${SizeKeys extends `$${infer Key}` ? Key : SizeKeys}`, '-0'>
704
- | SizeKeys
705
-
706
- export const space: {
707
- [Key in SizeKeysWithNegatives]: Key extends keyof Sizes ? Sizes[Key] : number
708
- } = {
709
- ...Object.fromEntries(spaces),
710
- ...Object.fromEntries(spacesNegative),
711
- } as any
712
-
713
- export const zIndex = {
714
- 0: 0,
715
- 1: 100,
716
- 2: 200,
717
- 3: 300,
718
- 4: 400,
719
- 5: 500,
720
- }
721
-
722
- export const radius = {
723
- 0: 0,
724
- 1: 3,
725
- 2: 5,
726
- 3: 7,
727
- 4: 9,
728
- true: 9,
729
- 5: 10,
730
- 6: 16,
731
- 7: 19,
732
- 8: 22,
733
- 9: 26,
734
- 10: 34,
735
- 11: 42,
736
- 12: 50,
737
- }
645
+ // -- tokens ---
738
646
 
739
647
  export const tokens = createTokens({
740
648
  color,
741
- radius,
742
- zIndex,
743
- space,
744
- size,
649
+ ...v3Tokens,
745
650
  })
746
-
747
- // --- utils ---
@@ -0,0 +1,103 @@
1
+ import { sizeToSpace } from './utils'
2
+
3
+ // --- tokens ---
4
+
5
+ // should roughly map to button/input etc height at each level
6
+ // fonts should match that height/lineHeight at each stop
7
+ // so these are really non-linear on purpose
8
+ // why?
9
+ // - at sizes <1, used for fine grained things (borders, smallest paddingY)
10
+ // - so smallest padY should be roughly 1-4px so it can join with lineHeight
11
+ // - at sizes >=1, have to consider "pressability" (jumps up)
12
+ // - after that it should go upwards somewhat naturally
13
+ // - H1 / headings top out at 10 naturally, so after 10 we can go upwards faster
14
+ // but also one more wrinkle...
15
+ // space is used in conjunction with size
16
+ // i'm setting space to generally just a fixed fraction of size (~1/3-2/3 still fine tuning)
17
+ export const size = {
18
+ $0: 0,
19
+ '$0.25': 2,
20
+ '$0.5': 4,
21
+ '$0.75': 8,
22
+ $1: 20,
23
+ '$1.5': 24,
24
+ $2: 28,
25
+ '$2.5': 32,
26
+ $3: 36,
27
+ '$3.5': 40,
28
+ $4: 44,
29
+ $true: 44,
30
+ '$4.5': 48,
31
+ $5: 52,
32
+ $6: 64,
33
+ $7: 74,
34
+ $8: 84,
35
+ $9: 94,
36
+ $10: 104,
37
+ $11: 124,
38
+ $12: 144,
39
+ $13: 164,
40
+ $14: 184,
41
+ $15: 204,
42
+ $16: 224,
43
+ $17: 224,
44
+ $18: 244,
45
+ $19: 264,
46
+ $20: 284,
47
+ }
48
+
49
+ type SizeKeysIn = keyof typeof size
50
+ type Sizes = {
51
+ [Key in SizeKeysIn extends `$${infer Key}` ? Key : SizeKeysIn]: number
52
+ }
53
+ type SizeKeys = `${keyof Sizes extends `${infer K}` ? K : never}`
54
+
55
+ export const spaces = Object.entries(size).map(([k, v]) => {
56
+ return [k, sizeToSpace(v)] as const
57
+ })
58
+
59
+ export const spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v])
60
+
61
+ type SizeKeysWithNegatives =
62
+ | Exclude<`-${SizeKeys extends `$${infer Key}` ? Key : SizeKeys}`, '-0'>
63
+ | SizeKeys
64
+
65
+ export const space: {
66
+ [Key in SizeKeysWithNegatives]: Key extends keyof Sizes ? Sizes[Key] : number
67
+ } = {
68
+ ...Object.fromEntries(spaces),
69
+ ...Object.fromEntries(spacesNegative),
70
+ } as any
71
+
72
+ export const zIndex = {
73
+ 0: 0,
74
+ 1: 100,
75
+ 2: 200,
76
+ 3: 300,
77
+ 4: 400,
78
+ 5: 500,
79
+ }
80
+
81
+ export const radius = {
82
+ 0: 0,
83
+ 1: 3,
84
+ 2: 5,
85
+ 3: 7,
86
+ 4: 9,
87
+ true: 9,
88
+ 5: 10,
89
+ 6: 16,
90
+ 7: 19,
91
+ 8: 22,
92
+ 9: 26,
93
+ 10: 34,
94
+ 11: 42,
95
+ 12: 50,
96
+ }
97
+
98
+ export const tokens = {
99
+ radius,
100
+ zIndex,
101
+ space,
102
+ size,
103
+ } as const
package/src/v3.tsx CHANGED
@@ -1,6 +1,4 @@
1
- import * as generatedThemes from './generated-v3'
2
- export const themes = generatedThemes
3
-
1
+ export { themes } from './generated-v3'
4
2
  export { tokens } from './v3-themes'
5
3
 
6
4
  // specific colors since we have cjs here
package/src/v4-tamagui.ts CHANGED
@@ -1,61 +1,21 @@
1
- import {
2
- blue,
3
- blueDark,
4
- gray,
5
- grayDark,
6
- green,
7
- greenDark,
8
- orange,
9
- orangeDark,
10
- pink,
11
- pinkDark,
12
- purple,
13
- purpleDark,
14
- red,
15
- redDark,
16
- yellow,
17
- yellowDark,
18
- } from '@tamagui/colors'
19
- import { createThemeSuite } from './v4-createTheme'
1
+ import * as Colors from '@tamagui/colors'
2
+ import { createThemes, defaultComponentThemes } from '@tamagui/theme-builder'
20
3
 
21
- const colorTokens = {
22
- light: {
23
- blue,
24
- gray,
25
- green,
26
- orange,
27
- pink,
28
- purple,
29
- red,
30
- yellow,
31
- },
32
- dark: {
33
- blue: blueDark,
34
- gray: grayDark,
35
- green: greenDark,
36
- orange: orangeDark,
37
- pink: pinkDark,
38
- purple: purpleDark,
39
- red: redDark,
40
- yellow: yellowDark,
41
- },
42
- }
43
-
44
- const lightShadowColor = 'rgba(0,0,0,0.04)'
45
- const lightShadowColorStrong = 'rgba(0,0,0,0.085)'
46
- const darkShadowColor = 'rgba(0,0,0,0.2)'
47
- const darkShadowColorStrong = 'rgba(0,0,0,0.3)'
4
+ /**
5
+ * Default themes for the tamagui.dev site
6
+ * If you'd like to create your own themes, use `createThemes`
7
+ */
48
8
 
49
9
  const darkPalette = [
50
- '#050505',
10
+ '#040404',
11
+ '#090909',
12
+ '#111',
51
13
  '#151515',
52
- '#191919',
53
- '#232323',
14
+ '#222',
54
15
  '#282828',
55
- '#323232',
16
+ '#343434',
56
17
  '#424242',
57
- '#494949',
58
- '#545454',
18
+ '#515151',
59
19
  '#626262',
60
20
  '#a5a5a5',
61
21
  '#fff',
@@ -76,106 +36,163 @@ const lightPalette = [
76
36
  'hsl(0, 0%, 9.0%)',
77
37
  ]
78
38
 
79
- /**
80
- * Default themes for the tamagui.dev site
81
- * If you'd like to create your own themes, use `createThemeSuite`
82
- */
83
- export const tamaguiThemes = createThemeSuite({
39
+ const lightShadows = {
40
+ shadow1: 'rgba(0,0,0,0.04)',
41
+ shadow2: 'rgba(0,0,0,0.08)',
42
+ shadow3: 'rgba(0,0,0,0.16)',
43
+ shadow4: 'rgba(0,0,0,0.24)',
44
+ shadow5: 'rgba(0,0,0,0.32)',
45
+ shadow6: 'rgba(0,0,0,0.4)',
46
+ }
47
+
48
+ const darkShadows = {
49
+ shadow1: 'rgba(0,0,0,0.2)',
50
+ shadow2: 'rgba(0,0,0,0.3)',
51
+ shadow3: 'rgba(0,0,0,0.4)',
52
+ shadow4: 'rgba(0,0,0,0.5)',
53
+ shadow5: 'rgba(0,0,0,0.6)',
54
+ shadow6: 'rgba(0,0,0,0.7)',
55
+ }
56
+
57
+ const blackColors = {
58
+ black1: darkPalette[0],
59
+ black2: darkPalette[1],
60
+ black3: darkPalette[2],
61
+ black4: darkPalette[3],
62
+ black5: darkPalette[4],
63
+ black6: darkPalette[5],
64
+ black7: darkPalette[6],
65
+ black8: darkPalette[7],
66
+ black9: darkPalette[8],
67
+ black10: darkPalette[9],
68
+ black11: darkPalette[10],
69
+ black12: darkPalette[11],
70
+ }
71
+
72
+ const whiteColors = {
73
+ white1: lightPalette[0],
74
+ white2: lightPalette[1],
75
+ white3: lightPalette[2],
76
+ white4: lightPalette[3],
77
+ white5: lightPalette[4],
78
+ white6: lightPalette[5],
79
+ white7: lightPalette[6],
80
+ white8: lightPalette[7],
81
+ white9: lightPalette[8],
82
+ white10: lightPalette[9],
83
+ white11: lightPalette[10],
84
+ white12: lightPalette[11],
85
+ }
86
+
87
+ const themes = createThemes({
88
+ componentThemes: defaultComponentThemes,
89
+
84
90
  base: {
85
91
  palette: {
86
92
  dark: darkPalette,
87
93
  light: lightPalette,
88
94
  },
89
95
 
90
- // we set a bunch of colors like $red1 => $red1
91
- // we only want to set it on the base light/dark theme
96
+ // for values we don't want being inherited onto sub-themes
92
97
  extra: {
93
98
  light: {
94
- ...colorTokens.light.blue,
95
- ...colorTokens.light.gray,
96
- ...colorTokens.light.green,
97
- ...colorTokens.light.orange,
98
- ...colorTokens.light.pink,
99
- ...colorTokens.light.purple,
100
- ...colorTokens.light.red,
101
- ...colorTokens.light.yellow,
102
- shadowColor: lightShadowColorStrong,
103
- shadowColorHover: lightShadowColorStrong,
104
- shadowColorPress: lightShadowColor,
105
- shadowColorFocus: lightShadowColor,
99
+ ...Colors.blue,
100
+ ...Colors.gray,
101
+ ...Colors.green,
102
+ ...Colors.orange,
103
+ ...Colors.pink,
104
+ ...Colors.purple,
105
+ ...Colors.red,
106
+ ...Colors.yellow,
107
+ ...lightShadows,
108
+ ...blackColors,
109
+ ...whiteColors,
110
+ shadowColor: lightShadows.shadow1,
106
111
  },
107
112
  dark: {
108
- ...colorTokens.dark.blue,
109
- ...colorTokens.dark.gray,
110
- ...colorTokens.dark.green,
111
- ...colorTokens.dark.orange,
112
- ...colorTokens.dark.pink,
113
- ...colorTokens.dark.purple,
114
- ...colorTokens.dark.red,
115
- ...colorTokens.dark.yellow,
116
- shadowColor: darkShadowColorStrong,
117
- shadowColorHover: darkShadowColorStrong,
118
- shadowColorPress: darkShadowColor,
119
- shadowColorFocus: darkShadowColor,
113
+ ...Colors.blueDark,
114
+ ...Colors.grayDark,
115
+ ...Colors.greenDark,
116
+ ...Colors.orangeDark,
117
+ ...Colors.pinkDark,
118
+ ...Colors.purpleDark,
119
+ ...Colors.redDark,
120
+ ...Colors.yellowDark,
121
+ ...darkShadows,
122
+ ...blackColors,
123
+ ...whiteColors,
124
+ shadowColor: darkShadows.shadow1,
120
125
  },
121
126
  },
122
127
  },
123
128
 
129
+ // inverse accent theme
124
130
  accent: {
125
131
  palette: {
126
132
  dark: lightPalette,
127
133
  light: darkPalette,
128
134
  },
129
- template: 'inverse',
130
135
  },
131
136
 
132
137
  childrenThemes: {
138
+ black: {
139
+ palette: {
140
+ dark: Object.values(blackColors),
141
+ light: Object.values(blackColors),
142
+ },
143
+ },
144
+ white: {
145
+ palette: {
146
+ dark: Object.values(whiteColors),
147
+ light: Object.values(whiteColors),
148
+ },
149
+ },
133
150
  gray: {
134
151
  palette: {
135
- dark: Object.values(colorTokens.dark.gray),
136
- light: Object.values(colorTokens.light.gray),
152
+ dark: Object.values(Colors.grayDark),
153
+ light: Object.values(Colors.gray),
137
154
  },
138
155
  },
139
156
  blue: {
140
157
  palette: {
141
- dark: Object.values(colorTokens.dark.blue),
142
- light: Object.values(colorTokens.light.blue),
158
+ dark: Object.values(Colors.blueDark),
159
+ light: Object.values(Colors.blue),
143
160
  },
144
161
  },
145
162
  orange: {
146
163
  palette: {
147
- dark: Object.values(colorTokens.dark.orange),
148
- light: Object.values(colorTokens.light.orange),
164
+ dark: Object.values(Colors.orangeDark),
165
+ light: Object.values(Colors.orange),
149
166
  },
150
167
  },
151
168
  red: {
152
169
  palette: {
153
- dark: Object.values(colorTokens.dark.red),
154
- light: Object.values(colorTokens.light.red),
170
+ dark: Object.values(Colors.redDark),
171
+ light: Object.values(Colors.red),
155
172
  },
156
173
  },
157
174
  yellow: {
158
175
  palette: {
159
- dark: Object.values(colorTokens.dark.yellow),
160
- light: Object.values(colorTokens.light.yellow),
176
+ dark: Object.values(Colors.yellowDark),
177
+ light: Object.values(Colors.yellow),
161
178
  },
162
179
  },
163
180
  green: {
164
181
  palette: {
165
- dark: Object.values(colorTokens.dark.green),
166
- light: Object.values(colorTokens.light.green),
182
+ dark: Object.values(Colors.greenDark),
183
+ light: Object.values(Colors.green),
167
184
  },
168
185
  },
169
186
  purple: {
170
187
  palette: {
171
- dark: Object.values(colorTokens.dark.purple),
172
- light: Object.values(colorTokens.light.purple),
188
+ dark: Object.values(Colors.purpleDark),
189
+ light: Object.values(Colors.purple),
173
190
  },
174
191
  },
175
192
  pink: {
176
193
  palette: {
177
- dark: Object.values(colorTokens.dark.pink),
178
- light: Object.values(colorTokens.light.pink),
194
+ dark: Object.values(Colors.pinkDark),
195
+ light: Object.values(Colors.pink),
179
196
  },
180
197
  },
181
198
  tan: {
@@ -230,3 +247,15 @@ export const tamaguiThemes = createThemeSuite({
230
247
  },
231
248
  },
232
249
  })
250
+
251
+ export type TamaguiThemes = typeof themes
252
+
253
+ /**
254
+ * This is an optional production optimization: themes JS can get to 20Kb or more.
255
+ * Tamagui has ~1Kb of logic to hydrate themes from CSS, so you can remove the JS.
256
+ * So long as you server render your Tamagui CSS, this will save you bundle size:
257
+ */
258
+ export const tamaguiThemes: TamaguiThemes =
259
+ process.env.TAMAGUI_ENVIRONMENT === 'client' && process.env.NODE_ENV === 'production'
260
+ ? ({} as any)
261
+ : (themes as any)
package/src/v4.tsx CHANGED
@@ -1,4 +1,3 @@
1
- export * from './v4-createTheme'
2
- export { tokens } from './v3-themes'
3
-
4
- export * as tamaguiThemes from './v4-tamagui-out'
1
+ export { tokens } from './v3-tokens'
2
+ export { createThemes } from '@tamagui/theme-builder'
3
+ export { tamaguiThemes } from './v4-tamagui'