@tamagui/themes 2.0.0-1768586279389 → 2.0.0-1768636514428

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cjs/generated-v5.cjs +453 -1039
  3. package/dist/cjs/generated-v5.js +693 -1419
  4. package/dist/cjs/generated-v5.js.map +1 -1
  5. package/dist/cjs/generated-v5.native.js +453 -1039
  6. package/dist/cjs/generated-v5.native.js.map +1 -1
  7. package/dist/cjs/opacify.cjs +53 -0
  8. package/dist/cjs/opacify.js +46 -0
  9. package/dist/cjs/opacify.js.map +2 -2
  10. package/dist/cjs/opacify.native.js +57 -0
  11. package/dist/cjs/opacify.native.js.map +1 -1
  12. package/dist/cjs/v5-themes.cjs +114 -288
  13. package/dist/cjs/v5-themes.js +88 -290
  14. package/dist/cjs/v5-themes.js.map +2 -2
  15. package/dist/cjs/v5-themes.native.js +125 -299
  16. package/dist/cjs/v5-themes.native.js.map +1 -1
  17. package/dist/esm/generated-v5.js +693 -1419
  18. package/dist/esm/generated-v5.js.map +1 -1
  19. package/dist/esm/generated-v5.mjs +453 -1039
  20. package/dist/esm/generated-v5.mjs.map +1 -1
  21. package/dist/esm/generated-v5.native.js +453 -1039
  22. package/dist/esm/generated-v5.native.js.map +1 -1
  23. package/dist/esm/opacify.js +46 -0
  24. package/dist/esm/opacify.js.map +2 -2
  25. package/dist/esm/opacify.mjs +53 -1
  26. package/dist/esm/opacify.mjs.map +1 -1
  27. package/dist/esm/opacify.native.js +57 -1
  28. package/dist/esm/opacify.native.js.map +1 -1
  29. package/dist/esm/v5-themes.js +99 -309
  30. package/dist/esm/v5-themes.js.map +1 -1
  31. package/dist/esm/v5-themes.mjs +112 -287
  32. package/dist/esm/v5-themes.mjs.map +1 -1
  33. package/dist/esm/v5-themes.native.js +123 -298
  34. package/dist/esm/v5-themes.native.js.map +1 -1
  35. package/package.json +7 -7
  36. package/src/generated-v5.ts +858 -2035
  37. package/src/opacify.ts +89 -0
  38. package/src/v5-themes.ts +215 -415
  39. package/tests/v5-themes.test.ts +197 -0
  40. package/tsconfig.json +1 -0
  41. package/types/generated-v5.d.ts +83 -138
  42. package/types/generated-v5.d.ts.map +1 -1
  43. package/types/opacify.d.ts +7 -0
  44. package/types/opacify.d.ts.map +1 -1
  45. package/types/v4-default.d.ts +10 -10
  46. package/types/v4-default.d.ts.map +1 -1
  47. package/types/v4-tamagui.d.ts +5 -5
  48. package/types/v4-tamagui.d.ts.map +1 -1
  49. package/types/v5-themes.d.ts +190 -590
  50. package/types/v5-themes.d.ts.map +1 -1
@@ -21,80 +21,23 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
21
  var v5_themes_exports = {};
22
22
  __export(v5_themes_exports, {
23
23
  createV5Theme: () => createV5Theme,
24
- darkPalette: () => darkPalette,
25
- defaultColors: () => defaultColors,
26
- lightPalette: () => lightPalette,
24
+ defaultChildrenThemes: () => defaultChildrenThemes,
25
+ defaultDarkPalette: () => darkPalette,
26
+ defaultGrandChildrenThemes: () => defaultGrandChildrenThemes,
27
+ defaultLightPalette: () => lightPalette,
27
28
  themes: () => themes
28
29
  });
29
30
  module.exports = __toCommonJS(v5_themes_exports);
30
31
  var import_colors = require("@tamagui/colors"),
31
32
  import_theme_builder = require("@tamagui/theme-builder"),
