Changes: - Removed hardcoded admin credentials (now requires env vars) - Added Redis session storage with in-memory fallback - Improved CORS configuration with warnings for development mode - Added retry_with_backoff decorator for translation API calls - Updated pricing: Starter=, Pro=, Business= - Stripe price IDs now loaded from environment variables - Added redis to requirements.txt - Updated .env.example with all new configuration options - Created COMPREHENSIVE_REVIEW_AND_PLAN.md with deployment roadmap - Frontend: Updated pricing page, new UI components
134 lines
3.9 KiB
JavaScript
134 lines
3.9 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: {
|
|
// Enhanced Dark Theme Colors
|
|
background: '#0a0a0a',
|
|
surface: '#141414',
|
|
'surface-elevated': '#1a1a1a',
|
|
'surface-hover': '#1f1f1f',
|
|
foreground: '#fafafa',
|
|
'text-primary': '#fafafa',
|
|
'text-secondary': '#a1a1aa',
|
|
'text-tertiary': '#71717a',
|
|
'text-inverse': '#0a0a0a',
|
|
'text-muted': '#71717a',
|
|
|
|
card: '#141414',
|
|
'card-foreground': '#fafafa',
|
|
popover: '#141414',
|
|
'popover-foreground': '#fafafa',
|
|
|
|
primary: '#3b82f6',
|
|
'primary-hover': '#2563eb',
|
|
'primary-light': '#60a5fa',
|
|
'primary-foreground': '#ffffff',
|
|
|
|
accent: '#8b5cf6',
|
|
'accent-hover': '#7c3aed',
|
|
'accent-foreground': '#ffffff',
|
|
|
|
secondary: '#272727',
|
|
'secondary-foreground': '#fafafa',
|
|
|
|
muted: '#1f1f1f',
|
|
'muted-foreground': '#71717a',
|
|
|
|
border: '#272727',
|
|
'border-subtle': '#1f1f1f',
|
|
'border-strong': '#2f2f2f',
|
|
input: '#272727',
|
|
|
|
destructive: '#ef4444',
|
|
'destructive-foreground': '#ffffff',
|
|
success: '#10b981',
|
|
'success-foreground': '#ffffff',
|
|
warning: '#f59e0b',
|
|
'warning-foreground': '#000000',
|
|
|
|
ring: '#3b82f6',
|
|
'ring-offset': '#0a0a0a',
|
|
|
|
sidebar: '#0f0f0f',
|
|
'sidebar-foreground': '#fafafa',
|
|
'sidebar-primary': '#3b82f6',
|
|
'sidebar-primary-foreground': '#ffffff',
|
|
'sidebar-accent': '#272727',
|
|
'sidebar-accent-foreground': '#fafafa',
|
|
'sidebar-border': '#1f1f1f',
|
|
'sidebar-ring': '#3b82f6',
|
|
},
|
|
fontFamily: {
|
|
sans: ['Inter', 'system-ui', '-apple-system', 'sans-serif'],
|
|
mono: ['JetBrains Mono', 'SF Mono', 'Monaco', 'Cascadia Code', 'monospace'],
|
|
},
|
|
fontSize: {
|
|
xs: '0.75rem', // 12px
|
|
sm: '0.875rem', // 14px
|
|
base: '1rem', // 16px
|
|
lg: '1.125rem', // 18px
|
|
xl: '1.25rem', // 20px
|
|
'2xl': '1.5rem', // 24px
|
|
'3xl': '1.875rem', // 30px
|
|
'4xl': '2.25rem', // 36px
|
|
'5xl': '3rem', // 48px
|
|
'6xl': '3.75rem', // 60px
|
|
},
|
|
lineHeight: {
|
|
tight: '1.25',
|
|
normal: '1.5',
|
|
relaxed: '1.625',
|
|
},
|
|
spacing: {
|
|
xs: '0.25rem', // 4px
|
|
sm: '0.5rem', // 8px
|
|
md: '0.75rem', // 12px
|
|
lg: '1rem', // 16px
|
|
xl: '1.5rem', // 24px
|
|
'2xl': '2rem', // 32px
|
|
'3xl': '3rem', // 48px
|
|
'4xl': '4rem', // 64px
|
|
},
|
|
borderRadius: {
|
|
sm: 'calc(var(--radius) - 4px)',
|
|
md: 'calc(var(--radius) - 2px)',
|
|
lg: 'var(--radius)',
|
|
xl: 'calc(var(--radius) + 4px)',
|
|
},
|
|
boxShadow: {
|
|
sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
|
|
md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
|
|
lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
|
|
xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
|
|
glow: '0 0 20px rgb(59 130 246 / 0.15)',
|
|
},
|
|
animationDuration: {
|
|
fast: '150ms',
|
|
normal: '200ms',
|
|
slow: '300ms',
|
|
slower: '500ms',
|
|
},
|
|
animationTimingFunction: {
|
|
easeOut: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
|
|
easeIn: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
|
|
easeInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',
|
|
},
|
|
screens: {
|
|
xs: '640px',
|
|
sm: '768px',
|
|
md: '1024px',
|
|
lg: '1280px',
|
|
xl: '1440px',
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
require('@tailwindcss/postcss'),
|
|
],
|
|
} |