@tamagui/theme-base 1.0.0-beta.8 → 1.0.1-beta.100

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,44 +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,
41
- backgroundStronger,
65
+ backgroundStrong,
42
66
  offsets: offsetsProp
43
67
  }) => {
44
68
  var _a, _b, _c, _d;
@@ -47,37 +71,54 @@ const createTheme = /* @__PURE__ */ __name((str = 1, {
47
71
  background: (_c = offsetsProp == null ? void 0 : offsetsProp.background) != null ? _c : [0, 0, 0, 0],
48
72
  color: (_d = offsetsProp == null ? void 0 : offsetsProp.color) != null ? _d : [0, 0, 0, 0]
49
73
  };
50
- const darkColors = isLight ? colors : backgrounds;
74
+ const darkColors2 = isLight ? colors : backgrounds;
51
75
  const lighterDir = isLight ? -1 : 1;
52
76
  const darkerDir = -lighterDir;
53
77
  const strongerDir = isLight ? darkerDir : lighterDir;
54
- const get = /* @__PURE__ */ __name((arr, index, name = "background") => {
78
+ const softerDir = -strongerDir;
79
+ const get = (arr, index, name = "background") => {
55
80
  return arr[Math.max(0, Math.min(index + (offsets[name][str] || 0), arr.length - 1))];
56
- }, "get");
81
+ };
57
82
  const colorTranslucent = setColorAlpha(getVariableValue(get(colors, 0 + str, "color")), 0.5);
58
83
  let theme = {
59
84
  background: get(backgrounds, str),
60
- backgroundStronger: backgroundStronger || get(backgrounds, str + strongerDir),
61
- backgroundSoft: get(backgrounds, str + 3),
62
- backgroundHover: get(backgrounds, str + strongerDir),
63
- backgroundPress: get(backgrounds, str + darkerDir * 1),
85
+ backgroundStrong: backgroundStrong || get(backgrounds, str + strongerDir * 2),
86
+ backgroundSoft: get(backgrounds, str + softerDir * 2),
87
+ backgroundHover: get(backgrounds, str + lighterDir),
88
+ backgroundPress: get(backgrounds, str + darkerDir),
64
89
  backgroundFocus: get(backgrounds, str + darkerDir * 2),
65
- backgroundTransparent: color.grayA1,
90
+ backgroundTransparent: color.grayA1Light,
66
91
  color: get(colors, 0 + str, "color"),
67
92
  colorHover: get(colors, 1 + str, "color"),
68
93
  colorPress: get(colors, 2 + str, "color"),
69
94
  colorFocus: get(colors, 3 + str, "color"),
70
95
  colorTranslucent,
71
- colorMid: colors[Math.floor(colors.length / 2)],
72
- shadowColor: isLight ? color.grayA2 : color.grayA8,
73
- shadowColorHover: darkColors[!isLight ? 1 : 8],
74
- shadowColorPress: darkColors[!isLight ? 1 : 8],
75
- 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],
76
101
  borderColor: null,
77
102
  borderColorHover: null,
78
103
  borderColorPress: null,
79
104
  borderColorFocus: null
80
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
+ }
81
122
  if (isBase) {
82
123
  Object.assign(theme, {
83
124
  borderColor: isLight ? get(colors, 8 - str, "borderColor") : get(backgrounds, 2 + str, "borderColor"),
@@ -94,62 +135,52 @@ const createTheme = /* @__PURE__ */ __name((str = 1, {
94
135
  });
95
136
  }
96
137
  return theme;
97
- }, "createTheme");
98
- const colorSchemes = [
99
- { name: "blue", colors: Colors.blue, darkColors: Colors.blueDark },
100
- { name: "gray", colors: Colors.gray, darkColors: Colors.grayDark },
101
- { name: "green", colors: Colors.green, darkColors: Colors.greenDark },
102
- { name: "indigo", colors: Colors.indigo, darkColors: Colors.indigoDark },
103
- { name: "orange", colors: Colors.orange, darkColors: Colors.orangeDark },
104
- { name: "pink", colors: Colors.pink, darkColors: Colors.pinkDark },
105
- { name: "purple", colors: Colors.purple, darkColors: Colors.purpleDark },
106
- { name: "red", colors: Colors.red, darkColors: Colors.redDark },
107
- { name: "violet", colors: Colors.violet, darkColors: Colors.violetDark },
108
- { name: "yellow", colors: Colors.yellow, darkColors: Colors.yellowDark },
109
- { name: "teal", colors: Colors.teal, darkColors: Colors.tealDark },
110
- { name: "lime", colors: Colors.lime, darkColors: Colors.limeDark },
111
- { name: "brown", colors: Colors.brown, darkColors: Colors.brownDark }
112
- ];
113
- const lightGradient = [
114
- "#fff",
115
- "#f4f4f4",
116
- color.gray1,
117
- color.gray2,
118
- color.gray3,
119
- color.gray4,
120
- color.gray5,
121
- color.gray6,
122
- color.gray7,
123
- color.gray8,
124
- color.gray9,
125
- color.gray10,
126
- color.gray11,
127
- color.gray12
128
- ];
129
- const darkGradient = [
130
- "#111111",
131
- "#151515",
132
- "#191919",
133
- "#232323",
134
- "#282828",
135
- "#323232",
136
- "#383838",
137
- "#424242",
138
- "#494949",
139
- "#545454",
140
- "#626262",
141
- "#777777"
142
- ];
143
- const lightThemes = createThemesFrom("light", createTheme, {
144
- backgrounds: lightGradient,
145
- backgroundStronger: "#fcfcfc",
146
- borderColors: lightGradient.slice(2),
147
- 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
+ }
148
179
  });
149
- const darkThemes = createThemesFrom("dark", createTheme, {
150
- backgrounds: darkGradient,
151
- colors: lightGradient.slice(2),
152
- backgroundStronger: "#111",
180
+ const darkThemes = createThemesFrom("dark", themeCreator, {
181
+ backgrounds: themeColors.dark,
182
+ colors: themeColors.light.slice(2),
183
+ backgroundStrong: "#070707",
153
184
  isBase: true,
154
185
  isLight: false,
155
186
  shift: 1,
@@ -157,24 +188,35 @@ const darkThemes = createThemesFrom("dark", createTheme, {
157
188
  color: [0, 4, 5, 5, 5, 5]
158
189
  }
159
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
+ });
160
201
  const baseThemes = {
161
202
  ...lightThemes,
162
- light: {
163
- ...allLightColors,
164
- ...lightThemes.light
165
- },
203
+ light,
166
204
  light_active: makeActiveTheme(lightThemes.light),
167
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,
168
210
  light_DrawerFrame: lightThemes.light_alt1,
169
- light_Button: lightThemes.light_alt1,
170
211
  ...darkThemes,
171
- dark: {
172
- ...allDarkColors,
173
- ...darkThemes.dark
174
- },
212
+ dark,
175
213
  dark_active: makeActiveTheme(darkThemes.dark),
176
- dark_Card: darkThemes.dark_alt1,
214
+ dark_Card: darkThemes.dark,
177
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,
178
220
  dark_Button: darkThemes.dark_alt1
179
221
  };
180
222
  function makeActiveTheme(theme) {
@@ -185,24 +227,47 @@ function makeActiveTheme(theme) {
185
227
  res.colorPress = res.color;
186
228
  return res;
187
229
  }
188
- __name(makeActiveTheme, "makeActiveTheme");
189
- 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 }) => {
190
258
  const [altLightThemes, altDarkThemes] = [
191
- { colors: darkColors, backgrounds: colors },
192
- { colors, backgrounds: darkColors }
259
+ { colors: darkColors2, backgrounds: colors },
260
+ { colors, backgrounds: darkColors2 }
193
261
  ].map((props, i) => {
194
262
  const isLight = i === 0;
263
+ const colorsBase = Object.values(props.colors).slice(2);
195
264
  const [backgrounds, colors2] = [
196
265
  Object.values(props.backgrounds),
197
- Object.values(props.colors).slice(isLight ? 2 : 2)
266
+ isLight ? colorsBase : [colorsBase[0], "#ccc", ...colorsBase.slice(1)]
198
267
  ];
199
268
  const scheme = isLight ? "light" : "dark";
200
269
  const shift = isLight ? 0 : 1;
201
- if (!isLight) {
202
- const [_, h, sp, lp] = backgrounds[0].match(/hsl\(([0-9\.]+), ([0-9\.]+)\%, ([0-9\.]+)\%\)/);
203
- backgrounds.unshift(`hsl(${h}, ${sp}%, ${parseFloat(lp) / 2}%)`);
204
- }
205
- const themeWithAlts = createThemesFrom(name, createTheme, {
270
+ const themeWithAlts = createThemesFrom(name, themeCreator, {
206
271
  colors: colors2,
207
272
  backgrounds,
208
273
  borderColors: backgrounds,
@@ -210,25 +275,14 @@ const colorThemeEntries = colorSchemes.flatMap(({ name, colors, darkColors }) =>
210
275
  shift,
211
276
  isBase: false,
212
277
  offsets: {
213
- background: isLight ? [1, 1, 1, 1, 1, 1] : null,
278
+ background: isLight ? [2, 2, 2, 2, 2, 2] : null,
214
279
  borderColor: isLight ? [2, 2, 2, 3, 2] : null,
215
280
  color: isLight ? [0, 0, -1, -2, -3, -3, -4] : [-1, -1, -1, -1, -1, -1]
216
281
  }
217
282
  });
218
283
  return Object.entries(themeWithAlts).map(([k, v]) => [`${scheme}_${k}`, v]);
219
284
  });
220
- const lightButtonTheme = altLightThemes[0];
221
- const darkButtonTheme = altDarkThemes[0];
222
- return [
223
- ...altLightThemes,
224
- [`${lightButtonTheme[0]}_Button`, altLightThemes[2][1]],
225
- [`${lightButtonTheme[0]}_Card`, altLightThemes[2][1]],
226
- [`${lightButtonTheme[0]}_DrawerFrame`, altLightThemes[2][1]],
227
- ...altDarkThemes,
228
- [`${darkButtonTheme[0]}_Button`, altDarkThemes[2][1]],
229
- [`${darkButtonTheme[0]}_Card`, altDarkThemes[2][1]],
230
- [`${darkButtonTheme[0]}_DrawerFrame`, altDarkThemes[2][1]]
231
- ];
285
+ return [...altLightThemes, ...altDarkThemes];
232
286
  });
233
287
  const colorThemes = Object.fromEntries(colorThemeEntries);
234
288
  const allThemes = {
@@ -237,8 +291,8 @@ const allThemes = {
237
291
  };
238
292
  const themes = allThemes;
239
293
  export {
294
+ colorNames,
240
295
  colorSchemes,
241
- darkGradient,
242
- lightGradient,
243
296
  themes
244
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
+ }