@neko-os/ui 0.0.1 → 0.0.3
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/README.md +1 -1
- package/dist/NekoUI.js +1 -0
- package/dist/abstractions/Icon.js +1 -0
- package/dist/abstractions/Icon.native.js +1 -0
- package/dist/abstractions/Text.js +1 -0
- package/dist/abstractions/Text.native.js +1 -0
- package/dist/abstractions/TouchableOpacity.js +1 -0
- package/dist/abstractions/View.js +1 -0
- package/dist/abstractions/View.native.js +1 -0
- package/dist/actions/Button.js +1 -0
- package/dist/actions/index.js +1 -0
- package/dist/helpers/string.js +1 -0
- package/dist/index.css +68 -0
- package/dist/index.js +1 -1
- package/dist/modifiers/background.js +1 -0
- package/dist/modifiers/border.js +1 -0
- package/dist/modifiers/flex.js +1 -1
- package/dist/modifiers/flexWrapper.js +1 -1
- package/dist/modifiers/fullColor.js.js +1 -0
- package/dist/modifiers/margin.js +1 -1
- package/dist/modifiers/padding.js +1 -1
- package/dist/modifiers/position.js +1 -1
- package/dist/modifiers/shadow.js +1 -0
- package/dist/modifiers/size.js +1 -1
- package/dist/modifiers/text.js +1 -1
- package/dist/presentation/Icon.js +1 -0
- package/dist/presentation/Tag.js +1 -0
- package/dist/presentation/index.js +1 -0
- package/dist/structure/Card.js +1 -0
- package/dist/structure/View.js +1 -1
- package/dist/structure/index.js +1 -1
- package/dist/text/Text.js +1 -0
- package/dist/text/index.js +1 -0
- package/dist/theme/ThemeHandler.js +1 -1
- package/dist/theme/default/base.js +1 -0
- package/dist/theme/default/base.native.js +1 -0
- package/dist/theme/default/base.web.js +1 -0
- package/dist/theme/default/cyberpunkTheme.js +1 -0
- package/dist/theme/default/darkTheme.js +1 -0
- package/dist/theme/default/deepWoodsTheme.js +1 -0
- package/dist/theme/default/forestTheme.js +1 -0
- package/dist/theme/default/lightTheme.js +1 -0
- package/dist/theme/default/midnightTheme.js +1 -0
- package/dist/theme/default/oceanTheme.js +1 -0
- package/dist/theme/default/pastelTheme.js +1 -0
- package/dist/theme/default/sunsetTheme.js +1 -0
- package/dist/theme/default/themes.js +1 -0
- package/dist/theme/format/colorsVariations.js +1 -0
- package/dist/theme/format/formatTheme.js +1 -0
- package/dist/theme/helpers/sizeScale.js +1 -0
- package/dist/theme/index.js +1 -1
- package/package.json +12 -6
- package/src/NekoUI.js +5 -0
- package/src/abstractions/Icon.js +26 -0
- package/src/abstractions/Icon.native.js +2 -0
- package/src/abstractions/Text.js +3 -0
- package/src/abstractions/Text.native.js +3 -0
- package/src/abstractions/TouchableOpacity.js +12 -0
- package/src/abstractions/View.js +3 -0
- package/src/abstractions/View.native.js +3 -0
- package/src/actions/Button.js +48 -0
- package/src/actions/index.js +1 -0
- package/src/helpers/string.js +57 -0
- package/src/index.css +68 -0
- package/src/index.js +6 -1
- package/src/modifiers/background.js +19 -0
- package/src/modifiers/border.js +53 -0
- package/src/modifiers/flex.js +2 -2
- package/src/modifiers/flexWrapper.js +7 -3
- package/src/modifiers/fullColor.js.js +30 -0
- package/src/modifiers/margin.js +8 -6
- package/src/modifiers/padding.js +8 -6
- package/src/modifiers/position.js +2 -2
- package/src/modifiers/shadow.js +32 -0
- package/src/modifiers/size.js +37 -5
- package/src/modifiers/text.js +30 -5
- package/src/presentation/Icon.js +14 -0
- package/src/presentation/Tag.js +32 -0
- package/src/presentation/index.js +2 -0
- package/src/structure/Card.js +36 -0
- package/src/structure/View.js +17 -6
- package/src/structure/index.js +1 -0
- package/src/text/Text.js +20 -0
- package/src/text/index.js +1 -0
- package/src/theme/ThemeHandler.js +56 -2
- package/src/theme/default/base.js +65 -0
- package/src/theme/default/base.native.js +58 -0
- package/src/theme/default/base.web.js +3 -0
- package/src/theme/default/cyberpunkTheme.js +30 -0
- package/src/theme/default/darkTheme.js +30 -0
- package/src/theme/default/deepWoodsTheme.js +30 -0
- package/src/theme/default/forestTheme.js +30 -0
- package/src/theme/default/lightTheme.js +30 -0
- package/src/theme/default/midnightTheme.js +30 -0
- package/src/theme/default/oceanTheme.js +30 -0
- package/src/theme/default/pastelTheme.js +30 -0
- package/src/theme/default/sunsetTheme.js +31 -0
- package/src/theme/default/themes.js +21 -0
- package/src/theme/format/colorsVariations.js +31 -0
- package/src/theme/format/formatTheme.js +22 -0
- package/src/theme/helpers/sizeScale.js +7 -0
- package/src/theme/index.js +1 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const BASE_THEME = {
|
|
2
|
+
spaces: {
|
|
3
|
+
xxxsm: 1,
|
|
4
|
+
xxsm: 3,
|
|
5
|
+
xsm: 5,
|
|
6
|
+
sm: 10,
|
|
7
|
+
md: 15,
|
|
8
|
+
lg: 20,
|
|
9
|
+
xlg: 30,
|
|
10
|
+
xxlg: 40,
|
|
11
|
+
xxxlg: 50,
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
radius: {
|
|
15
|
+
xxxsm: 4,
|
|
16
|
+
xxsm: 5,
|
|
17
|
+
xsm: 5,
|
|
18
|
+
sm: 7,
|
|
19
|
+
md: 8,
|
|
20
|
+
lg: 10,
|
|
21
|
+
xlg: 12,
|
|
22
|
+
xxlg: 15,
|
|
23
|
+
xxxlg: 18,
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
// Buttons, inputs, tags
|
|
27
|
+
elementHeights: {
|
|
28
|
+
xsm: 20,
|
|
29
|
+
sm: 30,
|
|
30
|
+
md: 35,
|
|
31
|
+
lg: 50,
|
|
32
|
+
xlg: 60,
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
texts: {
|
|
36
|
+
h1: {
|
|
37
|
+
fontSize: 32,
|
|
38
|
+
strong: true,
|
|
39
|
+
},
|
|
40
|
+
h2: {
|
|
41
|
+
fontSize: 26,
|
|
42
|
+
strong: true,
|
|
43
|
+
},
|
|
44
|
+
h3: {
|
|
45
|
+
fontSize: 22,
|
|
46
|
+
strong: true,
|
|
47
|
+
},
|
|
48
|
+
h4: {
|
|
49
|
+
fontSize: 18,
|
|
50
|
+
strong: true,
|
|
51
|
+
},
|
|
52
|
+
h5: {
|
|
53
|
+
fontSize: 16,
|
|
54
|
+
strong: true,
|
|
55
|
+
},
|
|
56
|
+
h6: {
|
|
57
|
+
fontSize: 14,
|
|
58
|
+
strong: true,
|
|
59
|
+
},
|
|
60
|
+
p: { fontSize: 14 },
|
|
61
|
+
sm: { fontSize: 12 },
|
|
62
|
+
xsm: { fontSize: 10 },
|
|
63
|
+
xxsm: { fontSize: 8 },
|
|
64
|
+
},
|
|
65
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export const BASE_THEME = {
|
|
2
|
+
spaces: {
|
|
3
|
+
xxsm: 3,
|
|
4
|
+
xsm: 5,
|
|
5
|
+
sm: 10,
|
|
6
|
+
md: 15,
|
|
7
|
+
lg: 20,
|
|
8
|
+
xlg: 30,
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
radius: {
|
|
12
|
+
xsm: 5,
|
|
13
|
+
sm: 7,
|
|
14
|
+
md: 8,
|
|
15
|
+
lg: 10,
|
|
16
|
+
xlg: 12,
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
// Buttons, inputs, tags
|
|
20
|
+
elementHeights: {
|
|
21
|
+
xsm: 20,
|
|
22
|
+
sm: 30,
|
|
23
|
+
md: 35,
|
|
24
|
+
lg: 50,
|
|
25
|
+
xlg: 60,
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
texts: {
|
|
29
|
+
h1: {
|
|
30
|
+
fontSize: 32,
|
|
31
|
+
strong: true,
|
|
32
|
+
},
|
|
33
|
+
h2: {
|
|
34
|
+
fontSize: 26,
|
|
35
|
+
strong: true,
|
|
36
|
+
},
|
|
37
|
+
h3: {
|
|
38
|
+
fontSize: 22,
|
|
39
|
+
strong: true,
|
|
40
|
+
},
|
|
41
|
+
h4: {
|
|
42
|
+
fontSize: 18,
|
|
43
|
+
strong: true,
|
|
44
|
+
},
|
|
45
|
+
h5: {
|
|
46
|
+
fontSize: 16,
|
|
47
|
+
strong: true,
|
|
48
|
+
},
|
|
49
|
+
h6: {
|
|
50
|
+
fontSize: 14,
|
|
51
|
+
strong: true,
|
|
52
|
+
},
|
|
53
|
+
p: { fontSize: 14 },
|
|
54
|
+
sm: { fontSize: 12 },
|
|
55
|
+
xsm: { fontSize: 10 },
|
|
56
|
+
xxsm: { fontSize: 8 },
|
|
57
|
+
},
|
|
58
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const CYBERPUNK_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#FCEE09',
|
|
7
|
+
text: '#FFFFFF',
|
|
8
|
+
text2: '#B3B3B3',
|
|
9
|
+
text3: '#8C8C8C',
|
|
10
|
+
text4: '#666666',
|
|
11
|
+
|
|
12
|
+
bg: '#0A0A0F',
|
|
13
|
+
overlayBG: '#14141F',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.6)',
|
|
15
|
+
|
|
16
|
+
blue: '#00E5FF',
|
|
17
|
+
yellow: '#FFD600',
|
|
18
|
+
green: '#00FF9D',
|
|
19
|
+
purple: '#D500F9',
|
|
20
|
+
orange: '#FF9100',
|
|
21
|
+
cyan: '#00B8D4',
|
|
22
|
+
red: '#FF1744',
|
|
23
|
+
navy: '#1E2A38',
|
|
24
|
+
indigo: '#651FFF',
|
|
25
|
+
gray: '#757575',
|
|
26
|
+
brown: '#6D4C41',
|
|
27
|
+
lylac: '#B388FF',
|
|
28
|
+
pink: '#FF80AB',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const DEFAULT_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#818DF9',
|
|
7
|
+
text: '#FFFFFF',
|
|
8
|
+
text2: '#E0E0E0',
|
|
9
|
+
text3: '#B0B0B0',
|
|
10
|
+
text4: '#8A8A8A',
|
|
11
|
+
|
|
12
|
+
bg: '#383E44',
|
|
13
|
+
overlayBG: '#272D34',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.6)',
|
|
15
|
+
|
|
16
|
+
blue: '#4DA3FF',
|
|
17
|
+
yellow: '#FFD93B',
|
|
18
|
+
green: '#4CAF50',
|
|
19
|
+
purple: '#9B59B6',
|
|
20
|
+
orange: '#FF7F50',
|
|
21
|
+
cyan: '#00BCD4',
|
|
22
|
+
red: '#E74C3C',
|
|
23
|
+
navy: '#34495E',
|
|
24
|
+
indigo: '#5C6BC0',
|
|
25
|
+
gray: '#9E9E9E',
|
|
26
|
+
brown: '#8D6E63',
|
|
27
|
+
lylac: '#B39DDB',
|
|
28
|
+
pink: '#F48FB1',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const DEEP_WOODS_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#4CAF50',
|
|
7
|
+
text: '#F0F8F2',
|
|
8
|
+
text2: '#C8E6C9',
|
|
9
|
+
text3: '#A5D6A7',
|
|
10
|
+
text4: '#81C784',
|
|
11
|
+
|
|
12
|
+
bg: '#0D1B14',
|
|
13
|
+
overlayBG: '#16281F',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.6)',
|
|
15
|
+
|
|
16
|
+
blue: '#64B5F6',
|
|
17
|
+
yellow: '#FBC02D',
|
|
18
|
+
green: '#81C784',
|
|
19
|
+
purple: '#9575CD',
|
|
20
|
+
orange: '#FFB74D',
|
|
21
|
+
cyan: '#4DD0E1',
|
|
22
|
+
red: '#E57373',
|
|
23
|
+
navy: '#1B263B',
|
|
24
|
+
indigo: '#5C6BC0',
|
|
25
|
+
gray: '#9E9E9E',
|
|
26
|
+
brown: '#8D6E63',
|
|
27
|
+
lylac: '#B39DDB',
|
|
28
|
+
pink: '#F48FB1',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const FOREST_MIST_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#4CAF50',
|
|
7
|
+
text: '#0B2414',
|
|
8
|
+
text2: '#14532D',
|
|
9
|
+
text3: '#1B5E20',
|
|
10
|
+
text4: '#388E3C',
|
|
11
|
+
|
|
12
|
+
bg: '#E9F5EC',
|
|
13
|
+
overlayBG: '#FFFFFF',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.15)',
|
|
15
|
+
|
|
16
|
+
blue: '#2563EB',
|
|
17
|
+
yellow: '#F59E0B',
|
|
18
|
+
green: '#15803D',
|
|
19
|
+
purple: '#7C3AED',
|
|
20
|
+
orange: '#EA580C',
|
|
21
|
+
cyan: '#0891B2',
|
|
22
|
+
red: '#B91C1C',
|
|
23
|
+
navy: '#1E3A8A',
|
|
24
|
+
indigo: '#4338CA',
|
|
25
|
+
gray: '#94A3B8',
|
|
26
|
+
brown: '#78350F',
|
|
27
|
+
lylac: '#A78BFA',
|
|
28
|
+
pink: '#F472B6',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const DEFAULT_LIGHT_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#818DF9',
|
|
7
|
+
text: '#272D34',
|
|
8
|
+
text2: '#4A5159',
|
|
9
|
+
text3: '#6E7680',
|
|
10
|
+
text4: '#9AA1AC',
|
|
11
|
+
|
|
12
|
+
bg: '#F4F5FE',
|
|
13
|
+
overlayBG: '#FFFFFF',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.15)',
|
|
15
|
+
|
|
16
|
+
blue: '#4DA3FF',
|
|
17
|
+
yellow: '#FFD93B',
|
|
18
|
+
green: '#4CAF50',
|
|
19
|
+
purple: '#9B59B6',
|
|
20
|
+
orange: '#FF7F50',
|
|
21
|
+
cyan: '#00BCD4',
|
|
22
|
+
red: '#E74C3C',
|
|
23
|
+
navy: '#34495E',
|
|
24
|
+
indigo: '#5C6BC0',
|
|
25
|
+
gray: '#B0BEC5',
|
|
26
|
+
brown: '#8D6E63',
|
|
27
|
+
lylac: '#B39DDB',
|
|
28
|
+
pink: '#F48FB1',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const MIDNIGHT_NEON_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#FF00FF',
|
|
7
|
+
text: '#F0F0F0',
|
|
8
|
+
text2: '#D4D4D4',
|
|
9
|
+
text3: '#A3A3A3',
|
|
10
|
+
text4: '#7A7A7A',
|
|
11
|
+
|
|
12
|
+
bg: '#0D0D0D',
|
|
13
|
+
overlayBG: '#1A1A1A',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.6)',
|
|
15
|
+
|
|
16
|
+
blue: '#3B82F6',
|
|
17
|
+
yellow: '#FACC15',
|
|
18
|
+
green: '#22C55E',
|
|
19
|
+
purple: '#A855F7',
|
|
20
|
+
orange: '#FB923C',
|
|
21
|
+
cyan: '#06B6D4',
|
|
22
|
+
red: '#F87171',
|
|
23
|
+
navy: '#1E3A8A',
|
|
24
|
+
indigo: '#6366F1',
|
|
25
|
+
gray: '#9CA3AF',
|
|
26
|
+
brown: '#92400E',
|
|
27
|
+
lylac: '#C084FC',
|
|
28
|
+
pink: '#F472B6',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const OCEAN_BREEZE_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#2B90D9',
|
|
7
|
+
text: '#04364A',
|
|
8
|
+
text2: '#065A82',
|
|
9
|
+
text3: '#0B84B4',
|
|
10
|
+
text4: '#3ABEFF',
|
|
11
|
+
|
|
12
|
+
bg: '#E6F7FF',
|
|
13
|
+
overlayBG: '#FFFFFF',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.15)',
|
|
15
|
+
|
|
16
|
+
blue: '#1D4ED8',
|
|
17
|
+
yellow: '#FACC15',
|
|
18
|
+
green: '#10B981',
|
|
19
|
+
purple: '#8B5CF6',
|
|
20
|
+
orange: '#FB923C',
|
|
21
|
+
cyan: '#06B6D4',
|
|
22
|
+
red: '#EF4444',
|
|
23
|
+
navy: '#1E3A8A',
|
|
24
|
+
indigo: '#6366F1',
|
|
25
|
+
gray: '#9CA3AF',
|
|
26
|
+
brown: '#A16207',
|
|
27
|
+
lylac: '#C4B5FD',
|
|
28
|
+
pink: '#F472B6',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
import { BASE_THEME } from './base'
|
|
3
|
+
|
|
4
|
+
export const PASTEL_DREAM_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
colors: {
|
|
6
|
+
primary: '#FFB6C1',
|
|
7
|
+
text: '#4B4453',
|
|
8
|
+
text2: '#6D6875',
|
|
9
|
+
text3: '#A093A6',
|
|
10
|
+
text4: '#C9BBCF',
|
|
11
|
+
|
|
12
|
+
bg: '#FFF7FA',
|
|
13
|
+
overlayBG: '#FFFFFF',
|
|
14
|
+
shadow: 'rgba(39, 45, 52, 0.15)',
|
|
15
|
+
|
|
16
|
+
blue: '#A5B4FC',
|
|
17
|
+
yellow: '#FDE68A',
|
|
18
|
+
green: '#BBF7D0',
|
|
19
|
+
purple: '#E9D5FF',
|
|
20
|
+
orange: '#FED7AA',
|
|
21
|
+
cyan: '#BAE6FD',
|
|
22
|
+
red: '#FCA5A5',
|
|
23
|
+
navy: '#A5B4FC',
|
|
24
|
+
indigo: '#C7D2FE',
|
|
25
|
+
gray: '#E5E7EB',
|
|
26
|
+
brown: '#E0B084',
|
|
27
|
+
lylac: '#E9D5FF',
|
|
28
|
+
pink: '#FBCFE8',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
|
|
3
|
+
import { BASE_THEME } from './base'
|
|
4
|
+
|
|
5
|
+
export const SUNSET_GLOW_THEME = mergeDeepRight(BASE_THEME, {
|
|
6
|
+
colors: {
|
|
7
|
+
primary: '#FF6B6B',
|
|
8
|
+
text: '#331E0A',
|
|
9
|
+
text2: '#5C4033',
|
|
10
|
+
text3: '#8C5A43',
|
|
11
|
+
text4: '#B97A57',
|
|
12
|
+
|
|
13
|
+
bg: '#FFF5E6',
|
|
14
|
+
overlayBG: '#FFFFFF',
|
|
15
|
+
shadow: 'rgba(39, 45, 52, 0.15)',
|
|
16
|
+
|
|
17
|
+
blue: '#3B82F6',
|
|
18
|
+
yellow: '#FBBF24',
|
|
19
|
+
green: '#22C55E',
|
|
20
|
+
purple: '#A855F7',
|
|
21
|
+
orange: '#FB923C',
|
|
22
|
+
cyan: '#06B6D4',
|
|
23
|
+
red: '#DC2626',
|
|
24
|
+
navy: '#1E3A8A',
|
|
25
|
+
indigo: '#4F46E5',
|
|
26
|
+
gray: '#9CA3AF',
|
|
27
|
+
brown: '#92400E',
|
|
28
|
+
lylac: '#C084FC',
|
|
29
|
+
pink: '#F472B6',
|
|
30
|
+
},
|
|
31
|
+
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CYBERPUNK_DARK_THEME } from './cyberpunkTheme'
|
|
2
|
+
import { DEEP_WOODS_DARK_THEME } from './deepWoodsTheme'
|
|
3
|
+
import { DEFAULT_DARK_THEME } from './darkTheme'
|
|
4
|
+
import { DEFAULT_LIGHT_THEME } from './lightTheme'
|
|
5
|
+
import { FOREST_MIST_THEME } from './forestTheme'
|
|
6
|
+
import { MIDNIGHT_NEON_THEME } from './midnightTheme'
|
|
7
|
+
import { OCEAN_BREEZE_THEME } from './oceanTheme'
|
|
8
|
+
import { PASTEL_DREAM_THEME } from './pastelTheme'
|
|
9
|
+
import { SUNSET_GLOW_THEME } from './sunsetTheme'
|
|
10
|
+
|
|
11
|
+
export const DEFAULT_THEMES = {
|
|
12
|
+
light: DEFAULT_LIGHT_THEME,
|
|
13
|
+
dark: DEFAULT_DARK_THEME,
|
|
14
|
+
pastel: PASTEL_DREAM_THEME,
|
|
15
|
+
midnight: MIDNIGHT_NEON_THEME,
|
|
16
|
+
sunset: SUNSET_GLOW_THEME,
|
|
17
|
+
ocean: OCEAN_BREEZE_THEME,
|
|
18
|
+
forest: FOREST_MIST_THEME,
|
|
19
|
+
cyberpunk: CYBERPUNK_DARK_THEME,
|
|
20
|
+
deepWoods: DEEP_WOODS_DARK_THEME,
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import tinycolor from 'tinycolor2'
|
|
2
|
+
|
|
3
|
+
const variations = [10, 20, 30, 40, 50, 60, 70, 80, 90]
|
|
4
|
+
|
|
5
|
+
export function generateColorVariants(colors) {
|
|
6
|
+
const isDark = tinycolor(colors?.overlayBG || colors?.bg).isDark()
|
|
7
|
+
const result = {}
|
|
8
|
+
|
|
9
|
+
Object.entries(colors).forEach(([key, value]) => {
|
|
10
|
+
result[key] = value
|
|
11
|
+
|
|
12
|
+
variations.forEach((amount) => {
|
|
13
|
+
if (amount <= 60) {
|
|
14
|
+
const lightenSignal = !isDark ? '-' : '+'
|
|
15
|
+
const darkenSignal = isDark ? '-' : '+'
|
|
16
|
+
result[`${key}${lightenSignal}${amount}`] = tinycolor(value).lighten(amount).toString()
|
|
17
|
+
result[`${key}${darkenSignal}${amount}`] = tinycolor(value).darken(amount).toString()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
result[`${key}_op${amount}`] = tinycolor(value)
|
|
21
|
+
.setAlpha(amount / 100)
|
|
22
|
+
.toString()
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
return result
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function applyColorVariantsOnTheme(theme) {
|
|
30
|
+
return { ...theme, colors: generateColorVariants(theme.colors) }
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { mergeDeepRight, pipe } from 'ramda'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import { DEFAULT_LIGHT_THEME } from '../default/lightTheme'
|
|
5
|
+
import { DEFAULT_THEMES } from '../default/themes'
|
|
6
|
+
import { applyColorVariantsOnTheme } from './colorsVariations'
|
|
7
|
+
|
|
8
|
+
export function useFormattedTheme(themes, key) {
|
|
9
|
+
themes = themes || DEFAULT_THEMES
|
|
10
|
+
return React.useMemo(() => formatTheme(themes, key), [key])
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function formatTheme(themes, key) {
|
|
14
|
+
themes = themes || DEFAULT_THEMES
|
|
15
|
+
const theme = themes[key] || DEFAULT_THEMES[key] || DEFAULT_LIGHT_THEME
|
|
16
|
+
const baseDefaultTheme = DEFAULT_THEMES[theme.base] || DEFAULT_THEMES[key] || DEFAULT_LIGHT_THEME
|
|
17
|
+
|
|
18
|
+
return pipe(
|
|
19
|
+
mergeDeepRight(baseDefaultTheme), //
|
|
20
|
+
applyColorVariantsOnTheme
|
|
21
|
+
)({ ...theme })
|
|
22
|
+
}
|
package/src/theme/index.js
CHANGED