@tamagui/config-v5 0.0.0-bootstrap.0 → 3.0.0-beta.643.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 (317) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/builder.cjs +19 -0
  3. package/dist/cjs/builder.native.cjs +21 -0
  4. package/dist/cjs/builder.native.js +23 -0
  5. package/dist/cjs/builder.native.js.map +1 -0
  6. package/dist/cjs/create-theme/applyMask.cjs +64 -0
  7. package/dist/cjs/create-theme/applyMask.native.cjs +69 -0
  8. package/dist/cjs/create-theme/applyMask.native.js +71 -0
  9. package/dist/cjs/create-theme/applyMask.native.js.map +1 -0
  10. package/dist/cjs/create-theme/combineMasks.cjs +45 -0
  11. package/dist/cjs/create-theme/combineMasks.native.cjs +67 -0
  12. package/dist/cjs/create-theme/combineMasks.native.js +69 -0
  13. package/dist/cjs/create-theme/combineMasks.native.js.map +1 -0
  14. package/dist/cjs/create-theme/createTheme.cjs +104 -0
  15. package/dist/cjs/create-theme/createTheme.native.cjs +109 -0
  16. package/dist/cjs/create-theme/createTheme.native.js +111 -0
  17. package/dist/cjs/create-theme/createTheme.native.js.map +1 -0
  18. package/dist/cjs/create-theme/createThemeTypes.cjs +17 -0
  19. package/dist/cjs/create-theme/createThemeTypes.native.cjs +19 -0
  20. package/dist/cjs/create-theme/createThemeTypes.native.js +21 -0
  21. package/dist/cjs/create-theme/createThemeTypes.native.js.map +1 -0
  22. package/dist/cjs/create-theme/helpers.cjs +35 -0
  23. package/dist/cjs/create-theme/helpers.native.cjs +39 -0
  24. package/dist/cjs/create-theme/helpers.native.js +41 -0
  25. package/dist/cjs/create-theme/helpers.native.js.map +1 -0
  26. package/dist/cjs/create-theme/index.cjs +24 -0
  27. package/dist/cjs/create-theme/index.native.cjs +26 -0
  28. package/dist/cjs/create-theme/index.native.js +28 -0
  29. package/dist/cjs/create-theme/index.native.js.map +1 -0
  30. package/dist/cjs/create-theme/isMinusZero.cjs +27 -0
  31. package/dist/cjs/create-theme/isMinusZero.native.cjs +29 -0
  32. package/dist/cjs/create-theme/isMinusZero.native.js +31 -0
  33. package/dist/cjs/create-theme/isMinusZero.native.js.map +1 -0
  34. package/dist/cjs/create-theme/masks.cjs +132 -0
  35. package/dist/cjs/create-theme/masks.native.cjs +174 -0
  36. package/dist/cjs/create-theme/masks.native.js +176 -0
  37. package/dist/cjs/create-theme/masks.native.js.map +1 -0
  38. package/dist/cjs/create-theme/tests.cjs +34 -0
  39. package/dist/cjs/create-theme/tests.native.cjs +36 -0
  40. package/dist/cjs/create-theme/tests.native.js +38 -0
  41. package/dist/cjs/create-theme/tests.native.js.map +1 -0
  42. package/dist/cjs/create-theme/themeInfo.cjs +39 -0
  43. package/dist/cjs/create-theme/themeInfo.native.cjs +41 -0
  44. package/dist/cjs/create-theme/themeInfo.native.js +43 -0
  45. package/dist/cjs/create-theme/themeInfo.native.js.map +1 -0
  46. package/dist/cjs/index.cjs +20 -0
  47. package/dist/cjs/index.native.cjs +22 -0
  48. package/dist/cjs/index.native.js +24 -0
  49. package/dist/cjs/index.native.js.map +1 -0
  50. package/dist/cjs/theme-builder/ThemeBuilder.cjs +222 -0
  51. package/dist/cjs/theme-builder/ThemeBuilder.native.cjs +315 -0
  52. package/dist/cjs/theme-builder/ThemeBuilder.native.js +317 -0
  53. package/dist/cjs/theme-builder/ThemeBuilder.native.js.map +1 -0
  54. package/dist/cjs/theme-builder/createStudioThemes.cjs +39 -0
  55. package/dist/cjs/theme-builder/createStudioThemes.native.cjs +41 -0
  56. package/dist/cjs/theme-builder/createStudioThemes.native.js +43 -0
  57. package/dist/cjs/theme-builder/createStudioThemes.native.js.map +1 -0
  58. package/dist/cjs/theme-builder/createThemes.cjs +339 -0
  59. package/dist/cjs/theme-builder/createThemes.native.cjs +348 -0
  60. package/dist/cjs/theme-builder/createThemes.native.js +350 -0
  61. package/dist/cjs/theme-builder/createThemes.native.js.map +1 -0
  62. package/dist/cjs/theme-builder/defaultComponentThemes.cjs +45 -0
  63. package/dist/cjs/theme-builder/defaultComponentThemes.native.cjs +47 -0
  64. package/dist/cjs/theme-builder/defaultComponentThemes.native.js +49 -0
  65. package/dist/cjs/theme-builder/defaultComponentThemes.native.js.map +1 -0
  66. package/dist/cjs/theme-builder/defaultTemplates.cjs +147 -0
  67. package/dist/cjs/theme-builder/defaultTemplates.native.cjs +154 -0
  68. package/dist/cjs/theme-builder/defaultTemplates.native.js +156 -0
  69. package/dist/cjs/theme-builder/defaultTemplates.native.js.map +1 -0
  70. package/dist/cjs/theme-builder/defaultTemplatesStronger.cjs +143 -0
  71. package/dist/cjs/theme-builder/defaultTemplatesStronger.native.cjs +150 -0
  72. package/dist/cjs/theme-builder/defaultTemplatesStronger.native.js +152 -0
  73. package/dist/cjs/theme-builder/defaultTemplatesStronger.native.js.map +1 -0
  74. package/dist/cjs/theme-builder/defaultTemplatesStrongest.cjs +143 -0
  75. package/dist/cjs/theme-builder/defaultTemplatesStrongest.native.cjs +150 -0
  76. package/dist/cjs/theme-builder/defaultTemplatesStrongest.native.js +152 -0
  77. package/dist/cjs/theme-builder/defaultTemplatesStrongest.native.js.map +1 -0
  78. package/dist/cjs/theme-builder/getThemeSuitePalettes.cjs +101 -0
  79. package/dist/cjs/theme-builder/getThemeSuitePalettes.native.cjs +123 -0
  80. package/dist/cjs/theme-builder/getThemeSuitePalettes.native.js +125 -0
  81. package/dist/cjs/theme-builder/getThemeSuitePalettes.native.js.map +1 -0
  82. package/dist/cjs/theme-builder/helpers.cjs +35 -0
  83. package/dist/cjs/theme-builder/helpers.native.cjs +39 -0
  84. package/dist/cjs/theme-builder/helpers.native.js +41 -0
  85. package/dist/cjs/theme-builder/helpers.native.js.map +1 -0
  86. package/dist/cjs/theme-builder/index.cjs +44 -0
  87. package/dist/cjs/theme-builder/index.native.cjs +46 -0
  88. package/dist/cjs/theme-builder/index.native.js +48 -0
  89. package/dist/cjs/theme-builder/index.native.js.map +1 -0
  90. package/dist/cjs/theme-builder/masks.cjs +92 -0
  91. package/dist/cjs/theme-builder/masks.native.cjs +94 -0
  92. package/dist/cjs/theme-builder/masks.native.js +96 -0
  93. package/dist/cjs/theme-builder/masks.native.js.map +1 -0
  94. package/dist/cjs/theme-builder/types.cjs +17 -0
  95. package/dist/cjs/theme-builder/types.native.cjs +19 -0
  96. package/dist/cjs/theme-builder/types.native.js +21 -0
  97. package/dist/cjs/theme-builder/types.native.js.map +1 -0
  98. package/dist/cjs/v5/opacify.cjs +120 -0
  99. package/dist/cjs/v5/opacify.native.cjs +127 -0
  100. package/dist/cjs/v5/opacify.native.js +129 -0
  101. package/dist/cjs/v5/opacify.native.js.map +1 -0
  102. package/dist/cjs/v5/subtleChildrenThemes.cjs +64 -0
  103. package/dist/cjs/v5/subtleChildrenThemes.native.cjs +72 -0
  104. package/dist/cjs/v5/subtleChildrenThemes.native.js +74 -0
  105. package/dist/cjs/v5/subtleChildrenThemes.native.js.map +1 -0
  106. package/dist/cjs/v5/v5-builder.cjs +31 -0
  107. package/dist/cjs/v5/v5-builder.native.cjs +33 -0
  108. package/dist/cjs/v5/v5-builder.native.js +35 -0
  109. package/dist/cjs/v5/v5-builder.native.js.map +1 -0
  110. package/dist/cjs/v5/v5-subtle-builder.cjs +30 -0
  111. package/dist/cjs/v5/v5-subtle-builder.native.cjs +32 -0
  112. package/dist/cjs/v5/v5-subtle-builder.native.js +34 -0
  113. package/dist/cjs/v5/v5-subtle-builder.native.js.map +1 -0
  114. package/dist/cjs/v5/v5-templates.cjs +111 -0
  115. package/dist/cjs/v5/v5-templates.native.cjs +119 -0
  116. package/dist/cjs/v5/v5-templates.native.js +121 -0
  117. package/dist/cjs/v5/v5-templates.native.js.map +1 -0
  118. package/dist/cjs/v5/v5-themes.cjs +390 -0
  119. package/dist/cjs/v5/v5-themes.native.cjs +440 -0
  120. package/dist/cjs/v5/v5-themes.native.js +442 -0
  121. package/dist/cjs/v5/v5-themes.native.js.map +1 -0
  122. package/dist/esm/builder.mjs +1 -0
  123. package/dist/esm/builder.native.js +1 -0
  124. package/dist/esm/create-theme/applyMask.mjs +41 -0
  125. package/dist/esm/create-theme/applyMask.mjs.map +1 -0
  126. package/dist/esm/create-theme/applyMask.native.js +44 -0
  127. package/dist/esm/create-theme/applyMask.native.js.map +1 -0
  128. package/dist/esm/create-theme/combineMasks.mjs +25 -0
  129. package/dist/esm/create-theme/combineMasks.mjs.map +1 -0
  130. package/dist/esm/create-theme/combineMasks.native.js +45 -0
  131. package/dist/esm/create-theme/combineMasks.native.js.map +1 -0
  132. package/dist/esm/create-theme/createTheme.mjs +80 -0
  133. package/dist/esm/create-theme/createTheme.mjs.map +1 -0
  134. package/dist/esm/create-theme/createTheme.native.js +83 -0
  135. package/dist/esm/create-theme/createTheme.native.js.map +1 -0
  136. package/dist/esm/create-theme/createThemeTypes.mjs +0 -0
  137. package/dist/esm/create-theme/createThemeTypes.native.js +0 -0
  138. package/dist/esm/create-theme/helpers.mjs +10 -0
  139. package/dist/esm/create-theme/helpers.mjs.map +1 -0
  140. package/dist/esm/create-theme/helpers.native.js +12 -0
  141. package/dist/esm/create-theme/helpers.native.js.map +1 -0
  142. package/dist/esm/create-theme/index.mjs +11 -0
  143. package/dist/esm/create-theme/index.native.js +11 -0
  144. package/dist/esm/create-theme/isMinusZero.mjs +6 -0
  145. package/dist/esm/create-theme/isMinusZero.mjs.map +1 -0
  146. package/dist/esm/create-theme/isMinusZero.native.js +6 -0
  147. package/dist/esm/create-theme/isMinusZero.native.js.map +1 -0
  148. package/dist/esm/create-theme/masks.mjs +103 -0
  149. package/dist/esm/create-theme/masks.mjs.map +1 -0
  150. package/dist/esm/create-theme/masks.native.js +143 -0
  151. package/dist/esm/create-theme/masks.native.js.map +1 -0
  152. package/dist/esm/create-theme/tests.mjs +36 -0
  153. package/dist/esm/create-theme/tests.mjs.map +1 -0
  154. package/dist/esm/create-theme/tests.native.js +36 -0
  155. package/dist/esm/create-theme/tests.native.js.map +1 -0
  156. package/dist/esm/create-theme/themeInfo.mjs +15 -0
  157. package/dist/esm/create-theme/themeInfo.mjs.map +1 -0
  158. package/dist/esm/create-theme/themeInfo.native.js +15 -0
  159. package/dist/esm/create-theme/themeInfo.native.js.map +1 -0
  160. package/dist/esm/index.mjs +3 -0
  161. package/dist/esm/index.native.js +3 -0
  162. package/dist/esm/theme-builder/ThemeBuilder.mjs +199 -0
  163. package/dist/esm/theme-builder/ThemeBuilder.mjs.map +1 -0
  164. package/dist/esm/theme-builder/ThemeBuilder.native.js +290 -0
  165. package/dist/esm/theme-builder/ThemeBuilder.native.js.map +1 -0
  166. package/dist/esm/theme-builder/createStudioThemes.mjs +19 -0
  167. package/dist/esm/theme-builder/createStudioThemes.mjs.map +1 -0
  168. package/dist/esm/theme-builder/createStudioThemes.native.js +19 -0
  169. package/dist/esm/theme-builder/createStudioThemes.native.js.map +1 -0
  170. package/dist/esm/theme-builder/createThemes.mjs +311 -0
  171. package/dist/esm/theme-builder/createThemes.mjs.map +1 -0
  172. package/dist/esm/theme-builder/createThemes.native.js +318 -0
  173. package/dist/esm/theme-builder/createThemes.native.js.map +1 -0
  174. package/dist/esm/theme-builder/defaultComponentThemes.mjs +24 -0
  175. package/dist/esm/theme-builder/defaultComponentThemes.mjs.map +1 -0
  176. package/dist/esm/theme-builder/defaultComponentThemes.native.js +24 -0
  177. package/dist/esm/theme-builder/defaultComponentThemes.native.js.map +1 -0
  178. package/dist/esm/theme-builder/defaultTemplates.mjs +127 -0
  179. package/dist/esm/theme-builder/defaultTemplates.mjs.map +1 -0
  180. package/dist/esm/theme-builder/defaultTemplates.native.js +132 -0
  181. package/dist/esm/theme-builder/defaultTemplates.native.js.map +1 -0
  182. package/dist/esm/theme-builder/defaultTemplatesStronger.mjs +123 -0
  183. package/dist/esm/theme-builder/defaultTemplatesStronger.mjs.map +1 -0
  184. package/dist/esm/theme-builder/defaultTemplatesStronger.native.js +128 -0
  185. package/dist/esm/theme-builder/defaultTemplatesStronger.native.js.map +1 -0
  186. package/dist/esm/theme-builder/defaultTemplatesStrongest.mjs +123 -0
  187. package/dist/esm/theme-builder/defaultTemplatesStrongest.mjs.map +1 -0
  188. package/dist/esm/theme-builder/defaultTemplatesStrongest.native.js +128 -0
  189. package/dist/esm/theme-builder/defaultTemplatesStrongest.native.js.map +1 -0
  190. package/dist/esm/theme-builder/getThemeSuitePalettes.mjs +78 -0
  191. package/dist/esm/theme-builder/getThemeSuitePalettes.mjs.map +1 -0
  192. package/dist/esm/theme-builder/getThemeSuitePalettes.native.js +98 -0
  193. package/dist/esm/theme-builder/getThemeSuitePalettes.native.js.map +1 -0
  194. package/dist/esm/theme-builder/helpers.mjs +10 -0
  195. package/dist/esm/theme-builder/helpers.mjs.map +1 -0
  196. package/dist/esm/theme-builder/helpers.native.js +12 -0
  197. package/dist/esm/theme-builder/helpers.native.js.map +1 -0
  198. package/dist/esm/theme-builder/index.mjs +12 -0
  199. package/dist/esm/theme-builder/index.native.js +12 -0
  200. package/dist/esm/theme-builder/masks.mjs +72 -0
  201. package/dist/esm/theme-builder/masks.mjs.map +1 -0
  202. package/dist/esm/theme-builder/masks.native.js +72 -0
  203. package/dist/esm/theme-builder/masks.native.js.map +1 -0
  204. package/dist/esm/theme-builder/types.mjs +0 -0
  205. package/dist/esm/theme-builder/types.native.js +0 -0
  206. package/dist/esm/v5/opacify.mjs +96 -0
  207. package/dist/esm/v5/opacify.mjs.map +1 -0
  208. package/dist/esm/v5/opacify.native.js +101 -0
  209. package/dist/esm/v5/opacify.native.js.map +1 -0
  210. package/dist/esm/v5/subtleChildrenThemes.mjs +41 -0
  211. package/dist/esm/v5/subtleChildrenThemes.mjs.map +1 -0
  212. package/dist/esm/v5/subtleChildrenThemes.native.js +47 -0
  213. package/dist/esm/v5/subtleChildrenThemes.native.js.map +1 -0
  214. package/dist/esm/v5/v5-builder.mjs +6 -0
  215. package/dist/esm/v5/v5-builder.native.js +6 -0
  216. package/dist/esm/v5/v5-subtle-builder.mjs +5 -0
  217. package/dist/esm/v5/v5-subtle-builder.native.js +5 -0
  218. package/dist/esm/v5/v5-templates.mjs +91 -0
  219. package/dist/esm/v5/v5-templates.mjs.map +1 -0
  220. package/dist/esm/v5/v5-templates.native.js +97 -0
  221. package/dist/esm/v5/v5-templates.native.js.map +1 -0
  222. package/dist/esm/v5/v5-themes.mjs +352 -0
  223. package/dist/esm/v5/v5-themes.mjs.map +1 -0
  224. package/dist/esm/v5/v5-themes.native.js +400 -0
  225. package/dist/esm/v5/v5-themes.native.js.map +1 -0
  226. package/package.json +59 -8
  227. package/src/builder.ts +1 -0
  228. package/src/create-theme/applyMask.tsx +69 -0
  229. package/src/create-theme/combineMasks.tsx +29 -0
  230. package/src/create-theme/createTheme.tsx +126 -0
  231. package/src/create-theme/createThemeTypes.tsx +85 -0
  232. package/src/create-theme/helpers.tsx +44 -0
  233. package/src/create-theme/index.ts +6 -0
  234. package/src/create-theme/isMinusZero.tsx +3 -0
  235. package/src/create-theme/masks.tsx +137 -0
  236. package/src/create-theme/tests.tsx +28 -0
  237. package/src/create-theme/themeInfo.tsx +36 -0
  238. package/src/index.ts +2 -0
  239. package/src/theme-builder/ThemeBuilder.ts +514 -0
  240. package/src/theme-builder/createStudioThemes.ts +28 -0
  241. package/src/theme-builder/createThemes.ts +794 -0
  242. package/src/theme-builder/defaultComponentThemes.ts +26 -0
  243. package/src/theme-builder/defaultTemplates.ts +157 -0
  244. package/src/theme-builder/defaultTemplatesStronger.ts +152 -0
  245. package/src/theme-builder/defaultTemplatesStrongest.ts +152 -0
  246. package/src/theme-builder/getThemeSuitePalettes.ts +101 -0
  247. package/src/theme-builder/helpers.ts +44 -0
  248. package/src/theme-builder/index.ts +22 -0
  249. package/src/theme-builder/masks.tsx +83 -0
  250. package/src/theme-builder/types.ts +97 -0
  251. package/src/v5/opacify.ts +125 -0
  252. package/src/v5/subtleChildrenThemes.ts +54 -0
  253. package/src/v5/v5-builder.ts +6 -0
  254. package/src/v5/v5-subtle-builder.ts +5 -0
  255. package/src/v5/v5-templates.ts +126 -0
  256. package/src/v5/v5-themes.ts +615 -0
  257. package/types/builder.d.ts +2 -0
  258. package/types/builder.d.ts.map +1 -0
  259. package/types/create-theme/applyMask.d.ts +7 -0
  260. package/types/create-theme/applyMask.d.ts.map +1 -0
  261. package/types/create-theme/combineMasks.d.ts +3 -0
  262. package/types/create-theme/combineMasks.d.ts.map +1 -0
  263. package/types/create-theme/createTheme.d.ts +18 -0
  264. package/types/create-theme/createTheme.d.ts.map +1 -0
  265. package/types/create-theme/createThemeTypes.d.ts +66 -0
  266. package/types/create-theme/createThemeTypes.d.ts.map +1 -0
  267. package/types/create-theme/helpers.d.ts +24 -0
  268. package/types/create-theme/helpers.d.ts.map +1 -0
  269. package/types/create-theme/index.d.ts +7 -0
  270. package/types/create-theme/index.d.ts.map +1 -0
  271. package/types/create-theme/isMinusZero.d.ts +2 -0
  272. package/types/create-theme/isMinusZero.d.ts.map +1 -0
  273. package/types/create-theme/masks.d.ts +14 -0
  274. package/types/create-theme/masks.d.ts.map +1 -0
  275. package/types/create-theme/tests.d.ts +2 -0
  276. package/types/create-theme/tests.d.ts.map +1 -0
  277. package/types/create-theme/themeInfo.d.ts +12 -0
  278. package/types/create-theme/themeInfo.d.ts.map +1 -0
  279. package/types/index.d.ts +3 -0
  280. package/types/index.d.ts.map +1 -0
  281. package/types/theme-builder/ThemeBuilder.d.ts +80 -0
  282. package/types/theme-builder/ThemeBuilder.d.ts.map +1 -0
  283. package/types/theme-builder/createStudioThemes.d.ts +8 -0
  284. package/types/theme-builder/createStudioThemes.d.ts.map +1 -0
  285. package/types/theme-builder/createThemes.d.ts +141 -0
  286. package/types/theme-builder/createThemes.d.ts.map +1 -0
  287. package/types/theme-builder/defaultComponentThemes.d.ts +63 -0
  288. package/types/theme-builder/defaultComponentThemes.d.ts.map +1 -0
  289. package/types/theme-builder/defaultTemplates.d.ts +42 -0
  290. package/types/theme-builder/defaultTemplates.d.ts.map +1 -0
  291. package/types/theme-builder/defaultTemplatesStronger.d.ts +42 -0
  292. package/types/theme-builder/defaultTemplatesStronger.d.ts.map +1 -0
  293. package/types/theme-builder/defaultTemplatesStrongest.d.ts +42 -0
  294. package/types/theme-builder/defaultTemplatesStrongest.d.ts.map +1 -0
  295. package/types/theme-builder/getThemeSuitePalettes.d.ts +7 -0
  296. package/types/theme-builder/getThemeSuitePalettes.d.ts.map +1 -0
  297. package/types/theme-builder/helpers.d.ts +24 -0
  298. package/types/theme-builder/helpers.d.ts.map +1 -0
  299. package/types/theme-builder/index.d.ts +11 -0
  300. package/types/theme-builder/index.d.ts.map +1 -0
  301. package/types/theme-builder/masks.d.ts +18 -0
  302. package/types/theme-builder/masks.d.ts.map +1 -0
  303. package/types/theme-builder/types.d.ts +76 -0
  304. package/types/theme-builder/types.d.ts.map +1 -0
  305. package/types/v5/opacify.d.ts +9 -0
  306. package/types/v5/opacify.d.ts.map +1 -0
  307. package/types/v5/subtleChildrenThemes.d.ts +305 -0
  308. package/types/v5/subtleChildrenThemes.d.ts.map +1 -0
  309. package/types/v5/v5-builder.d.ts +4 -0
  310. package/types/v5/v5-builder.d.ts.map +1 -0
  311. package/types/v5/v5-subtle-builder.d.ts +3 -0
  312. package/types/v5/v5-subtle-builder.d.ts.map +1 -0
  313. package/types/v5/v5-templates.d.ts +42 -0
  314. package/types/v5/v5-templates.d.ts.map +1 -0
  315. package/types/v5/v5-themes.d.ts +525 -0
  316. package/types/v5/v5-themes.d.ts.map +1 -0
  317. package/README.md +0 -1
