import tailwindAnimate from 'tailwindcss-animate'; import containerQuery from '@tailwindcss/container-queries'; import intersect from 'tailwindcss-intersect'; export default { darkMode: ['class'], content: [ './index.html', './pages/**/*.{ts,tsx}', './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './src/**/*.{ts,tsx}', './node_modules/streamdown/dist/**/*.js' ], safelist: ['border', 'border-border'], prefix: '', theme: { container: { center: true, padding: '2rem', screens: { '2xl': '1400px' } }, extend: { colors: { border: 'hsl(var(--border))', borderColor: { 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))' }, education: { blue: 'hsl(var(--education-blue))', green: 'hsl(var(--education-green))' }, success: 'hsl(var(--success))', warning: 'hsl(var(--warning))', info: 'hsl(var(--info))', sidebar: { DEFAULT: 'hsl(var(--sidebar-background))', background: '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))' }, chart: { '1': 'hsl(var(--chart-1))', '2': 'hsl(var(--chart-2))', '3': 'hsl(var(--chart-3))', '4': 'hsl(var(--chart-4))', '5': 'hsl(var(--chart-5))' } }, borderRadius: { lg: 'var(--radius)', md: 'calc(var(--radius) - 2px)', sm: 'calc(var(--radius) - 4px)' }, backgroundImage: { 'gradient-primary': 'var(--gradient-primary)', 'gradient-card': 'var(--gradient-card)', 'gradient-background': 'var(--gradient-background)' }, boxShadow: { card: 'var(--shadow-card)', hover: 'var(--shadow-hover)' }, 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' } }, 'fade-in': { from: { opacity: '0', transform: 'translateY(10px)' }, to: { opacity: '1', transform: 'translateY(0)' } }, 'slide-in': { from: { opacity: '0', transform: 'translateX(-20px)' }, to: { opacity: '1', transform: 'translateX(0)' } } }, animation: { 'accordion-down': 'accordion-down 0.2s ease-out', 'accordion-up': 'accordion-up 0.2s ease-out', 'fade-in': 'fade-in 0.5s ease-out', 'slide-in': 'slide-in 0.5s ease-out' } } }, plugins: [ tailwindAnimate, containerQuery, intersect, function ({addUtilities}) { addUtilities( { '.border-t-solid': {'border-top-style': 'solid'}, '.border-r-solid': {'border-right-style': 'solid'}, '.border-b-solid': {'border-bottom-style': 'solid'}, '.border-l-solid': {'border-left-style': 'solid'}, '.border-t-dashed': {'border-top-style': 'dashed'}, '.border-r-dashed': {'border-right-style': 'dashed'}, '.border-b-dashed': {'border-bottom-style': 'dashed'}, '.border-l-dashed': {'border-left-style': 'dashed'}, '.border-t-dotted': {'border-top-style': 'dotted'}, '.border-r-dotted': {'border-right-style': 'dotted'}, '.border-b-dotted': {'border-bottom-style': 'dotted'}, '.border-l-dotted': {'border-left-style': 'dotted'}, }, ['responsive'] ); }, ], };