32
33
  import_opacify = require("./opacify.cjs");
33
- const blue = import_colors.blue,
34
- blueDark = import_colors.blueDark,
35
- green = import_colors.green,
36
- greenDark = import_colors.greenDark,
37
- purple = import_colors.purple,
38
- purpleDark = import_colors.purpleDark,
39
- red = import_colors.red,
40
- redDark = import_colors.redDark,
41
- yellow = import_colors.yellow,
42
- yellowDark = import_colors.yellowDark,
43
- pink = import_colors.pink,
44
- pinkDark = import_colors.pinkDark,
45
- orange = import_colors.orange,
46
- orangeDark = import_colors.orangeDark,
47
- teal = import_colors.teal,
48
- tealDark = import_colors.tealDark,
49
- gray = import_colors.gray,
50
- grayDark = import_colors.grayDark,
51
- darkPalette = ["#050505", "#151515", "#191919", "#232323", "#282828", "#323232", "#424242", "#494949", "#545454", "#626262", "#a5a5a5", "#fff"],
34
+ function paletteToNamedColors(name, palette) {
35
+ return Object.fromEntries(palette.map((color, i) => [`${name}${i + 1}`, color]));
36
+ }
37
+ const darkPalette = ["#050505", "#151515", "#191919", "#232323", "#282828", "#323232", "#424242", "#494949", "#545454", "#626262", "#a5a5a5", "#fff"],
52
38
  lightPalette = ["#fff", "#f8f8f8", "hsl(0, 0%, 93%)", "hsl(0, 0%, 87%)", "hsl(0, 0%, 80%)", "hsl(0, 0%, 74%)", "hsl(0, 0%, 68%)", "hsl(0, 0%, 60%)", "hsl(0, 0%, 48%)", "hsl(0, 0%, 38%)", "hsl(0, 0%, 20%)", "hsl(0, 0%, 2%)"],
53
39
  neutralPalette = ["hsl(0, 0%, 68%)", "hsl(0, 0%, 65%)", "hsl(0, 0%, 62%)", "hsl(0, 0%, 59%)", "hsl(0, 0%, 56%)", "hsl(0, 0%, 53%)", "hsl(0, 0%, 50%)", "hsl(0, 0%, 47%)", "hsl(0, 0%, 44%)", "hsl(0, 0%, 41%)", "hsl(0, 0%, 38%)", "hsl(0, 0%, 32%)"],
