-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtailwind.config.ts
132 lines (127 loc) · 4.31 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
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
import type {Config} from 'tailwindcss';
// eslint-disable-next-line @typescript-eslint/no-require-imports
const plugin = require('tailwindcss/plugin');
// eslint-disable-next-line @typescript-eslint/no-require-imports
const {blackA, mauve, violet, indigo, purple} = require('@radix-ui/colors');
const config: Config = {
content: [
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
colors: {
...blackA,
...mauve,
...violet,
...purple,
...indigo,
},
screens: {
sm: '640px',
// => @media (min-width: 640px) { ... }
md: '768px',
// => @media (min-width: 768px) { ... }
lg: '1024px',
// => @media (min-width: 1024px) { ... }
xl: '1280px',
// => @media (min-width: 1280px) { ... }
'2xl': '1536px',
// => @media (min-width: 1536px) { ... }
},
keyframes: {
enterFromRight: {
from: {opacity: '0', transform: 'translateX(200px)'},
to: {opacity: '1', transform: 'translateX(0)'},
},
enterFromLeft: {
from: {opacity: '0', transform: 'translateX(-200px)'},
to: {opacity: '1', transform: 'translateX(0)'},
},
exitToRight: {
from: {opacity: '1', transform: 'translateX(0)'},
to: {opacity: '0', transform: 'translateX(200px)'},
},
exitToLeft: {
from: {opacity: '1', transform: 'translateX(0)'},
to: {opacity: '0', transform: 'translateX(-200px)'},
},
scaleIn: {
from: {opacity: '0', transform: 'rotateX(-10deg) scale(0.9)'},
to: {opacity: '1', transform: 'rotateX(0deg) scale(1)'},
},
scaleOut: {
from: {opacity: '1', transform: 'rotateX(0deg) scale(1)'},
to: {opacity: '0', transform: 'rotateX(-10deg) scale(0.95)'},
},
fadeIn: {
from: {opacity: '0'},
to: {opacity: '1'},
},
fadeOut: {
from: {opacity: '1'},
to: {opacity: '0'},
},
hide: {
from: {opacity: '1'},
to: {opacity: '0'},
},
slideIn: {
from: {transform: 'translateX(calc(100% + var(--viewport-padding)))'},
to: {transform: 'translateX(0)'},
},
swipeOut: {
from: {transform: 'translateX(var(--radix-toast-swipe-end-x))'},
to: {transform: 'translateX(calc(100% + var(--viewport-padding)))'},
},
slideDownAndFade: {
from: {opacity: '0', transform: 'translateY(-2px)'},
to: {opacity: '1', transform: 'translateY(0)'},
},
slideLeftAndFade: {
from: {opacity: '0', transform: 'translateX(2px)'},
to: {opacity: '1', transform: 'translateX(0)'},
},
slideUpAndFade: {
from: {opacity: '0', transform: 'translateY(2px)'},
to: {opacity: '1', transform: 'translateY(0)'},
},
slideRightAndFade: {
from: {opacity: '0', transform: 'translateX(-2px)'},
to: {opacity: '1', transform: 'translateX(0)'},
},
},
},
animation: {
scaleIn: 'scaleIn 200ms ease',
scaleOut: 'scaleOut 200ms ease',
fadeIn: 'fadeIn 200ms ease',
fadeOut: 'fadeOut 200ms ease',
enterFromLeft: 'enterFromLeft 250ms ease',
enterFromRight: 'enterFromRight 250ms ease',
exitToLeft: 'exitToLeft 250ms ease',
exitToRight: 'exitToRight 250ms ease',
hide: 'hide 100ms ease-in',
slideIn: 'slideIn 150ms cubic-bezier(0.16, 1, 0.3, 1)',
swipeOut: 'swipeOut 100ms ease-out',
spinAround: 'spin 1s linear infinite',
slideDownAndFade: 'slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
slideLeftAndFade: 'slideLeftAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
slideUpAndFade: 'slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
slideRightAndFade:
'slideRightAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
},
},
plugins: [
// eslint-disable-next-line no-empty-pattern
plugin(({matchUtilities}: {matchUtilities: ({}) => unknown}) => {
matchUtilities({
perspective: (value: unknown) => ({
perspective: value,
}),
});
}),
],
};
export default config;