@@ -0,0 +1,83 @@
1
+ // copied from @tamagui/themes
2
+
3
+ import type { MaskDefinitions } from '../create-theme'
4
+ import {
5
+ combineMasks,
6
+ createIdentityMask,
7
+ createInverseMask,
8
+ createMask,
9
+ createSoftenMask,
10
+ createStrengthenMask,
11
+ skipMask,
12
+ } from '../create-theme'
13
+
14
+ export const masks = {
15
+ identity: createIdentityMask(),
16
+ soften: createSoftenMask(),
17
+ soften2: createSoftenMask({ strength: 2 }),
18
+ soften3: createSoftenMask({ strength: 3 }),
19
+ strengthen: createStrengthenMask(),
20
+ inverse: createInverseMask(),
21
+ inverseSoften: combineMasks(createInverseMask(), createSoftenMask({ strength: 2 })),
22
+ inverseSoften2: combineMasks(createInverseMask(), createSoftenMask({ strength: 3 })),
23
+ inverseSoften3: combineMasks(createInverseMask(), createSoftenMask({ strength: 4 })),
24
+ inverseStrengthen2: combineMasks(
25
+ createInverseMask(),
26
+ createStrengthenMask({ strength: 2 })
27
+ ),
28
+ strengthenButSoftenBorder: createMask((template, options) => {
29
+ const stronger = createStrengthenMask().mask(template, options)
30
+ const softer = createSoftenMask().mask(template, options)
31
+ return {
32
+ ...stronger,
33
+ borderColor: softer.borderColor,
34
+ borderColorHover: softer.borderColorHover,
35
+ borderColorPress: softer.borderColorPress,
36
+ borderColorFocus: softer.borderColorFocus,
37
+ }
38
+ }),
39
+ soften2Border1: createMask((template, options) => {
40
+ const softer2 = createSoftenMask({ strength: 2 }).mask(template, options)
41
+ const softer1 = createSoftenMask({ strength: 1 }).mask(template, options)
42
+ return {
43
+ ...softer2,
44
+ borderColor: softer1.borderColor,
45
+ borderColorHover: softer1.borderColorHover,
46
+ borderColorPress: softer1.borderColorPress,
47
+ borderColorFocus: softer1.borderColorFocus,
48
+ }
49
+ }),
50
+ soften3FlatBorder: createMask((template, options) => {
51
+ const borderMask = createSoftenMask({ strength: 2 }).mask(template, options)
52
+ const softer3 = createSoftenMask({ strength: 3 }).mask(template, options)
53
+ return {
54
+ ...softer3,
55
+ borderColor: borderMask.borderColor,
56
+ borderColorHover: borderMask.borderColorHover,
57
+ borderColorPress: borderMask.borderColorPress,
58
+ borderColorFocus: borderMask.borderColorFocus,
59
+ }
60
+ }),
61
+ softenBorder: createMask((template, options) => {
62
+ const plain = skipMask.mask(template, options)
63
+ const softer = createSoftenMask().mask(template, options)
64
+ return {
65
+ ...plain,
66
+ borderColor: softer.borderColor,
67
+ borderColorHover: softer.borderColorHover,
68
+ borderColorPress: softer.borderColorPress,
69
+ borderColorFocus: softer.borderColorFocus,
70
+ }
71
+ }),
72
+ softenBorder2: createMask((template, options) => {
73
+ const plain = skipMask.mask(template, options)
74
+ const softer = createSoftenMask({ strength: 2 }).mask(template, options)
75
+ return {
76
+ ...plain,
77
+ borderColor: softer.borderColor,
78
+ borderColorHover: softer.borderColorHover,
79
+ borderColorPress: softer.borderColorPress,
80
+ borderColorFocus: softer.borderColorFocus,
81
+ }
82
+ }),
83
+ } satisfies MaskDefinitions
@@ -0,0 +1,97 @@
1
+ import type { Template } from '../create-theme'
2
+
3
+ export type GetThemeFn<ThemeType extends Record<string, string | number>> = (props: {
4
+ name: string
5
+ theme: Record<string, string>
6
+ scheme?: 'light' | 'dark'
7
+ parentName: string
8
+ parentNames: string[]
9
+ level: number
10
+ palette?: string[]
11
+ template?: Template
12
+ }) => ThemeType
13
+
14
+ export type TemplateStrategy = 'base' | 'stronger' | 'strongest'
15
+
16
+ export type ThemeSuiteItem = {
17
+ id: string
18
+ name: string
19
+ createdAt: number
20
+ updatedAt: number
21
+ schemes: { light: boolean; dark: boolean }
22
+ palettes: Record<string, BuildPalette>
23
+ templateStrategy?: TemplateStrategy
24
+ }
25
+
26
+ export type ThemeSuiteItemData = Omit<ThemeSuiteItem, 'id' | 'createdAt' | 'updatedAt'>
27
+
28
+ export type BuildTemplates = Record<string, Template>
29
+
30
+ export type BuildSubTheme = BuildTheme
31
+
32
+ export type BuildPalettes = Record<string, BuildPalette>
33
+
34
+ export type BuildPalette = {
35
+ name: string
36
+ scale?: ScaleTypeName
37
+ anchors: BuildThemeAnchor[]
38
+ }
39
+
40
+ export type BuildThemeSuiteProps = Omit<ThemeSuiteItemData, 'name'>
41
+
42
+ export type BuildThemeSuitePalettes = {
43
+ light: string[]
44
+ dark: string[]
45
+ lightAccent?: string[]
46
+ darkAccent?: string[]
47
+ }
48
+
49
+ export type ScaleTypeName =
50
+ | 'custom'
51
+ | 'radix'
52
+ | 'radix-b'
53
+ | 'radius-bold'
54
+ | 'radius-bright'
55
+ | 'linear'
56
+ | 'pastel'
57
+ | 'pastel-desaturating'
58
+ | 'neon'
59
+ | 'neon-bright'
60
+ | 'neon-c'
61
+
62
+ export type BuildThemeBase = {
63
+ id: string
64
+ name: string
65
+ errors?: string[]
66
+ }
67
+
68
+ export type BuildThemeAnchor = {
69
+ index: number
70
+ hue: {
71
+ light: number
72
+ dark: number
73
+ sync?: boolean
74
+ syncLeft?: boolean
75
+ }
76
+ sat: {
77
+ light: number
78
+ dark: number
79
+ sync?: boolean
80
+ syncLeft?: boolean
81
+ }
82
+ lum: {
83
+ light: number
84
+ dark: number
85
+ }
86
+ alpha: {
87
+ light: number
88
+ dark: number
89
+ }
90
+ }
91
+
92
+ export type BuildTheme = BuildThemeBase & {
93
+ type: 'theme'
94
+ template: string
95
+ palette: string
96
+ accent?: BuildTheme
97
+ }
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Interpolate between two colors
3
+ * @param color1 - First color (hex or hsl)
4
+ * @param color2 - Second color (hex or hsl)
5
+ * @param amount - 0 = color1, 1 = color2, 0.5 = middle
6
+ */
7
+ export function interpolateColor(color1: string, color2: string, amount: number): string {
8
+ const rgb1 = parseToRgb(color1)
9
+ const rgb2 = parseToRgb(color2)
10
+ if (!rgb1 || !rgb2) return color1
11
+
12
+ const r = Math.round(rgb1.r + (rgb2.r - rgb1.r) * amount)
13
+ const g = Math.round(rgb1.g + (rgb2.g - rgb1.g) * amount)
14
+ const b = Math.round(rgb1.b + (rgb2.b - rgb1.b) * amount)
15
+
16
+ return `rgb(${r}, ${g}, ${b})`
17
+ }
18
+
19
+ function parseToRgb(color: string): { r: number; g: number; b: number } | null {
20
+ if (typeof color !== 'string') return null
21
+
22
+ // Handle hex
23
+ if (color.startsWith('#')) {
24
+ let hex = color.slice(1)
25
+ if (hex.length === 3) {
26
+ hex = hex
27
+ .split('')
28
+ .map((c) => c + c)
29
+ .join('')
30
+ }
31
+ if (hex.length >= 6) {
32
+ return {
33
+ r: Number.parseInt(hex.slice(0, 2), 16),
34
+ g: Number.parseInt(hex.slice(2, 4), 16),
35
+ b: Number.parseInt(hex.slice(4, 6), 16),
36
+ }
37
+ }
38
+ }
39
+
40
+ // Handle rgb/rgba
41
+ if (color.startsWith('rgb')) {
42
+ const match = color.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/)
43
+ if (match) {
44
+ return {
45
+ r: Number.parseInt(match[1], 10),
46
+ g: Number.parseInt(match[2], 10),
47
+ b: Number.parseInt(match[3], 10),
48
+ }
49
+ }
50
+ }
51
+
52
+ // Handle hsl/hsla
53
+ if (color.startsWith('hsl')) {
54
+ const match = color.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%/)
55
+ if (match) {
56
+ const h = Number.parseInt(match[1], 10)
57
+ const s = Number.parseInt(match[2], 10) / 100
58
+ const l = Number.parseInt(match[3], 10) / 100
59
+ return hslToRgb(h, s, l)
60
+ }
61
+ }
62
+
63
+ return null
64
+ }
65
+
66
+ function hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number } {
67
+ let r: number
68
+ let g: number
69
+ let b: number
70
+ if (s === 0) {
71
+ r = g = b = l
72
+ } else {
73
+ const hue2rgb = (p: number, q: number, t: number) => {
74
+ if (t < 0) t += 1
75
+ if (t > 1) t -= 1
76
+ if (t < 1 / 6) return p + (q - p) * 6 * t
77
+ if (t < 1 / 2) return q
78
+ if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6
79
+ return p
80
+ }
81
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s
82
+ const p = 2 * l - q
83
+ r = hue2rgb(p, q, h / 360 + 1 / 3)
84
+ g = hue2rgb(p, q, h / 360)
85
+ b = hue2rgb(p, q, h / 360 - 1 / 3)
86
+ }
87
+ return { r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255) }
88
+ }
89
+
90
+ export function opacify(color: string, opacity = 0.1): string {
91
+ // Handle dynamic color objects
92
+ if (typeof color !== 'string') return color
93
+
94
+ // handle hsl/hsla
95
+ if (color.startsWith('hsl')) {
96
+ const match = color.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*([\d.]+))?\)/)
97
+ if (match) {
98
+ const [, h, s, l] = match
99
+ return `hsla(${h}, ${s}%, ${l}%, ${opacity})`
100
+ }
101
+ }
102
+
103
+ // handle hex
104
+ if (color.startsWith('#')) {
105
+ let hex = color.slice(1)
106
+
107
+ // expand shorthand hex
108
+ if (hex.length === 3) {
109
+ hex = hex
110
+ .split('')
111
+ .map((c) => c + c)
112
+ .join('')
113
+ }
114
+
115
+ // set alpha channel to specified opacity
116
+ if (hex.length === 6 || hex.length === 8) {
117
+ const alphaHex = Math.round(opacity * 255)
118
+ .toString(16)
119
+ .padStart(2, '0')
120
+ return `#${hex.slice(0, 6)}${alphaHex}`
121
+ }
122
+ }
123
+
124
+ return color
125
+ }
@@ -0,0 +1,54 @@
1
+ import {
2
+ type PaletteAdjustments,
3
+ defaultChildrenThemes,
4
+ adjustPalettes,
5
+ } from './v5-themes'
6
+
7
+ export const v5SubtlePaletteAdjustments: PaletteAdjustments<
8
+ typeof defaultChildrenThemes
9
+ > = {
10
+ default: {
11
+ light: (hsl) => ({
12
+ ...hsl,
13
+ s: hsl.s * 0.9,
14
+ }),
15
+ dark: (hsl, i) => ({
16
+ ...hsl,
17
+ s: hsl.s * (i <= 4 ? 0.7 : 0.9),
18
+ }),
19
+ },
20
+ // yellow palette in radix is especially off from the rest
21
+ yellow: {
22
+ light: (hsl, i) => {
23
+ // progressively darken and desaturate toward text colors for better contrast
24
+ // i=1 is lightest bg, i=12 is darkest text
25
+ const t = (i - 1) / 11 // 0 to 1
26
+
27
+ // saturation: starts at sStart, ends at sEnd
28
+ const sStart = 0.65
29
+ const sEnd = 0.4
30
+
31
+ // lightness: starts at lStart, ends at lEnd
32
+ const lStart = 1.08
33
+ const lEnd = 0.8
34
+
35
+ return {
36
+ ...hsl,
37
+ s: hsl.s * (sStart + t * (sEnd - sStart)),
38
+ l: hsl.l * (lStart + t * (lEnd - lStart)),
39
+ }
40
+ },
41
+
42
+ dark: (hsl, i) => ({
43
+ ...hsl,
44
+ s: hsl.s * (i <= 7 ? 0.45 : 0.55),
45
+ l: hsl.l * (i <= 4 ? 0.8 : 1),
46
+ }),
47
+ },
48
+ }
49
+
50
+ export const subtleChildrenThemes = adjustPalettes(defaultChildrenThemes, {
51
+ ...v5SubtlePaletteAdjustments,
52
+ gray: undefined, // skip
53
+ neutral: undefined, // skip
54
+ })
@@ -0,0 +1,6 @@
1
+ // v5 theme builder entry - everything needed to build custom v5 themes at
2
+ // runtime. this pulls in the internal legacy builder and @tamagui/colors, while
3
+ // the default @tamagui/themes/v5 entry stays static and builder-free.
4
+ export { createThemes } from '../theme-builder'
5
+ export { v5Templates } from './v5-templates'
6
+ export * from './v5-themes'
@@ -0,0 +1,5 @@
1
+ // v5-subtle theme builder entry - the v5 builder plus the pre-built subtle
2
+ // palette adjustments. like v5-builder this stays in the opt-in config-v5
3
+ // package while the default @tamagui/themes/v5-subtle entry remains static.
4
+ export * from './v5-builder'
5
+ export { subtleChildrenThemes, v5SubtlePaletteAdjustments } from './subtleChildrenThemes'
@@ -0,0 +1,126 @@
1
+ import { PALETTE_BACKGROUND_OFFSET, type BuildTemplates } from '../theme-builder'
2
+
3
+ const objectFromEntries = <const T extends readonly (readonly [string, any])[]>(
4
+ entries: T
5
+ ): { [K in T[number] as K[0]]: K[1] } => {
6
+ return Object.fromEntries(entries) as any
7
+ }
8
+
9
+ const objectKeys = <O extends object>(obj: O): (keyof O)[] => {
10
+ return Object.keys(obj) as (keyof O)[]
11
+ }
12
+
13
+ const getTemplates = () => {
14
+ const lightTemplates = getBaseTemplates('light')
15
+ const darkTemplates = getBaseTemplates('dark')
16
+ const templates = {
17
+ ...objectFromEntries(
18
+ objectKeys(lightTemplates).map(
19
+ (name) => [`light_${name}`, lightTemplates[name]] as const
20
+ )
21
+ ),
22
+ ...objectFromEntries(
23
+ objectKeys(darkTemplates).map(
24
+ (name) => [`dark_${name}`, darkTemplates[name]] as const
25
+ )
26
+ ),
27
+ }
28
+ return templates as Record<keyof typeof templates, typeof lightTemplates.base>
29
+ }
30
+
31
+ const getBaseTemplates = (scheme: 'dark' | 'light') => {
32
+ const isLight = scheme === 'light'
33
+
34
+ // our palettes have PALETTE_BACKGROUND_OFFSET things padding each end until you get to bg/color:
35
+ // [accentBg, transparent1, transparent2, transparent3, transparent4, background, ...]
36
+ const lighten = isLight ? -1 : 1
37
+ const darken = -lighten
38
+
39
+ // base
40
+ const background = PALETTE_BACKGROUND_OFFSET
41
+ const borderColor = background + 2
42
+ const color = -background
43
+
44
+ // helper for surface themes - they need their own hover/press/focus calculations
45
+ // because those need to be relative to their elevated background, not base
46
+ const makeSurface = (offset: number, colorOffset = 0) => {
47
+ const clr = color - colorOffset
48
+ const bg = background + offset
49
+ const brdr = borderColor + offset
50
+
51
+ return {
52
+ color: clr,
53
+ colorHover: clr + (isLight ? 0 : lighten),
54
+ colorPress: clr,
55
+ colorFocus: clr + darken,
56
+
57
+ background: bg,
58
+ // hover lightens always
59
+ backgroundHover: bg + lighten,
60
+ // press darkens always
61
+ backgroundPress: bg + darken,
62
+ // focus: lightens in dark mode, darkens in light
63
+ backgroundFocus: bg + offset,
64
+ backgroundActive: bg,
65
+
66
+ borderColor: brdr,
67
+ borderColorHover: brdr + lighten,
68
+ borderColorFocus: brdr,
69
+ borderColorPress: brdr + darken,
70
+ }
71
+ }
72
+
73
+ // templates use the palette and specify index
74
+ // negative goes backwards from end so -1 is the last item
75
+ const base = {
76
+ accentBackground: 0,
77
+ accentColor: -0,
78
+ background0: 1,
79
+ background02: 2,
80
+ background04: 3,
81
+ background06: 4,
82
+ background08: 5,
83
+ color1: background,
84
+ color2: background + 1,
85
+ color3: background + 2,
86
+ color4: background + 3,
87
+ color5: background + 4,
88
+ color6: background + 5,
89
+ color7: background + 6,
90
+ color8: background + 7,
91
+ color9: background + 8,
92
+ color10: background + 9,
93
+ color11: background + 10,
94
+ color12: background + 11,
95
+ color0: -1,
96
+ color02: -2,
97
+ color04: -3,
98
+ color06: -4,
99
+ color08: -5,
100
+ // v5 = we make this actually 1 up (surface1 technically from before)
101
+ // this way "generics" are automatically differentiated from base bg
102
+ ...makeSurface(1),
103
+ placeholderColor: color - 3,
104
+ colorTransparent: -1,
105
+ }
106
+
107
+ const surface1 = makeSurface(2, 1)
108
+ const surface2 = makeSurface(3, 1)
109
+ const surface3 = makeSurface(5, 1)
110
+
111
+ const accent = Object.fromEntries(
112
+ Object.entries(base).map(([key, index]) => {
113
+ return [key, -index]
114
+ })
115
+ )
116
+
117
+ return {
118
+ base,
119
+ surface1,
120
+ surface2,
121
+ surface3,
122
+ accent,
123
+ } satisfies BuildTemplates
124
+ }
125
+
126
+ export const v5Templates = getTemplates()