54
- neutral = {
55
- neutral1: neutralPalette[0],
56
- neutral2: neutralPalette[1],
57
- neutral3: neutralPalette[2],
58
- neutral4: neutralPalette[3],
59
- neutral5: neutralPalette[4],
60
- neutral6: neutralPalette[5],
61
- neutral7: neutralPalette[6],
62
- neutral8: neutralPalette[7],
63
- neutral9: neutralPalette[8],
64
- neutral10: neutralPalette[9],
65
- neutral11: neutralPalette[10],
66
- neutral12: neutralPalette[11]
67
- },
68
- tanLightPalette = ["hsla(40, 30%, 98%, 1)", "hsla(40, 24%, 94%, 1)", "hsla(38, 23%, 91%, 1)", "hsla(36, 20%, 90%, 1)", "hsla(36, 20%, 88%, 1)", "hsla(35, 20%, 85%, 1)", "hsla(35, 21%, 74%, 1)", "hsla(34, 20%, 70%, 1)", "hsla(35, 20%, 67%, 1)", "hsla(34, 19%, 47%, 1)", "hsla(35, 18%, 37%, 1)", "hsla(35, 17%, 20%, 1)"],
69
- tanDarkPalette = ["hsla(30, 9%, 10%, 1)", "hsla(30, 10%, 12%, 1)", "hsla(31, 11%, 18%, 1)", "hsla(30, 12%, 23%, 1)", "hsla(30, 14%, 28%, 1)", "hsla(30, 16%, 33%, 1)", "hsla(30, 18%, 38%, 1)", "hsla(30, 20%, 45%, 1)", "hsla(30, 21%, 50%, 1)", "hsla(29, 22%, 58%, 1)", "hsla(34, 24%, 70%, 1)", "hsla(11, 12%, 79%, 1)"],
70
- tan = {
71
- tan1: tanLightPalette[0],
72
- tan2: tanLightPalette[1],
73
- tan3: tanLightPalette[2],
74
- tan4: tanLightPalette[3],
75
- tan5: tanLightPalette[4],
76
- tan6: tanLightPalette[5],
77
- tan7: tanLightPalette[6],
78
- tan8: tanLightPalette[7],
79
- tan9: tanLightPalette[8],
80
- tan10: tanLightPalette[9],
81
- tan11: tanLightPalette[10],
82
- tan12: tanLightPalette[11]
83
- },
84
- tanDark = {
85
- tan1: tanDarkPalette[0],
86
- tan2: tanDarkPalette[1],
87
- tan3: tanDarkPalette[2],
88
- tan4: tanDarkPalette[3],
89
- tan5: tanDarkPalette[4],
90
- tan6: tanDarkPalette[5],
91
- tan7: tanDarkPalette[6],
92
- tan8: tanDarkPalette[7],
93
- tan9: tanDarkPalette[8],
94
- tan10: tanDarkPalette[9],
95
- tan11: tanDarkPalette[10],
96
- tan12: tanDarkPalette[11]
97
- },
40
+ neutral = paletteToNamedColors("neutral", neutralPalette),
98
41
  whiteBlack = {
99
42
  white: "rgba(255,255,255,1)",
100
43
  white0: "rgba(255,255,255,0)",
@@ -109,35 +52,6 @@ const blue = import_colors.blue,
109
52
  black06: "rgba(0,0,0,0.6)",
110
53
  black08: "rgba(0,0,0,0.8)"
111
54
  },
112
- extraColorsDark = {
113
- // in between 1/2
114
- color1pt5: "rgba(20,20,20)",
115
- color2pt5: "#222",
116
- // TODO: ideally just functions for alpha($color1, 0.1)
117
- // extra low opacities
118
- color01: (0, import_opacify.opacify)(darkPalette[darkPalette.length - 1], 0.1),
119
- color0075: (0, import_opacify.opacify)(darkPalette[darkPalette.length - 1], 0.075),
120
- color005: (0, import_opacify.opacify)(darkPalette[darkPalette.length - 1], 0.05),
121
- color0025: (0, import_opacify.opacify)(darkPalette[darkPalette.length - 1], 0.025),
122
- background01: (0, import_opacify.opacify)(darkPalette[0], 0.1),
123
- background0075: (0, import_opacify.opacify)(darkPalette[0], 0.075),
124
- background005: (0, import_opacify.opacify)(darkPalette[0], 0.05),
125
- background0025: (0, import_opacify.opacify)(darkPalette[0], 0.025)
126
- },
127
- extraColorsLight = {
128
- // in between 1/2
129
- color1pt5: "#f9f9f9",
130
- color2pt5: "#f4f4f4",
131
- // extra low opacities
132
- color01: (0, import_opacify.opacify)(lightPalette[lightPalette.length - 1], 0.1),
133
- color0075: (0, import_opacify.opacify)(lightPalette[lightPalette.length - 1], 0.075),
134
- color005: (0, import_opacify.opacify)(lightPalette[lightPalette.length - 1], 0.05),
135
- color0025: (0, import_opacify.opacify)(lightPalette[lightPalette.length - 1], 0.025),
136
- background01: (0, import_opacify.opacify)(lightPalette[0], 0.1),
137
- background0075: (0, import_opacify.opacify)(lightPalette[0], 0.075),
138
- background005: (0, import_opacify.opacify)(lightPalette[0], 0.05),
139
- background0025: (0, import_opacify.opacify)(lightPalette[0], 0.025)
140
- },
141
55
  darkShadows = {
142
56
  shadow1: "rgba(0,0,0,0.1)",
143
57
  shadow2: "rgba(0,0,0,0.18)",
@@ -153,207 +67,108 @@ const blue = import_colors.blue,
153
67
  shadow4: "rgba(0,0,0,0.095)",
154
68
  shadow5: "rgba(0,0,0,0.195)",
155
69
  shadow6: "rgba(0,0,0,0.3)"
156
- },
157
- blackColors = {
158
- black1: darkPalette[0],
159
- black2: darkPalette[1],
160
- black3: darkPalette[2],
161
- black4: darkPalette[3],
162
- black5: darkPalette[4],
163
- black6: darkPalette[5],
164
- black7: darkPalette[6],
165
- black8: darkPalette[7],
166
- black9: darkPalette[8],
167
- black10: darkPalette[9],
168
- black11: darkPalette[10],
169
- black12: darkPalette[11]
170
- },
171
- whiteColors = {
172
- white1: lightPalette[0],
173
- white2: lightPalette[1],
174
- white3: lightPalette[2],
175
- white4: lightPalette[3],
176
- white5: lightPalette[4],
177
- white6: lightPalette[5],
178
- white7: lightPalette[6],
179
- white8: lightPalette[7],
180
- white9: lightPalette[8],
181
- white10: lightPalette[9],
182
- white11: lightPalette[10],
183
- white12: lightPalette[11]
184
70
  };
