@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.
- package/LICENSE +21 -0
- package/dist/cjs/animations.cjs +107 -0
- package/dist/cjs/animations.css.cjs +42 -0
- package/dist/cjs/animations.css.js +36 -0
- package/dist/cjs/animations.css.js.map +6 -0
- package/dist/cjs/animations.js +102 -0
- package/dist/cjs/animations.js.map +6 -0
- package/dist/cjs/animations.reanimated.cjs +83 -0
- package/dist/cjs/animations.reanimated.js +78 -0
- package/dist/cjs/animations.reanimated.js.map +6 -0
- package/dist/cjs/createGenericFont.cjs +61 -0
- package/dist/cjs/createGenericFont.js +54 -0
- package/dist/cjs/createGenericFont.js.map +6 -0
- package/dist/cjs/fonts.cjs +226 -0
- package/dist/cjs/fonts.js +217 -0
- package/dist/cjs/fonts.js.map +6 -0
- package/dist/cjs/index.cjs +21 -0
- package/dist/cjs/index.js +18 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/media.cjs +85 -0
- package/dist/cjs/media.js +49 -0
- package/dist/cjs/media.js.map +6 -0
- package/dist/cjs/tamagui.dev.config.cjs +101 -0
- package/dist/cjs/tamagui.dev.config.js +72 -0
- package/dist/cjs/tamagui.dev.config.js.map +6 -0
- package/dist/esm/animations.css.js +20 -0
- package/dist/esm/animations.css.js.map +6 -0
- package/dist/esm/animations.css.mjs +19 -0
- package/dist/esm/animations.css.mjs.map +1 -0
- package/dist/esm/animations.js +86 -0
- package/dist/esm/animations.js.map +6 -0
- package/dist/esm/animations.mjs +84 -0
- package/dist/esm/animations.mjs.map +1 -0
- package/dist/esm/animations.reanimated.js +62 -0
- package/dist/esm/animations.reanimated.js.map +6 -0
- package/dist/esm/animations.reanimated.mjs +60 -0
- package/dist/esm/animations.reanimated.mjs.map +1 -0
- package/dist/esm/createGenericFont.js +38 -0
- package/dist/esm/createGenericFont.js.map +6 -0
- package/dist/esm/createGenericFont.mjs +38 -0
- package/dist/esm/createGenericFont.mjs.map +1 -0
- package/dist/esm/fonts.js +208 -0
- package/dist/esm/fonts.js.map +6 -0
- package/dist/esm/fonts.mjs +195 -0
- package/dist/esm/fonts.mjs.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +5 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/media.js +33 -0
- package/dist/esm/media.js.map +6 -0
- package/dist/esm/media.mjs +59 -0
- package/dist/esm/media.mjs.map +1 -0
- package/dist/esm/tamagui.dev.config.js +72 -0
- package/dist/esm/tamagui.dev.config.js.map +6 -0
- package/dist/esm/tamagui.dev.config.mjs +78 -0
- package/dist/esm/tamagui.dev.config.mjs.map +1 -0
- package/package.json +48 -0
- package/src/animations.css.ts +19 -0
- package/src/animations.reanimated.ts +59 -0
- package/src/animations.ts +83 -0
- package/src/createGenericFont.ts +43 -0
- package/src/fonts.ts +210 -0
- package/src/index.ts +4 -0
- package/src/media.ts +36 -0
- 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
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
|
+
})
|