-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtailwind.config.js
107 lines (104 loc) · 3.65 KB
/
tailwind.config.js
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
const plugin = require("tailwindcss/plugin");
const defaultTheme = require("tailwindcss/defaultTheme");
module.exports = {
content: ["./serverutil/**/*.{html,js,templ}"],
darkMode: ["class"],
theme: {
screens: {
xs: "360px",
...defaultTheme.screens,
},
groups: ["nested"],
extend: {
fontFamily: {
sans: ["Raleway"],
},
boxShadow: {
xs: "0 1px 2px rgb(16 24 40 / 0.05)",
sm: "0 1px 3px rgb(16 24 40 / 0.1), 0 1px 2px rgb(16 24 40 / 0.06)",
md: "0 4px 8px -2px rgb(16 24 40 / 0.1), 0 2px 4px -2px rgb(16 24 40 / 0.06)",
lg: "0 12px 16px -4px rgb(16 24 40 / 0.08), 0 4px 6px -2px rgb(16 24 40 / 0.03)",
xl: "0 20px 24px -4px rgb(16 24 40 / 0.08), 0 8px 8px -4px rgb(16 24 40 / 0.03)",
"2xl": "0 24px 48px -12px rgb(16 24 40 / 0.18)",
"3xl": "0 32px 64px -12px rgb(16 24 40 / 0.14)",
},
colors: {
gray: {
25: "rgb(var(--gray-25))",
50: "rgb(var(--gray-50))",
100: "rgb(var(--gray-100))",
200: "rgb(var(--gray-200))",
300: "rgb(var(--gray-300))",
400: "rgb(var(--gray-400))",
500: "rgb(var(--gray-500))",
600: "rgb(var(--gray-600))",
700: "rgb(var(--gray-700))",
800: "rgb(var(--gray-800))",
900: "rgb(var(--gray-900))",
},
primary: {
25: "rgb(var(--primary-25))",
50: "rgb(var(--primary-50))",
100: "rgb(var(--primary-100))",
200: "rgb(var(--primary-200))",
300: "rgb(var(--primary-300))",
400: "rgb(var(--primary-400))",
500: "rgb(var(--primary-500))",
600: "rgb(var(--primary-600))",
700: "rgb(var(--primary-700))",
800: "rgb(var(--primary-800))",
900: "rgb(var(--primary-900))",
},
success: {
25: "rgb(var(--success-25))",
50: "rgb(var(--success-50))",
300: "rgb(var(--success-300))",
600: "rgb(var(--success-600))",
700: "rgb(var(--success-700))",
800: "rgb(var(--success-800))",
},
error: {
25: "rgb(var(--error-25))",
50: "rgb(var(--error-50))",
300: "rgb(var(--error-300))",
500: "rgb(var(--error-500))",
600: "rgb(var(--error-600))",
700: "rgb(var(--error-700))",
800: "rgb(var(--error-800))",
},
warning: {
25: "rgb(var(--yellow-25))",
50: "rgb(var(--yellow-50))",
100: "rgb(var(--yellow-100))",
500: "rgb(var(--yellow-500))",
600: "rgb(var(--yellow-600))",
700: "rgb(var(--yellow-700))",
800: "rgb(var(--yellow-800))"
}
},
},
},
plugins: [
plugin(({ addVariant, theme }) => {
const groups = theme("groups") || [];
groups.forEach((group) => {
addVariant(`group-${group}-hover`, () => `:merge(.group-${group}):hover &`);
});
}),
plugin(function groupPeer({ addVariant }) {
let pseudoVariants = ["checked", "focus", "focus-visible"].map((variant) =>
Array.isArray(variant) ? variant : [variant, `&:${variant}`]
);
for (let [variantName, state] of pseudoVariants) {
addVariant(`group-peer-${variantName}`, (ctx) => {
let result = typeof state === "function" ? state(ctx) : state;
return result.replace(/&(\S+)/, ":merge(.peer)$1 ~ .group &");
});
addVariant(`dark:group-peer-${variantName}`, (ctx) => {
let result = typeof state === "function" ? state(ctx) : state;
return result.replace(/&(\S+)/, ":merge(.peer)$1 ~ .group &");
});
}
}),
],
};