import type { Config } from "tailwindcss"; import animate from "tailwindcss-animate"; const config: Config = { darkMode: ["class"], content: ["./index.html", "./src/**/*.{ts,tsx}"], theme: { container: { center: true, padding: "1.5rem", screens: { "2xl": "1440px", }, }, extend: { fontFamily: { sans: [ "InterVariable", "Inter", "ui-sans-serif", "system-ui", "-apple-system", "Segoe UI", "Roboto", "sans-serif", ], mono: ["JetBrains Mono", "ui-monospace", "SFMono-Regular", "monospace"], }, colors: { border: "hsl(var(--border))", input: "hsl(var(--input))", ring: "hsl(var(--ring))", background: "hsl(var(--background))", foreground: "hsl(var(--foreground))", primary: { DEFAULT: "hsl(var(--primary))", foreground: "hsl(var(--primary-foreground))", 50: "hsl(var(--primary-50))", 100: "hsl(var(--primary-100))", 200: "hsl(var(--primary-200))", 500: "hsl(var(--primary-500))", 600: "hsl(var(--primary-600))", 700: "hsl(var(--primary-700))", }, secondary: { DEFAULT: "hsl(var(--secondary))", foreground: "hsl(var(--secondary-foreground))", }, destructive: { DEFAULT: "hsl(var(--destructive))", foreground: "hsl(var(--destructive-foreground))", }, warning: { DEFAULT: "hsl(var(--warning))", foreground: "hsl(var(--warning-foreground))", }, success: { DEFAULT: "hsl(var(--success))", foreground: "hsl(var(--success-foreground))", }, muted: { DEFAULT: "hsl(var(--muted))", foreground: "hsl(var(--muted-foreground))", }, accent: { DEFAULT: "hsl(var(--accent))", foreground: "hsl(var(--accent-foreground))", }, popover: { DEFAULT: "hsl(var(--popover))", foreground: "hsl(var(--popover-foreground))", }, card: { DEFAULT: "hsl(var(--card))", foreground: "hsl(var(--card-foreground))", }, surface: { DEFAULT: "hsl(var(--surface))", raised: "hsl(var(--surface-raised))", sunken: "hsl(var(--surface-sunken))", }, }, borderRadius: { lg: "var(--radius)", md: "calc(var(--radius) - 4px)", sm: "calc(var(--radius) - 8px)", xl: "calc(var(--radius) + 4px)", "2xl": "calc(var(--radius) + 10px)", }, boxShadow: { soft: "0 1px 2px rgba(15,23,42,0.04), 0 4px 16px rgba(15,23,42,0.04)", glass: "0 1px 0 rgba(255,255,255,0.6) inset, 0 8px 32px rgba(15,23,42,0.06)", ring: "0 0 0 4px hsl(var(--primary) / 0.18)", elevated: "0 12px 40px -12px rgba(15,23,42,0.18)", }, backgroundImage: { "grid-light": "linear-gradient(to right, hsl(var(--border)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--border)) 1px, transparent 1px)", "radial-fade": "radial-gradient(60% 40% at 30% 20%, hsl(var(--primary) / 0.10), transparent 70%)", }, keyframes: { "accordion-down": { from: { height: "0" }, to: { height: "var(--radix-accordion-content-height)" }, }, "accordion-up": { from: { height: "var(--radix-accordion-content-height)" }, to: { height: "0" }, }, shimmer: { "0%": { backgroundPosition: "-200% 0" }, "100%": { backgroundPosition: "200% 0" }, }, "fade-in-up": { "0%": { opacity: "0", transform: "translateY(6px)" }, "100%": { opacity: "1", transform: "translateY(0)" }, }, }, animation: { "accordion-down": "accordion-down 0.2s ease-out", "accordion-up": "accordion-up 0.2s ease-out", shimmer: "shimmer 1.6s linear infinite", "fade-in-up": "fade-in-up 0.3s ease-out", }, }, }, plugins: [animate], }; export default config;