2026-01-15 13:51:44 +08:00
|
|
|
/** @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: '#050505',
|
|
|
|
|
surface: '#121214',
|
|
|
|
|
border: 'rgba(255,255,255,0.08)',
|
|
|
|
|
text: '#ececec',
|
|
|
|
|
muted: '#888888',
|
|
|
|
|
accent: '#d4b383',
|
2026-01-16 11:06:59 +08:00
|
|
|
error: '#ef4444',
|
|
|
|
|
'admin-bg': '#0a0a0a',
|
|
|
|
|
'admin-card': '#121214',
|
|
|
|
|
'admin-hover': '#1a1a1c',
|
2026-01-15 13:51:44 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
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: [],
|
|
|
|
|
}
|