Files
张翔 8840c4398a feat: downgrade tech stack to stable versions and integrate GA4 error monitoring
- Downgrade Next.js 16→14.2, React 19→18.3, Tailwind 4→3.4
- Add comprehensive GA4 error monitoring system
- Create Jenkins CI/CD pipeline with quality gates
- Fix build issues: ESLint, SWC conflict, config format
- Add documentation for deployment and error tracking
2026-05-12 12:45:18 +08:00

112 lines
2.7 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
fontFamily: {
sans: [
'var(--font-noto-sans-sc)',
'var(--font-geist-sans)',
'-apple-system',
'BlinkMacSystemFont',
'"Segoe UI"',
'Roboto',
'"Helvetica Neue"',
'Arial',
'sans-serif',
],
mono: ['var(--font-geist-mono)', 'monospace'],
chinese: ['var(--font-noto-sans-sc)', 'sans-serif'],
calligraphy: [
'var(--font-ma-shan-zheng)',
"'ZCOOL XiaoWei'",
"'STKaiti'",
"'KaiTi'",
'serif',
],
},
colors: {
primary: {
DEFAULT: '#1C1C1C',
hover: '#0A0A0A',
light: '#3D3D3D',
lighter: '#F5F5F5',
rgb: '28, 28, 28',
},
brand: {
primary: '#C41E3A',
hover: '#A01830',
light: '#E04A68',
'primary-bg': '#FEF2F4',
},
bg: {
primary: '#FFFFFF',
secondary: '#FFFBF5',
tertiary: '#F5F5F5',
section: '#FAFAFA',
hover: '#EFEFEF',
},
text: {
primary: '#1C1C1C',
secondary: '#3D3D3D',
tertiary: '#404040',
muted: '#595959',
subtle: '#A3A3A3',
placeholder: '#5C5C5C',
hint: '#8C8C8C',
},
border: {
primary: '#E5E5E5',
secondary: '#D4D4D4',
accent: '#1C1C1C',
light: '#F0F0F0',
dark: '#333333',
},
link: {
DEFAULT: '#1C1C1C',
hover: '#C41E3A',
},
success: {
DEFAULT: '#16A34A',
hover: '#15803D',
bg: '#F0DF4',
},
warning: {
DEFAULT: '#D97706',
hover: '#B45309',
bg: '#FFFBEB',
},
},
spacing: {
'18': '4.5rem',
'88': '22rem',
'128': '32rem',
},
borderRadius: {
'4xl': '2rem',
'5xl': '2.5rem',
},
animation: {
'fade-in': 'fadeIn 0.5s ease-in-out',
'slide-up': 'slideUp 0.5s ease-out',
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { transform: 'translateY(10px)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
},
},
},
plugins: [],
};