112 lines
3.3 KiB
JavaScript
112 lines
3.3 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
],
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
brand: {
|
|
50: '#eff6ff',
|
|
100: '#dbeafe',
|
|
200: '#bfdbfe',
|
|
300: '#93c5fd',
|
|
400: '#60a5fa',
|
|
500: '#3b82f6',
|
|
600: '#2563eb',
|
|
700: '#1d4ed8',
|
|
800: '#1e40af',
|
|
900: '#1e3a8a',
|
|
950: '#172554',
|
|
DEFAULT: '#3b82f6',
|
|
},
|
|
surface: {
|
|
0: '#ffffff',
|
|
50: '#f8fafc',
|
|
100: '#f1f5f9',
|
|
200: '#e2e8f0',
|
|
300: '#cbd5e1',
|
|
},
|
|
ink: {
|
|
DEFAULT: '#0f172a',
|
|
muted: '#64748b',
|
|
subtle: '#94a3b8',
|
|
inverse: '#f8fafc',
|
|
},
|
|
success: {
|
|
50: '#f0fdf4',
|
|
500: '#22c55e',
|
|
600: '#16a34a',
|
|
700: '#15803d',
|
|
},
|
|
warning: {
|
|
50: '#fffbeb',
|
|
500: '#f59e0b',
|
|
600: '#d97706',
|
|
},
|
|
danger: {
|
|
50: '#fef2f2',
|
|
500: '#ef4444',
|
|
600: '#dc2626',
|
|
700: '#b91c1c',
|
|
},
|
|
},
|
|
fontFamily: {
|
|
sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],
|
|
mono: ['JetBrains Mono', 'ui-monospace', 'monospace'],
|
|
},
|
|
fontSize: {
|
|
'2xs': ['0.625rem', { lineHeight: '0.875rem' }],
|
|
},
|
|
borderRadius: {
|
|
'4xl': '2rem',
|
|
},
|
|
boxShadow: {
|
|
'soft-sm': '0 1px 2px 0 rgb(15 23 42 / 0.06)',
|
|
'soft': '0 1px 3px 0 rgb(15 23 42 / 0.08), 0 1px 2px -1px rgb(15 23 42 / 0.08)',
|
|
'soft-md': '0 4px 6px -1px rgb(15 23 42 / 0.07), 0 2px 4px -2px rgb(15 23 42 / 0.07)',
|
|
'soft-lg': '0 10px 15px -3px rgb(15 23 42 / 0.07), 0 4px 6px -4px rgb(15 23 42 / 0.07)',
|
|
'soft-xl': '0 20px 25px -5px rgb(15 23 42 / 0.07), 0 8px 10px -6px rgb(15 23 42 / 0.07)',
|
|
'glow': '0 0 0 3px rgb(59 130 246 / 0.15)',
|
|
'glow-brand': '0 0 0 3px rgb(59 130 246 / 0.25)',
|
|
},
|
|
animation: {
|
|
'fade-in': 'fadeIn 0.2s ease-out',
|
|
'slide-up': 'slideUp 0.25s ease-out',
|
|
'slide-down': 'slideDown 0.25s ease-out',
|
|
'scale-in': 'scaleIn 0.15s ease-out',
|
|
'spin-slow': 'spin 2s linear infinite',
|
|
'pulse-soft': 'pulseSoft 2s ease-in-out infinite',
|
|
},
|
|
keyframes: {
|
|
fadeIn: {
|
|
'0%': { opacity: '0' },
|
|
'100%': { opacity: '1' },
|
|
},
|
|
slideUp: {
|
|
'0%': { opacity: '0', transform: 'translateY(8px)' },
|
|
'100%': { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
slideDown: {
|
|
'0%': { opacity: '0', transform: 'translateY(-8px)' },
|
|
'100%': { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
scaleIn: {
|
|
'0%': { opacity: '0', transform: 'scale(0.95)' },
|
|
'100%': { opacity: '1', transform: 'scale(1)' },
|
|
},
|
|
pulseSoft: {
|
|
'0%, 100%': { opacity: '1' },
|
|
'50%': { opacity: '0.6' },
|
|
},
|
|
},
|
|
transitionTimingFunction: {
|
|
'spring': 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
}
|