import type { Config } from 'tailwindcss'; import defaultTheme from 'tailwindcss/defaultTheme'; const config: Config = { darkMode: 'class', content: [ './src/pages/**/*.{js,ts,jsx,tsx,mdx}', './src/components/**/*.{js,ts,jsx,tsx,mdx}', './src/app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: { screens: { 'mobile-landscape': { raw: '(orientation: landscape) and (max-height: 700px)', }, }, fontFamily: { primary: ['Inter', ...defaultTheme.fontFamily.sans], }, colors: { primary: { 50: 'rgb(var(--color-primary-50) / )', 100: 'rgb(var(--color-primary-100) / )', 200: 'rgb(var(--color-primary-200) / )', 300: 'rgb(var(--color-primary-300) / )', 400: 'rgb(var(--color-primary-400) / )', 500: 'rgb(var(--color-primary-500) / )', 600: 'rgb(var(--color-primary-600) / )', 700: 'rgb(var(--color-primary-700) / )', 800: 'rgb(var(--color-primary-800) / )', 900: 'rgb(var(--color-primary-900) / )', }, dark: 'rgb(var(--color-dark) / )', // 主题颜色系统 'theme-bg': 'rgb(var(--color-theme-bg) / )', 'theme-surface': 'rgb(var(--color-theme-surface) / )', 'theme-accent': 'rgb(var(--color-theme-accent) / )', 'theme-text': 'rgb(var(--color-theme-text) / )', 'theme-text-secondary': 'rgb(var(--color-theme-text-secondary) / )', 'theme-border': 'rgb(var(--color-theme-border) / )', // 扩展主题颜色 'theme-success': 'rgb(var(--color-theme-success) / )', 'theme-warning': 'rgb(var(--color-theme-warning) / )', 'theme-error': 'rgb(var(--color-theme-error) / )', 'theme-info': 'rgb(var(--color-theme-info) / )', }, keyframes: { flicker: { '0%, 19.999%, 22%, 62.999%, 64%, 64.999%, 70%, 100%': { opacity: '0.99', filter: 'drop-shadow(0 0 1px rgba(252, 211, 77)) drop-shadow(0 0 15px rgba(245, 158, 11)) drop-shadow(0 0 1px rgba(252, 211, 77))', }, '20%, 21.999%, 63%, 63.999%, 65%, 69.999%': { opacity: '0.4', filter: 'none', }, }, shimmer: { '0%': { backgroundPosition: '-700px 0', }, '100%': { backgroundPosition: '700px 0', }, }, fadeIn: { '0%': { opacity: '0' }, '100%': { opacity: '1' }, }, slideUp: { '0%': { transform: 'translateY(10px)', opacity: '0' }, '100%': { transform: 'translateY(0)', opacity: '1' }, }, slideDown: { '0%': { transform: 'translateY(-10px)', opacity: '0' }, '100%': { transform: 'translateY(0)', opacity: '1' }, }, slideInFromRight: { '0%': { transform: 'translateX(100%)', opacity: '0' }, '100%': { transform: 'translateX(0)', opacity: '1' }, }, }, animation: { flicker: 'flicker 3s linear infinite', shimmer: 'shimmer 1.3s linear infinite', 'fade-in': 'fadeIn 0.3s ease-in-out', 'slide-up': 'slideUp 0.3s ease-in-out', 'slide-down': 'slideDown 0.3s ease-in-out', 'slide-in-from-right': 'slideInFromRight 0.3s ease-out', }, backgroundImage: { 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', }, }, }, plugins: [require('@tailwindcss/forms')], } satisfies Config; export default config;