@tamagui/tamagui-dev-config 1.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/animations.cjs +107 -0
  3. package/dist/cjs/animations.css.cjs +42 -0
  4. package/dist/cjs/animations.css.js +36 -0
  5. package/dist/cjs/animations.css.js.map +6 -0
  6. package/dist/cjs/animations.js +102 -0
  7. package/dist/cjs/animations.js.map +6 -0
  8. package/dist/cjs/animations.reanimated.cjs +83 -0
  9. package/dist/cjs/animations.reanimated.js +78 -0
  10. package/dist/cjs/animations.reanimated.js.map +6 -0
  11. package/dist/cjs/createGenericFont.cjs +61 -0
  12. package/dist/cjs/createGenericFont.js +54 -0
  13. package/dist/cjs/createGenericFont.js.map +6 -0
  14. package/dist/cjs/fonts.cjs +226 -0
  15. package/dist/cjs/fonts.js +217 -0
  16. package/dist/cjs/fonts.js.map +6 -0
  17. package/dist/cjs/index.cjs +21 -0
  18. package/dist/cjs/index.js +18 -0
  19. package/dist/cjs/index.js.map +6 -0
  20. package/dist/cjs/media.cjs +85 -0
  21. package/dist/cjs/media.js +49 -0
  22. package/dist/cjs/media.js.map +6 -0
  23. package/dist/cjs/tamagui.dev.config.cjs +101 -0
  24. package/dist/cjs/tamagui.dev.config.js +72 -0
  25. package/dist/cjs/tamagui.dev.config.js.map +6 -0
  26. package/dist/esm/animations.css.js +20 -0
  27. package/dist/esm/animations.css.js.map +6 -0
  28. package/dist/esm/animations.css.mjs +19 -0
  29. package/dist/esm/animations.css.mjs.map +1 -0
  30. package/dist/esm/animations.js +86 -0
  31. package/dist/esm/animations.js.map +6 -0
  32. package/dist/esm/animations.mjs +84 -0
  33. package/dist/esm/animations.mjs.map +1 -0
  34. package/dist/esm/animations.reanimated.js +62 -0
  35. package/dist/esm/animations.reanimated.js.map +6 -0
  36. package/dist/esm/animations.reanimated.mjs +60 -0
  37. package/dist/esm/animations.reanimated.mjs.map +1 -0
  38. package/dist/esm/createGenericFont.js +38 -0
  39. package/dist/esm/createGenericFont.js.map +6 -0
  40. package/dist/esm/createGenericFont.mjs +38 -0
  41. package/dist/esm/createGenericFont.mjs.map +1 -0
  42. package/dist/esm/fonts.js +208 -0
  43. package/dist/esm/fonts.js.map +6 -0
  44. package/dist/esm/fonts.mjs +195 -0
  45. package/dist/esm/fonts.mjs.map +1 -0
  46. package/dist/esm/index.js +5 -0
  47. package/dist/esm/index.js.map +6 -0
  48. package/dist/esm/index.mjs +5 -0
  49. package/dist/esm/index.mjs.map +1 -0
  50. package/dist/esm/media.js +33 -0
  51. package/dist/esm/media.js.map +6 -0
  52. package/dist/esm/media.mjs +59 -0
  53. package/dist/esm/media.mjs.map +1 -0
  54. package/dist/esm/tamagui.dev.config.js +72 -0
  55. package/dist/esm/tamagui.dev.config.js.map +6 -0
  56. package/dist/esm/tamagui.dev.config.mjs +78 -0
  57. package/dist/esm/tamagui.dev.config.mjs.map +1 -0
  58. package/package.json +48 -0
  59. package/src/animations.css.ts +19 -0
  60. package/src/animations.reanimated.ts +59 -0
  61. package/src/animations.ts +83 -0
  62. package/src/createGenericFont.ts +43 -0
  63. package/src/fonts.ts +210 -0
  64. package/src/index.ts +4 -0
  65. package/src/media.ts +36 -0
  66. package/src/tamagui.dev.config.ts +78 -0
