/** @type {import('tailwindcss').Config} */ export default { darkMode: 'class', content: [ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}", ], theme: { extend: { fontFamily: { sans: ['"Inter"', '"Noto Sans SC"', 'sans-serif'], serif: ['"Playfair Display"', 'serif'], mono: ['"JetBrains Mono"', 'monospace'], }, colors: { art: { bg: 'rgb(var(--art-bg) / )', surface: 'rgb(var(--art-surface) / )', border: 'var(--art-border)', text: 'rgb(var(--art-text) / )', muted: 'rgb(var(--art-muted) / )', accent: 'rgb(var(--art-accent) / )', error: 'rgb(var(--art-error) / )', 'admin-bg': 'rgb(var(--art-admin-bg) / )', 'admin-card': 'rgb(var(--art-admin-card) / )', 'admin-hover': 'rgb(var(--art-admin-hover) / )', } }, backgroundImage: { 'noise': "url('data:image/svg+xml,%3Csvg viewBox=%220 0 200 200%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cfilter id=%22noiseFilter%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.65%22 numOctaves=%223%22 stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23noiseFilter)%22 opacity=%220.07%22/%3E%3C/svg%3E')", }, animation: { 'float': 'float 8s ease-in-out infinite', 'slide-down': 'slideDown 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards', 'reveal': 'reveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards', 'spotlight': 'spotlight 2s ease .75s 1 forwards', 'marquee': 'marquee 25s linear infinite', 'marquee-reverse': 'marqueeReverse 30s linear infinite', 'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite', 'shake': 'shake 0.5s cubic-bezier(.36,.07,.19,.97) both', }, keyframes: { float: { '0%, 100%': { transform: 'translateY(0)' }, '50%': { transform: 'translateY(-20px)' }, }, slideDown: { '0%': { transform: 'translateY(-100%)' }, '100%': { transform: 'translateY(0)' }, }, reveal: { '0%': { opacity: '0', transform: 'translateY(50px)' }, '100%': { opacity: '1', transform: 'translateY(0)' }, }, spotlight: { '0%': { opacity: 0, transform: 'translate(-50%, -50%) scale(0.5)' }, '100%': { opacity: 1, transform: 'translate(-50%, -50%) scale(1)' } }, marquee: { '0%': { transform: 'translateX(0%)' }, '100%': { transform: 'translateX(-100%)' } }, marqueeReverse: { '0%': { transform: 'translateX(-50%)' }, '100%': { transform: 'translateX(0%)' } }, shake: { '10%, 90%': { transform: 'translate3d(-1px, 0, 0)' }, '20%, 80%': { transform: 'translate3d(2px, 0, 0)' }, '30%, 50%, 70%': { transform: 'translate3d(-4px, 0, 0)' }, '40%, 60%': { transform: 'translate3d(4px, 0, 0)' } } } }, }, plugins: [], }