/** @type {import('tailwindcss').Config} */ export default { content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx}", ], darkMode: 'class', theme: { // Mobile-first breakpoints screens: { 'xs': '375px', 'sm': '640px', 'md': '768px', 'lg': '1024px', 'xl': '1280px', '2xl': '1536px', }, container: { center: true, padding: { DEFAULT: '1rem', sm: '1.5rem', md: '2rem', lg: '3rem', }, screens: { "2xl": "1400px", }, }, extend: { // Linear-inspired color palette (Charcoal & Bone) colors: { // Neutral scale (primary palette) neutral: { 50: '#FAFAFA', 100: '#F5F5F5', 200: '#E5E5E5', 300: '#D4D4D4', 400: '#A3A3A3', 500: '#737373', 600: '#525252', 700: '#404040', 800: '#262626', 850: '#1F1F1F', 900: '#171717', 950: '#0A0A0A', }, // Accent (Linear's desaturated blue-purple) accent: { DEFAULT: '#5E6AD2', hover: '#6E7AE2', muted: 'rgba(94, 106, 210, 0.15)', foreground: '#FFFFFF', }, // Semantic colors success: { DEFAULT: '#22C55E', muted: 'rgba(34, 197, 94, 0.15)', foreground: '#FFFFFF', }, warning: { DEFAULT: '#EAB308', muted: 'rgba(234, 179, 8, 0.15)', foreground: '#171717', }, destructive: { DEFAULT: '#EF4444', muted: 'rgba(239, 68, 68, 0.15)', foreground: '#FFFFFF', }, // Legacy support (mapped to variables) border: "var(--color-border-default)", input: "var(--color-border-default)", ring: "var(--color-primary)", background: "var(--color-bg-primary)", foreground: "var(--color-text-primary)", primary: { DEFAULT: "var(--color-primary)", foreground: "var(--color-text-inverse)", }, secondary: { DEFAULT: "var(--color-bg-tertiary)", foreground: "var(--color-text-secondary)", }, muted: { DEFAULT: "var(--color-bg-secondary)", foreground: "var(--color-text-tertiary)", }, popover: { DEFAULT: "var(--color-bg-elevated)", foreground: "var(--color-text-primary)", }, card: { DEFAULT: "var(--color-bg-elevated)", foreground: "var(--color-text-primary)", }, }, borderRadius: { 'xs': '4px', 'sm': '6px', 'md': '8px', 'lg': '12px', 'xl': '16px', }, // Touch-friendly spacing spacing: { 'touch': '44px', 'touch-lg': '56px', }, // Linear-inspired typography fontFamily: { sans: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'], display: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], // Switched back to Inter per user request mono: ['JetBrains Mono', 'Fira Code', 'Consolas', 'monospace'], }, fontSize: { 'xs': ['11px', { lineHeight: '1.4', letterSpacing: '0.01em' }], 'sm': ['13px', { lineHeight: '1.5', letterSpacing: '-0.01em' }], 'base': ['14px', { lineHeight: '1.6', letterSpacing: '-0.01em' }], 'lg': ['16px', { lineHeight: '1.5', letterSpacing: '-0.02em', fontWeight: '500' }], 'xl': ['18px', { lineHeight: '1.4', letterSpacing: '-0.02em', fontWeight: '600' }], '2xl': ['24px', { lineHeight: '1.3', letterSpacing: '-0.02em', fontWeight: '600' }], '3xl': ['30px', { lineHeight: '1.2', letterSpacing: '-0.02em', fontWeight: '700' }], '4xl': ['36px', { lineHeight: '1.1', letterSpacing: '-0.02em', fontWeight: '700' }], }, // Animation timing (Linear-style) transitionTimingFunction: { 'out-expo': 'cubic-bezier(0.16, 1, 0.3, 1)', 'in-out-expo': 'cubic-bezier(0.87, 0, 0.13, 1)', 'spring': 'cubic-bezier(0.34, 1.56, 0.64, 1)', }, transitionDuration: { 'instant': '50ms', 'fast': '100ms', 'normal': '150ms', 'slow': '250ms', 'slower': '400ms', }, // Keyframe animations keyframes: { 'fade-in': { '0%': { opacity: '0' }, '100%': { opacity: '1' }, }, 'fade-out': { '0%': { opacity: '1' }, '100%': { opacity: '0' }, }, 'slide-up': { '0%': { opacity: '0', transform: 'translateY(8px)' }, '100%': { opacity: '1', transform: 'translateY(0)' }, }, 'slide-down': { '0%': { opacity: '0', transform: 'translateY(-8px)' }, '100%': { opacity: '1', transform: 'translateY(0)' }, }, 'scale-in': { '0%': { opacity: '0', transform: 'scale(0.95)' }, '100%': { opacity: '1', transform: 'scale(1)' }, }, 'scale-out': { '0%': { opacity: '1', transform: 'scale(1)' }, '100%': { opacity: '0', transform: 'scale(0.95)' }, }, 'shimmer': { '0%': { backgroundPosition: '-200% 0' }, '100%': { backgroundPosition: '200% 0' }, }, 'pulse-subtle': { '0%, 100%': { opacity: '1' }, '50%': { opacity: '0.7' }, }, 'spin-slow': { '0%': { transform: 'rotate(0deg)' }, '100%': { transform: 'rotate(360deg)' }, }, }, animation: { 'fade-in': 'fade-in 150ms ease-out', 'fade-out': 'fade-out 150ms ease-out', 'slide-up': 'slide-up 200ms cubic-bezier(0.16, 1, 0.3, 1)', 'slide-down': 'slide-down 200ms cubic-bezier(0.16, 1, 0.3, 1)', 'scale-in': 'scale-in 150ms cubic-bezier(0.16, 1, 0.3, 1)', 'scale-out': 'scale-out 150ms cubic-bezier(0.16, 1, 0.3, 1)', 'shimmer': 'shimmer 2s linear infinite', 'pulse-subtle': 'pulse-subtle 2s ease-in-out infinite', 'spin-slow': 'spin-slow 3s linear infinite', }, // Box shadows (subtle, Linear-style) boxShadow: { 'xs': '0 1px 2px 0 rgb(0 0 0 / 0.05)', 'sm': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)', '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)', 'focus': '0 0 0 3px rgba(94, 106, 210, 0.25)', 'focus-destructive': '0 0 0 3px rgba(239, 68, 68, 0.25)', }, }, }, plugins: [], }