@@ -0,0 +1,78 @@
1
+ import { tokens } from "@tamagui/config/v3";
2
+ import { setupDev } from "@tamagui/core";
3
+ import { shorthands } from "@tamagui/shorthands/v2";
4
+ import { tamaguiThemes } from "@tamagui/themes/v4";
5
+ import { animations } from "./animations.mjs";
6
+ import { bodyFont, cherryBombFont, dmSansHeadingFont, dmSerifDisplayHeadingFont, headingFont, monoFont, munroFont, nohemiFont, silkscreenFont } from "./fonts.mjs";
7
+ import { media, mediaQueryDefaultActive } from "./media.mjs";
8
+ setupDev({
9
+ visualizer: !0
10
+ });
11
+ const fonts = {
12
+ heading: headingFont,
13
+ headingDmSans: dmSansHeadingFont,
14
+ headingDmSerifDisplay: dmSerifDisplayHeadingFont,
15
+ headingNohemi: nohemiFont,
16
+ body: bodyFont,
17
+ mono: monoFont,
18
+ silkscreen: silkscreenFont,
19
+ munro: munroFont,
20
+ cherryBomb: cherryBombFont
21
+ },
22
+ fixTypescript55Bug = {
23
+ space: tokens.space,
24
+ size: tokens.size,
25
+ radius: tokens.radius,
26
+ zIndex: tokens.zIndex,
27
+ color: tokens.color
28
+ },
29
+ config = {
30
+ fonts,
31
+ animations,
32
+ themes: tamaguiThemes,
33
+ media,
34
+ shorthands,
35
+ tokens: fixTypescript55Bug,
36
+ settings: {
37
+ defaultFont: "body",
38
+ shouldAddPrefersColorThemes: !0,
39
+ maxDarkLightNesting: 2,
40
+ themeClassNameOnRoot: !0,
41
+ disableRootThemeClass: !0,
42
+ mediaQueryDefaultActive,
43
+ selectionStyles: theme => ({
44
+ backgroundColor: theme.color5,
45
+ color: theme.color11
46
+ }),
47
+ allowedStyleValues: "somewhat-strict-web",
48
+ autocompleteSpecificTokens: "except-special"
49
+ }
50
+ };
51
+ Object.assign(config.media, {
52
+ tiny: {
53
+ maxWidth: 500
54
+ },
55
+ gtTiny: {
56
+ minWidth: 501
57
+ },
58
+ small: {
59
+ maxWidth: 620
60
+ },
61
+ gtSmall: {
62
+ minWidth: 621
63
+ },
64
+ medium: {
65
+ maxWidth: 780
66
+ },
67
+ gtMedium: {
68
+ minWidth: 781
69
+ },
70
+ large: {
71
+ maxWidth: 900
72
+ },
73
+ gtLarge: {
74
+ minWidth: 901
75
+ }
76
+ });
77
+ export { config };
78
+ //# sourceMappingURL=tamagui.dev.config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tokens","setupDev","shorthands","tamaguiThemes","animations","bodyFont","cherryBombFont","dmSansHeadingFont","dmSerifDisplayHeadingFont","headingFont","monoFont","munroFont","nohemiFont","silkscreenFont","media","mediaQueryDefaultActive","visualizer","fonts","heading","headingDmSans","headingDmSerifDisplay","headingNohemi","body","mono","silkscreen","munro","cherryBomb","fixTypescript55Bug","space","size","radius","zIndex","color","config","themes","settings","defaultFont","shouldAddPrefersColorThemes","maxDarkLightNesting","themeClassNameOnRoot","disableRootThemeClass","selectionStyles","theme","backgroundColor","color5","color11","allowedStyleValues","autocompleteSpecificTokens","Object","assign","tiny","maxWidth","gtTiny","minWidth","small","gtSmall","medium","gtMedium","large","gtLarge"],"sources":["../../src/tamagui.dev.config.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,QAAA,QAAgB;AACzB,SAASC,UAAA,QAAkB;AAC3B,SAASC,aAAA,QAAqB;AAC9B,SAASC,UAAA,QAAkB;AAC3B,SACEC,QAAA,EACAC,cAAA,EACAC,iBAAA,EACAC,yBAAA,EACAC,WAAA,EACAC,QAAA,EACAC,SAAA,EACAC,UAAA,EACAC,cAAA,QACK;AACP,SAASC,KAAA,EAAOC,uBAAA,QAA+B;AAE/Cd,QAAA,CAAS;EACPe,UAAA,EAAY;AACd,CAAC;AAED,MAAMC,KAAA,GAAQ;IACZC,OAAA,EAAST,WAAA;IACTU,aAAA,EAAeZ,iBAAA;IACfa,qBAAA,EAAuBZ,yBAAA;IACvBa,aAAA,EAAeT,UAAA;IACfU,IAAA,EAAMjB,QAAA;IACNkB,IAAA,EAAMb,QAAA;IACNc,UAAA,EAAYX,cAAA;IACZY,KAAA,EAAOd,SAAA;IACPe,UAAA,EAAYpB;EACd;EAGMqB,kBAAA,GAAqB;IACzBC,KAAA,EAAO5B,MAAA,CAAO4B,KAAA;IACdC,IAAA,EAAM7B,MAAA,CAAO6B,IAAA;IACbC,MAAA,EAAQ9B,MAAA,CAAO8B,MAAA;IACfC,MAAA,EAAQ/B,MAAA,CAAO+B,MAAA;IACfC,KAAA,EAAOhC,MAAA,CAAOgC;EAChB;EAEaC,MAAA,GAAS;IACpBhB,KAAA;IACAb,UAAA;IACA8B,MAAA,EAAQ/B,aAAA;IACRW,KAAA;IACAZ,UAAA;IACAF,MAAA,EAAQ2B,kBAAA;IACRQ,QAAA,EAAU;MACRC,WAAA,EAAa;MACbC,2BAAA,EAA6B;MAC7BC,mBAAA,EAAqB;MACrBC,oBAAA,EAAsB;MACtBC,qBAAA,EAAuB;MACvBzB,uBAAA;MACA0B,eAAA,EAAkBC,KAAA,KAAW;QAC3BC,eAAA,EAAiBD,KAAA,CAAME,MAAA;QACvBZ,KAAA,EAAOU,KAAA,CAAMG;MACf;MACAC,kBAAA,EAAoB;MACpBC,0BAAA,EAA4B;IAC9B;EACF;AAGAC,MAAA,CAAOC,MAAA,CAAOhB,MAAA,CAAOnB,KAAA,EAAO;EAC1BoC,IAAA,EAAM;IAAEC,QAAA,EAAU;EAAI;EACtBC,MAAA,EAAQ;IAAEC,QAAA,EAAU;EAAQ;EAC5BC,KAAA,EAAO;IAAEH,QAAA,EAAU;EAAI;EACvBI,OAAA,EAAS;IAAEF,QAAA,EAAU;EAAQ;EAC7BG,MAAA,EAAQ;IAAEL,QAAA,EAAU;EAAI;EACxBM,QAAA,EAAU;IAAEJ,QAAA,EAAU;EAAQ;EAC9BK,KAAA,EAAO;IAAEP,QAAA,EAAU;EAAI;EACvBQ,OAAA,EAAS;IAAEN,QAAA,EAAU;EAAQ;AAC/B,CAAC","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@tamagui/tamagui-dev-config",
3
+ "version": "1.124.0",
4
+ "sideEffects": false,
5
+ "source": "src/index.ts",
6
+ "types": "./src/index.ts",
7
+ "type": "module",
8
+ "main": "dist/cjs",
9
+ "module": "dist/esm",
10
+ "files": [
11
+ "src",
12
+ "types",
13
+ "dist"
14
+ ],
15
+ "exports": {
16
+ "./package.json": "./package.json",
17
+ ".": {
18
+ "types": "./src/index.ts",
19
+ "import": "./dist/esm/index.mjs",
20
+ "require": "./dist/cjs/index.cjs",
21
+ "default": "./dist/cjs/index.native.js"
22
+ }
23
+ },
24
+ "scripts": {
25
+ "build": "tamagui-build --skip-types --skip-native",
26
+ "watch": "tamagui-build --skip-types --skip-native --watch",
27
+ "lint": "biome check src",
28
+ "lint:fix": "biome check --write src",
29
+ "clean": "tamagui-build clean",
30
+ "clean:build": "tamagui-build clean:build"
31
+ },
32
+ "dependencies": {
33
+ "@tamagui/config": "1.124.0",
34
+ "@tamagui/core": "1.124.0",
35
+ "@tamagui/shorthands": "1.124.0",
36
+ "@tamagui/themes": "1.124.0"
37
+ },
38
+ "devDependencies": {
39
+ "@tamagui/build": "1.124.0",
40
+ "react": "*"
41
+ },
42
+ "peerDependencies": {
43
+ "react": "*"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ }
48
+ }
@@ -0,0 +1,19 @@
1
+ import { createAnimations } from '@tamagui/animations-css'
2
+
3
+ const smoothBezier = 'cubic-bezier(0.215, 0.610, 0.355, 1.000)'
4
+
5
+ export const animationsCSS = createAnimations({
6
+ '75ms': 'ease-in 75ms',
7
+ '100ms': 'ease-in 100ms',
8
+ '200ms': 'ease-in 200ms',
9
+ bouncy: 'ease-in 200ms',
10
+ superBouncy: 'ease-in 500ms',
11
+ lazy: 'ease-in 800ms',
12
+ superLazy: 'ease-in 1000ms',
13
+ medium: 'ease-in 300ms',
14
+ slow: 'ease-in 500ms',
15
+ quick: `${smoothBezier} 240ms`,
16
+ quicker: `${smoothBezier} 180ms`,
17
+ quickest: `${smoothBezier} 90ms`,
18
+ tooltip: 'ease-in 400ms',
19
+ })
@@ -0,0 +1,59 @@
1
+ import { createAnimations } from '@tamagui/animations-moti'
2
+
3
+ export const animations = createAnimations({
4
+ '75ms': {
5
+ type: 'timing',
6
+ duration: 75,
7
+ },
8
+ '100ms': {
9
+ type: 'timing',
10
+ duration: 100,
11
+ },
12
+ '200ms': {
13
+ type: 'timing',
14
+ duration: 200,
15
+ },
16
+ superBouncy: {
17
+ damping: 5,
18
+ mass: 0.7,
19
+ stiffness: 200,
20
+ },
21
+ bouncy: {
22
+ damping: 9,
23
+ mass: 0.9,
24
+ stiffness: 150,
25
+ },
26
+ medium: {
27
+ damping: 15,
28
+ stiffness: 120,
29
+ mass: 1,
30
+ },
31
+ lazy: {
32
+ damping: 18,
33
+ stiffness: 50,
34
+ },
35
+ slow: {
36
+ damping: 15,
37
+ stiffness: 40,
38
+ },
39
+ quick: {
40
+ damping: 20,
41
+ mass: 1.2,
42
+ stiffness: 250,
43
+ },
44
+ tooltip: {
45
+ damping: 10,
46
+ mass: 0.9,
47
+ stiffness: 100,
48
+ },
49
+ quicker: {
50
+ damping: 20,
51
+ mass: 0.7,
52
+ stiffness: 250,
53
+ },
54
+ quickest: {
55
+ damping: 5,
56
+ mass: 0.2,
57
+ stiffness: 300,
58
+ },
59
+ })
@@ -0,0 +1,83 @@
1
+ import { createAnimations } from '@tamagui/animations-moti'
2
+
3
+ export const animations = createAnimations({
4
+ '75ms': {
5
+ type: 'timing',
6
+ duration: 75,
7
+ },
8
+ '100ms': {
9
+ type: 'timing',
10
+ duration: 100,
11
+ },
12
+ '200ms': {
13
+ type: 'timing',
14
+ duration: 200,
15
+ },
16
+ superBouncy: {
17
+ type: 'spring',
18
+ damping: 5,
19
+ mass: 0.7,
20
+ stiffness: 200,
21
+ },
22
+ bouncy: {
23
+ type: 'spring',
24
+ damping: 9,
25
+ mass: 0.9,
26
+ stiffness: 150,
27
+ },
28
+ kindaBouncy: {
29
+ type: 'spring',
30
+ damping: 16,
31
+ mass: 1,
32
+ stiffness: 25,
33
+ },
34
+ superLazy: {
35
+ type: 'spring',
36
+ damping: 25,
37
+ mass: 2,
38
+ stiffness: 25,
39
+ },
40
+ lazy: {
41
+ type: 'spring',
42
+ damping: 18,
43
+ stiffness: 50,
44
+ },
45
+ medium: {
46
+ damping: 16,
47
+ stiffness: 120,
48
+ mass: 0.8,
49
+ },
50
+ slowest: {
51
+ type: 'spring',
52
+ damping: 15,
53
+ stiffness: 10,
54
+ },
55
+ slow: {
56
+ type: 'spring',
57
+ damping: 15,
58
+ stiffness: 60,
59
+ },
60
+ quick: {
61
+ type: 'spring',
62
+ damping: 20,
63
+ mass: 1.2,
64
+ stiffness: 250,
65
+ },
66
+ tooltip: {
67
+ type: 'spring',
68
+ damping: 10,
69
+ mass: 0.9,
70
+ stiffness: 100,
71
+ },
72
+ quicker: {
73
+ type: 'spring',
74
+ damping: 20,
75
+ mass: 1,
76
+ stiffness: 250,
77
+ },
78
+ quickest: {
79
+ damping: 14,
80
+ mass: 0.1,
81
+ stiffness: 380,
82
+ },
83
+ })
@@ -0,0 +1,43 @@
1
+ import type { GenericFont } from '@tamagui/core'
2
+ import { createFont } from '@tamagui/core'
3
+
4
+ const genericFontSizes = {
5
+ 1: 10,
6
+ 2: 11,
7
+ 3: 12,
8
+ 4: 14,
9
+ 5: 15,
10
+ 6: 16,
11
+ 7: 20,
12
+ 8: 22,
13
+ 9: 30,
14
+ 10: 42,
15
+ 11: 52,
16
+ 12: 62,
17
+ 13: 72,
18
+ 14: 92,
19
+ 15: 114,
20
+ 16: 124,
21
+ } as const
22
+
23
+ export function createGenericFont<A extends GenericFont<keyof typeof genericFontSizes>>(
24
+ family: string,
25
+ font: Partial<A> = {},
26
+ {
27
+ sizeLineHeight = (val) => val * 1.35,
28
+ }: {
29
+ sizeLineHeight?: (val: number) => number
30
+ } = {}
31
+ ): A {
32
+ const size = font.size || genericFontSizes
33
+ return createFont({
34
+ family,
35
+ size,
36
+ lineHeight: Object.fromEntries(
37
+ Object.entries(size).map(([k, v]) => [k, sizeLineHeight(+v)])
38
+ ) as typeof size,
39
+ weight: { 0: '300' },
40
+ letterSpacing: { 4: 0 },
41
+ ...(font as any),
42
+ })
43
+ }
package/src/fonts.ts ADDED
@@ -0,0 +1,210 @@
1
+ import { createCherryBombFont } from '@tamagui/font-cherry-bomb'
2
+ import { createDmSansFont } from '@tamagui/font-dm-sans'
3
+ import { createDmSerifDisplayFont } from '@tamagui/font-dm-serif-display'
4
+ import { createInterFont } from '@tamagui/font-inter'
5
+ import { createMunroFont } from '@tamagui/font-munro'
6
+ import { createNohemi } from '@tamagui/font-nohemi'
7
+ import { createSilkscreenFont } from '@tamagui/font-silkscreen'
8
+ import { createGenericFont } from './createGenericFont'
9
+
10
+ export const cherryBombFont = createCherryBombFont({
11
+ family: '"Cherry Bomb", Arial, sans-serif',
12
+ })
13
+ export const munroFont = createMunroFont()
14
+ export const silkscreenFont = createSilkscreenFont()
15
+ export const headingFont = createInterFont(
16
+ {
17
+ size: {
18
+ 5: 13,
19
+ 6: 15,
20
+ 9: 32,
21
+ 10: 44,
22
+ },
23
+ transform: {
24
+ 6: 'uppercase',
25
+ 7: 'none',
26
+ },
27
+ weight: {
28
+ 6: '400',
29
+ 7: '700',
30
+ },
31
+ color: {
32
+ 6: '$colorFocus',
33
+ 7: '$color',
34
+ },
35
+ letterSpacing: {
36
+ 5: 2,
37
+ 6: 1,
38
+ 7: 0,
39
+ 8: 0,
40
+ 9: -0.1,
41
+ 10: -0.25,
42
+ 11: -0.5,
43
+ 12: -0.75,
44
+ 14: -1,
45
+ 15: -2,
46
+ },
47
+ // for native
48
+ face: {
49
+ 700: { normal: 'InterBold' },
50
+ 800: { normal: 'InterBold' },
51
+ 900: { normal: 'InterBold' },
52
+ },
53
+ },
54
+ { sizeLineHeight: (size) => Math.round(size * 1.1 + (size < 30 ? 10 : 5)) }
55
+ )
56
+
57
+ export const dmSansHeadingFont = createDmSansFont(
58
+ {
59
+ size: {
60
+ 5: 13,
61
+ 6: 15,
62
+ 9: 32,
63
+ 10: 44,
64
+ },
65
+ transform: {
66
+ 6: 'uppercase',
67
+ 7: 'none',
68
+ },
69
+ weight: {
70
+ 6: '400',
71
+ 7: '700',
72
+ },
73
+ color: {
74
+ 6: '$colorFocus',
75
+ 7: '$color',
76
+ },
77
+ letterSpacing: {
78
+ 5: 2,
79
+ 6: 1,
80
+ 7: 0,
81
+ 8: 0,
82
+ 9: 2,
83
+ 11: 3,
84
+ },
85
+ face: {},
86
+ },
87
+ {
88
+ sizeLineHeight: (size) => Math.round(size * 1.15),
89
+ sizeSize: (size) => size * 1.3,
90
+ }
91
+ )
92
+
93
+ export const nohemiFont = createNohemi(
94
+ {
95
+ size: {
96
+ 5: 13,
97
+ 6: 15,
98
+ 9: 32,
99
+ 10: 44,
100
+ },
101
+ transform: {
102
+ 6: 'uppercase',
103
+ 7: 'none',
104
+ },
105
+ weight: {
106
+ 6: '400',
107
+ 7: '700',
108
+ },
109
+ color: {
110
+ 6: '$colorFocus',
111
+ 7: '$color',
112
+ },
113
+ letterSpacing: {
114
+ 5: 3,
115
+ 6: 2,
116
+ 7: 1,
117
+ 9: 2,
118
+ 12: 3,
119
+ },
120
+ face: {},
121
+ },
122
+ {
123
+ sizeLineHeight: (size) => Math.round(size * 1.15),
124
+ sizeSize: (size) => size * 1.3,
125
+ }
126
+ )
127
+
128
+ export const dmSerifDisplayHeadingFont = createDmSerifDisplayFont(
129
+ {
130
+ size: {
131
+ 5: 13,
132
+ 6: 15,
133
+ 7: 16,
134
+ 8: 22,
135
+ 9: 32,
136
+ 10: 44,
137
+ },
138
+ transform: {
139
+ 6: 'uppercase',
140
+ 7: 'none',
141
+ },
142
+ weight: {
143
+ 6: '400',
144
+ 7: '700',
145
+ },
146
+ color: {
147
+ 6: '$colorFocus',
148
+ 7: '$color',
149
+ },
150
+ letterSpacing: {
151
+ 5: 1,
152
+ 6: 1,
153
+ 7: 1,
154
+ 8: 1,
155
+ 9: 1.9,
156
+ 10: 1.75,
157
+ 11: 1.5,
158
+ 12: 1.25,
159
+ 14: 1,
160
+ 15: 0,
161
+ },
162
+ face: {},
163
+ },
164
+ {
165
+ sizeLineHeight: (size) => Math.round(size * 1.1),
166
+ sizeSize: (size) => size * 1.55,
167
+ }
168
+ )
169
+
170
+ export const bodyFont = createInterFont(
171
+ {
172
+ weight: {
173
+ 1: '400',
174
+ },
175
+ },
176
+ {
177
+ sizeSize: (size) => Math.round(size),
178
+ sizeLineHeight: (size) => Math.round(size * 1.2 + (size >= 20 ? 12 : 8)),
179
+ }
180
+ )
181
+
182
+ export const monoFont = createGenericFont(
183
+ `"ui-monospace", "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace`,
184
+ {
185
+ weight: {
186
+ 1: '500',
187
+ },
188
+ size: {
189
+ 1: 11,
190
+ 2: 12,
191
+ 3: 13,
192
+ 4: 13,
193
+ 5: 14,
194
+ 6: 16,
195
+ 7: 18,
196
+ 8: 20,
197
+ 9: 24,
198
+ 10: 32,
199
+ 11: 46,
200
+ 12: 62,
201
+ 13: 72,
202
+ 14: 92,
203
+ 15: 114,
204
+ 16: 124,
205
+ },
206
+ },
207
+ {
208
+ sizeLineHeight: (x) => x * 1.5,
209
+ }
210
+ )
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './tamagui.dev.config'
2
+ export * from './animations.css'
3
+ export * from './animations'
4
+ export * from './media'
package/src/media.ts ADDED
@@ -0,0 +1,36 @@
1
+ export const demoMedia = [500, 620, 780, 900]
2
+ export const widths = [660, 800, 1020, 1280]
3
+
4
+ // note order is important!
5
+ // earlier defined = less important
6
+
7
+ export const media = {
8
+ // for site
9
+ xl: { maxWidth: 1650 },
10
+ // between lg and xl - for studio usage
11
+ lg_xl: { maxWidth: 1400 },
12
+ lg: { maxWidth: 1280 },
13
+ md: { maxWidth: 1020 },
14
+ sm: { maxWidth: 800 },
15
+ xs: { maxWidth: 660 },
16
+ xxs: { maxWidth: 390 },
17
+ gtXxs: { minWidth: 390 + 1 },
18
+ gtXs: { minWidth: 660 + 1 },
19
+ gtSm: { minWidth: 800 + 1 },
20
+ gtMd: { minWidth: 1020 + 1 },
21
+ gtLg: { minWidth: 1280 + 1 },
22
+ gtXl: { minWidth: 1650 + 1 },
23
+ pointerFine: { pointer: 'fine' },
24
+ } as const
25
+
26
+ // note all the non "gt" ones should be true to start to match mobile-first
27
+ // were aiming for "xs" to be the default to "gtXs" true too
28
+ export const mediaQueryDefaultActive = {
29
+ xl: true,
30
+ lg: true,
31
+ md: true,
32
+ sm: true,
33
+ xs: true,
34
+ // false
35
+ xxs: false,
36
+ }
@@ -0,0 +1,78 @@
1
+ import { tokens } from '@tamagui/config/v3'
2
+ import type { CreateTamaguiProps } from '@tamagui/core'
3
+ import { setupDev } from '@tamagui/core'
4
+ import { shorthands } from '@tamagui/shorthands/v2'
5
+ import { tamaguiThemes } from '@tamagui/themes/v4'
6
+ import { animations } from './animations'
7
+ import {
8
+ bodyFont,
9
+ cherryBombFont,
10
+ dmSansHeadingFont,
11
+ dmSerifDisplayHeadingFont,
12
+ headingFont,
13
+ monoFont,
14
+ munroFont,
15
+ nohemiFont,
16
+ silkscreenFont,
17
+ } from './fonts'
18
+ import { media, mediaQueryDefaultActive } from './media'
19
+
20
+ setupDev({
21
+ visualizer: true,
22
+ })
23
+
24
+ const fonts = {
25
+ heading: headingFont,
26
+ headingDmSans: dmSansHeadingFont,
27
+ headingDmSerifDisplay: dmSerifDisplayHeadingFont,
28
+ headingNohemi: nohemiFont,
29
+ body: bodyFont,
30
+ mono: monoFont,
31
+ silkscreen: silkscreenFont,
32
+ munro: munroFont,
33
+ cherryBomb: cherryBombFont,
34
+ }
35
+
36
+ // for some reason just re-defining these fixes a bug where negative space tokens were dropped
37
+ const fixTypescript55Bug = {
38
+ space: tokens.space,
39
+ size: tokens.size,
40
+ radius: tokens.radius,
41
+ zIndex: tokens.zIndex,
42
+ color: tokens.color,
43
+ }
44
+
45
+ export const config = {
46
+ fonts,
47
+ animations,
48
+ themes: tamaguiThemes,
49
+ media,
50
+ shorthands,
51
+ tokens: fixTypescript55Bug,
52
+ settings: {
53
+ defaultFont: 'body',
54
+ shouldAddPrefersColorThemes: true,
55
+ maxDarkLightNesting: 2,
56
+ themeClassNameOnRoot: true,
57
+ disableRootThemeClass: true,
58
+ mediaQueryDefaultActive,
59
+ selectionStyles: (theme) => ({
60
+ backgroundColor: theme.color5,
61
+ color: theme.color11,
62
+ }),
63
+ allowedStyleValues: 'somewhat-strict-web',
64
+ autocompleteSpecificTokens: 'except-special',
65
+ },
66
+ } satisfies CreateTamaguiProps
67
+
68
+ // for site responsive demo, but we want no types
69
+ Object.assign(config.media, {
70
+ tiny: { maxWidth: 500 },
71
+ gtTiny: { minWidth: 500 + 1 },
72
+ small: { maxWidth: 620 },
73
+ gtSmall: { minWidth: 620 + 1 },
74
+ medium: { maxWidth: 780 },
75
+ gtMedium: { minWidth: 780 + 1 },
76
+ large: { maxWidth: 900 },
77
+ gtLarge: { minWidth: 900 + 1 },
78
+ })