-
Notifications
You must be signed in to change notification settings - Fork 0
/
tailwind.config.ts
76 lines (68 loc) · 1.51 KB
/
tailwind.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import type { Config } from "tailwindcss";
import { createThemes } from "tw-colors";
import colors from "tailwindcss/colors";
const baseColors = [
"gray",
"red",
"yellow",
"green",
"blue",
"indigo",
"purple",
"pink"
];
const shades = {
"50": "900",
"100": "800",
"200": "700",
"300": "600",
"400": "500",
"500": "400",
"600": "300",
"700": "200",
"800": "100",
"900": "50"
};
const generateTheme = (colors: any, mapping: any, invert: boolean = false) => {
const theme: any = {};
baseColors.forEach((color) => {
theme[color] = {};
Object.entries(mapping).forEach(([key, value]: any) => {
const shadeKey = invert ? value : key;
theme[color][key] = colors[color][shadeKey];
});
});
return theme;
}
const lightTheme = generateTheme(colors, shades);
const darkTheme = generateTheme(colors, shades, true);
const themes = {
light: {
...lightTheme,
white: "#FFFFFF"
},
dark: {
...darkTheme,
white: colors.gray["950"],
black: colors.gray["50"]
}
}
const config: Config = {
darkMode: "class",
content: [
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
backgroundImage: {
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
"gradient-conic":
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
},
},
},
plugins: [createThemes(themes)],
};
export default config;