Originalgetreue Migration der HTML-Landingpage in eine React-SPA. Registrierungsformular mit Webhook-Integration und n8n-Response-Anzeige. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
export default {
|
|
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
primary: {
|
|
DEFAULT: '#6366f1',
|
|
dark: '#4f46e5',
|
|
light: '#818cf8',
|
|
},
|
|
secondary: '#0ea5e9',
|
|
accent: '#f59e0b',
|
|
success: '#10b981',
|
|
error: '#ef4444',
|
|
},
|
|
fontFamily: {
|
|
sans: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'],
|
|
},
|
|
backgroundImage: {
|
|
'gradient-primary': 'linear-gradient(135deg, #6366f1 0%, #0ea5e9 100%)',
|
|
'gradient-hero': 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
},
|
|
maxWidth: {
|
|
container: '1200px',
|
|
},
|
|
keyframes: {
|
|
typing: {
|
|
'0%, 60%, 100%': { transform: 'translateY(0)' },
|
|
'30%': { transform: 'translateY(-8px)' },
|
|
},
|
|
fadeInUp: {
|
|
from: { opacity: '0', transform: 'translateY(30px)' },
|
|
to: { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
spin: {
|
|
to: { transform: 'rotate(360deg)' },
|
|
},
|
|
},
|
|
animation: {
|
|
typing: 'typing 1.4s infinite ease-in-out',
|
|
'typing-2': 'typing 1.4s 0.2s infinite ease-in-out',
|
|
'typing-3': 'typing 1.4s 0.4s infinite ease-in-out',
|
|
'fade-in-up': 'fadeInUp 0.6s ease forwards',
|
|
'spin-slow': 'spin 0.8s linear infinite',
|
|
},
|
|
boxShadow: {
|
|
xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
}
|