@tailwind base; @tailwind components; @tailwind utilities; /* 全局样式 */ html { scroll-behavior: smooth; } body { font-family: 'Inter', 'Noto Sans SC', system-ui, sans-serif; @apply text-gray-800 bg-white; } /* 语言切换过渡效果 */ body[i18n-in-progress] h1, body[i18n-in-progress] h2, body[i18n-in-progress] h3, body[i18n-in-progress] p, body[i18n-in-progress] .text-transition { opacity: 0; transition: opacity 0.3s ease; } /* 为特定内容设置最小高度,防止布局抖动 */ section h1, .text-4xl, .text-5xl, .text-6xl { min-height: 1.2em; } section p, .text-xl, .text-2xl { min-height: 1.5em; } /* 若项目使用暗色模式,则添加以下样式 */ @media (prefers-color-scheme: dark) { body { @apply bg-gray-900 text-gray-100; } } :root { --primary-color: #1E40AF; --secondary-color: #F97316; --accent-color: #059669; --text-color: #1F2937; --light-gray: #F8FAFC; --white: #FFFFFF; } @layer components { .container { @apply max-w-7xl mx-auto px-6 lg:px-8; } .section { @apply py-16; } /* 按钮样式现代化 - 修复焦点环颜色 */ .btn-primary { @apply inline-flex items-center justify-center bg-primary text-white px-6 py-3 rounded-lg shadow-md hover:bg-blue-700 focus:ring-2 focus:ring-blue-200 focus:outline-none transition-all duration-300 font-medium; } .btn-secondary { @apply inline-flex items-center justify-center bg-secondary text-white px-6 py-3 rounded-lg shadow-md hover:bg-orange-600 focus:ring-2 focus:ring-orange-200 focus:outline-none transition-all duration-300 font-medium; } .btn-outline { @apply inline-flex items-center justify-center border border-primary text-primary bg-transparent px-6 py-3 rounded-lg hover:bg-primary hover:text-white transition-all duration-300 font-medium; } /* 卡片样式 */ .card { @apply bg-white rounded-xl shadow-md p-6 transition-all duration-300; } .card-hover { @apply transition-all duration-300 hover:-translate-y-1 hover:shadow-lg; } /* 科技感元素 */ .tech-gradient { @apply bg-gradient-tech; } .glass-effect { @apply bg-white/70 backdrop-blur-md; } } /* 页面加载动画 */ .page-loader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: white; display: flex; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s; } .loader-spinner { width: 50px; height: 50px; border: 4px solid #E5E7EB; border-top: 4px solid #1E40AF; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* 导航栏样式 */ .nav-scrolled { @apply bg-white/90 backdrop-blur-md shadow-md border-b border-gray-200; } /* 导航栏科技感渐变背景 */ .bg-gradient-tech { background: linear-gradient(120deg, #1E40AF, #2563EB); } /* 页脚科技感渐变背景 */ .bg-gradient-footer { background: linear-gradient(to bottom right, #1E40AF, #1E3A8A); } /* 导航栏社交媒体图标弹出框样式 */ .social-icon-popup { opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease; transform: translateY(-10px); z-index: 100; } .group:hover .social-icon-popup { opacity: 1; visibility: visible; transform: translateY(0); } /* 二维码弹出框动画 */ .qr-popup-enter-active, .qr-popup-leave-active { transition: opacity 0.3s, transform 0.3s; } .qr-popup-enter-from, .qr-popup-leave-to { opacity: 0; transform: translateY(-10px); } /* 科技感发光效果 */ .glow-effect { position: relative; overflow: hidden; } .glow-effect::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 60%); opacity: 0; transition: opacity 0.3s; pointer-events: none; } .glow-effect:hover::after { opacity: 1; } /* 特殊交互效果 */ .hover-float { transition: transform 0.3s ease; } .hover-float:hover { transform: translateY(-5px); } /* 悬浮联系菜单样式 */ .floating-contact-wrapper { z-index: 999; } /* 二维码弹出样式 */ .floating-contact-popup-left { position: absolute; top: 50%; right: 60px; transform: translateY(-50%) translateX(10px); background-color: white; border-radius: 8px; padding: 10px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 100; } .qr-code-container { width: 160px; height: 160px; display: flex; align-items: center; justify-content: center; } .qr-code-image { max-width: 100%; height: auto; } .group:hover .floating-contact-popup-left { opacity: 1; visibility: visible; transform: translateY(-50%) translateX(0); } /* 防止固定悬浮菜单在移动设备上遮挡内容 */ @media (max-width: 767px) { .floating-contact-wrapper { z-index: 39; } /* 避免与底部导航栏冲突 */ body.has-bottom-nav .floating-contact-wrapper { bottom: 80px; } .floating-contact-popup-left { display: none; } } /* 响应式调整 */ @media (max-width: 767px) { .nav-social-icons { display: none; } } @layer utilities { .hover\:bg-primary-dark:hover { background-color: #1a365d; /* 或使用 CSS 变量 */ background-color: var(--color-primary-dark); } }