@hanzogui/themes 2.0.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 (324) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/componentThemeDefinitions.cjs +124 -0
  3. package/dist/cjs/componentThemeDefinitions.native.js +127 -0
  4. package/dist/cjs/componentThemeDefinitions.native.js.map +1 -0
  5. package/dist/cjs/generated-new.cjs +2021 -0
  6. package/dist/cjs/generated-new.native.js +2040 -0
  7. package/dist/cjs/generated-new.native.js.map +1 -0
  8. package/dist/cjs/generated-v3.cjs +1099 -0
  9. package/dist/cjs/generated-v3.native.js +1118 -0
  10. package/dist/cjs/generated-v3.native.js.map +1 -0
  11. package/dist/cjs/generated-v4-gui.cjs +933 -0
  12. package/dist/cjs/generated-v4-gui.native.js +952 -0
  13. package/dist/cjs/generated-v4-gui.native.js.map +1 -0
  14. package/dist/cjs/generated-v4.cjs +391 -0
  15. package/dist/cjs/generated-v4.native.js +410 -0
  16. package/dist/cjs/generated-v4.native.js.map +1 -0
  17. package/dist/cjs/generated-v5-subtle.cjs +549 -0
  18. package/dist/cjs/generated-v5-subtle.native.js +568 -0
  19. package/dist/cjs/generated-v5-subtle.native.js.map +1 -0
  20. package/dist/cjs/generated-v5.cjs +549 -0
  21. package/dist/cjs/generated-v5.native.js +568 -0
  22. package/dist/cjs/generated-v5.native.js.map +1 -0
  23. package/dist/cjs/helpers.cjs +34 -0
  24. package/dist/cjs/helpers.native.js +39 -0
  25. package/dist/cjs/helpers.native.js.map +1 -0
  26. package/dist/cjs/index.cjs +25 -0
  27. package/dist/cjs/index.native.js +28 -0
  28. package/dist/cjs/index.native.js.map +1 -0
  29. package/dist/cjs/opacify.cjs +96 -0
  30. package/dist/cjs/opacify.native.js +106 -0
  31. package/dist/cjs/opacify.native.js.map +1 -0
  32. package/dist/cjs/palettes.cjs +52 -0
  33. package/dist/cjs/palettes.native.js +63 -0
  34. package/dist/cjs/palettes.native.js.map +1 -0
  35. package/dist/cjs/shadows.cjs +43 -0
  36. package/dist/cjs/shadows.native.js +46 -0
  37. package/dist/cjs/shadows.native.js.map +1 -0
  38. package/dist/cjs/subtleChildrenThemes.cjs +65 -0
  39. package/dist/cjs/subtleChildrenThemes.native.js +74 -0
  40. package/dist/cjs/subtleChildrenThemes.native.js.map +1 -0
  41. package/dist/cjs/templates.cjs +118 -0
  42. package/dist/cjs/templates.native.js +121 -0
  43. package/dist/cjs/templates.native.js.map +1 -0
  44. package/dist/cjs/themes-new.cjs +86 -0
  45. package/dist/cjs/themes-new.native.js +88 -0
  46. package/dist/cjs/themes-new.native.js.map +1 -0
  47. package/dist/cjs/themes-old.cjs +284 -0
  48. package/dist/cjs/themes-old.native.js +303 -0
  49. package/dist/cjs/themes-old.native.js.map +1 -0
  50. package/dist/cjs/themes.cjs +26 -0
  51. package/dist/cjs/themes.native.js +29 -0
  52. package/dist/cjs/themes.native.js.map +1 -0
  53. package/dist/cjs/tokens.cjs +155 -0
  54. package/dist/cjs/tokens.native.js +167 -0
  55. package/dist/cjs/tokens.native.js.map +1 -0
  56. package/dist/cjs/utils.cjs +40 -0
  57. package/dist/cjs/utils.native.js +46 -0
  58. package/dist/cjs/utils.native.js.map +1 -0
  59. package/dist/cjs/v3-themes.cjs +472 -0
  60. package/dist/cjs/v3-themes.native.js +487 -0
  61. package/dist/cjs/v3-themes.native.js.map +1 -0
  62. package/dist/cjs/v3-tokens.cjs +99 -0
  63. package/dist/cjs/v3-tokens.native.js +108 -0
  64. package/dist/cjs/v3-tokens.native.js.map +1 -0
  65. package/dist/cjs/v3.cjs +52 -0
  66. package/dist/cjs/v3.native.js +55 -0
  67. package/dist/cjs/v3.native.js.map +1 -0
  68. package/dist/cjs/v4-default.cjs +167 -0
  69. package/dist/cjs/v4-default.native.js +170 -0
  70. package/dist/cjs/v4-default.native.js.map +1 -0
  71. package/dist/cjs/v4-gui.cjs +235 -0
  72. package/dist/cjs/v4-gui.native.js +243 -0
  73. package/dist/cjs/v4-gui.native.js.map +1 -0
  74. package/dist/cjs/v4-tokens.cjs +99 -0
  75. package/dist/cjs/v4-tokens.native.js +108 -0
  76. package/dist/cjs/v4-tokens.native.js.map +1 -0
  77. package/dist/cjs/v4.cjs +32 -0
  78. package/dist/cjs/v4.native.js +35 -0
  79. package/dist/cjs/v4.native.js.map +1 -0
  80. package/dist/cjs/v5-subtle.cjs +34 -0
  81. package/dist/cjs/v5-subtle.native.js +37 -0
  82. package/dist/cjs/v5-subtle.native.js.map +1 -0
  83. package/dist/cjs/v5-templates.cjs +110 -0
  84. package/dist/cjs/v5-templates.native.js +126 -0
  85. package/dist/cjs/v5-templates.native.js.map +1 -0
  86. package/dist/cjs/v5-themes-subtle.cjs +37 -0
  87. package/dist/cjs/v5-themes-subtle.native.js +40 -0
  88. package/dist/cjs/v5-themes-subtle.native.js.map +1 -0
  89. package/dist/cjs/v5-themes.cjs +400 -0
  90. package/dist/cjs/v5-themes.native.js +445 -0
  91. package/dist/cjs/v5-themes.native.js.map +1 -0
  92. package/dist/cjs/v5-tokens.cjs +99 -0
  93. package/dist/cjs/v5-tokens.native.js +108 -0
  94. package/dist/cjs/v5-tokens.native.js.map +1 -0
  95. package/dist/cjs/v5.cjs +34 -0
  96. package/dist/cjs/v5.native.js +37 -0
  97. package/dist/cjs/v5.native.js.map +1 -0
  98. package/dist/esm/componentThemeDefinitions.mjs +100 -0
  99. package/dist/esm/componentThemeDefinitions.mjs.map +1 -0
  100. package/dist/esm/componentThemeDefinitions.native.js +100 -0
  101. package/dist/esm/componentThemeDefinitions.native.js.map +1 -0
  102. package/dist/esm/generated-new.mjs +1997 -0
  103. package/dist/esm/generated-new.mjs.map +1 -0
  104. package/dist/esm/generated-new.native.js +2013 -0
  105. package/dist/esm/generated-new.native.js.map +1 -0
  106. package/dist/esm/generated-v3.mjs +1075 -0
  107. package/dist/esm/generated-v3.mjs.map +1 -0
  108. package/dist/esm/generated-v3.native.js +1091 -0
  109. package/dist/esm/generated-v3.native.js.map +1 -0
  110. package/dist/esm/generated-v4-gui.mjs +909 -0
  111. package/dist/esm/generated-v4-gui.mjs.map +1 -0
  112. package/dist/esm/generated-v4-gui.native.js +925 -0
  113. package/dist/esm/generated-v4-gui.native.js.map +1 -0
  114. package/dist/esm/generated-v4.mjs +367 -0
  115. package/dist/esm/generated-v4.mjs.map +1 -0
  116. package/dist/esm/generated-v4.native.js +383 -0
  117. package/dist/esm/generated-v4.native.js.map +1 -0
  118. package/dist/esm/generated-v5-subtle.mjs +525 -0
  119. package/dist/esm/generated-v5-subtle.mjs.map +1 -0
  120. package/dist/esm/generated-v5-subtle.native.js +541 -0
  121. package/dist/esm/generated-v5-subtle.native.js.map +1 -0
  122. package/dist/esm/generated-v5.mjs +525 -0
  123. package/dist/esm/generated-v5.mjs.map +1 -0
  124. package/dist/esm/generated-v5.native.js +541 -0
  125. package/dist/esm/generated-v5.native.js.map +1 -0
  126. package/dist/esm/helpers.mjs +9 -0
  127. package/dist/esm/helpers.mjs.map +1 -0
  128. package/dist/esm/helpers.native.js +11 -0
  129. package/dist/esm/helpers.native.js.map +1 -0
  130. package/dist/esm/index.js +9 -0
  131. package/dist/esm/index.js.map +1 -0
  132. package/dist/esm/index.mjs +9 -0
  133. package/dist/esm/index.mjs.map +1 -0
  134. package/dist/esm/index.native.js +9 -0
  135. package/dist/esm/index.native.js.map +1 -0
  136. package/dist/esm/opacify.mjs +72 -0
  137. package/dist/esm/opacify.mjs.map +1 -0
  138. package/dist/esm/opacify.native.js +79 -0
  139. package/dist/esm/opacify.native.js.map +1 -0
  140. package/dist/esm/palettes.mjs +29 -0
  141. package/dist/esm/palettes.mjs.map +1 -0
  142. package/dist/esm/palettes.native.js +37 -0
  143. package/dist/esm/palettes.native.js.map +1 -0
  144. package/dist/esm/shadows.mjs +20 -0
  145. package/dist/esm/shadows.mjs.map +1 -0
  146. package/dist/esm/shadows.native.js +20 -0
  147. package/dist/esm/shadows.native.js.map +1 -0
  148. package/dist/esm/subtleChildrenThemes.mjs +41 -0
  149. package/dist/esm/subtleChildrenThemes.mjs.map +1 -0
  150. package/dist/esm/subtleChildrenThemes.native.js +47 -0
  151. package/dist/esm/subtleChildrenThemes.native.js.map +1 -0
  152. package/dist/esm/templates.mjs +94 -0
  153. package/dist/esm/templates.mjs.map +1 -0
  154. package/dist/esm/templates.native.js +94 -0
  155. package/dist/esm/templates.native.js.map +1 -0
  156. package/dist/esm/themes-new.mjs +63 -0
  157. package/dist/esm/themes-new.mjs.map +1 -0
  158. package/dist/esm/themes-new.native.js +62 -0
  159. package/dist/esm/themes-new.native.js.map +1 -0
  160. package/dist/esm/themes-old.mjs +261 -0
  161. package/dist/esm/themes-old.mjs.map +1 -0
  162. package/dist/esm/themes-old.native.js +277 -0
  163. package/dist/esm/themes-old.native.js.map +1 -0
  164. package/dist/esm/themes.mjs +3 -0
  165. package/dist/esm/themes.mjs.map +1 -0
  166. package/dist/esm/themes.native.js +3 -0
  167. package/dist/esm/themes.native.js.map +1 -0
  168. package/dist/esm/tokens.mjs +124 -0
  169. package/dist/esm/tokens.mjs.map +1 -0
  170. package/dist/esm/tokens.native.js +133 -0
  171. package/dist/esm/tokens.native.js.map +1 -0
  172. package/dist/esm/utils.mjs +14 -0
  173. package/dist/esm/utils.mjs.map +1 -0
  174. package/dist/esm/utils.native.js +17 -0
  175. package/dist/esm/utils.native.js.map +1 -0
  176. package/dist/esm/v3-themes.mjs +444 -0
  177. package/dist/esm/v3-themes.mjs.map +1 -0
  178. package/dist/esm/v3-themes.native.js +456 -0
  179. package/dist/esm/v3-themes.native.js.map +1 -0
  180. package/dist/esm/v3-tokens.mjs +70 -0
  181. package/dist/esm/v3-tokens.mjs.map +1 -0
  182. package/dist/esm/v3-tokens.native.js +76 -0
  183. package/dist/esm/v3-tokens.native.js.map +1 -0
  184. package/dist/esm/v3.mjs +12 -0
  185. package/dist/esm/v3.mjs.map +1 -0
  186. package/dist/esm/v3.native.js +12 -0
  187. package/dist/esm/v3.native.js.map +1 -0
  188. package/dist/esm/v4-default.mjs +133 -0
  189. package/dist/esm/v4-default.mjs.map +1 -0
  190. package/dist/esm/v4-default.native.js +133 -0
  191. package/dist/esm/v4-default.native.js.map +1 -0
  192. package/dist/esm/v4-gui.mjs +201 -0
  193. package/dist/esm/v4-gui.mjs.map +1 -0
  194. package/dist/esm/v4-gui.native.js +206 -0
  195. package/dist/esm/v4-gui.native.js.map +1 -0
  196. package/dist/esm/v4-tokens.mjs +70 -0
  197. package/dist/esm/v4-tokens.mjs.map +1 -0
  198. package/dist/esm/v4-tokens.native.js +76 -0
  199. package/dist/esm/v4-tokens.native.js.map +1 -0
  200. package/dist/esm/v4.mjs +6 -0
  201. package/dist/esm/v4.mjs.map +1 -0
  202. package/dist/esm/v4.native.js +6 -0
  203. package/dist/esm/v4.native.js.map +1 -0
  204. package/dist/esm/v5-subtle.mjs +7 -0
  205. package/dist/esm/v5-subtle.mjs.map +1 -0
  206. package/dist/esm/v5-subtle.native.js +7 -0
  207. package/dist/esm/v5-subtle.native.js.map +1 -0
  208. package/dist/esm/v5-templates.mjs +87 -0
  209. package/dist/esm/v5-templates.mjs.map +1 -0
  210. package/dist/esm/v5-templates.native.js +100 -0
  211. package/dist/esm/v5-templates.native.js.map +1 -0
  212. package/dist/esm/v5-themes-subtle.mjs +13 -0
  213. package/dist/esm/v5-themes-subtle.mjs.map +1 -0
  214. package/dist/esm/v5-themes-subtle.native.js +13 -0
  215. package/dist/esm/v5-themes-subtle.native.js.map +1 -0
  216. package/dist/esm/v5-themes.mjs +361 -0
  217. package/dist/esm/v5-themes.mjs.map +1 -0
  218. package/dist/esm/v5-themes.native.js +403 -0
  219. package/dist/esm/v5-themes.native.js.map +1 -0
  220. package/dist/esm/v5-tokens.mjs +70 -0
  221. package/dist/esm/v5-tokens.mjs.map +1 -0
  222. package/dist/esm/v5-tokens.native.js +76 -0
  223. package/dist/esm/v5-tokens.native.js.map +1 -0
  224. package/dist/esm/v5.mjs +7 -0
  225. package/dist/esm/v5.mjs.map +1 -0
  226. package/dist/esm/v5.native.js +7 -0
  227. package/dist/esm/v5.native.js.map +1 -0
  228. package/package.json +95 -0
  229. package/src/componentThemeDefinitions.tsx +129 -0
  230. package/src/generated-new.ts +2571 -0
  231. package/src/generated-v3.ts +1826 -0
  232. package/src/generated-v4-gui.ts +2200 -0
  233. package/src/generated-v4.ts +1004 -0
  234. package/src/generated-v5-subtle.ts +2170 -0
  235. package/src/generated-v5.ts +2188 -0
  236. package/src/helpers.ts +44 -0
  237. package/src/index.tsx +8 -0
  238. package/src/opacify.ts +125 -0
  239. package/src/palettes.tsx +91 -0
  240. package/src/shadows.tsx +19 -0
  241. package/src/subtleChildrenThemes.ts +54 -0
  242. package/src/templates.tsx +104 -0
  243. package/src/themes-new.ts +74 -0
  244. package/src/themes-old.tsx +378 -0
  245. package/src/themes.tsx +1 -0
  246. package/src/tokens.tsx +199 -0
  247. package/src/utils.ts +51 -0
  248. package/src/v3-themes.ts +650 -0
  249. package/src/v3-tokens.ts +103 -0
  250. package/src/v3.tsx +12 -0
  251. package/src/v4-default.ts +191 -0
  252. package/src/v4-gui.ts +287 -0
  253. package/src/v4-tokens.ts +105 -0
  254. package/src/v4.tsx +4 -0
  255. package/src/v5-subtle.tsx +11 -0
  256. package/src/v5-templates.ts +126 -0
  257. package/src/v5-themes-subtle.ts +18 -0
  258. package/src/v5-themes.ts +626 -0
  259. package/src/v5-tokens.ts +107 -0
  260. package/src/v5.tsx +11 -0
  261. package/tests/v5-themes.test.ts +215 -0
  262. package/tsconfig.json +43 -0
  263. package/types/componentThemeDefinitions.d.ts +771 -0
  264. package/types/generated-new.d.ts +135 -0
  265. package/types/generated-v3.d.ts +144 -0
  266. package/types/generated-v4-gui.d.ts +190 -0
  267. package/types/generated-v4.d.ts +137 -0
  268. package/types/generated-v5-subtle.d.ts +244 -0
  269. package/types/generated-v5.d.ts +244 -0
  270. package/types/helpers.d.ts +24 -0
  271. package/types/index.d.ts +9 -0
  272. package/types/opacify.d.ts +9 -0
  273. package/types/palettes.d.ts +21 -0
  274. package/types/shadows.d.ts +15 -0
  275. package/types/subtleChildrenThemes.d.ts +305 -0
  276. package/types/templates.d.ts +155 -0
  277. package/types/themes-new.d.ts +42243 -0
  278. package/types/themes-old.d.ts +51411 -0
  279. package/types/themes.d.ts +2 -0
  280. package/types/tokens.d.ts +1308 -0
  281. package/types/utils.d.ts +21 -0
  282. package/types/v3-themes.d.ts +16304 -0
  283. package/types/v3-tokens.d.ts +184 -0
  284. package/types/v3.d.ts +11 -0
  285. package/types/v4-default.d.ts +274 -0
  286. package/types/v4-gui.d.ts +195 -0
  287. package/types/v4-tokens.d.ts +184 -0
  288. package/types/v4.d.ts +5 -0
  289. package/types/v5-subtle.d.ts +8 -0
  290. package/types/v5-templates.d.ts +42 -0
  291. package/types/v5-themes-subtle.d.ts +250 -0
  292. package/types/v5-themes.d.ts +752 -0
  293. package/types/v5-tokens.d.ts +185 -0
  294. package/types/v5.d.ts +8 -0
  295. package/v3/index.cjs +2 -0
  296. package/v3/index.js +2 -0
  297. package/v3/index.native.cjs +2 -0
  298. package/v3/index.native.js +2 -0
  299. package/v3-themes/index.cjs +2 -0
  300. package/v3-themes/index.js +2 -0
  301. package/v3-themes/index.native.cjs +2 -0
  302. package/v3-themes/index.native.js +2 -0
  303. package/v3-themes.cjs +1 -0
  304. package/v3-themes.d.ts +1 -0
  305. package/v3.cjs +1 -0
  306. package/v3.d.ts +1 -0
  307. package/v4/index.cjs +2 -0
  308. package/v4/index.js +2 -0
  309. package/v4/index.native.cjs +2 -0
  310. package/v4/index.native.js +2 -0
  311. package/v4.cjs +1 -0
  312. package/v4.d.ts +1 -0
  313. package/v5/index.cjs +2 -0
  314. package/v5/index.js +2 -0
  315. package/v5/index.native.cjs +2 -0
  316. package/v5/index.native.js +2 -0
  317. package/v5-subtle/index.cjs +2 -0
  318. package/v5-subtle/index.js +2 -0
  319. package/v5-subtle/index.native.cjs +2 -0
  320. package/v5-subtle/index.native.js +2 -0
  321. package/v5-subtle.cjs +1 -0
  322. package/v5-subtle.d.ts +1 -0
  323. package/v5.cjs +1 -0
  324. package/v5.d.ts +1 -0
