/** * Tailwind CSS Configuration * Professional Resume Builder * * @author David Valera Melendez * @created 2025-08-07 * @location Made in Germany 🇩🇪 */ import type { Config } from 'tailwindcss'; const config: Config = { 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: { // David Valera Melendez Professional Brand Colors // Enhanced with resume-example.com design patterns primary: { 50: '#f0f9ff', 100: '#e0f2fe', 200: '#bae6fd', 300: '#7dd3fc', 400: '#38bdf8', 500: '#0ea5e9', 600: '#0284c7', 700: '#0369a1', 800: '#075985', 900: '#0c4a6e', 950: '#082f49', }, secondary: { 50: '#f8fafc', 100: '#f1f5f9', 200: '#e2e8f0', 300: '#cbd5e1', 400: '#94a3b8', 500: '#64748b', 600: '#475569', 700: '#334155', 800: '#1e293b', 900: '#0f172a', 950: '#020617', }, // Enhanced grayscale system inspired by resume-example.com grayscale: { 25: '#fcfcfd', 50: '#f9fafb', 100: '#f2f4f7', 200: '#eaecf0', 300: '#d0d5dd', 400: '#98a2b3', 500: '#667085', 600: '#475467', 700: '#344054', 800: '#182230', 900: '#101828', 950: '#0c111d', }, accent: { 50: '#fef7ff', 100: '#feeeff', 200: '#fcddff', 300: '#f9bbff', 400: '#f589ff', 500: '#ee56ff', 600: '#d633e7', 700: '#b322c3', 800: '#921b9f', 900: '#771a82', 950: '#50045a', }, // Enhanced semantic colors success: { 50: '#ecfdf5', 100: '#d1fae5', 200: '#a7f3d0', 300: '#6ee7b7', 400: '#34d399', 500: '#10b981', 600: '#059669', 700: '#047857', 800: '#065f46', 900: '#064e3b', }, warning: { 50: '#fffbeb', 100: '#fef3c7', 200: '#fde68a', 300: '#fcd34d', 400: '#fbbf24', 500: '#f59e0b', 600: '#d97706', 700: '#b45309', 800: '#92400e', 900: '#78350f', }, error: { 50: '#fef2f2', 100: '#fee2e2', 200: '#fecaca', 300: '#fca5a5', 400: '#f87171', 500: '#ef4444', 600: '#dc2626', 700: '#b91c1c', 800: '#991b1b', 900: '#7f1d1d', }, // Professional background colors background: { primary: '#ffffff', secondary: '#f8fafc', tertiary: '#f1f5f9', inverse: '#0f172a', }, // Text color system text: { primary: '#0f172a', secondary: '#334155', tertiary: '#64748b', quaternary: '#94a3b8', inverse: '#ffffff', link: '#0ea5e9', 'link-hover': '#0284c7', }, // Border color system border: { primary: '#e2e8f0', secondary: '#cbd5e1', tertiary: '#94a3b8', focus: '#0ea5e9', error: '#ef4444', success: '#10b981', }, }, fontFamily: { sans: [ 'Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'sans-serif', ], serif: ['Georgia', 'Times New Roman', 'serif'], mono: [ 'JetBrains Mono', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', 'monospace', ], display: ['Inter', 'system-ui', 'sans-serif'], }, fontSize: { '2xs': [ '0.625rem', { lineHeight: '0.875rem', letterSpacing: '0.025em' }, ], xs: ['0.75rem', { lineHeight: '1rem', letterSpacing: '0.025em' }], sm: ['0.875rem', { lineHeight: '1.25rem', letterSpacing: '0.0125em' }], base: ['1rem', { lineHeight: '1.5rem', letterSpacing: '0' }], lg: ['1.125rem', { lineHeight: '1.75rem', letterSpacing: '-0.0125em' }], xl: ['1.25rem', { lineHeight: '1.75rem', letterSpacing: '-0.025em' }], '2xl': ['1.5rem', { lineHeight: '2rem', letterSpacing: '-0.025em' }], '3xl': [ '1.875rem', { lineHeight: '2.25rem', letterSpacing: '-0.0375em' }, ], '4xl': ['2.25rem', { lineHeight: '2.5rem', letterSpacing: '-0.05em' }], '5xl': ['3rem', { lineHeight: '1', letterSpacing: '-0.05em' }], '6xl': ['3.75rem', { lineHeight: '1', letterSpacing: '-0.0625em' }], '7xl': ['4.5rem', { lineHeight: '1', letterSpacing: '-0.0625em' }], '8xl': ['6rem', { lineHeight: '1', letterSpacing: '-0.075em' }], '9xl': ['8rem', { lineHeight: '1', letterSpacing: '-0.075em' }], }, spacing: { '18': '4.5rem', '88': '22rem', '128': '32rem', '144': '36rem', '160': '40rem', '176': '44rem', '192': '48rem', }, animation: { 'fade-in': 'fadeIn 0.3s ease-in-out', 'fade-out': 'fadeOut 0.3s ease-in-out', 'slide-up': 'slideUp 0.3s ease-out', 'slide-down': 'slideDown 0.3s ease-out', 'slide-in-right': 'slideInRight 0.3s ease-out', 'slide-in-left': 'slideInLeft 0.3s ease-out', 'bounce-soft': 'bounceSoft 0.6s ease-in-out', 'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite', 'scale-in': 'scaleIn 0.2s ease-out', 'scale-out': 'scaleOut 0.2s ease-out', }, keyframes: { fadeIn: { '0%': { opacity: '0' }, '100%': { opacity: '1' }, }, fadeOut: { '0%': { opacity: '1' }, '100%': { opacity: '0' }, }, slideUp: { '0%': { transform: 'translateY(10px)', opacity: '0' }, '100%': { transform: 'translateY(0)', opacity: '1' }, }, slideDown: { '0%': { transform: 'translateY(-10px)', opacity: '0' }, '100%': { transform: 'translateY(0)', opacity: '1' }, }, slideInRight: { '0%': { transform: 'translateX(10px)', opacity: '0' }, '100%': { transform: 'translateX(0)', opacity: '1' }, }, slideInLeft: { '0%': { transform: 'translateX(-10px)', opacity: '0' }, '100%': { transform: 'translateX(0)', opacity: '1' }, }, bounceSoft: { '0%, 100%': { transform: 'scale(1)' }, '50%': { transform: 'scale(1.02)' }, }, scaleIn: { '0%': { transform: 'scale(0.95)', opacity: '0' }, '100%': { transform: 'scale(1)', opacity: '1' }, }, scaleOut: { '0%': { transform: 'scale(1)', opacity: '1' }, '100%': { transform: 'scale(0.95)', opacity: '0' }, }, }, boxShadow: { soft: '0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px 0 rgba(0, 0, 0, 0.06)', medium: '0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03)', large: '0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.03)', xl: '0 20px 25px -5px rgba(0, 0, 0, 0.05), 0 10px 10px -5px rgba(0, 0, 0, 0.02)', '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.15)', inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.03)', focus: '0 0 0 3px rgba(14, 165, 233, 0.1)', 'focus-error': '0 0 0 3px rgba(239, 68, 68, 0.1)', 'focus-success': '0 0 0 3px rgba(16, 185, 129, 0.1)', }, borderRadius: { '4xl': '2rem', '5xl': '2.5rem', '6xl': '3rem', }, backdropBlur: { xs: '2px', }, backgroundImage: { 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', }, zIndex: { '60': '60', '70': '70', '80': '80', '90': '90', '100': '100', }, }, }, plugins: [], }; export default config;