import type { Config } from 'tailwindcss'; import Animate from 'tailwindcss-animate'; const config = { darkMode: ['class'], content: [ './pages/**/*.{ts,tsx}', './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', '../../packages/shadcn/src/components/**/*.{ts,tsx}', '../../packages/ui/src/**/*.{ts,tsx}', ], theme: { container: { center: true, padding: { 'DEFAULT': '1rem', 'sm': '2rem', 'lg': '4rem', 'xl': '5rem', '2xl': '6rem', }, screens: { 'sm': '640px', 'md': '768px', 'lg': '1024px', 'xl': '1280px', '2xl': '1536px', }, }, extend: { 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))', }, '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))', }, 'color-1': 'hsl(var(--color-1))', 'color-2': 'hsl(var(--color-2))', 'color-3': 'hsl(var(--color-3))', 'color-4': 'hsl(var(--color-4))', 'color-5': 'hsl(var(--color-5))', }, 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', }, }, 'background-position-spin': { '0%': { backgroundPosition: 'top center', }, '100%': { backgroundPosition: 'bottom center', }, }, 'meteor': { '0%': { transform: 'rotate(215deg) translateX(0)', opacity: '1', }, '70%': { opacity: '1', }, '100%': { transform: 'rotate(215deg) translateX(-500px)', opacity: '0', }, }, 'marquee': { from: { transform: 'translateX(0)', }, to: { transform: 'translateX(calc(-100% - var(--gap)))', }, }, 'marquee-vertical': { from: { transform: 'translateY(0)', }, to: { transform: 'translateY(calc(-100% - var(--gap)))', }, }, 'shimmer-slide': { to: { transform: 'translate(calc(100cqw - 100%), 0)', }, }, 'spin-around': { '0%': { transform: 'translateZ(0) rotate(0)', }, '15%, 35%': { transform: 'translateZ(0) rotate(90deg)', }, '65%, 85%': { transform: 'translateZ(0) rotate(270deg)', }, '100%': { transform: 'translateZ(0) rotate(360deg)', }, }, 'ripple': { '0%, 100%': { transform: 'translate(-50%, -50%) scale(1)', }, '50%': { transform: 'translate(-50%, -50%) scale(0.9)', }, }, 'grid': { '0%': { transform: 'translateY(-50%)', }, '100%': { transform: 'translateY(0)', }, }, 'shiny-text': { '0%, 90%, 100%': { 'background-position': 'calc(-100% - var(--shiny-width)) 0', }, '30%, 60%': { 'background-position': 'calc(100% + var(--shiny-width)) 0', }, }, 'border-beam': { '100%': { 'offset-distance': '100%', }, }, 'gradient': { to: { backgroundPosition: 'var(--bg-size) 0', }, }, 'orbit': { '0%': { transform: 'rotate(0deg) translateY(calc(var(--radius) * 1px)) rotate(0deg)', }, '100%': { transform: 'rotate(360deg) translateY(calc(var(--radius) * 1px)) rotate(-360deg)', }, }, 'shine': { '0%': { 'background-position': '0% 0%', }, '50%': { 'background-position': '100% 100%', }, 'to': { 'background-position': '0% 0%', }, }, 'pulse': { '0%, 100%': { boxShadow: '0 0 0 0 var(--pulse-color)', }, '50%': { boxShadow: '0 0 0 8px var(--pulse-color)', }, }, 'rainbow': { '0%': { 'background-position': '0%', }, '100%': { 'background-position': '200%', }, }, }, animation: { 'accordion-down': 'accordion-down 0.2s ease-out', 'accordion-up': 'accordion-up 0.2s ease-out', 'background-position-spin': 'background-position-spin 3000ms infinite alternate', 'meteor': 'meteor 5s linear infinite', 'marquee': 'marquee var(--duration) infinite linear', 'marquee-vertical': 'marquee-vertical var(--duration) linear infinite', 'shimmer-slide': 'shimmer-slide var(--speed) ease-in-out infinite alternate', 'spin-around': 'spin-around calc(var(--speed) * 2) infinite linear', 'ripple': 'ripple var(--duration,2s) ease calc(var(--i, 0)*.2s) infinite', 'grid': 'grid 15s linear infinite', 'shiny-text': 'shiny-text 8s infinite', 'border-beam': 'border-beam calc(var(--duration)*1s) infinite linear', 'gradient': 'gradient 8s linear infinite', 'orbit': 'orbit calc(var(--duration)*1s) linear infinite', 'shine': 'shine var(--duration) infinite linear', 'pulse': 'pulse var(--duration) ease-out infinite', 'rainbow': 'rainbow var(--speed, 2s) infinite linear', }, }, }, plugins: [Animate], } satisfies Config; export default config;