import type { Config } from "tailwindcss"; import animate from "tailwindcss-animate"; export default { darkMode: ["class"], content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"], prefix: "", theme: { fontFamily: { sans: ["Geist Sans", "system-ui", "-apple-system", "sans-serif"], }, container: { center: true, padding: "2rem", screens: { "2xl": "1400px", }, }, extend: { colors: { // Public landing page palette (see .landing-dark / .landing-light in index.css). land: { bg: "hsl(var(--l-bg) / )", fg: "hsl(var(--l-fg) / )", muted: "hsl(var(--l-muted) / )", line: "hsl(var(--l-line) / )", card: "hsl(var(--l-card) / )", card2: "hsl(var(--l-card2) / )", accent: "hsl(var(--l-accent) / )", "accent-fg": "hsl(var(--l-accent-fg) / )", invert: "hsl(var(--l-invert) / )", "invert-fg": "hsl(var(--l-invert-fg) / )", paper: "hsl(var(--l-paper) / )", ink: "hsl(var(--l-ink) / )", "ink-muted": "hsl(var(--l-ink-muted) / )", }, 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))", }, secondary: { DEFAULT: "hsl(var(--secondary))", foreground: "hsl(var(--secondary-foreground))", }, destructive: { DEFAULT: "hsl(var(--destructive))", foreground: "hsl(var(--destructive-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))", }, sidebar: { DEFAULT: "hsl(var(--sidebar-background))", foreground: "hsl(var(--sidebar-foreground))", primary: "hsl(var(--sidebar-primary))", "primary-foreground": "hsl(var(--sidebar-primary-foreground))", accent: "hsl(var(--sidebar-accent))", "accent-foreground": "hsl(var(--sidebar-accent-foreground))", border: "hsl(var(--sidebar-border))", ring: "hsl(var(--sidebar-ring))", }, series: { income: "hsl(var(--series-income))", expense: "hsl(var(--series-expense))", magnitude: "hsl(var(--series-magnitude))", }, chart: { green: "hsl(var(--chart-green))", red: "hsl(var(--chart-red))", blue: "hsl(var(--chart-blue))", purple: "hsl(var(--chart-purple))", orange: "hsl(var(--chart-orange))", yellow: "hsl(var(--chart-yellow))", }, }, borderRadius: { lg: "var(--radius)", md: "calc(var(--radius) - 2px)", sm: "calc(var(--radius) - 4px)", }, 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" }, }, "slide-up": { from: { opacity: "0", transform: "translateY(100%)" }, to: { opacity: "1", transform: "translateY(0)" }, }, "slide-down-out": { from: { opacity: "1", transform: "translateY(0)" }, to: { opacity: "0", transform: "translateY(100%)" }, }, "fade-in": { from: { opacity: "0", transform: "translateY(8px)" }, to: { opacity: "1", transform: "translateY(0)" }, }, "scale-in": { from: { opacity: "0", transform: "scale(0.95)" }, to: { opacity: "1", transform: "scale(1)" }, }, "collapsible-down": { from: { height: "0" }, to: { height: "var(--radix-collapsible-content-height)" }, }, "collapsible-up": { from: { height: "var(--radix-collapsible-content-height)" }, to: { height: "0" }, }, }, animation: { "accordion-down": "accordion-down 0.2s ease-out", "accordion-up": "accordion-up 0.2s ease-out", "collapsible-down": "collapsible-down 0.2s ease-out", "collapsible-up": "collapsible-up 0.2s ease-out", "slide-up": "slide-up 0.3s cubic-bezier(0.16, 1, 0.3, 1)", "slide-down-out": "slide-down-out 0.2s ease-in forwards", "fade-in": "fade-in 0.3s ease-out both", "scale-in": "scale-in 0.2s ease-out both", }, }, }, plugins: [animate], } satisfies Config;