@tamagui/theme-builder 1.79.6 → 1.79.7
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/dist/cjs/buildThemeSuite.js +62 -90
- package/dist/cjs/buildThemeSuite.js.map +1 -1
- package/dist/cjs/buildThemeSuite.native.js +62 -90
- package/dist/cjs/buildThemeSuite.native.js.map +1 -1
- package/dist/cjs/buildThemeSuiteScales.js +37 -4
- package/dist/cjs/buildThemeSuiteScales.js.map +1 -1
- package/dist/cjs/buildThemeSuiteScales.native.js +38 -4
- package/dist/cjs/buildThemeSuiteScales.native.js.map +2 -2
- package/dist/esm/buildThemeSuite.js +62 -90
- package/dist/esm/buildThemeSuite.js.map +1 -1
- package/dist/esm/buildThemeSuite.native.js +62 -90
- package/dist/esm/buildThemeSuite.native.js.map +1 -1
- package/dist/esm/buildThemeSuiteScales.js +37 -5
- package/dist/esm/buildThemeSuiteScales.js.map +1 -1
- package/dist/esm/buildThemeSuiteScales.native.js +38 -5
- package/dist/esm/buildThemeSuiteScales.native.js.map +2 -2
- package/package.json +3 -3
- package/src/buildThemeSuite.ts +34 -35
- package/src/buildThemeSuiteScales.ts +49 -6
- package/src/types.ts +1 -0
- package/types/buildThemeSuite.d.ts.map +1 -1
- package/types/buildThemeSuiteScales.d.ts +6 -0
- package/types/buildThemeSuiteScales.d.ts.map +1 -1
- package/types/types.d.ts +1 -1
- package/types/types.d.ts.map +1 -1
package/src/buildThemeSuite.ts
CHANGED
|
@@ -117,40 +117,40 @@ export function buildThemeSuite({ baseTheme, subThemes }: BuildThemeSuiteProps)
|
|
|
117
117
|
...baseTemplate,
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
const accentTemplateLight = {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const accentTemplateDark = {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
120
|
+
// const accentTemplateLight = {
|
|
121
|
+
// background: 0,
|
|
122
|
+
// backgroundHover: 1,
|
|
123
|
+
// backgroundPress: baseTemplate.backgroundPress + 4,
|
|
124
|
+
// backgroundFocus: baseTemplate.backgroundFocus + 4,
|
|
125
|
+
// borderColor: baseTemplate.borderColor + 2,
|
|
126
|
+
// borderColorHover: baseTemplate.borderColorHover + 2,
|
|
127
|
+
// borderColorFocus: baseTemplate.borderColorFocus + 2,
|
|
128
|
+
// borderColorPress: baseTemplate.borderColorPress + 2,
|
|
129
|
+
// color: -5,
|
|
130
|
+
// colorHover: -6,
|
|
131
|
+
// colorPress: -7,
|
|
132
|
+
// colorFocus: -5,
|
|
133
|
+
// }
|
|
134
|
+
|
|
135
|
+
// const accentTemplateDark = {
|
|
136
|
+
// background: baseTemplate.background + 4,
|
|
137
|
+
// backgroundHover: baseTemplate.backgroundHover + 5,
|
|
138
|
+
// backgroundPress: baseTemplate.backgroundPress + 3,
|
|
139
|
+
// backgroundFocus: baseTemplate.backgroundFocus + 5,
|
|
140
|
+
// borderColor: baseTemplate.borderColor + 2,
|
|
141
|
+
// borderColorHover: baseTemplate.borderColorHover + 2,
|
|
142
|
+
// borderColorFocus: baseTemplate.borderColorFocus + 2,
|
|
143
|
+
// borderColorPress: baseTemplate.borderColorPress + 2,
|
|
144
|
+
// color: -5,
|
|
145
|
+
// colorHover: -6,
|
|
146
|
+
// colorPress: -7,
|
|
147
|
+
// colorFocus: -5,
|
|
148
|
+
// }
|
|
149
149
|
|
|
150
150
|
return {
|
|
151
151
|
base: template,
|
|
152
|
-
accentLight:
|
|
153
|
-
accentDark:
|
|
152
|
+
accentLight: template,
|
|
153
|
+
accentDark: template,
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
|
|
@@ -216,10 +216,7 @@ export function buildThemeSuite({ baseTheme, subThemes }: BuildThemeSuiteProps)
|
|
|
216
216
|
...customMaskOptions.component,
|
|
217
217
|
},
|
|
218
218
|
|
|
219
|
-
Switch:
|
|
220
|
-
mask: 'soften2',
|
|
221
|
-
...customMaskOptions.component,
|
|
222
|
-
},
|
|
219
|
+
Switch: componentTheme,
|
|
223
220
|
|
|
224
221
|
SwitchThumb: {
|
|
225
222
|
mask: 'inverse',
|
|
@@ -367,6 +364,8 @@ export function buildThemeSuite({ baseTheme, subThemes }: BuildThemeSuiteProps)
|
|
|
367
364
|
|
|
368
365
|
const built = builder.build()
|
|
369
366
|
|
|
367
|
+
console.info('built themes', built)
|
|
368
|
+
|
|
370
369
|
return {
|
|
371
370
|
built,
|
|
372
371
|
palettes,
|
|
@@ -1,19 +1,54 @@
|
|
|
1
|
-
import { parseToHsla } from 'color2k'
|
|
1
|
+
import { hsla, parseToHsla, toHex } from 'color2k'
|
|
2
2
|
|
|
3
3
|
import { BuildTheme, ScaleTypeName } from './types'
|
|
4
4
|
|
|
5
|
+
export function getColorForegroundBackground(color: string, isDarkMode = false) {
|
|
6
|
+
const [h, s, l] = parseToHsla(color)
|
|
7
|
+
const isColorLight = l > 0.5
|
|
8
|
+
const oppositeLightness = l > 0.5 ? 1 - l : 0.5 + l
|
|
9
|
+
const oppositeLightnessColor = toHex(hsla(h, s, oppositeLightness, 1))
|
|
10
|
+
const foreground = isDarkMode ? color : oppositeLightnessColor
|
|
11
|
+
const background = foreground === color ? oppositeLightnessColor : color
|
|
12
|
+
return {
|
|
13
|
+
foreground,
|
|
14
|
+
foregroundLightness: foreground === color ? l : oppositeLightness,
|
|
15
|
+
background,
|
|
16
|
+
backgroundLightness: foreground !== color ? l : oppositeLightness,
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
5
20
|
export const getThemeSuiteScale = (theme: BuildTheme, accent?: boolean): ScaleType => {
|
|
6
|
-
const
|
|
21
|
+
const baseColor = accent ? theme.accent || theme.color : theme.color
|
|
7
22
|
const scale = accent ? theme.accentScale || theme.scale : theme.scale
|
|
8
23
|
|
|
9
|
-
let base = scaleTypes[
|
|
24
|
+
let base = scaleTypes[scale]
|
|
10
25
|
|
|
11
|
-
if (!
|
|
26
|
+
if (!baseColor) {
|
|
12
27
|
return base
|
|
13
28
|
}
|
|
14
29
|
|
|
15
|
-
const [h, s, l] = parseToHsla(
|
|
16
|
-
|
|
30
|
+
const [h, s, l] = parseToHsla(baseColor)
|
|
31
|
+
|
|
32
|
+
if (scale === 'automatic') {
|
|
33
|
+
const lightColors = getColorForegroundBackground(baseColor, false)
|
|
34
|
+
const darkColors = getColorForegroundBackground(baseColor, true)
|
|
35
|
+
|
|
36
|
+
const scaleLen = 12
|
|
37
|
+
const arr = new Array(scaleLen).fill(0)
|
|
38
|
+
|
|
39
|
+
function getScale(bgL: number, fgL: number) {
|
|
40
|
+
const stepSize = (fgL - bgL) / scaleLen
|
|
41
|
+
return arr.map((_, i) => bgL + i * stepSize)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
...base,
|
|
46
|
+
lumScale: {
|
|
47
|
+
light: getScale(lightColors.backgroundLightness, lightColors.foregroundLightness),
|
|
48
|
+
dark: getScale(darkColors.backgroundLightness, darkColors.foregroundLightness),
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
}
|
|
17
52
|
|
|
18
53
|
return {
|
|
19
54
|
...base,
|
|
@@ -44,6 +79,14 @@ export type ScaleType<A extends ScaleTypeName = ScaleTypeName> = {
|
|
|
44
79
|
}
|
|
45
80
|
|
|
46
81
|
export const scaleTypes: Record<ScaleTypeName, ScaleType> = {
|
|
82
|
+
automatic: {
|
|
83
|
+
createdFrom: 'automatic',
|
|
84
|
+
name: 'Automatic',
|
|
85
|
+
lumScale: {
|
|
86
|
+
light: [],
|
|
87
|
+
dark: [],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
47
90
|
radix: {
|
|
48
91
|
name: 'Radius',
|
|
49
92
|
createdFrom: 'radix',
|
package/src/types.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildThemeSuite.d.ts","sourceRoot":"","sources":["../src/buildThemeSuite.ts"],"names":[],"mappings":"AAWA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9D,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"buildThemeSuite.d.ts","sourceRoot":"","sources":["../src/buildThemeSuite.ts"],"names":[],"mappings":"AAWA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9D,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuW7E;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { BuildTheme, ScaleTypeName } from './types';
|
|
2
|
+
export declare function getColorForegroundBackground(color: string, isDarkMode?: boolean): {
|
|
3
|
+
foreground: string;
|
|
4
|
+
foregroundLightness: number;
|
|
5
|
+
background: string;
|
|
6
|
+
backgroundLightness: number;
|
|
7
|
+
};
|
|
2
8
|
export declare const getThemeSuiteScale: (theme: BuildTheme, accent?: boolean) => ScaleType;
|
|
3
9
|
export type ScaleType<A extends ScaleTypeName = ScaleTypeName> = {
|
|
4
10
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildThemeSuiteScales.d.ts","sourceRoot":"","sources":["../src/buildThemeSuiteScales.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEnD,eAAO,MAAM,kBAAkB,UAAW,UAAU,WAAW,OAAO,KAAG,
|
|
1
|
+
{"version":3,"file":"buildThemeSuiteScales.d.ts","sourceRoot":"","sources":["../src/buildThemeSuiteScales.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEnD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,UAAQ;;;;;EAa7E;AAED,eAAO,MAAM,kBAAkB,UAAW,UAAU,WAAW,OAAO,KAAG,SA8CxE,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI;IAC/D,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,QAAQ,EAAE;QACR,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACpB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KACpB,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACpB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KACpB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAkIvD,CAAA"}
|
package/types/types.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export type BuildThemeSuitePalettes = {
|
|
|
15
15
|
lightAccent?: string[];
|
|
16
16
|
darkAccent?: string[];
|
|
17
17
|
};
|
|
18
|
-
export type ScaleTypeName = 'radix' | 'radix-b' | 'radius-bold' | 'radius-bright' | 'linear' | 'pastel' | 'pastel-desaturating' | 'neon' | 'neon-bright' | 'neon-c';
|
|
18
|
+
export type ScaleTypeName = 'automatic' | 'radix' | 'radix-b' | 'radius-bold' | 'radius-bright' | 'linear' | 'pastel' | 'pastel-desaturating' | 'neon' | 'neon-bright' | 'neon-c';
|
|
19
19
|
export type BuildThemeBase = {
|
|
20
20
|
id: string;
|
|
21
21
|
name: string;
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,UAAU,CAAA;IACrB,SAAS,CAAC,EAAE,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAA;IAC3C,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,QAAQ,CAAA;QACd,WAAW,EAAE,QAAQ,CAAA;QACrB,UAAU,EAAE,QAAQ,CAAA;KACrB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,SAAS,GACT,aAAa,GACb,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,qBAAqB,GACrB,MAAM,GACN,aAAa,GACb,QAAQ,CAAA;AAEZ,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,aAAa,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,aAAa,CAAA;CAC5B,CAAA;AAGD,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,CACrC;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;CAChB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CACJ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,UAAU,CAAA;IACrB,SAAS,CAAC,EAAE,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAA;IAC3C,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,QAAQ,CAAA;QACd,WAAW,EAAE,QAAQ,CAAA;QACrB,UAAU,EAAE,QAAQ,CAAA;KACrB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,OAAO,GACP,SAAS,GACT,aAAa,GACb,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,qBAAqB,GACrB,MAAM,GACN,aAAa,GACb,QAAQ,CAAA;AAEZ,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,aAAa,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,aAAa,CAAA;CAC5B,CAAA;AAGD,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,CACrC;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;CAChB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CACJ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB,CAAA"}
|