-
Notifications
You must be signed in to change notification settings - Fork 94
/
Copy pathtailwind.config.ts
109 lines (107 loc) · 3.69 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
const whitlistedColorsForDynamicContent = [
'red',
'orange',
'amber',
'yellow',
'lime',
'green',
'emerald',
'teal',
'cyan',
'sky',
'blue',
'indigo',
'violet',
'purple',
'fuchsia',
'pink',
'rose',
];
const whitelistedBgClasses = whitlistedColorsForDynamicContent.map((c) => `bg-${c}-200`);
export default {
safelist: ['font-noto', 'font-lato', ...whitelistedBgClasses],
theme: {
extend: {
fontFamily: {
noto: ['Noto Sans', 'sans-serif'],
lato: ['Lato', 'cursive'],
nunito: ['Nunito', 'sans-serif'],
},
colors: {
primary: '#818CF8',
'primary-dark': '#5969f7',
'primary-bg': '#EBECFF',
'primary-content': '#FFFFFF',
},
fontSize: {
xs: ['0.75rem', { lineHeight: '1.5' }],
sm: ['0.875rem', { lineHeight: '1.5715' }],
base: ['1rem', { lineHeight: '1.5', letterSpacing: '-0.01em' }],
lg: ['1.125rem', { lineHeight: '1.5', letterSpacing: '-0.01em' }],
xl: ['1.25rem', { lineHeight: '1.5', letterSpacing: '-0.01em' }],
'2xl': ['1.5rem', { lineHeight: '1.415', letterSpacing: '-0.01em' }],
'3xl': ['1.875rem', { lineHeight: '1.333', letterSpacing: '-0.01em' }],
'4xl': ['2.25rem', { lineHeight: '1.277', letterSpacing: '-0.01em' }],
'5xl': ['3rem', { lineHeight: '1', letterSpacing: '-0.01em' }],
'6xl': ['3.75rem', { lineHeight: '1', letterSpacing: '-0.01em' }],
'7xl': ['4.5rem', { lineHeight: '1', letterSpacing: '-0.01em' }],
},
letterSpacing: {
tighter: '-0.02em',
tight: '-0.01em',
normal: '0',
wide: '0.01em',
wider: '0.02em',
widest: '0.4em',
},
keyframes: {
overlayShow: {
from: { opacity: '0' },
to: { opacity: '1' },
},
contentShow: {
from: { opacity: '0', transform: 'translate(-50%, -48%) scale(0.96)' },
to: { opacity: '1', transform: 'translate(-50%, -50%) scale(1)' },
},
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: {
overlayShow: 'overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1)',
contentShow: 'contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1)',
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)',
},
},
},
} satisfies InlineTWConfig;
/**
* source: @nuxtjs/tailwindcss
* (Lib manages some aspects of config, so updated type)
*/
import type { Config as TWConfig } from 'tailwindcss';
type _Omit<T, K extends PropertyKey> = {
[P in keyof T as Exclude<P, K>]: T[P];
};
type InlineTWConfig = _Omit<TWConfig, 'content' | 'safelist'> & {
content?:
| Extract<TWConfig['content'], any[]>
| _Omit<Extract<TWConfig['content'], Record<string, any>>, 'extract' | 'transform'>;
safelist?: Exclude<NonNullable<TWConfig['safelist']>[number], Record<string, any>>[];
};