import type { Config } from "tailwindcss"; export default { darkMode: ["class"], content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"], prefix: "", theme: { container: { center: true, padding: "2rem", screens: { "2xl": "1400px", }, }, extend: { fontFamily: { sans: ["Inter", "system-ui", "sans-serif"], heading: ["DM Sans", "system-ui", "sans-serif"], mono: ["JetBrains Mono", "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))", }, // Dark charcoal CTA (default Button color in the new visual // identity). Kept distinct from `primary` so the brand orange // remains available for accents / highlights / charts. cta: { DEFAULT: "hsl(var(--cta))", foreground: "hsl(var(--cta-foreground))", }, secondary: { DEFAULT: "hsl(var(--secondary))", foreground: "hsl(var(--secondary-foreground))", }, destructive: { DEFAULT: "hsl(var(--destructive))", foreground: "hsl(var(--destructive-foreground))", }, success: { DEFAULT: "hsl(var(--success))", foreground: "hsl(var(--success-foreground))", }, warning: { DEFAULT: "hsl(var(--warning))", foreground: "hsl(var(--warning-foreground))", }, info: { DEFAULT: "hsl(var(--info))", foreground: "hsl(var(--info-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))", }, }, borderRadius: { // `--radius` is now 1rem (16px) — matching the soft-card / pill // language of the new visual identity. The full ladder gives // shadcn primitives sensible scaled steps without needing // every component to opt in to a specific class. sm: "calc(var(--radius) - 8px)", md: "calc(var(--radius) - 4px)", lg: "var(--radius)", xl: "calc(var(--radius) + 4px)", "2xl": "calc(var(--radius) + 12px)", }, 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" }, }, }, animation: { "accordion-down": "accordion-down 0.2s ease-out", "accordion-up": "accordion-up 0.2s ease-out", }, }, }, plugins: [ require("tailwindcss-animate"), // Mirrors physical utilities (ml-*, mr-*, pl-*, pr-*, left-*, right-*, // text-left/right, border-l/r, rounded-l/r, space-x-*) under `dir="rtl"` // so the whole app flips visually when Arabic is selected, without // having to rewrite every component to use logical properties. require("tailwindcss-rtl"), ], } satisfies Config;