@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.
- package/LICENSE +21 -0
- package/dist/cjs/componentThemeDefinitions.cjs +124 -0
- package/dist/cjs/componentThemeDefinitions.native.js +127 -0
- package/dist/cjs/componentThemeDefinitions.native.js.map +1 -0
- package/dist/cjs/generated-new.cjs +2021 -0
- package/dist/cjs/generated-new.native.js +2040 -0
- package/dist/cjs/generated-new.native.js.map +1 -0
- package/dist/cjs/generated-v3.cjs +1099 -0
- package/dist/cjs/generated-v3.native.js +1118 -0
- package/dist/cjs/generated-v3.native.js.map +1 -0
- package/dist/cjs/generated-v4-gui.cjs +933 -0
- package/dist/cjs/generated-v4-gui.native.js +952 -0
- package/dist/cjs/generated-v4-gui.native.js.map +1 -0
- package/dist/cjs/generated-v4.cjs +391 -0
- package/dist/cjs/generated-v4.native.js +410 -0
- package/dist/cjs/generated-v4.native.js.map +1 -0
- package/dist/cjs/generated-v5-subtle.cjs +549 -0
- package/dist/cjs/generated-v5-subtle.native.js +568 -0
- package/dist/cjs/generated-v5-subtle.native.js.map +1 -0
- package/dist/cjs/generated-v5.cjs +549 -0
- package/dist/cjs/generated-v5.native.js +568 -0
- package/dist/cjs/generated-v5.native.js.map +1 -0
- package/dist/cjs/helpers.cjs +34 -0
- package/dist/cjs/helpers.native.js +39 -0
- package/dist/cjs/helpers.native.js.map +1 -0
- package/dist/cjs/index.cjs +25 -0
- package/dist/cjs/index.native.js +28 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/opacify.cjs +96 -0
- package/dist/cjs/opacify.native.js +106 -0
- package/dist/cjs/opacify.native.js.map +1 -0
- package/dist/cjs/palettes.cjs +52 -0
- package/dist/cjs/palettes.native.js +63 -0
- package/dist/cjs/palettes.native.js.map +1 -0
- package/dist/cjs/shadows.cjs +43 -0
- package/dist/cjs/shadows.native.js +46 -0
- package/dist/cjs/shadows.native.js.map +1 -0
- package/dist/cjs/subtleChildrenThemes.cjs +65 -0
- package/dist/cjs/subtleChildrenThemes.native.js +74 -0
- package/dist/cjs/subtleChildrenThemes.native.js.map +1 -0
- package/dist/cjs/templates.cjs +118 -0
- package/dist/cjs/templates.native.js +121 -0
- package/dist/cjs/templates.native.js.map +1 -0
- package/dist/cjs/themes-new.cjs +86 -0
- package/dist/cjs/themes-new.native.js +88 -0
- package/dist/cjs/themes-new.native.js.map +1 -0
- package/dist/cjs/themes-old.cjs +284 -0
- package/dist/cjs/themes-old.native.js +303 -0
- package/dist/cjs/themes-old.native.js.map +1 -0
- package/dist/cjs/themes.cjs +26 -0
- package/dist/cjs/themes.native.js +29 -0
- package/dist/cjs/themes.native.js.map +1 -0
- package/dist/cjs/tokens.cjs +155 -0
- package/dist/cjs/tokens.native.js +167 -0
- package/dist/cjs/tokens.native.js.map +1 -0
- package/dist/cjs/utils.cjs +40 -0
- package/dist/cjs/utils.native.js +46 -0
- package/dist/cjs/utils.native.js.map +1 -0
- package/dist/cjs/v3-themes.cjs +472 -0
- package/dist/cjs/v3-themes.native.js +487 -0
- package/dist/cjs/v3-themes.native.js.map +1 -0
- package/dist/cjs/v3-tokens.cjs +99 -0
- package/dist/cjs/v3-tokens.native.js +108 -0
- package/dist/cjs/v3-tokens.native.js.map +1 -0
- package/dist/cjs/v3.cjs +52 -0
- package/dist/cjs/v3.native.js +55 -0
- package/dist/cjs/v3.native.js.map +1 -0
- package/dist/cjs/v4-default.cjs +167 -0
- package/dist/cjs/v4-default.native.js +170 -0
- package/dist/cjs/v4-default.native.js.map +1 -0
- package/dist/cjs/v4-gui.cjs +235 -0
- package/dist/cjs/v4-gui.native.js +243 -0
- package/dist/cjs/v4-gui.native.js.map +1 -0
- package/dist/cjs/v4-tokens.cjs +99 -0
- package/dist/cjs/v4-tokens.native.js +108 -0
- package/dist/cjs/v4-tokens.native.js.map +1 -0
- package/dist/cjs/v4.cjs +32 -0
- package/dist/cjs/v4.native.js +35 -0
- package/dist/cjs/v4.native.js.map +1 -0
- package/dist/cjs/v5-subtle.cjs +34 -0
- package/dist/cjs/v5-subtle.native.js +37 -0
- package/dist/cjs/v5-subtle.native.js.map +1 -0
- package/dist/cjs/v5-templates.cjs +110 -0
- package/dist/cjs/v5-templates.native.js +126 -0
- package/dist/cjs/v5-templates.native.js.map +1 -0
- package/dist/cjs/v5-themes-subtle.cjs +37 -0
- package/dist/cjs/v5-themes-subtle.native.js +40 -0
- package/dist/cjs/v5-themes-subtle.native.js.map +1 -0
- package/dist/cjs/v5-themes.cjs +400 -0
- package/dist/cjs/v5-themes.native.js +445 -0
- package/dist/cjs/v5-themes.native.js.map +1 -0
- package/dist/cjs/v5-tokens.cjs +99 -0
- package/dist/cjs/v5-tokens.native.js +108 -0
- package/dist/cjs/v5-tokens.native.js.map +1 -0
- package/dist/cjs/v5.cjs +34 -0
- package/dist/cjs/v5.native.js +37 -0
- package/dist/cjs/v5.native.js.map +1 -0
- package/dist/esm/componentThemeDefinitions.mjs +100 -0
- package/dist/esm/componentThemeDefinitions.mjs.map +1 -0
- package/dist/esm/componentThemeDefinitions.native.js +100 -0
- package/dist/esm/componentThemeDefinitions.native.js.map +1 -0
- package/dist/esm/generated-new.mjs +1997 -0
- package/dist/esm/generated-new.mjs.map +1 -0
- package/dist/esm/generated-new.native.js +2013 -0
- package/dist/esm/generated-new.native.js.map +1 -0
- package/dist/esm/generated-v3.mjs +1075 -0
- package/dist/esm/generated-v3.mjs.map +1 -0
- package/dist/esm/generated-v3.native.js +1091 -0
- package/dist/esm/generated-v3.native.js.map +1 -0
- package/dist/esm/generated-v4-gui.mjs +909 -0
- package/dist/esm/generated-v4-gui.mjs.map +1 -0
- package/dist/esm/generated-v4-gui.native.js +925 -0
- package/dist/esm/generated-v4-gui.native.js.map +1 -0
- package/dist/esm/generated-v4.mjs +367 -0
- package/dist/esm/generated-v4.mjs.map +1 -0
- package/dist/esm/generated-v4.native.js +383 -0
- package/dist/esm/generated-v4.native.js.map +1 -0
- package/dist/esm/generated-v5-subtle.mjs +525 -0
- package/dist/esm/generated-v5-subtle.mjs.map +1 -0
- package/dist/esm/generated-v5-subtle.native.js +541 -0
- package/dist/esm/generated-v5-subtle.native.js.map +1 -0
- package/dist/esm/generated-v5.mjs +525 -0
- package/dist/esm/generated-v5.mjs.map +1 -0
- package/dist/esm/generated-v5.native.js +541 -0
- package/dist/esm/generated-v5.native.js.map +1 -0
- package/dist/esm/helpers.mjs +9 -0
- package/dist/esm/helpers.mjs.map +1 -0
- package/dist/esm/helpers.native.js +11 -0
- package/dist/esm/helpers.native.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +9 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +9 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/opacify.mjs +72 -0
- package/dist/esm/opacify.mjs.map +1 -0
- package/dist/esm/opacify.native.js +79 -0
- package/dist/esm/opacify.native.js.map +1 -0
- package/dist/esm/palettes.mjs +29 -0
- package/dist/esm/palettes.mjs.map +1 -0
- package/dist/esm/palettes.native.js +37 -0
- package/dist/esm/palettes.native.js.map +1 -0
- package/dist/esm/shadows.mjs +20 -0
- package/dist/esm/shadows.mjs.map +1 -0
- package/dist/esm/shadows.native.js +20 -0
- package/dist/esm/shadows.native.js.map +1 -0
- package/dist/esm/subtleChildrenThemes.mjs +41 -0
- package/dist/esm/subtleChildrenThemes.mjs.map +1 -0
- package/dist/esm/subtleChildrenThemes.native.js +47 -0
- package/dist/esm/subtleChildrenThemes.native.js.map +1 -0
- package/dist/esm/templates.mjs +94 -0
- package/dist/esm/templates.mjs.map +1 -0
- package/dist/esm/templates.native.js +94 -0
- package/dist/esm/templates.native.js.map +1 -0
- package/dist/esm/themes-new.mjs +63 -0
- package/dist/esm/themes-new.mjs.map +1 -0
- package/dist/esm/themes-new.native.js +62 -0
- package/dist/esm/themes-new.native.js.map +1 -0
- package/dist/esm/themes-old.mjs +261 -0
- package/dist/esm/themes-old.mjs.map +1 -0
- package/dist/esm/themes-old.native.js +277 -0
- package/dist/esm/themes-old.native.js.map +1 -0
- package/dist/esm/themes.mjs +3 -0
- package/dist/esm/themes.mjs.map +1 -0
- package/dist/esm/themes.native.js +3 -0
- package/dist/esm/themes.native.js.map +1 -0
- package/dist/esm/tokens.mjs +124 -0
- package/dist/esm/tokens.mjs.map +1 -0
- package/dist/esm/tokens.native.js +133 -0
- package/dist/esm/tokens.native.js.map +1 -0
- package/dist/esm/utils.mjs +14 -0
- package/dist/esm/utils.mjs.map +1 -0
- package/dist/esm/utils.native.js +17 -0
- package/dist/esm/utils.native.js.map +1 -0
- package/dist/esm/v3-themes.mjs +444 -0
- package/dist/esm/v3-themes.mjs.map +1 -0
- package/dist/esm/v3-themes.native.js +456 -0
- package/dist/esm/v3-themes.native.js.map +1 -0
- package/dist/esm/v3-tokens.mjs +70 -0
- package/dist/esm/v3-tokens.mjs.map +1 -0
- package/dist/esm/v3-tokens.native.js +76 -0
- package/dist/esm/v3-tokens.native.js.map +1 -0
- package/dist/esm/v3.mjs +12 -0
- package/dist/esm/v3.mjs.map +1 -0
- package/dist/esm/v3.native.js +12 -0
- package/dist/esm/v3.native.js.map +1 -0
- package/dist/esm/v4-default.mjs +133 -0
- package/dist/esm/v4-default.mjs.map +1 -0
- package/dist/esm/v4-default.native.js +133 -0
- package/dist/esm/v4-default.native.js.map +1 -0
- package/dist/esm/v4-gui.mjs +201 -0
- package/dist/esm/v4-gui.mjs.map +1 -0
- package/dist/esm/v4-gui.native.js +206 -0
- package/dist/esm/v4-gui.native.js.map +1 -0
- package/dist/esm/v4-tokens.mjs +70 -0
- package/dist/esm/v4-tokens.mjs.map +1 -0
- package/dist/esm/v4-tokens.native.js +76 -0
- package/dist/esm/v4-tokens.native.js.map +1 -0
- package/dist/esm/v4.mjs +6 -0
- package/dist/esm/v4.mjs.map +1 -0
- package/dist/esm/v4.native.js +6 -0
- package/dist/esm/v4.native.js.map +1 -0
- package/dist/esm/v5-subtle.mjs +7 -0
- package/dist/esm/v5-subtle.mjs.map +1 -0
- package/dist/esm/v5-subtle.native.js +7 -0
- package/dist/esm/v5-subtle.native.js.map +1 -0
- package/dist/esm/v5-templates.mjs +87 -0
- package/dist/esm/v5-templates.mjs.map +1 -0
- package/dist/esm/v5-templates.native.js +100 -0
- package/dist/esm/v5-templates.native.js.map +1 -0
- package/dist/esm/v5-themes-subtle.mjs +13 -0
- package/dist/esm/v5-themes-subtle.mjs.map +1 -0
- package/dist/esm/v5-themes-subtle.native.js +13 -0
- package/dist/esm/v5-themes-subtle.native.js.map +1 -0
- package/dist/esm/v5-themes.mjs +361 -0
- package/dist/esm/v5-themes.mjs.map +1 -0
- package/dist/esm/v5-themes.native.js +403 -0
- package/dist/esm/v5-themes.native.js.map +1 -0
- package/dist/esm/v5-tokens.mjs +70 -0
- package/dist/esm/v5-tokens.mjs.map +1 -0
- package/dist/esm/v5-tokens.native.js +76 -0
- package/dist/esm/v5-tokens.native.js.map +1 -0
- package/dist/esm/v5.mjs +7 -0
- package/dist/esm/v5.mjs.map +1 -0
- package/dist/esm/v5.native.js +7 -0
- package/dist/esm/v5.native.js.map +1 -0
- package/package.json +95 -0
- package/src/componentThemeDefinitions.tsx +129 -0
- package/src/generated-new.ts +2571 -0
- package/src/generated-v3.ts +1826 -0
- package/src/generated-v4-gui.ts +2200 -0
- package/src/generated-v4.ts +1004 -0
- package/src/generated-v5-subtle.ts +2170 -0
- package/src/generated-v5.ts +2188 -0
- package/src/helpers.ts +44 -0
- package/src/index.tsx +8 -0
- package/src/opacify.ts +125 -0
- package/src/palettes.tsx +91 -0
- package/src/shadows.tsx +19 -0
- package/src/subtleChildrenThemes.ts +54 -0
- package/src/templates.tsx +104 -0
- package/src/themes-new.ts +74 -0
- package/src/themes-old.tsx +378 -0
- package/src/themes.tsx +1 -0
- package/src/tokens.tsx +199 -0
- package/src/utils.ts +51 -0
- package/src/v3-themes.ts +650 -0
- package/src/v3-tokens.ts +103 -0
- package/src/v3.tsx +12 -0
- package/src/v4-default.ts +191 -0
- package/src/v4-gui.ts +287 -0
- package/src/v4-tokens.ts +105 -0
- package/src/v4.tsx +4 -0
- package/src/v5-subtle.tsx +11 -0
- package/src/v5-templates.ts +126 -0
- package/src/v5-themes-subtle.ts +18 -0
- package/src/v5-themes.ts +626 -0
- package/src/v5-tokens.ts +107 -0
- package/src/v5.tsx +11 -0
- package/tests/v5-themes.test.ts +215 -0
- package/tsconfig.json +43 -0
- package/types/componentThemeDefinitions.d.ts +771 -0
- package/types/generated-new.d.ts +135 -0
- package/types/generated-v3.d.ts +144 -0
- package/types/generated-v4-gui.d.ts +190 -0
- package/types/generated-v4.d.ts +137 -0
- package/types/generated-v5-subtle.d.ts +244 -0
- package/types/generated-v5.d.ts +244 -0
- package/types/helpers.d.ts +24 -0
- package/types/index.d.ts +9 -0
- package/types/opacify.d.ts +9 -0
- package/types/palettes.d.ts +21 -0
- package/types/shadows.d.ts +15 -0
- package/types/subtleChildrenThemes.d.ts +305 -0
- package/types/templates.d.ts +155 -0
- package/types/themes-new.d.ts +42243 -0
- package/types/themes-old.d.ts +51411 -0
- package/types/themes.d.ts +2 -0
- package/types/tokens.d.ts +1308 -0
- package/types/utils.d.ts +21 -0
- package/types/v3-themes.d.ts +16304 -0
- package/types/v3-tokens.d.ts +184 -0
- package/types/v3.d.ts +11 -0
- package/types/v4-default.d.ts +274 -0
- package/types/v4-gui.d.ts +195 -0
- package/types/v4-tokens.d.ts +184 -0
- package/types/v4.d.ts +5 -0
- package/types/v5-subtle.d.ts +8 -0
- package/types/v5-templates.d.ts +42 -0
- package/types/v5-themes-subtle.d.ts +250 -0
- package/types/v5-themes.d.ts +752 -0
- package/types/v5-tokens.d.ts +185 -0
- package/types/v5.d.ts +8 -0
- package/v3/index.cjs +2 -0
- package/v3/index.js +2 -0
- package/v3/index.native.cjs +2 -0
- package/v3/index.native.js +2 -0
- package/v3-themes/index.cjs +2 -0
- package/v3-themes/index.js +2 -0
- package/v3-themes/index.native.cjs +2 -0
- package/v3-themes/index.native.js +2 -0
- package/v3-themes.cjs +1 -0
- package/v3-themes.d.ts +1 -0
- package/v3.cjs +1 -0
- package/v3.d.ts +1 -0
- package/v4/index.cjs +2 -0
- package/v4/index.js +2 -0
- package/v4/index.native.cjs +2 -0
- package/v4/index.native.js +2 -0
- package/v4.cjs +1 -0
- package/v4.d.ts +1 -0
- package/v5/index.cjs +2 -0
- package/v5/index.js +2 -0
- package/v5/index.native.cjs +2 -0
- package/v5/index.native.js +2 -0
- package/v5-subtle/index.cjs +2 -0
- package/v5-subtle/index.js +2 -0
- package/v5-subtle/index.native.cjs +2 -0
- package/v5-subtle/index.native.js +2 -0
- package/v5-subtle.cjs +1 -0
- package/v5-subtle.d.ts +1 -0
- package/v5.cjs +1 -0
- package/v5.d.ts +1 -0
package/src/v3-tokens.ts
ADDED
|
@@ -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)
|
package/src/v4-tokens.ts
ADDED
|
@@ -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,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'
|