@tamagui/theme-base 1.0.0-canary.204 → 1.0.1-beta.102

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.
@@ -1,43 +1,68 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import * as Colors from "@tamagui/colors";
4
- import { allDarkColors, allLightColors } from "@tamagui/colors";
5
- import { getVariableValue } from "@tamagui/core";
1
+ import { createTheme, getVariableValue, isWeb } from "@tamagui/core";
6
2
  import { setColorAlpha } from "./colorUtils";
7
- import { color } from "./tokens";
3
+ import { darkColors, lightColors, tokens } from "./tokens";
4
+ const { color } = tokens;
8
5
  const alternates = [1, 2, 3, 4];
6
+ const alts = [1, 2, 3];
9
7
  function createThemesFrom(name, getTheme, props) {
10
8
  const { shift = 0 } = props;
11
9
  const theme = getTheme(0 + shift, props);
12
10
  let themeEntries = [[name, theme]];
13
11
  const altThemes = alternates.map((alt) => [
12
+ `${name}_alt${alt}`,
13
+ getTheme(alt + (props.isLight ? 0 : 0) + shift, props)
14
+ ]);
15
+ const altThemes2 = alternates.map((alt) => [
14
16
  `${name}_alt${alt}`,
15
17
  getTheme(alt + shift, props)
16
18
  ]);
17
19
  const altButtonThemes = alternates.map((_, i) => {
18
- const [bName, bTheme] = [altThemes[i][0], (altThemes[i + 1] || altThemes[i])[1]];
20
+ const [bName, bTheme] = [altThemes2[i][0], (altThemes2[i + 1] || altThemes2[i])[1]];
19
21
  return [`${bName}_Button`, bTheme];
20
22
  });
21
23
  const darkerTheme = getTheme(Math.max(0, shift + (props.isLight ? 1 : -1)), props);
22
24
  const activeTheme = makeActiveTheme(theme);
25
+ const inverted = altThemes.map(([_name, theme2]) => {
26
+ return {
27
+ ...theme2,
28
+ background: theme2.color,
29
+ backgroundHover: theme2.colorHover,
30
+ backgroundFocus: theme2.colorFocus,
31
+ backgroundPress: theme2.colorPress,
32
+ color: theme2.background,
33
+ colorHover: theme2.backgroundHover,
34
+ colorFocus: theme2.backgroundFocus,
35
+ colorPress: theme2.backgroundPress
36
+ };
37
+ });
23
38
  themeEntries = [
24
39
  ...themeEntries,
25
- ...altThemes,
26
- ...altButtonThemes,
27
- [`${name}_Button`, altThemes[0][1]],
40
+ ...altThemes.slice(0, alts.length),
41
+ ...altButtonThemes.slice(0, alts.length),
42
+ [`${name}_Button`, altThemes2[1][1]],
43
+ [`${name}_DrawerFrame`, altThemes2[1][1]],
44
+ [`${name}_SliderTrack`, altThemes[0][1]],
45
+ [`${name}_SliderTrackActive`, altThemes[3][1]],
46
+ [`${name}_SliderThumb`, inverted[2]],
47
+ [`${name}_Progress`, altThemes[2][1]],
48
+ [`${name}_ProgressIndicator`, inverted[2]],
49
+ [`${name}_Switch`, altThemes[0][1]],
50
+ [`${name}_SwitchThumb`, inverted[2]],
51
+ [`${name}_TooltipArrow`, altThemes[1][1]],
52
+ [`${name}_TooltipContent`, altThemes[1][1]],
28
53
  [`${name}_darker`, darkerTheme],
29
54
  [`${name}_active`, activeTheme]
30
55
  ];
31
56
  const themes2 = Object.fromEntries(themeEntries);
32
57
  return themes2;
33
58
  }
