const heropatterns = require("tailwindcss-hero-patterns/src/patterns"); const plugin = require("tailwindcss/plugin"); /** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", "./src/components/**/*.{js,ts,jsx,tsx,mdx}", "./src/app/**/*.{js,ts,jsx,tsx,mdx}", ], darkMode: "class", theme: { container: { center: true, padding: "2rem", screens: { "2xl": "1400px", }, }, heroPatterns: { wiggle: heropatterns.wiggle, }, heroPatternsShades: ["100", "800"], heroPatternsColors: ["indigo", "zinc"], extend: { backgroundImage: { "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", }, boxShadow: { conical: "inset 0 0 10px var(--gradient)", }, 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))", }, 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))", }, }, 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 }, }, "hand-wave": { "0%, 100%": { transform: "rotate(0deg)" }, "20%, 60%": { transform: "rotate(25deg)" }, "40%, 80%": { transform: "rotate(0deg)" }, }, enterFromRight: { from: { opacity: 0, transform: "translateX(200px)" }, to: { opacity: 1, transform: "translateX(0)" }, }, enterFromLeft: { from: { opacity: 0, transform: "translateX(-200px)" }, to: { opacity: 1, transform: "translateX(0)" }, }, exitToRight: { from: { opacity: 1, transform: "translateX(0)" }, to: { opacity: 0, transform: "translateX(200px)" }, }, exitToLeft: { from: { opacity: 1, transform: "translateX(0)" }, to: { opacity: 0, transform: "translateX(-200px)" }, }, scaleIn: { from: { opacity: 0, transform: "rotateX(-10deg) scale(0.9)" }, to: { opacity: 1, transform: "rotateX(0deg) scale(1)" }, }, scaleOut: { from: { opacity: 1, transform: "rotateX(0deg) scale(1)" }, to: { opacity: 0, transform: "rotateX(-10deg) scale(0.95)" }, }, fadeIn: { from: { opacity: 0 }, to: { opacity: 1 }, }, fadeOut: { from: { opacity: 1 }, to: { opacity: 0 }, }, slideDownAndFade: { from: { opacity: 0, transform: "translateY(-2px)" }, to: { opacity: 1, transform: "translateY(0)" }, }, slideLeftAndFade: { from: { opacity: 0, transform: "translateX(2px)" }, to: { opacity: 1, transform: "translateX(0)" }, }, slideUpAndFade: { from: { opacity: 0, transform: "translateY(2px)" }, to: { opacity: 1, transform: "translateY(0)" }, }, slideRightAndFade: { from: { opacity: 0, transform: "translateX(-2px)" }, to: { opacity: 1, transform: "translateX(0)" }, }, }, animation: { "accordion-down": "accordion-down 0.2s ease-out", "accordion-up": "accordion-up 0.2s ease-out", "hand-wave": "hand-wave 1.5s ease-in-out infinite", scaleIn: "scaleIn 200ms ease", scaleOut: "scaleOut 200ms ease", fadeIn: "fadeIn 200ms ease", fadeOut: "fadeOut 200ms ease", enterFromLeft: "enterFromLeft 250ms ease", enterFromRight: "enterFromRight 250ms ease", exitToLeft: "exitToLeft 250ms ease", exitToRight: "exitToRight 250ms ease", slideDownAndFade: "slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", slideLeftAndFade: "slideLeftAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", slideUpAndFade: "slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", slideRightAndFade: "slideRightAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", }, }, }, plugins: [ require("tailwindcss-hero-patterns"), require("tailwindcss-animate"), require("@tailwindcss/typography"), plugin(({ matchUtilities }) => { matchUtilities({ perspective: (value) => ({ perspective: value, }), }); }), ], };