185
- const defaultColors = {
186
- light: {
187
- blue,
188
- gray,
189
- green,
190
- neutral,
191
- orange,
192
- pink,
193
- purple,
194
- red,
195
- tan,
196
- teal,
197
- yellow
198
- },
199
- dark: {
200
- blue: blueDark,
201
- gray: grayDark,
202
- green: greenDark,
203
- neutral,
204
- // same for both light and dark - that's the point!
205
- orange: orangeDark,
206
- pink: pinkDark,
207
- purple: purpleDark,
208
- red: redDark,
209
- tan: tanDark,
210
- teal: tealDark,
211
- yellow: yellowDark
212
- }
213
- };
214
- function createV5Theme(options = {}) {
215
- const {
216
- darkPalette: customDarkPalette = darkPalette,
217
- lightPalette: customLightPalette = lightPalette,
218
- colors = {},
219
- includeDefaultColors = !0,
220
- grandChildrenThemes: customGrandChildrenThemes = {}
221
- } = options,
222
- childrenThemes = {
223
- black: {
224
- palette: {
225
- dark: Object.values(blackColors),
226
- light: Object.values(blackColors)
227
- }
228
- },
229
- white: {
230
- palette: {
231
- dark: Object.values(whiteColors),
232
- light: Object.values(whiteColors)
233
- }
234
- }
235
- };
236
- includeDefaultColors && Object.assign(childrenThemes, {
71
+ const defaultChildrenThemes = {
237
72
  gray: {
238
- palette: {
239
- dark: Object.values(grayDark),
240
- light: Object.values(gray)
241
- }
73
+ light: import_colors.gray,
74
+ dark: import_colors.grayDark
242
75
  },
243
76
  blue: {
244
- palette: {
245
- dark: Object.values(blueDark),
246
- light: Object.values(blue)
247
- }
77
+ light: import_colors.blue,
78
+ dark: import_colors.blueDark
248
79
  },
249
80
  red: {
250
- palette: {
251
- dark: Object.values(redDark),
252
- light: Object.values(red)
253
- }
81
+ light: import_colors.red,
82
+ dark: import_colors.redDark
254
83
  },
255
84
  yellow: {
256
- palette: {
257
- dark: Object.values(yellowDark),
258
- light: Object.values(yellow)
259
- }
85
+ light: import_colors.yellow,
86
+ dark: import_colors.yellowDark
260
87
  },
261
88
  green: {
262
- palette: {
263
- dark: Object.values(greenDark),
264
- light: Object.values(green)
265
- }
89
+ light: import_colors.green,
90
+ dark: import_colors.greenDark
266
91
  },
267
- teal: {
268
- palette: {
269
- dark: Object.values(tealDark),
270
- light: Object.values(teal)
271
- }
92
+ neutral: {
93
+ light: neutral,
94
+ dark: neutral
95
+ }
96
+ },
97
+ defaultGrandChildrenThemes = {
98
+ accent: {
99
+ template: "inverse"
100
+ }
101
+ // simplified and removed:
102
+ // alt1: { template: 'alt1' },
103
+ // alt2: { template: 'alt2' },
104
+ // surface1: { template: 'surface1' },
105
+ // surface2: { template: 'surface2' },
106
+ // surface3: { template: 'surface3' },
107
+ };
108
+ function createV5Theme(options = {}) {
109
+ const {
110
+ darkPalette: customDarkPalette = darkPalette,
111
+ lightPalette: customLightPalette = lightPalette,
112
+ childrenThemes = defaultChildrenThemes,
113
+ grandChildrenThemes = defaultGrandChildrenThemes,
114
+ componentThemes: customComponentThemes = import_theme_builder.defaultComponentThemes
115
+ } = options,
116
+ blackColors = paletteToNamedColors("black", customDarkPalette),
117
+ whiteColors = paletteToNamedColors("white", customLightPalette),
118
+ extraBase = {
119
+ ...blackColors,
120
+ ...whiteColors,
121
+ ...whiteBlack
272
122
  },
273
- orange: {
274
- palette: {
275
- dark: Object.values(orangeDark),
276
- light: Object.values(orange)
277
- }
123
+ lightExtraBase = {
124
+ ...extraBase,
125
+ ...lightShadows,
126
+ shadowColor: lightShadows.shadow1
278
127
  },
279
- pink: {
280
- palette: {
281
- dark: Object.values(pinkDark),
282
- light: Object.values(pink)
283
- }
128
+ darkExtraBase = {
129
+ ...extraBase,
130
+ ...darkShadows,
131
+ shadowColor: darkShadows.shadow1
284
132
  },
285
- purple: {
133
+ lightExtra = {
134
+ ...lightExtraBase
135
+ },
136
+ darkExtra = {
137
+ ...darkExtraBase
138
+ };
139
+ for (const theme of Object.values(childrenThemes)) theme.light && Object.assign(lightExtra, theme.light), theme.dark && Object.assign(darkExtra, theme.dark);
140
+ const childrenWithPalettes = {
141
+ // Always include black/white for theme generation
142
+ black: {
286
143
  palette: {
287
- dark: Object.values(purpleDark),
288
- light: Object.values(purple)
144
+ dark: Object.values(blackColors),
145
+ light: Object.values(blackColors)
289
146
  }
290
147
  },
291
- neutral: {
148
+ white: {
292
149
  palette: {
293
- dark: neutralPalette,
294
- light: neutralPalette
150
+ dark: Object.values(whiteColors),
151
+ light: Object.values(whiteColors)
295
152
  }
296
153
  },
297
- tan: {
154
+ ...Object.fromEntries(Object.entries(childrenThemes).map(([name, theme]) => [name, {
298
155
  palette: {
299
- dark: tanDarkPalette,
300
- light: tanLightPalette
156
+ light: Object.values(theme.light),
157
+ dark: Object.values(theme.dark)
301
158
  }
302
- }
303
- });
304
- for (const [name, palette] of Object.entries(colors)) childrenThemes[name] = {
305
- palette: {
306
- dark: palette.dark,
307
- light: palette.light
308
- }
159
+ }]))
309
160
  };
310
161
  return (0, import_theme_builder.createThemes)({
311
- componentThemes: import_theme_builder.defaultComponentThemes,
162
+ // componentThemes: false disables them, undefined/truthy values enable them
163
+ componentThemes: customComponentThemes,
312
164
  base: {
313
165
  palette: {
314
166
  dark: customDarkPalette,
315
167
  light: customLightPalette
316
168
  },
317
169
  extra: {
318
- light: {
319
- ...blackColors,
320
- ...blue,
321
- ...gray,
322
- ...green,
323
- ...lightShadows,
324
- ...neutral,
325
- ...orange,
326
- ...pink,
327
- ...purple,
328
- ...red,
329
- ...tan,
330
- ...teal,
331
- ...whiteColors,
332
- ...yellow,
333
- shadowColor: lightShadows.shadow1,
334
- ...whiteBlack,
335
- ...extraColorsLight
336
- },
337
- dark: {
338
- ...blackColors,
339
- ...blueDark,
340
- ...darkShadows,
341
- ...grayDark,
342
- ...greenDark,
343
- ...neutral,
344
- // same for both light and dark
345
- ...orangeDark,
346
- ...pinkDark,
347
- ...purpleDark,
348
- ...redDark,
349
- ...tanDark,
350
- ...tealDark,
351
- ...whiteColors,
352
- ...yellowDark,
353
- shadowColor: darkShadows.shadow1,
354
- ...whiteBlack,
355
- ...extraColorsDark
356
- }
170
+ light: lightExtra,
171
+ dark: darkExtra
357
172
  }
358
173
  },
359
174
  accent: {
@@ -362,28 +177,39 @@ function createV5Theme(options = {}) {
362
177
  light: customDarkPalette
363
178
  }
364
179
  },
365
- childrenThemes,
366
- grandChildrenThemes: {
367
- accent: {
368
- template: "inverse"
369
- },
370
- alt1: {
371
- template: "alt1"
372
- },
373
- alt2: {
374
- template: "alt2"
375
- },
376
- surface1: {
377
- template: "surface1"
378
- },
379
- surface2: {
380
- template: "surface2"
381
- },
382
- surface3: {
383
- template: "surface3"
384
- },
385
- ...customGrandChildrenThemes
180
+ childrenThemes: childrenWithPalettes,
181
+ grandChildrenThemes,
182
+ // Add computed colors to ALL themes based on each theme's palette
183
+ getTheme: ({
184
+ palette
185
+ }) => {
186
+ if (!palette || palette.length < 3) throw new Error(`invalid palette: ${JSON.stringify(palette)}`);
187
+ const bgColor = palette[1],
188
+ fgColor = palette[palette.length - 2];
189
+ return {
190
+ // In-between shades
191
+ color0pt5: (0, import_opacify.interpolateColor)(bgColor, palette[2], 0.5),
192
+ color1pt5: (0, import_opacify.interpolateColor)(palette[1], palette[2], 0.5),
193
+ color2pt5: (0, import_opacify.interpolateColor)(palette[2], palette[3], 0.5),
194
+ // Opacity variants of foreground color
195
+ color01: (0, import_opacify.opacify)(fgColor, 0.1),
196
+ color0075: (0, import_opacify.opacify)(fgColor, 0.075),
197
+ color005: (0, import_opacify.opacify)(fgColor, 0.05),
198
+ color0025: (0, import_opacify.opacify)(fgColor, 0.025),
199
+ color002: (0, import_opacify.opacify)(fgColor, 0.02),
200
+ color001: (0, import_opacify.opacify)(fgColor, 0.01),
201
+ // Opacity variants of background color
202
+ background01: (0, import_opacify.opacify)(bgColor, 0.1),
203
+ background0075: (0, import_opacify.opacify)(bgColor, 0.075),
204
+ background005: (0, import_opacify.opacify)(bgColor, 0.05),
205
+ background0025: (0, import_opacify.opacify)(bgColor, 0.025),
206
+ background002: (0, import_opacify.opacify)(bgColor, 0.02),
207
+ background001: (0, import_opacify.opacify)(bgColor, 0.01)
208
+ };
386
209
  }
387
210
  });
388
211
  }
389
- const themes = createV5Theme();
212
+ const themes = createV5Theme();
213
+ themes.dark.background0075;
214
+ themes.dark.background;
215
+ themes.dark.accent1;