@@ -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 as Key extends `$${infer K}` ? K : Key]: number
52
+ }
53
+ type SizeKeys = keyof Sizes
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 ADDED
@@ -0,0 +1,12 @@
1
+ export { themes } from './generated-v3'
2
+ export { tokens } from './v3-themes'
3
+
4
+ // specific colors since we have cjs here
5
+ export { blue, blueDark } from '@hanzogui/colors/legacy'
6
+ export { green, greenDark } from '@hanzogui/colors/legacy'
7
+ export { red, redDark } from '@hanzogui/colors/legacy'
8
+ export { orange, orangeDark } from '@hanzogui/colors/legacy'
9
+ export { yellow, yellowDark } from '@hanzogui/colors/legacy'
10
+ export { pink, pinkDark } from '@hanzogui/colors/legacy'
11
+ export { purple, purpleDark } from '@hanzogui/colors/legacy'
12
+ export { gray, grayDark } from '@hanzogui/colors/legacy'
@@ -0,0 +1,191 @@
1
+ import * as Colors from '@hanzogui/colors/legacy'
2
+ import { createThemes, defaultComponentThemes } from '@hanzogui/theme-builder'
3
+
4
+ /**
5
+ * This is the default config v4 definitions.
6
+ * - uses shorthands v4
7
+ * - uses tokens v4 which are mostly the same as v3
8
+ */
9
+
10
+ // Themes:
11
+
12
+ const darkPalette = [
13
+ '#050505',
14
+ '#151515',
15
+ '#191919',
16
+ '#232323',
17
+ '#282828',
18
+ '#323232',
19
+ '#424242',
20
+ '#494949',
21
+ '#545454',
22
+ '#626262',
23
+ '#a5a5a5',
24
+ '#fff',
25
+ ]
26
+
27
+ const lightPalette = [
28
+ '#fff',
29
+ '#f2f2f2',
30
+ 'hsl(0, 0%, 93%)',
31
+ 'hsl(0, 0%, 91%)',
32
+ 'hsl(0, 0%, 88%)',
33
+ 'hsl(0, 0%, 85%)',
34
+ 'hsl(0, 0%, 82%)',
35
+ 'hsl(0, 0%, 76%)',
36
+ 'hsl(0, 0%, 56%)',
37
+ 'hsl(0, 0%, 50%)',
38
+ 'hsl(0, 0%, 42%)',
39
+ 'hsl(0, 0%, 9%)',
40
+ ]
41
+
42
+ const lightShadows = {
43
+ shadow1: 'rgba(0,0,0,0.04)',
44
+ shadow2: 'rgba(0,0,0,0.08)',
45
+ shadow3: 'rgba(0,0,0,0.16)',
46
+ shadow4: 'rgba(0,0,0,0.24)',
47
+ shadow5: 'rgba(0,0,0,0.32)',
48
+ shadow6: 'rgba(0,0,0,0.4)',
49
+ }
50
+
51
+ const darkShadows = {
52
+ shadow1: 'rgba(0,0,0,0.2)',
53
+ shadow2: 'rgba(0,0,0,0.3)',
54
+ shadow3: 'rgba(0,0,0,0.4)',
55
+ shadow4: 'rgba(0,0,0,0.5)',
56
+ shadow5: 'rgba(0,0,0,0.6)',
57
+ shadow6: 'rgba(0,0,0,0.7)',
58
+ }
59
+
60
+ const blackColors = {
61
+ black1: darkPalette[0],
62
+ black2: darkPalette[1],
63
+ black3: darkPalette[2],
64
+ black4: darkPalette[3],
65
+ black5: darkPalette[4],
66
+ black6: darkPalette[5],
67
+ black7: darkPalette[6],
68
+ black8: darkPalette[7],
69
+ black9: darkPalette[8],
70
+ black10: darkPalette[9],
71
+ black11: darkPalette[10],
72
+ black12: darkPalette[11],
73
+ }
74
+
75
+ const whiteColors = {
76
+ white1: lightPalette[0],
77
+ white2: lightPalette[1],
78
+ white3: lightPalette[2],
79
+ white4: lightPalette[3],
80
+ white5: lightPalette[4],
81
+ white6: lightPalette[5],
82
+ white7: lightPalette[6],
83
+ white8: lightPalette[7],
84
+ white9: lightPalette[8],
85
+ white10: lightPalette[9],
86
+ white11: lightPalette[10],
87
+ white12: lightPalette[11],
88
+ }
89
+
90
+ const generatedThemes = createThemes({
91
+ componentThemes: defaultComponentThemes,
92
+
93
+ base: {
94
+ palette: {
95
+ dark: darkPalette,
96
+ light: lightPalette,
97
+ },
98
+
99
+ // for values we don't want being inherited onto sub-themes
100
+ extra: {
101
+ light: {
102
+ ...Colors.blue,
103
+ ...Colors.red,
104
+ ...Colors.yellow,
105
+ ...Colors.green,
106
+ ...lightShadows,
107
+ ...blackColors,
108
+ ...whiteColors,
109
+ shadowColor: lightShadows.shadow1,
110
+ },
111
+ dark: {
112
+ ...Colors.blueDark,
113
+ ...Colors.redDark,
114
+ ...Colors.yellowDark,
115
+ ...Colors.greenDark,
116
+ ...darkShadows,
117
+ ...blackColors,
118
+ ...whiteColors,
119
+ shadowColor: darkShadows.shadow1,
120
+ },
121
+ },
122
+ },
123
+
124
+ // inverse accent theme
125
+ accent: {
126
+ palette: {
127
+ dark: lightPalette,
128
+ light: darkPalette,
129
+ },
130
+ },
131
+
132
+ childrenThemes: {
133
+ black: {
134
+ palette: {
135
+ dark: Object.values(blackColors),
136
+ light: Object.values(blackColors),
137
+ },
138
+ },
139
+ white: {
140
+ palette: {
141
+ dark: Object.values(whiteColors),
142
+ light: Object.values(whiteColors),
143
+ },
144
+ },
145
+
146
+ blue: {
147
+ palette: {
148
+ dark: Object.values(Colors.blueDark),
149
+ light: Object.values(Colors.blue),
150
+ },
151
+ },
152
+ red: {
153
+ palette: {
154
+ dark: Object.values(Colors.redDark),
155
+ light: Object.values(Colors.red),
156
+ },
157
+ },
158
+ yellow: {
159
+ palette: {
160
+ dark: Object.values(Colors.yellowDark),
161
+ light: Object.values(Colors.yellow),
162
+ },
163
+ },
164
+ green: {
165
+ palette: {
166
+ dark: Object.values(Colors.greenDark),
167
+ light: Object.values(Colors.green),
168
+ },
169
+ },
170
+ },
171
+
172
+ grandChildrenThemes: {
173
+ accent: {
174
+ template: 'inverse',
175
+ },
176
+ },
177
+ })
178
+
179
+ export type GuiThemes = typeof generatedThemes
180
+
181
+ export const themes = generatedThemes
182
+
183
+ /**
184
+ * This is an optional production optimization: themes JS can get to 20Kb or more.
185
+ * Hanzo GUI has ~1Kb of logic to hydrate themes from CSS, so you can remove the JS.
186
+ * So long as you server render your Hanzo GUI CSS, this will save you bundle size:
187
+ */
188
+ // export const themes: GuiThemes =
189
+ // process.env.HANZO_GUI_ENVIRONMENT === 'client' && process.env.NODE_ENV === 'production'
190
+ // ? {}
191
+ // : (generatedThemes as any)
package/src/v4-gui.ts ADDED
@@ -0,0 +1,287 @@
1
+ import * as Colors from '@hanzogui/colors/legacy'
2
+ import { createV4Themes, defaultComponentThemes } from '@hanzogui/theme-builder'
3
+ import { desaturate } from 'color2k'
4
+
5
+ const desat = (colors: Record<string, string>, amount: number) => {
6
+ return Object.fromEntries(
7
+ Object.entries(colors).map(([key, value]) => [key, desaturate(value, amount)])
8
+ )
9
+ }
10
+
11
+ const colorsGreenDark = desat(Colors.greenDark, 0.2) as typeof Colors.greenDark
12
+ const colorsGreen = desat(Colors.green, 0.2) as typeof Colors.green
13
+
14
+ // with color2k:
15
+
16
+ /**
17
+ * Default themes for the gui.hanzo.ai site
18
+ * If you'd like to create your own themes, use `createThemes`
19
+ */
20
+
21
+ const darkPalette = [
22
+ '#040404',
23
+ '#090909',
24
+ '#111',
25
+ '#151515',
26
+ '#222',
27
+ '#282828',
28
+ '#343434',
29
+ '#424242',
30
+ '#515151',
31
+ '#626262',
32
+ '#a5a5a5',
33
+ '#fff',
34
+ ]
35
+
36
+ const lightPalette = [
37
+ '#fff',
38
+ '#f2f2f2',
39
+ 'hsl(0, 0%, 93%)',
40
+ 'hsl(0, 0%, 91%)',
41
+ 'hsl(0, 0%, 88%)',
42
+ 'hsl(0, 0%, 85%)',
43
+ 'hsl(0, 0%, 82%)',
44
+ 'hsl(0, 0%, 76%)',
45
+ 'hsl(0, 0%, 56%)',
46
+ 'hsl(0, 0%, 50%)',
47
+ 'hsl(0, 0%, 42%)',
48
+ 'hsl(0, 0%, 9%)',
49
+ ]
50
+
51
+ const lightShadows = {
52
+ shadow1: 'rgba(0,0,0,0.04)',
53
+ shadow2: 'rgba(0,0,0,0.08)',
54
+ shadow3: 'rgba(0,0,0,0.16)',
55
+ shadow4: 'rgba(0,0,0,0.24)',
56
+ shadow5: 'rgba(0,0,0,0.32)',
57
+ shadow6: 'rgba(0,0,0,0.4)',
58
+ shadow7: 'rgba(0,0,0,0.5)',
59
+ shadow8: 'rgba(0,0,0,0.6)',
60
+ shadow9: 'rgba(0,0,0,0.7)',
61
+ shadow10: 'rgba(0,0,0,0.8)',
62
+ }
63
+
64
+ const darkShadows = {
65
+ shadow1: 'rgba(0,0,0,0.2)',
66
+ shadow2: 'rgba(0,0,0,0.3)',
67
+ shadow3: 'rgba(0,0,0,0.4)',
68
+ shadow4: 'rgba(0,0,0,0.5)',
69
+ shadow5: 'rgba(0,0,0,0.6)',
70
+ shadow6: 'rgba(0,0,0,0.65)',
71
+ shadow7: 'rgba(0,0,0,0.75)',
72
+ shadow8: 'rgba(0,0,0,0.8)',
73
+ shadow9: 'rgba(0,0,0,0.85)',
74
+ shadow10: 'rgba(0,0,0,0.9)',
75
+ }
76
+
77
+ const blackColors = {
78
+ black1: darkPalette[0],
79
+ black2: darkPalette[1],
80
+ black3: darkPalette[2],
81
+ black4: darkPalette[3],
82
+ black5: darkPalette[4],
83
+ black6: darkPalette[5],
84
+ black7: darkPalette[6],
85
+ black8: darkPalette[7],
86
+ black9: darkPalette[8],
87
+ black10: darkPalette[9],
88
+ black11: darkPalette[10],
89
+ black12: darkPalette[11],
90
+ }
91
+
92
+ const whiteColors = {
93
+ white1: lightPalette[0],
94
+ white2: lightPalette[1],
95
+ white3: lightPalette[2],
96
+ white4: lightPalette[3],
97
+ white5: lightPalette[4],
98
+ white6: lightPalette[5],
99
+ white7: lightPalette[6],
100
+ white8: lightPalette[7],
101
+ white9: lightPalette[8],
102
+ white10: lightPalette[9],
103
+ white11: lightPalette[10],
104
+ white12: lightPalette[11],
105
+ }
106
+
107
+ const themes = createV4Themes({
108
+ componentThemes: defaultComponentThemes,
109
+
110
+ base: {
111
+ palette: {
112
+ dark: darkPalette,
113
+ light: lightPalette,
114
+ },
115
+
116
+ // for values we don't want being inherited onto sub-themes
117
+ extra: {
118
+ light: {
119
+ ...Colors.blue,
120
+ ...Colors.gray,
121
+ ...colorsGreen,
122
+ ...Colors.orange,
123
+ ...Colors.pink,
124
+ ...Colors.purple,
125
+ ...Colors.red,
126
+ ...Colors.yellow,
127
+ ...lightShadows,
128
+ ...blackColors,
129
+ ...whiteColors,
130
+ shadowColor: lightShadows.shadow1,
131
+ colorBg: '#fff',
132
+ },
133
+ dark: {
134
+ ...Colors.blueDark,
135
+ ...Colors.grayDark,
136
+ ...colorsGreenDark,
137
+ ...Colors.orangeDark,
138
+ ...Colors.pinkDark,
139
+ ...Colors.purpleDark,
140
+ ...Colors.redDark,
141
+ ...Colors.yellowDark,
142
+ ...darkShadows,
143
+ ...blackColors,
144
+ ...whiteColors,
145
+ shadowColor: darkShadows.shadow1,
146
+ colorBg: '#000',
147
+ },
148
+ },
149
+ },
150
+
151
+ // inverse accent theme
152
+ accent: {
153
+ palette: {
154
+ dark: lightPalette,
155
+ light: darkPalette,
156
+ },
157
+ },
158
+
159
+ childrenThemes: {
160
+ black: {
161
+ palette: {
162
+ dark: Object.values(blackColors),
163
+ light: Object.values(blackColors),
164
+ },
165
+ },
166
+ white: {
167
+ palette: {
168
+ dark: Object.values(whiteColors),
169
+ light: Object.values(whiteColors),
170
+ },
171
+ },
172
+ gray: {
173
+ palette: {
174
+ dark: Object.values(Colors.grayDark),
175
+ light: Object.values(Colors.gray),
176
+ },
177
+ },
178
+ blue: {
179
+ palette: {
180
+ dark: Object.values(Colors.blueDark),
181
+ light: Object.values(Colors.blue),
182
+ },
183
+ },
184
+ orange: {
185
+ palette: {
186
+ dark: Object.values(Colors.orangeDark),
187
+ light: Object.values(Colors.orange),
188
+ },
189
+ },
190
+ red: {
191
+ palette: {
192
+ dark: Object.values(Colors.redDark),
193
+ light: Object.values(Colors.red),
194
+ },
195
+ },
196
+ yellow: {
197
+ palette: {
198
+ dark: Object.values(Colors.yellowDark),
199
+ light: Object.values(Colors.yellow),
200
+ },
201
+ },
202
+ green: {
203
+ palette: {
204
+ dark: Object.values(colorsGreenDark),
205
+ light: Object.values(colorsGreen),
206
+ },
207
+ },
208
+ purple: {
209
+ palette: {
210
+ dark: Object.values(Colors.purpleDark),
211
+ light: Object.values(Colors.purple),
212
+ },
213
+ },
214
+ pink: {
215
+ palette: {
216
+ dark: Object.values(Colors.pinkDark),
217
+ light: Object.values(Colors.pink),
218
+ },
219
+ },
220
+ tan: {
221
+ palette: {
222
+ light: [
223
+ 'hsla(40, 30%, 98%, 1)',
224
+ 'hsla(40, 24%, 94%, 1)',
225
+ 'hsla(38, 23%, 91%, 1)',
226
+ 'hsla(36, 20%, 90%, 1)',
227
+ 'hsla(36, 20%, 88%, 1)',
228
+ 'hsla(35, 20%, 85%, 1)',
229
+ 'hsla(35, 21%, 74%, 1)',
230
+ 'hsla(34, 20%, 70%, 1)',
231
+ 'hsla(35, 20%, 67%, 1)',
232
+ 'hsla(34, 19%, 47%, 1)',
233
+ 'hsla(35, 18%, 37%, 1)',
234
+ 'hsla(35, 17%, 20%, 1)',
235
+ ],
236
+ dark: [
237
+ 'hsla(30, 9%, 10%, 1)',
238
+ 'hsla(30, 10%, 12%, 1)',
239
+ 'hsla(31, 11%, 18%, 1)',
240
+ 'hsla(30, 12%, 23%, 1)',
241
+ 'hsla(30, 14%, 28%, 1)',
242
+ 'hsla(30, 16%, 33%, 1)',
243
+ 'hsla(30, 18%, 38%, 1)',
244
+ 'hsla(30, 20%, 45%, 1)',
245
+ 'hsla(30, 21%, 50%, 1)',
246
+ 'hsla(29, 22%, 58%, 1)',
247
+ 'hsla(34, 24%, 70%, 1)',
248
+ 'hsla(11, 12%, 79%, 1)',
249
+ ],
250
+ },
251
+ },
252
+ },
253
+
254
+ grandChildrenThemes: {
255
+ // inverse accent theme
256
+ accent: {
257
+ template: 'inverse',
258
+ },
259
+ alt1: {
260
+ template: 'alt1',
261
+ },
262
+ alt2: {
263
+ template: 'alt2',
264
+ },
265
+ surface1: {
266
+ template: 'surface1',
267
+ },
268
+ surface2: {
269
+ template: 'surface2',
270
+ },
271
+ surface3: {
272
+ template: 'surface3',
273
+ },
274
+ },
275
+ })
276
+
277
+ export type GuiThemes = typeof themes
278
+
279
+ /**
280
+ * This is an optional production optimization: themes JS can get to 20Kb or more.
281
+ * Hanzo GUI has <1Kb of logic to hydrate themes from CSS, so you can remove the JS.
282
+ * So long as you server render your Hanzo GUI CSS, this will save you bundle size:
283
+ */
284
+ export const guiThemes: GuiThemes =
285
+ process.env.HANZO_GUI_ENVIRONMENT === 'client' && process.env.NODE_ENV === 'production'
286
+ ? ({} as any)
287
+ : (themes as any)
@@ -0,0 +1,105 @@
1
+ import { sizeToSpace } from './utils'
2
+
3
+ // the same as v3 for now, but duplicated to avoid accidental changes to both
4
+
5
+ // --- tokens ---
6
+
7
+ // should roughly map to button/input etc height at each level
8
+ // fonts should match that height/lineHeight at each stop
9
+ // so these are really non-linear on purpose
10
+ // why?
11
+ // - at sizes <1, used for fine grained things (borders, smallest paddingY)
12
+ // - so smallest padY should be roughly 1-4px so it can join with lineHeight
13
+ // - at sizes >=1, have to consider "pressability" (jumps up)
14
+ // - after that it should go upwards somewhat naturally
15
+ // - H1 / headings top out at 10 naturally, so after 10 we can go upwards faster
16
+ // but also one more wrinkle...
17
+ // space is used in conjunction with size
18
+ // i'm setting space to generally just a fixed fraction of size (~1/3-2/3 still fine tuning)
19
+ export const size = {
20
+ $0: 0,
21
+ '$0.25': 2,
22
+ '$0.5': 4,
23
+ '$0.75': 8,
24
+ $1: 20,
25
+ '$1.5': 24,
26
+ $2: 28,
27
+ '$2.5': 32,
28
+ $3: 36,
29
+ '$3.5': 40,
30
+ $4: 44,
31
+ $true: 44,
32
+ '$4.5': 48,
33
+ $5: 52,
34
+ $6: 64,
35
+ $7: 74,
36
+ $8: 84,
37
+ $9: 94,
38
+ $10: 104,
39
+ $11: 124,
40
+ $12: 144,
41
+ $13: 164,
42
+ $14: 184,
43
+ $15: 204,
44
+ $16: 224,
45
+ $17: 224,
46
+ $18: 244,
47
+ $19: 264,
48
+ $20: 284,
49
+ }
50
+
51
+ type SizeKeysIn = keyof typeof size
52
+ type Sizes = {
53
+ [Key in SizeKeysIn extends `$${infer Key}` ? Key : SizeKeysIn]: number
54
+ }
55
+ type SizeKeys = `${keyof Sizes extends `${infer K}` ? K : never}`
56
+
57
+ export const spaces = Object.entries(size).map(([k, v]) => {
58
+ return [k, sizeToSpace(v)] as const
59
+ })
60
+
61
+ export const spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v])
62
+
63
+ type SizeKeysWithNegatives =
64
+ | Exclude<`-${SizeKeys extends `$${infer Key}` ? Key : SizeKeys}`, '-0'>
65
+ | SizeKeys
66
+
67
+ export const space: {
68
+ [Key in SizeKeysWithNegatives]: Key extends keyof Sizes ? Sizes[Key] : number
69
+ } = {
70
+ ...Object.fromEntries(spaces),
71
+ ...Object.fromEntries(spacesNegative),
72
+ } as any
73
+
74
+ export const zIndex = {
75
+ 0: 0,
76
+ 1: 100,
77
+ 2: 200,
78
+ 3: 300,
79
+ 4: 400,
80
+ 5: 500,
81
+ }
82
+
83
+ export const radius = {
84
+ 0: 0,
85
+ 1: 3,
86
+ 2: 5,
87
+ 3: 7,
88
+ 4: 9,
89
+ true: 9,
90
+ 5: 10,
91
+ 6: 16,
92
+ 7: 19,
93
+ 8: 22,
94
+ 9: 26,
95
+ 10: 34,
96
+ 11: 42,
97
+ 12: 50,
98
+ }
99
+
100
+ export const tokens = {
101
+ radius,
102
+ zIndex,
103
+ space,
104
+ size,
105
+ } as const
package/src/v4.tsx ADDED
@@ -0,0 +1,4 @@
1
+ export { tokens } from './v4-tokens'
2
+ export { createThemes } from '@hanzogui/theme-builder'
3
+ export { themes as guiThemes } from './generated-v4-gui'
4
+ export { themes as defaultThemes } from './generated-v4'
@@ -0,0 +1,11 @@
1
+ export { createThemes } from '@hanzogui/theme-builder'
2
+ export { themes } from './generated-v5-subtle'
3
+ export type {
4
+ Theme as V5SubtleTheme,
5
+ ThemeNames as V5SubtleThemeNames,
6
+ Themes as V5SubtleThemes,
7
+ } from './generated-v5-subtle'
8
+ export { v5Templates } from './v5-templates'
9
+ export * from './v5-themes-subtle'
10
+ export { tokens } from './v5-tokens'
11
+ export type { V5Tokens } from './v5-tokens'