34
- __name(createThemesFrom, "createThemesFrom");
35
- const createTheme = /* @__PURE__ */ __name((str = 1, {
59
+ const themeCreator = (str = 1, {
36
60
  backgrounds,
37
61
  isLight = true,
38
62
  isBase = false,
39
63
  colors = [...backgrounds].reverse(),
40
64
  borderColors = isLight ? colors : backgrounds,
65
+ backgroundStrong,
41
66
  offsets: offsetsProp
42
67
  }) => {
43
68
  var _a, _b, _c, _d;
@@ -46,37 +71,54 @@ const createTheme = /* @__PURE__ */ __name((str = 1, {
46
71
  background: (_c = offsetsProp == null ? void 0 : offsetsProp.background) != null ? _c : [0, 0, 0, 0],
47
72
  color: (_d = offsetsProp == null ? void 0 : offsetsProp.color) != null ? _d : [0, 0, 0, 0]
48
73
  };
49
- const darkColors = isLight ? colors : backgrounds;
74
+ const darkColors2 = isLight ? colors : backgrounds;
50
75
  const lighterDir = isLight ? -1 : 1;
51
76
  const darkerDir = -lighterDir;
52
77
  const strongerDir = isLight ? darkerDir : lighterDir;
53
- const get = /* @__PURE__ */ __name((arr, index, name = "background") => {
78
+ const softerDir = -strongerDir;
79
+ const get = (arr, index, name = "background") => {
54
80
  return arr[Math.max(0, Math.min(index + (offsets[name][str] || 0), arr.length - 1))];
55
- }, "get");
81
+ };
56
82
  const colorTranslucent = setColorAlpha(getVariableValue(get(colors, 0 + str, "color")), 0.5);
57
83
  let theme = {
58
84
  background: get(backgrounds, str),
59
- backgroundStronger: get(backgrounds, str + strongerDir),
60
- backgroundSoft: get(backgrounds, str + 3),
85
+ backgroundStrong: backgroundStrong || get(backgrounds, str + strongerDir * 2),
86
+ backgroundSoft: get(backgrounds, str + softerDir * 2),
61
87
  backgroundHover: get(backgrounds, str + lighterDir),
62
- backgroundPress: get(backgrounds, str + darkerDir * 1),
88
+ backgroundPress: get(backgrounds, str + darkerDir),
63
89
  backgroundFocus: get(backgrounds, str + darkerDir * 2),
64
- backgroundTransparent: color.grayA1,
90
+ backgroundTransparent: color.grayA1Light,
65
91
  color: get(colors, 0 + str, "color"),
66
92
  colorHover: get(colors, 1 + str, "color"),
67
93
  colorPress: get(colors, 2 + str, "color"),
68
94
  colorFocus: get(colors, 3 + str, "color"),
69
95
  colorTranslucent,
70
- colorMid: colors[Math.floor(colors.length / 2)],
71
- shadowColor: isLight ? color.grayA3 : color.grayA8,
72
- shadowColorHover: darkColors[!isLight ? 1 : 8],
73
- shadowColorPress: darkColors[!isLight ? 1 : 8],
74
- shadowColorFocus: darkColors[!isLight ? 1 : 8],
96
+ colorMid: (isLight ? colors : backgrounds)[Math.floor(colors.length / 2)],
97
+ shadowColor: isLight ? color.grayA2Light : color.grayA8Light,
98
+ shadowColorHover: darkColors2[!isLight ? 1 : 8],
99
+ shadowColorPress: darkColors2[!isLight ? 1 : 8],
100
+ shadowColorFocus: darkColors2[!isLight ? 1 : 8],
75
101
  borderColor: null,
76
102
  borderColorHover: null,
77
103
  borderColorPress: null,
78
104
  borderColorFocus: null
79
105
  };
106
+ if (process.env.ENABLE_STEPS) {
107
+ Object.assign(theme, {
108
+ step1: backgrounds[0],
109
+ step2: backgrounds[1],
110
+ step3: backgrounds[2],
111
+ step4: backgrounds[3],
112
+ step5: backgrounds[4],
113
+ step6: backgrounds[5],
114
+ step7: backgrounds[6],
115
+ step8: backgrounds[7],
116
+ step9: backgrounds[8],
117
+ step10: backgrounds[9],
118
+ step11: backgrounds[10],
119
+ step12: backgrounds[11]
120
+ });
121
+ }
80
122
  if (isBase) {
81
123
  Object.assign(theme, {
82
124
  borderColor: isLight ? get(colors, 8 - str, "borderColor") : get(backgrounds, 2 + str, "borderColor"),
@@ -93,60 +135,52 @@ const createTheme = /* @__PURE__ */ __name((str = 1, {
93
135
  });
94
136
  }
95
137
  return theme;
96
- }, "createTheme");
97
- const colorSchemes = [
98
- { name: "blue", colors: Colors.blue, darkColors: Colors.blueDark },
99
- { name: "gray", colors: Colors.gray, darkColors: Colors.grayDark },
100
- { name: "green", colors: Colors.green, darkColors: Colors.greenDark },
101
- { name: "indigo", colors: Colors.indigo, darkColors: Colors.indigoDark },
102
- { name: "orange", colors: Colors.orange, darkColors: Colors.orangeDark },
103
- { name: "pink", colors: Colors.pink, darkColors: Colors.pinkDark },
104
- { name: "purple", colors: Colors.purple, darkColors: Colors.purpleDark },
105
- { name: "red", colors: Colors.red, darkColors: Colors.redDark },
106
- { name: "violet", colors: Colors.violet, darkColors: Colors.violetDark },
107
- { name: "yellow", colors: Colors.yellow, darkColors: Colors.yellowDark },
108
- { name: "teal", colors: Colors.teal, darkColors: Colors.tealDark },
109
- { name: "lime", colors: Colors.lime, darkColors: Colors.limeDark },
110
- { name: "brown", colors: Colors.brown, darkColors: Colors.brownDark }
111
- ];
112
- const lightGradient = [
113
- "#fff",
114
- "#f4f4f4",
115
- color.gray1,
116
- color.gray2,
117
- color.gray3,
118
- color.gray4,
119
- color.gray5,
120
- color.gray6,
121
- color.gray7,
122
- color.gray8,
123
- color.gray9,
124
- color.gray10,
125
- color.gray11,
126
- color.gray12
127
- ];
128
- const darkGradient = [
129
- "#111111",
130
- "#151515",
131
- "#191919",
132
- "#232323",
133
- "#282828",
134
- "#323232",
135
- "#383838",
136
- "#424242",
137
- "#494949",
138
- "#545454",
139
- "#626262",
140
- "#777777"
141
- ];
142
- const lightThemes = createThemesFrom("light", createTheme, {
143
- backgrounds: lightGradient,
144
- borderColors: lightGradient.slice(2),
145
- isLight: true
138
+ };
139
+ const themeColors = {
140
+ light: [
141
+ "#fff",
142
+ "#f4f4f4",
143
+ color.gray1Light,
144
+ color.gray2Light,
145
+ color.gray3Light,
146
+ color.gray4Light,
147
+ color.gray5Light,
148
+ color.gray6Light,
149
+ color.gray7Light,
150
+ color.gray8Light,
151
+ color.gray9Light,
152
+ color.gray10Light,
153
+ color.gray11Light,
154
+ color.gray12Light
155
+ ],
156
+ dark: [
157
+ "#111111",
158
+ "#151515",
159
+ "#191919",
160
+ "#232323",
161
+ "#282828",
162
+ "#323232",
163
+ "#383838",
164
+ "#424242",
165
+ "#494949",
166
+ "#545454",
167
+ "#626262",
168
+ "#777777"
169
+ ]
170
+ };
171
+ const lightThemes = createThemesFrom("light", themeCreator, {
172
+ backgrounds: themeColors.light,
173
+ backgroundStrong: isWeb ? "#fefefe" : "#f2f2f2",
174
+ borderColors: themeColors.light.slice(2),
175
+ isLight: true,
176
+ offsets: {
177
+ background: [2, 2, 2, 2, 2, 2]
178
+ }
146
179
  });
147
- const darkThemes = createThemesFrom("dark", createTheme, {
148
- backgrounds: darkGradient,
149
- colors: lightGradient.slice(2),
180
+ const darkThemes = createThemesFrom("dark", themeCreator, {
181
+ backgrounds: themeColors.dark,
182
+ colors: themeColors.light.slice(2),
183
+ backgroundStrong: "#070707",
150
184
  isBase: true,
151
185
  isLight: false,
152
186
  shift: 1,
@@ -154,24 +188,35 @@ const darkThemes = createThemesFrom("dark", createTheme, {
154
188
  color: [0, 4, 5, 5, 5, 5]
155
189
  }
156
190
  });
191
+ darkThemes.dark_darker.background = "#030303";
192
+ darkThemes.dark_darker.backgroundStrong = "#000";
193
+ const light = createTheme({
194
+ ...lightColors,
195
+ ...lightThemes.light
196
+ });
197
+ const dark = createTheme({
198
+ ...darkColors,
199
+ ...darkThemes.dark
200
+ });
157
201
  const baseThemes = {
158
202
  ...lightThemes,
159
- light: {
160
- ...allLightColors,
161
- ...lightThemes.light
162
- },
203
+ light,
163
204
  light_active: makeActiveTheme(lightThemes.light),
164
205
  light_Card: lightThemes.light,
206
+ light_SliderTrack: lightThemes.light_alt2,
207
+ light_SliderTrackActive: lightThemes.light_alt3,
208
+ light_Switch: lightThemes.light_alt1,
209
+ light_SwitchThumb: darkThemes.dark,
165
210
  light_DrawerFrame: lightThemes.light_alt1,
166
- light_Button: lightThemes.light_alt1,
167
211
  ...darkThemes,
168
- dark: {
169
- ...allDarkColors,
170
- ...darkThemes.dark
171
- },
212
+ dark,
172
213
  dark_active: makeActiveTheme(darkThemes.dark),
173
- dark_Card: darkThemes.dark_alt1,
214
+ dark_Card: darkThemes.dark,
174
215
  dark_DrawerFrame: darkThemes.dark_alt2,
216
+ dark_SliderTrack: darkThemes.dark_darker,
217
+ dark_SliderTrackActive: darkThemes.dark_alt3,
218
+ dark_Switch: darkThemes.dark_darker,
219
+ dark_SwitchThumb: lightThemes.light_alt3,
175
220
  dark_Button: darkThemes.dark_alt1
176
221
  };
177
222
  function makeActiveTheme(theme) {
@@ -182,24 +227,47 @@ function makeActiveTheme(theme) {
182
227
  res.colorPress = res.color;
183
228
  return res;
184
229
  }
185
- __name(makeActiveTheme, "makeActiveTheme");
186
- const colorThemeEntries = colorSchemes.flatMap(({ name, colors, darkColors }) => {
230
+ const darkEntries = Object.entries(dark);
231
+ const lightEntries = Object.entries(light);
232
+ function findColors(prefix, dark2 = false) {
233
+ return Object.fromEntries((dark2 ? darkEntries : lightEntries).filter(([k]) => k.startsWith(prefix)));
234
+ }
235
+ const colorSchemes = [
236
+ { name: "blue", colors: findColors("blue"), darkColors: findColors("blue", true) },
237
+ { name: "gray", colors: findColors("gray"), darkColors: findColors("gray", true) },
238
+ { name: "green", colors: findColors("green"), darkColors: findColors("green", true) },
239
+ { name: "orange", colors: findColors("orange"), darkColors: findColors("orange", true) },
240
+ { name: "pink", colors: findColors("pink"), darkColors: findColors("pink", true) },
241
+ { name: "purple", colors: findColors("purple"), darkColors: findColors("purple", true) },
242
+ { name: "red", colors: findColors("red"), darkColors: findColors("red", true) },
243
+ { name: "yellow", colors: findColors("yellow"), darkColors: findColors("yellow", true) },
244
+ { name: "teal", colors: findColors("teal"), darkColors: findColors("teal", true) }
245
+ ];
246
+ const colorNames = [
247
+ "blue",
248
+ "gray",
249
+ "green",
250
+ "orange",
251
+ "pink",
252
+ "purple",
253
+ "red",
254
+ "yellow",
255
+ "teal"
256
+ ];
257
+ const colorThemeEntries = colorSchemes.flatMap(({ name, colors, darkColors: darkColors2 }) => {
187
258
  const [altLightThemes, altDarkThemes] = [
188
- { colors: darkColors, backgrounds: colors },
189
- { colors, backgrounds: darkColors }
259
+ { colors: darkColors2, backgrounds: colors },
260
+ { colors, backgrounds: darkColors2 }
190
261
  ].map((props, i) => {
191
262
  const isLight = i === 0;
263
+ const colorsBase = Object.values(props.colors).slice(2);
192
264
  const [backgrounds, colors2] = [
193
265
  Object.values(props.backgrounds),
194
- Object.values(props.colors).slice(isLight ? 2 : 2)
266
+ isLight ? colorsBase : [colorsBase[0], "#ccc", ...colorsBase.slice(1)]
195
267
  ];
196
268
  const scheme = isLight ? "light" : "dark";
197
269
  const shift = isLight ? 0 : 1;
198
- if (!isLight) {
199
- const [_, h, sp, lp] = backgrounds[0].match(/hsl\(([0-9\.]+), ([0-9\.]+)\%, ([0-9\.]+)\%\)/);
200
- backgrounds.unshift(`hsl(${h}, ${sp}%, ${parseFloat(lp) / 2}%)`);
201
- }
202
- const themeWithAlts = createThemesFrom(name, createTheme, {
270
+ const themeWithAlts = createThemesFrom(name, themeCreator, {
203
271
  colors: colors2,
204
272
  backgrounds,
205
273
  borderColors: backgrounds,
@@ -207,25 +275,14 @@ const colorThemeEntries = colorSchemes.flatMap(({ name, colors, darkColors }) =>
207
275
  shift,
208
276
  isBase: false,
209
277
  offsets: {
210
- background: isLight ? [0, 0, 0, 0, 0, 0] : null,
211
- borderColor: isLight ? [3, 3, 3, 3, 2] : null,
278
+ background: isLight ? [2, 2, 2, 2, 2, 2] : null,
279
+ borderColor: isLight ? [2, 2, 2, 3, 2] : null,
212
280
  color: isLight ? [0, 0, -1, -2, -3, -3, -4] : [-1, -1, -1, -1, -1, -1]
213
281
  }
214
282
  });
215
283
  return Object.entries(themeWithAlts).map(([k, v]) => [`${scheme}_${k}`, v]);
216
284
  });
217
- const lightButtonTheme = altLightThemes[0];
218
- const darkButtonTheme = altDarkThemes[0];
219
- return [
220
- ...altLightThemes,
221
- [`${lightButtonTheme[0]}_Button`, altLightThemes[2][1]],
222
- [`${lightButtonTheme[0]}_Card`, altLightThemes[2][1]],
223
- [`${lightButtonTheme[0]}_DrawerFrame`, altLightThemes[2][1]],
224
- ...altDarkThemes,
225
- [`${darkButtonTheme[0]}_Button`, altDarkThemes[2][1]],
226
- [`${darkButtonTheme[0]}_Card`, altDarkThemes[2][1]],
227
- [`${darkButtonTheme[0]}_DrawerFrame`, altDarkThemes[2][1]]
228
- ];
285
+ return [...altLightThemes, ...altDarkThemes];
229
286
  });
230
287
  const colorThemes = Object.fromEntries(colorThemeEntries);
231
288
  const allThemes = {
@@ -234,8 +291,8 @@ const allThemes = {
234
291
  };
235
292
  const themes = allThemes;
236
293
  export {
294
+ colorNames,
237
295
  colorSchemes,
238
- darkGradient,
239
- lightGradient,
240
296
  themes
241
297
  };
298
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/themes.tsx"],
4
+ "sourcesContent": ["import { Variable, createTheme, getVariableValue, isWeb } from '@tamagui/core'\n\nimport { setColorAlpha } from './colorUtils'\nimport { darkColors, lightColors, tokens } from './tokens'\n\nconst { color } = tokens\n\n// spaghetti ahead\n\ntype ThemeCreatorProps = {\n shift?: number\n backgrounds: (string | Variable)[]\n backgroundStrong?: string | Variable\n borderColors?: (string | Variable)[]\n colors?: (string | Variable)[]\n offsets?: {\n color?: number[] | null\n background?: number[] | null\n borderColor?: number[] | null\n }\n isLight?: boolean\n isBase?: boolean\n}\n\n// helpers\n\nconst alternates = [1, 2, 3, 4] as const\nconst alts = [1, 2, 3] as const\ntype AltKeys = 1 | 2 | 3\ntype AltName<Name extends string, Keys extends string | number> = `${Name}_alt${Keys}`\ntype ThemeCreator<A = any> = (str: number, props: ThemeCreatorProps) => A\n\nfunction createThemesFrom<Name extends string, GetTheme extends ThemeCreator = ThemeCreator>(\n name: Name,\n getTheme: GetTheme,\n props: ThemeCreatorProps\n): {\n [key in `${Name}_alt${AltKeys}` | `${Name}` | `${Name}_darker`]: GetTheme extends ThemeCreator<\n infer Theme\n >\n ? Theme\n : never\n} {\n const { shift = 0 } = props\n const theme = getTheme(0 + shift, props)\n let themeEntries: any[] = [[name, theme]]\n\n // generate alternates (for use in other themes), but keep just alts\n const altThemes: any[] = alternates.map((alt) => [\n `${name}_alt${alt}`,\n getTheme(alt + (props.isLight ? 0 : 0) + shift, props),\n ])\n const altThemes2: any[] = alternates.map((alt) => [\n `${name}_alt${alt}`,\n getTheme(alt + shift, props),\n ])\n const altButtonThemes: any[] = alternates.map((_, i) => {\n const [bName, bTheme] = [altThemes2[i][0], (altThemes2[i + 1] || altThemes2[i])[1]]\n return [`${bName}_Button` as any, bTheme]\n })\n // add these after alts since we rely on positioning\n const darkerTheme = getTheme(Math.max(0, shift + (props.isLight ? 1 : -1)), props)\n const activeTheme = makeActiveTheme(theme)\n\n // TODO can be de-duped\n const inverted = altThemes.map(([_name, theme]) => {\n return {\n ...theme,\n background: theme.color,\n backgroundHover: theme.colorHover,\n backgroundFocus: theme.colorFocus,\n backgroundPress: theme.colorPress,\n color: theme.background,\n colorHover: theme.backgroundHover,\n colorFocus: theme.backgroundFocus,\n colorPress: theme.backgroundPress,\n }\n })\n\n themeEntries = [\n ...themeEntries,\n // keep just alts\n ...altThemes.slice(0, alts.length),\n ...altButtonThemes.slice(0, alts.length),\n [`${name}_Button`, altThemes2[1][1]],\n [`${name}_DrawerFrame`, altThemes2[1][1]],\n [`${name}_SliderTrack`, altThemes[0][1]],\n [`${name}_SliderTrackActive`, altThemes[3][1]],\n [`${name}_SliderThumb`, inverted[2]],\n [`${name}_Progress`, altThemes[2][1]],\n [`${name}_ProgressIndicator`, inverted[2]],\n [`${name}_Switch`, altThemes[0][1]],\n [`${name}_SwitchThumb`, inverted[2]],\n [`${name}_TooltipArrow`, altThemes[1][1]],\n [`${name}_TooltipContent`, altThemes[1][1]],\n [`${name}_darker`, darkerTheme],\n [`${name}_active`, activeTheme],\n ]\n const themes = Object.fromEntries(themeEntries)\n // if (props.isLight) {\n // console.log('themes', themes)\n // }\n return themes as any\n}\n\nconst themeCreator = (\n str = 1,\n {\n backgrounds,\n isLight = true,\n isBase = false,\n colors = [...backgrounds].reverse(),\n borderColors = isLight ? colors : backgrounds,\n backgroundStrong,\n offsets: offsetsProp,\n }: ThemeCreatorProps\n) => {\n const offsets = {\n borderColor: offsetsProp?.borderColor ?? offsetsProp?.background ?? [0, 0, 0, 0],\n background: offsetsProp?.background ?? [0, 0, 0, 0],\n color: offsetsProp?.color ?? [0, 0, 0, 0],\n }\n const darkColors = isLight ? colors : backgrounds\n const lighterDir = isLight ? -1 : 1\n const darkerDir = -lighterDir\n const strongerDir = isLight ? darkerDir : lighterDir\n const softerDir = -strongerDir\n const get = (arr: any[], index: number, name = 'background') => {\n return arr[Math.max(0, Math.min(index + (offsets[name][str] || 0), arr.length - 1))]\n }\n\n const colorTranslucent = setColorAlpha(getVariableValue(get(colors, 0 + str, 'color')), 0.5)\n\n let theme = {\n background: get(backgrounds, str),\n backgroundStrong: backgroundStrong || get(backgrounds, str + strongerDir * 2),\n backgroundSoft: get(backgrounds, str + softerDir * 2),\n backgroundHover: get(backgrounds, str + lighterDir),\n backgroundPress: get(backgrounds, str + darkerDir),\n backgroundFocus: get(backgrounds, str + darkerDir * 2),\n backgroundTransparent: color.grayA1Light,\n color: get(colors, 0 + str, 'color'),\n colorHover: get(colors, 1 + str, 'color'),\n colorPress: get(colors, 2 + str, 'color'),\n colorFocus: get(colors, 3 + str, 'color'),\n colorTranslucent,\n colorMid: (isLight ? colors : backgrounds)[Math.floor(colors.length / 2)],\n shadowColor: isLight ? color.grayA2Light : color.grayA8Light,\n shadowColorHover: darkColors[!isLight ? 1 : 8],\n shadowColorPress: darkColors[!isLight ? 1 : 8],\n shadowColorFocus: darkColors[!isLight ? 1 : 8],\n borderColor: null as any as string | Variable,\n borderColorHover: null as any as string | Variable,\n borderColorPress: null as any as string | Variable,\n borderColorFocus: null as any as string | Variable,\n }\n\n if (process.env.ENABLE_STEPS) {\n Object.assign(theme, {\n step1: backgrounds[0],\n step2: backgrounds[1],\n step3: backgrounds[2],\n step4: backgrounds[3],\n step5: backgrounds[4],\n step6: backgrounds[5],\n step7: backgrounds[6],\n step8: backgrounds[7],\n step9: backgrounds[8],\n step10: backgrounds[9],\n step11: backgrounds[10],\n step12: backgrounds[11],\n })\n }\n\n if (isBase) {\n Object.assign(theme, {\n borderColor: isLight\n ? get(colors, 8 - str, 'borderColor')\n : get(backgrounds, 2 + str, 'borderColor'),\n borderColorHover: isLight\n ? get(colors, 6 - str, 'borderColor')\n : get(backgrounds, 3 + str, 'borderColor'),\n borderColorPress: isLight\n ? get(colors, 5 - str, 'borderColor')\n : get(backgrounds, 1 + str, 'borderColor'),\n borderColorFocus: isLight\n ? get(colors, 4 - str, 'borderColor')\n : get(backgrounds, 3 + str, 'borderColor'),\n })\n } else {\n Object.assign(theme, {\n borderColor: get(borderColors, 1 + strongerDir, 'borderColor'),\n borderColorHover: get(borderColors, 2 + strongerDir, 'borderColor'),\n borderColorPress: get(borderColors, 3 + strongerDir, 'borderColor'),\n borderColorFocus: get(borderColors, 4 + strongerDir, 'borderColor'),\n })\n }\n\n return theme\n}\n\nconst themeColors = {\n light: [\n '#fff',\n '#f4f4f4',\n color.gray1Light,\n color.gray2Light,\n color.gray3Light,\n color.gray4Light,\n color.gray5Light,\n color.gray6Light,\n color.gray7Light,\n color.gray8Light,\n color.gray9Light,\n color.gray10Light,\n color.gray11Light,\n color.gray12Light,\n ],\n dark: [\n '#111111',\n '#151515',\n '#191919',\n '#232323',\n '#282828',\n '#323232',\n '#383838',\n '#424242',\n '#494949',\n '#545454',\n '#626262',\n '#777777',\n ],\n}\n\nconst lightThemes = createThemesFrom('light', themeCreator, {\n backgrounds: themeColors.light,\n // for now web non-ios style native is...\n backgroundStrong: isWeb ? '#fefefe' : '#f2f2f2',\n borderColors: themeColors.light.slice(2),\n isLight: true,\n offsets: {\n background: [2, 2, 2, 2, 2, 2],\n },\n})\n\nconst darkThemes = createThemesFrom('dark', themeCreator, {\n backgrounds: themeColors.dark,\n colors: themeColors.light.slice(2),\n backgroundStrong: '#070707',\n isBase: true,\n isLight: false,\n shift: 1,\n offsets: {\n color: [0, 4, 5, 5, 5, 5],\n },\n})\n\ndarkThemes.dark_darker.background = '#030303'\ndarkThemes.dark_darker.backgroundStrong = '#000'\n\nconst light = createTheme({\n ...lightColors,\n ...lightThemes.light,\n})\n\nconst dark = createTheme({\n ...darkColors,\n ...darkThemes.dark,\n})\n\ntype ThemeBase = {\n [Key in keyof typeof dark]: string\n}\n\nconst baseThemes = {\n // light\n ...lightThemes,\n light,\n light_active: makeActiveTheme(lightThemes.light),\n light_Card: lightThemes.light,\n light_SliderTrack: lightThemes.light_alt2,\n light_SliderTrackActive: lightThemes.light_alt3,\n light_Switch: lightThemes.light_alt1,\n light_SwitchThumb: darkThemes.dark,\n light_DrawerFrame: lightThemes.light_alt1,\n\n // dark\n ...darkThemes,\n dark,\n dark_active: makeActiveTheme(darkThemes.dark),\n dark_Card: darkThemes.dark,\n dark_DrawerFrame: darkThemes.dark_alt2,\n dark_SliderTrack: darkThemes.dark_darker,\n dark_SliderTrackActive: darkThemes.dark_alt3,\n dark_Switch: darkThemes.dark_darker,\n dark_SwitchThumb: lightThemes.light_alt3,\n dark_Button: darkThemes.dark_alt1,\n}\n\nfunction makeActiveTheme(theme: any) {\n const res = { ...theme }\n res.backgroundHover = res.background\n res.colorHover = res.color\n res.backgroundPress = res.background\n res.colorPress = res.color\n return res\n}\n\nconst darkEntries = Object.entries(dark)\nconst lightEntries = Object.entries(light)\nfunction findColors(prefix: string, dark = false): ThemeBase {\n return Object.fromEntries(\n (dark ? darkEntries : lightEntries).filter(([k]) => k.startsWith(prefix))\n ) as any\n}\n\nexport const colorSchemes = [\n { name: 'blue', colors: findColors('blue'), darkColors: findColors('blue', true) },\n { name: 'gray', colors: findColors('gray'), darkColors: findColors('gray', true) },\n { name: 'green', colors: findColors('green'), darkColors: findColors('green', true) },\n { name: 'orange', colors: findColors('orange'), darkColors: findColors('orange', true) },\n { name: 'pink', colors: findColors('pink'), darkColors: findColors('pink', true) },\n { name: 'purple', colors: findColors('purple'), darkColors: findColors('purple', true) },\n { name: 'red', colors: findColors('red'), darkColors: findColors('red', true) },\n { name: 'yellow', colors: findColors('yellow'), darkColors: findColors('yellow', true) },\n { name: 'teal', colors: findColors('teal'), darkColors: findColors('teal', true) },\n] as const\n\nexport type ColorNames = typeof colorSchemes[number]['name']\n\n// nice and flat\nexport const colorNames: ColorNames[] = [\n 'blue',\n 'gray',\n 'green',\n 'orange',\n 'pink',\n 'purple',\n 'red',\n 'yellow',\n 'teal',\n]\n\ntype ColorThemeNames =\n | ColorNames\n | AltName<`light_${ColorNames}`, AltKeys>\n | AltName<`dark_${ColorNames}`, AltKeys>\n\nconst colorThemeEntries = colorSchemes.flatMap(({ name, colors, darkColors }) => {\n const [altLightThemes, altDarkThemes] = [\n { colors: darkColors, backgrounds: colors },\n { colors, backgrounds: darkColors },\n ].map((props, i) => {\n const isLight = i === 0\n const colorsBase = Object.values(props.colors).slice(2)\n const [backgrounds, colors] = [\n Object.values(props.backgrounds),\n isLight ? colorsBase : [colorsBase[0], '#ccc', ...colorsBase.slice(1)],\n ] as const\n\n const scheme = isLight ? 'light' : 'dark'\n const shift = isLight ? 0 : 1\n\n // if (!isLight) {\n // const [_, h, sp, lp] = backgrounds[0].match(/hsl\\(([0-9\\.]+), ([0-9\\.]+)\\%, ([0-9\\.]+)\\%\\)/)!\n // backgrounds.unshift(`hsl(${h}, ${sp}%, ${parseFloat(lp) / 2}%)`)\n // }\n\n const themeWithAlts = createThemesFrom(name, themeCreator, {\n colors,\n backgrounds,\n borderColors: backgrounds,\n isLight,\n shift,\n isBase: false,\n offsets: {\n background: isLight ? [2, 2, 2, 2, 2, 2] : null,\n borderColor: isLight ? [2, 2, 2, 3, 2] : null,\n color: isLight ? [0, 0, -1, -2, -3, -3, -4] : [-1, -1, -1, -1, -1, -1],\n },\n })\n\n return Object.entries(themeWithAlts).map(([k, v]) => [`${scheme}_${k}`, v])\n })\n return [...altLightThemes, ...altDarkThemes]\n})\n\ntype MyThemeBase = typeof baseThemes['light_alt1']\n\nconst colorThemes: {\n [key in ColorThemeNames]: MyThemeBase\n} = Object.fromEntries(colorThemeEntries) as any\n\nconst allThemes = {\n ...baseThemes,\n ...colorThemes,\n} as const\n\nexport const themes: {\n [key in keyof typeof allThemes]: typeof baseThemes['light']\n} = allThemes as any\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,14 +1,72 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { allLightColors, darkColorsPostfixed } from "@tamagui/colors";
4
- const sizeKeys = ["true", "0", "0.25", "0.5", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5", "5.5", "6", "6.5", "7", "7.5", "8", "9", "10", "11", "12", "13", "14"];
5
- const getSizeAt = /* @__PURE__ */ __name((index) => index === 0 ? 0 : Math.round(Math.pow(1.6, index)) + Math.floor(3 * index), "getSizeAt");
6
- const size = Object.fromEntries(sizeKeys.map((key) => {
7
- return [key, getSizeAt(key === "true" ? 4 : +key)];
8
- }));
1
+ import {
2
+ blue,
3
+ blueDark,
4
+ gray,
5
+ grayA,
6
+ grayDark,
7
+ grayDarkA,
8
+ green,
9
+ greenDark,
10
+ orange,
11
+ orangeDark,
12
+ pink,
13
+ pinkDark,
14
+ purple,
15
+ purpleDark,
16
+ red,
17
+ redDark,
18
+ teal,
19
+ tealDark,
20
+ violet,
21
+ violetDark,
22
+ yellow,
23
+ yellowDark
24
+ } from "@tamagui/colors";
25
+ import { createTokens } from "@tamagui/core";
26
+ const size = {
27
+ 0: 0,
28
+ 0.25: 2,
29
+ 0.5: 4,
30
+ 0.75: 8,
31
+ 1: 20,
32
+ 1.5: 24,
33
+ 2: 28,
34
+ 2.5: 32,
35
+ 3: 36,
36
+ 3.5: 40,
37
+ 4: 44,
38
+ true: 44,
39
+ 4.5: 48,
40
+ 5: 52,
41
+ 5.5: 59,
42
+ 6: 64,
43
+ 6.5: 69,
44
+ 7: 74,
45
+ 7.6: 79,
46
+ 8: 84,
47
+ 8.5: 89,
48
+ 9: 94,
49
+ 9.5: 99,
50
+ 10: 104,
51
+ 11: 124,
52
+ 12: 144,
53
+ 13: 164,
54
+ 14: 184,
55
+ 15: 204,
56
+ 16: 224,
57
+ 17: 224,
58
+ 18: 244,
59
+ 19: 264,
60
+ 20: 284
61
+ };
62
+ const spaces = Object.entries(size).map(([k, v]) => [
63
+ k,
64
+ Math.max(0, v <= 16 ? Math.round(v * 0.333) : Math.floor(v * 0.7 - 12))
65
+ ]);
66
+ const spacesNegative = spaces.map(([k, v]) => [`-${k}`, -v]);
9
67
  const space = {
10
- ...size,
11
- ...Object.fromEntries(Object.entries(size).map(([k, v]) => [`-${k}`, -v]))
68
+ ...Object.fromEntries(spaces),
69
+ ...Object.fromEntries(spacesNegative)
12
70
  };
13
71
  const zIndex = {
14
72
  0: 0,
@@ -18,10 +76,67 @@ const zIndex = {
18
76
  4: 400,
19
77
  5: 500
20
78
  };
21
- const color = {
22
- ...allLightColors,
23
- ...darkColorsPostfixed
79
+ const colorTokens = {
80
+ light: {
81
+ blue,
82
+ gray,
83
+ grayA,
84
+ green,
85
+ orange,
86
+ pink,
87
+ purple,
88
+ red,
89
+ violet,
90
+ yellow,
91
+ teal
92
+ },
93
+ dark: {
94
+ blue: blueDark,
95
+ gray: grayDark,
96
+ grayA: grayDarkA,
97
+ green: greenDark,
98
+ orange: orangeDark,
99
+ pink: pinkDark,
100
+ purple: purpleDark,
101
+ red: redDark,
102
+ violet: violetDark,
103
+ yellow: yellowDark,
104
+ teal: tealDark
105
+ }
106
+ };
107
+ const darkColors = {
108
+ ...colorTokens.dark.blue,
109
+ ...colorTokens.dark.gray,
110
+ ...colorTokens.dark.grayA,
111
+ ...colorTokens.dark.green,
112
+ ...colorTokens.dark.orange,
113
+ ...colorTokens.dark.pink,
114
+ ...colorTokens.dark.purple,
115
+ ...colorTokens.dark.red,
116
+ ...colorTokens.dark.violet,
117
+ ...colorTokens.dark.yellow,
118
+ ...colorTokens.dark.teal
119
+ };
120
+ const lightColors = {
121
+ ...colorTokens.light.blue,
122
+ ...colorTokens.light.gray,
123
+ ...colorTokens.light.grayA,
124
+ ...colorTokens.light.green,
125
+ ...colorTokens.light.orange,
126
+ ...colorTokens.light.pink,
127
+ ...colorTokens.light.purple,
128
+ ...colorTokens.light.red,
129
+ ...colorTokens.light.violet,
130
+ ...colorTokens.light.yellow,
131
+ ...colorTokens.light.teal
24
132
  };
133
+ const allColors = {
134
+ ...postfixObjKeys(lightColors, "Light"),
135
+ ...postfixObjKeys(darkColors, "Dark")
136
+ };
137
+ function postfixObjKeys(obj, postfix) {
138
+ return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v]));
139
+ }
25
140
  const radius = {
26
141
  0: 0,
27
142
  1: 3,
@@ -29,17 +144,24 @@ const radius = {
29
144
  3: 7,
30
145
  4: 9,
31
146
  5: 10,
32
- 6: 12,
33
- 7: 16,
34
- 8: 20,
35
- 9: 30
147
+ 6: 16,
148
+ 7: 19,
149
+ 8: 22,
150
+ 9: 26,
151
+ 10: 34,
152
+ 11: 42,
153
+ 12: 50
36
154
  };
37
- export {
38
- color,
39
- getSizeAt,
155
+ const tokens = createTokens({
156
+ color: allColors,
40
157
  radius,
41
- size,
42
- sizeKeys,
158
+ zIndex,
43
159
  space,
44
- zIndex
160
+ size
161
+ });
162
+ export {
163
+ darkColors,
164
+ lightColors,
165
+ tokens
45
166
  };
167
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tokens.tsx"],
4
+ "sourcesContent": ["import {\n blue,\n blueDark,\n gray,\n grayA,\n grayDark,\n grayDarkA,\n green,\n greenDark,\n orange,\n orangeDark,\n pink,\n pinkDark,\n purple,\n purpleDark,\n red,\n redDark,\n teal,\n tealDark,\n violet,\n violetDark,\n yellow,\n yellowDark,\n} from '@tamagui/colors'\nimport { Variable, createTokens } from '@tamagui/core'\n\n// should roughly map to button/input etc height at each level\n// fonts should match that height/lineHeight at each stop\n// so these are really non-linear on purpose\n// why?\n// - at sizes <1, used for fine grained things (borders, smallest paddingY)\n// - so smallest padY should be roughly 1-4px so it can join with lineHeight\n// - at sizes >=1, have to consider \"pressability\" (jumps up)\n// - after that it should go upwards somewhat naturally\n// - H1 / headings top out at 10 naturally, so after 10 we can go upwards faster\n// but also one more wrinkle...\n// space is used in conjunction with size\n// i'm setting space to generally just a fixed fraction of size (~1/3-2/3 still fine tuning)\nconst size = {\n 0: 0,\n 0.25: 2,\n 0.5: 4,\n 0.75: 8,\n 1: 20,\n 1.5: 24,\n 2: 28,\n 2.5: 32,\n 3: 36,\n 3.5: 40,\n 4: 44,\n true: 44,\n 4.5: 48,\n 5: 52,\n 5.5: 59,\n 6: 64,\n 6.5: 69,\n 7: 74,\n 7.6: 79,\n 8: 84,\n 8.5: 89,\n 9: 94,\n 9.5: 99,\n 10: 104,\n 11: 124,\n 12: 144,\n 13: 164,\n 14: 184,\n 15: 204,\n 16: 224,\n 17: 224,\n 18: 244,\n 19: 264,\n 20: 284,\n}\n\ntype Sizes = typeof size\ntype SizeKeys = `${keyof Sizes}`\n\nconst spaces = Object.entries(size).map(([k, v]) => [\n k,\n Math.max(0, v <= 16 ? Math.round(v * 0.333) : Math.floor(v * 0.7 - 12)),\n])\n\nconst spacesNegative = spaces.map(([k, v]) => [`-${k}`, -v])\n\nconst space: {\n [Key in `-${SizeKeys}` | SizeKeys]: Key extends keyof Sizes ? Sizes[Key] : number\n} = {\n ...Object.fromEntries(spaces),\n ...Object.fromEntries(spacesNegative),\n} as any\n\nconst zIndex = {\n 0: 0,\n 1: 100,\n 2: 200,\n 3: 300,\n 4: 400,\n 5: 500,\n}\n\nconst colorTokens = {\n light: {\n blue: blue,\n gray: gray,\n grayA: grayA,\n green: green,\n orange: orange,\n pink: pink,\n purple: purple,\n red: red,\n violet: violet,\n yellow: yellow,\n teal: teal,\n },\n dark: {\n blue: blueDark,\n gray: grayDark,\n grayA: grayDarkA,\n green: greenDark,\n orange: orangeDark,\n pink: pinkDark,\n purple: purpleDark,\n red: redDark,\n violet: violetDark,\n yellow: yellowDark,\n teal: tealDark,\n },\n}\n\nexport const darkColors = {\n ...colorTokens.dark.blue,\n ...colorTokens.dark.gray,\n ...colorTokens.dark.grayA,\n ...colorTokens.dark.green,\n ...colorTokens.dark.orange,\n ...colorTokens.dark.pink,\n ...colorTokens.dark.purple,\n ...colorTokens.dark.red,\n ...colorTokens.dark.violet,\n ...colorTokens.dark.yellow,\n ...colorTokens.dark.teal,\n}\n\nexport const lightColors = {\n ...colorTokens.light.blue,\n ...colorTokens.light.gray,\n ...colorTokens.light.grayA,\n ...colorTokens.light.green,\n ...colorTokens.light.orange,\n ...colorTokens.light.pink,\n ...colorTokens.light.purple,\n ...colorTokens.light.red,\n ...colorTokens.light.violet,\n ...colorTokens.light.yellow,\n ...colorTokens.light.teal,\n}\n\nconst allColors = {\n ...postfixObjKeys(lightColors, 'Light'),\n ...postfixObjKeys(darkColors, 'Dark'),\n}\n\nfunction postfixObjKeys<A extends { [key: string]: Variable<string> | string }, B extends string>(\n obj: A,\n postfix: B\n): {\n [Key in `${keyof A extends string ? keyof A : never}${B}`]: Variable<string> | string\n} {\n return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v])) as any\n}\n\nconst radius = {\n 0: 0,\n 1: 3,\n 2: 5,\n 3: 7,\n 4: 9,\n 5: 10,\n 6: 16,\n 7: 19,\n 8: 22,\n 9: 26,\n 10: 34,\n 11: 42,\n 12: 50,\n}\n\nexport const tokens = createTokens({\n color: allColors,\n radius,\n zIndex,\n space,\n size,\n})\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }