@import "tailwindcss";
|
|
:root {
|
/* 现代科技感主题配色 */
|
--ai-primary: #1E2B63; /* 深蓝色 - 主要背景色 */
|
--ai-secondary: #6ADBFF; /* 天蓝色 - 点缀色调 */
|
--ai-accent: #5E72EB; /* 紫蓝色 - 强调色调 */
|
--ai-highlight: #FF9190; /* 粉红色 - 高亮色调 */
|
--ai-surface: #F7F9FF; /* 淡蓝白色 - 提供清晰视觉空间 */
|
--ai-dark: #0A1033; /* 深蓝色 - 暗色调 */
|
--ai-contrast: #FF6A88; /* 粉红色 - 用于行动点强调 */
|
|
/* 基础颜色设置 */
|
--background: var(--ai-surface);
|
--foreground: #1E2B63;
|
--foreground-rgb: 255, 255, 255;
|
--background-start-rgb: 10, 16, 51;
|
--background-end-rgb: 0, 0, 0;
|
--scrollbar-track: rgba(30, 43, 99, 0.1);
|
--scrollbar-thumb: rgba(106, 219, 255, 0.3);
|
}
|
|
@theme inline {
|
--color-background: var(--background);
|
--color-foreground: var(--foreground);
|
--font-sans: var(--font-geist-sans);
|
--font-mono: var(--font-geist-mono);
|
}
|
|
@media (prefers-color-scheme: dark) {
|
:root {
|
--background: var(--ai-dark);
|
--foreground: #E9EFFD;
|
--foreground-rgb: 255, 255, 255;
|
--background-start-rgb: 0, 0, 0;
|
--background-end-rgb: 0, 0, 0;
|
}
|
}
|
|
body {
|
background: linear-gradient(to bottom,
|
rgb(var(--background-start-rgb)),
|
rgb(var(--background-end-rgb)));
|
color: rgb(var(--foreground-rgb));
|
font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
|
min-height: 100vh;
|
}
|
|
/* 滚动性能优化 */
|
* {
|
-webkit-font-smoothing: antialiased;
|
-moz-osx-font-smoothing: grayscale;
|
}
|
|
html, body {
|
scroll-behavior: smooth;
|
}
|
|
/* 启用硬件加速 */
|
.will-change-transform,
|
.motion-safe\:will-change-transform,
|
.motion-safe\:hover\:will-change-transform:hover,
|
canvas {
|
will-change: transform, opacity;
|
transform: translateZ(0);
|
backface-visibility: hidden;
|
}
|
|
/* 优化滚动条 */
|
::-webkit-scrollbar {
|
width: 10px;
|
}
|
|
::-webkit-scrollbar-track {
|
background: var(--scrollbar-track);
|
}
|
|
::-webkit-scrollbar-thumb {
|
background: var(--scrollbar-thumb);
|
border-radius: 5px;
|
}
|
|
::-webkit-scrollbar-thumb:hover {
|
background: rgba(106, 219, 255, 0.5);
|
}
|
|
/* 滚动优化类 */
|
.smooth-scroll {
|
overflow-y: scroll;
|
scroll-behavior: smooth;
|
-webkit-overflow-scrolling: touch;
|
}
|
|
/* 防止过度重排和重绘 */
|
.motion-reduce {
|
transition-duration: 0.01ms !important;
|
animation-duration: 0.01ms !important;
|
animation-iteration-count: 1 !important;
|
}
|
|
/* 导航栏特效样式 */
|
.hover\:shadow-glow:hover {
|
box-shadow: 0 0 15px rgba(106, 219, 255, 0.5);
|
}
|
|
/* 平滑渐入动画 */
|
@keyframes fade-in {
|
0% {
|
opacity: 0;
|
}
|
100% {
|
opacity: 1;
|
}
|
}
|
|
.animate-fade-in {
|
animation: fade-in 1.5s ease-out forwards;
|
animation-delay: 0.5s;
|
}
|
|
/* 页面内容淡入动画 */
|
@keyframes fadeIn {
|
from {
|
opacity: 0;
|
}
|
to {
|
opacity: 1;
|
}
|
}
|
|
.animate-fadeIn {
|
animation: fadeIn 0.6s ease-out;
|
}
|
|
/* Logo圆环脉冲动画 */
|
@keyframes logo-ring-pulse {
|
0% {
|
opacity: 0.4;
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
20% {
|
opacity: 0.7;
|
box-shadow: 0 0 10px rgba(106, 219, 255, 0.3);
|
}
|
40% {
|
opacity: 0.4;
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
100% {
|
opacity: 0.4;
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
}
|
|
.animate-logo-pulse {
|
animation: logo-ring-pulse 5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
}
|
|
/* 导航栏粒子动画 */
|
@keyframes particle-float {
|
0% {
|
transform: translateY(0) translateX(0);
|
opacity: 0;
|
}
|
20% {
|
opacity: 0.4;
|
}
|
80% {
|
opacity: 0.4;
|
}
|
100% {
|
transform: translateY(-30px) translateX(20px);
|
opacity: 0;
|
}
|
}
|
|
.animate-particle {
|
animation: particle-float 8s ease-in-out infinite;
|
}
|
|
.animate-particle-delay-1 {
|
animation: particle-float 8s ease-in-out 1s infinite;
|
}
|
|
.animate-particle-delay-2 {
|
animation: particle-float 10s ease-in-out 2s infinite;
|
}
|
|
.animate-particle-delay-3 {
|
animation: particle-float 7s ease-in-out 3s infinite;
|
}
|
|
.animate-particle-delay-4 {
|
animation: particle-float 9s ease-in-out 4s infinite;
|
}
|
|
/* AI神经网络连接动画 */
|
@keyframes neural-pulse {
|
0% {
|
opacity: 0.2;
|
}
|
50% {
|
opacity: 0.8;
|
}
|
100% {
|
opacity: 0.2;
|
}
|
}
|
|
.animate-neural-pulse {
|
animation: neural-pulse 3s ease-in-out infinite;
|
}
|
|
.animate-neural-pulse-delay-1 {
|
animation: neural-pulse 4s cubic-bezier(0.45, 0.05, 0.55, 0.95) 1s infinite;
|
}
|
|
.animate-neural-pulse-delay-2 {
|
animation: neural-pulse-delay-2 3s ease-in-out infinite;
|
animation-delay: 1.5s;
|
}
|
|
/* AI数据处理光线效果 */
|
@keyframes data-scan {
|
0% {
|
transform: translateX(-100%);
|
}
|
100% {
|
transform: translateX(100%);
|
}
|
}
|
|
.animate-data-scan {
|
animation: data-scan 12s linear infinite;
|
}
|
|
.animate-data-scan-delay {
|
animation: data-scan 8s cubic-bezier(0.25, 0.1, 0.25, 1) 4s infinite;
|
}
|
|
/* AI运算节点闪烁 */
|
@keyframes compute-node {
|
0% {
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
50% {
|
box-shadow: 0 0 15px rgba(106, 219, 255, 0.4);
|
}
|
100% {
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
}
|
|
.animate-compute-node {
|
animation: compute-node 4s ease-in-out infinite;
|
}
|
|
.animate-compute-node-delay-1 {
|
animation: compute-node 3s ease-in-out 1s infinite;
|
}
|
|
.animate-compute-node-delay-2 {
|
animation: compute-node 3s ease-in-out 2s infinite;
|
}
|
|
/* 量子计算波动效果 */
|
@keyframes quantum-wave {
|
0% {
|
transform: translateX(0);
|
}
|
100% {
|
transform: translateX(-50px);
|
}
|
}
|
|
.animate-quantum-wave {
|
animation: quantum-wave 10s linear infinite;
|
}
|
|
/* 动态网格线动画 */
|
@keyframes grid-pulse {
|
0%, 100% {
|
opacity: 0.05;
|
transform: scaleY(1);
|
}
|
50% {
|
opacity: 0.15;
|
transform: scaleY(1.05);
|
}
|
}
|
|
.animate-grid-pulse {
|
animation: grid-pulse 4s ease-in-out infinite;
|
}
|
|
/* 数据闪烁动画 */
|
@keyframes data-blink {
|
0%, 100% {
|
opacity: 0;
|
}
|
50% {
|
opacity: 0.9;
|
}
|
}
|
|
.animate-data-blink {
|
animation: data-blink 3s ease-in-out infinite;
|
}
|
|
.animate-data-blink-slow {
|
animation: data-blink-slow 5s ease-in-out infinite;
|
}
|
|
/* AI数据流效果动画 */
|
@keyframes dataflowY {
|
from {
|
transform: translateY(-100%);
|
}
|
to {
|
transform: translateY(100%);
|
}
|
}
|
|
@keyframes dataflowX {
|
from {
|
transform: translateX(-100%);
|
}
|
to {
|
transform: translateX(100%);
|
}
|
}
|
|
.animate-dataflowY {
|
animation: dataflowY 3s linear infinite;
|
}
|
|
.animate-dataflowX {
|
animation: dataflowX 5s linear infinite;
|
}
|
|
/* 按钮倾斜动画 */
|
@keyframes tilt {
|
0%, 100% {
|
transform: rotate(0deg);
|
}
|
25% {
|
transform: rotate(1deg);
|
}
|
75% {
|
transform: rotate(-1deg);
|
}
|
}
|
|
.animate-tilt {
|
animation: tilt 10s ease-in-out infinite;
|
}
|
|
/* AI元素扫描线动画 */
|
@keyframes scanline {
|
0% {
|
transform: translateY(-100%);
|
}
|
100% {
|
transform: translateY(100%);
|
}
|
}
|
|
.animate-scanline {
|
animation: scanline 3s ease-in-out infinite;
|
}
|
|
/* 基础渐变动画 */
|
@keyframes gradient-flow {
|
0% {
|
background-position: 0% 50%;
|
}
|
50% {
|
background-position: 100% 50%;
|
}
|
100% {
|
background-position: 0% 50%;
|
}
|
}
|
|
.bg-gradient-animate {
|
background-size: 200% 200%;
|
animation: gradient-flow 8s ease infinite;
|
}
|
|
/* 新增高光效果 */
|
@keyframes shimmer {
|
0% {
|
opacity: 0.5;
|
transform: translateX(-100%);
|
}
|
100% {
|
opacity: 0;
|
transform: translateX(100%);
|
}
|
}
|
|
.shimmer-effect::after {
|
content: '';
|
position: absolute;
|
top: 0;
|
right: 0;
|
bottom: 0;
|
left: 0;
|
background: linear-gradient(
|
to right,
|
rgba(255, 255, 255, 0) 0%,
|
rgba(255, 255, 255, 0.3) 50%,
|
rgba(255, 255, 255, 0) 100%
|
);
|
animation: shimmer 2s infinite;
|
}
|
|
/* 导航栏动态效果动画 */
|
@keyframes logo-ring-pulse {
|
0% {
|
opacity: 0.4;
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
20% {
|
opacity: 0.7;
|
box-shadow: 0 0 10px rgba(106, 219, 255, 0.3);
|
}
|
40% {
|
opacity: 0.4;
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
100% {
|
opacity: 0.4;
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
}
|
|
@keyframes neural-pulse {
|
0% {
|
opacity: 0.2;
|
}
|
50% {
|
opacity: 0.8;
|
}
|
100% {
|
opacity: 0.2;
|
}
|
}
|
|
@keyframes neural-pulse-delay-2 {
|
0% {
|
opacity: 0.2;
|
}
|
50% {
|
opacity: 0.8;
|
}
|
100% {
|
opacity: 0.2;
|
}
|
}
|
|
@keyframes compute-node {
|
0% {
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
50% {
|
box-shadow: 0 0 15px rgba(106, 219, 255, 0.4);
|
}
|
100% {
|
box-shadow: 0 0 0 rgba(106, 219, 255, 0);
|
}
|
}
|
|
@keyframes quantum-wave {
|
0% {
|
transform: translateX(0);
|
}
|
100% {
|
transform: translateX(-50px);
|
}
|
}
|
|
@keyframes data-scan {
|
0% {
|
transform: translateX(-100%);
|
}
|
100% {
|
transform: translateX(100%);
|
}
|
}
|
|
/* 新增科技感动画效果 */
|
@keyframes data-blink {
|
0%, 100% {
|
opacity: 0;
|
}
|
50% {
|
opacity: 0.9;
|
}
|
}
|
|
@keyframes data-blink-slow {
|
0%, 100% {
|
opacity: 0;
|
}
|
50% {
|
opacity: 0.7;
|
}
|
}
|
|
@keyframes dataflowY {
|
from {
|
transform: translateY(-100%);
|
}
|
to {
|
transform: translateY(100%);
|
}
|
}
|
|
@keyframes scanline {
|
0% {
|
transform: translateY(-100%);
|
}
|
100% {
|
transform: translateY(100%);
|
}
|
}
|
|
/* 动画类应用 */
|
.animate-logo-pulse {
|
animation: logo-ring-pulse 5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
}
|
|
.animate-neural-pulse {
|
animation: neural-pulse 3s ease-in-out infinite;
|
}
|
|
.animate-neural-pulse-delay-2 {
|
animation: neural-pulse-delay-2 3s ease-in-out infinite;
|
animation-delay: 1.5s;
|
}
|
|
.animate-compute-node {
|
animation: compute-node 4s ease-in-out infinite;
|
}
|
|
.animate-quantum-wave {
|
animation: quantum-wave 10s linear infinite;
|
}
|
|
.animate-data-scan {
|
animation: data-scan 12s linear infinite;
|
}
|
|
.animate-data-blink {
|
animation: data-blink 2s ease-in-out infinite;
|
}
|
|
.animate-data-blink-slow {
|
animation: data-blink-slow 5s ease-in-out infinite;
|
}
|
|
.animate-dataflowY {
|
animation: dataflowY 3s linear infinite;
|
}
|
|
.animate-scanline {
|
animation: scanline 3s ease-in-out infinite;
|
}
|
|
.animate-fade-in {
|
animation: fade-in 1.5s ease-out forwards;
|
animation-delay: 0.5s;
|
}
|
|
/* 悬停效果增强 */
|
.navbar-hover-glow:hover {
|
box-shadow: 0 5px 20px rgba(106, 219, 255, 0.3);
|
}
|
|
/* 标红框圆圈的单一简化动画效果 */
|
@keyframes circle-pulse {
|
0%, 100% {
|
opacity: 0.2;
|
border-color: rgba(106, 219, 255, 0.4);
|
}
|
50% {
|
opacity: 0.8;
|
border-color: rgba(106, 219, 255, 0.8);
|
}
|
}
|
|
.animate-circle-pulse {
|
animation: circle-pulse 4s ease-in-out infinite;
|
}
|
|
/* 光扫描效果动画 */
|
@keyframes lightSweep {
|
0% {
|
transform: translateX(-100%) skewX(-45deg);
|
opacity: 0;
|
}
|
20% {
|
opacity: 0.3;
|
}
|
60% {
|
opacity: 0.3;
|
}
|
100% {
|
transform: translateX(100%) skewX(-45deg);
|
opacity: 0;
|
}
|
}
|
|
/* 技术圆圈效果动画 */
|
@keyframes tech-circle-pulse {
|
0% {
|
opacity: 0.3;
|
border-color: rgba(106, 219, 255, 0.2);
|
}
|
50% {
|
opacity: 0.6;
|
border-color: rgba(106, 219, 255, 0.3);
|
}
|
100% {
|
opacity: 0.3;
|
border-color: rgba(106, 219, 255, 0.2);
|
}
|
}
|
|
@keyframes tech-circle-rotate {
|
0% {
|
transform: rotate(0deg);
|
background: rgba(19, 28, 65, 0.3);
|
}
|
50% {
|
background: rgba(30, 43, 99, 0.3);
|
}
|
100% {
|
transform: rotate(360deg);
|
background: rgba(19, 28, 65, 0.3);
|
}
|
}
|
|
@keyframes tech-center-blink {
|
0% {
|
opacity: 0.2;
|
transform: scale(0.8);
|
}
|
50% {
|
opacity: 0.5;
|
transform: scale(1);
|
}
|
100% {
|
opacity: 0.2;
|
transform: scale(0.8);
|
}
|
}
|
|
@keyframes tech-glow-pulse {
|
0% {
|
opacity: 0.05;
|
box-shadow: 0 0 5px 0px rgba(106, 219, 255, 0.05);
|
}
|
50% {
|
opacity: 0.15;
|
box-shadow: 0 0 15px 5px rgba(106, 219, 255, 0.15);
|
}
|
100% {
|
opacity: 0.05;
|
box-shadow: 0 0 5px 0px rgba(106, 219, 255, 0.05);
|
}
|
}
|
|
.animate-tech-circle-pulse {
|
animation: tech-circle-pulse 8s infinite ease-in-out;
|
}
|
|
.animate-tech-circle-rotate {
|
animation: tech-circle-rotate 30s infinite linear;
|
}
|
|
.animate-tech-center-blink {
|
animation: tech-center-blink 5s infinite ease-in-out;
|
}
|
|
.animate-tech-glow-pulse {
|
animation: tech-glow-pulse 8s infinite ease-in-out;
|
}
|
|
/* 高亮划过效果 - 用于登录页面按钮 */
|
@keyframes shimmer {
|
0% {
|
transform: translateX(-100%);
|
}
|
100% {
|
transform: translateX(100%);
|
}
|
}
|
|
.animate-shimmer {
|
animation: shimmer 2s infinite;
|
}
|
|
/* 登录页面特殊动画 */
|
@keyframes float {
|
0%, 100% {
|
transform: translateY(0);
|
}
|
50% {
|
transform: translateY(-10px);
|
}
|
}
|
|
.animate-float {
|
animation: float 6s ease-in-out infinite;
|
}
|
|
@keyframes tech-connect {
|
0%, 100% {
|
opacity: 0.2;
|
transform: scaleX(0.7);
|
}
|
50% {
|
opacity: 0.8;
|
transform: scaleX(1);
|
}
|
}
|
|
.animate-tech-connect {
|
animation: tech-connect 8s ease-in-out infinite;
|
}
|
|
/* 输入框聚焦动画 */
|
@keyframes focus-border {
|
0% {
|
transform: scaleX(0);
|
}
|
100% {
|
transform: scaleX(1);
|
}
|
}
|
|
.animate-focus-border {
|
animation: focus-border 0.3s ease-out forwards;
|
}
|
|
/* 量子光线效果动画 - 登录按钮专用 */
|
@keyframes quantum-scan {
|
0% {
|
transform: translateX(-100%) skewX(-30deg);
|
opacity: 0;
|
}
|
20% {
|
opacity: 0.5;
|
}
|
50% {
|
opacity: 0.7;
|
}
|
80% {
|
opacity: 0.5;
|
}
|
100% {
|
transform: translateX(100%) skewX(-30deg);
|
opacity: 0;
|
}
|
}
|
|
@keyframes quantum-glow {
|
0%, 100% {
|
box-shadow: 0 0 5px 2px rgba(106, 219, 255, 0.1);
|
}
|
50% {
|
box-shadow: 0 0 15px 5px rgba(106, 219, 255, 0.3);
|
}
|
}
|
|
@keyframes quantum-pulse {
|
0%, 100% {
|
transform: scale(1);
|
}
|
50% {
|
transform: scale(1.02);
|
}
|
}
|
|
.quantum-button:hover .quantum-scan-line {
|
animation: quantum-scan 3s ease-in-out infinite;
|
}
|
|
.quantum-button:hover {
|
animation: quantum-glow 4s ease-in-out infinite;
|
}
|
|
.quantum-button:hover .quantum-pulse {
|
animation: quantum-pulse 2s ease-in-out infinite;
|
}
|
|
/* 主页闪光按钮效果 */
|
@keyframes shine {
|
100% {
|
left: 125%;
|
}
|
}
|
|
.animate-shine {
|
animation: shine 1.5s ease-in-out;
|
}
|
|
/* 页面渐入效果优化 */
|
@keyframes fadeIn {
|
from { opacity: 0; transform: translateY(10px); }
|
to { opacity: 1; transform: translateY(0); }
|
}
|
|
@keyframes pageTransition {
|
0% { opacity: 0; transform: translateY(10px); }
|
100% { opacity: 1; transform: translateY(0); }
|
}
|
|
/* 添加全局过渡效果 */
|
.page-transition-enter {
|
opacity: 0;
|
transform: translateY(10px);
|
}
|
|
.page-transition-enter-active {
|
opacity: 1;
|
transform: translateY(0);
|
transition: opacity 300ms, transform 300ms;
|
}
|
|
/* 优化全局动画性能 */
|
.animate-fadeIn {
|
animation: fadeIn 300ms cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
|
will-change: opacity, transform;
|
backface-visibility: hidden;
|
}
|
|
/* 使用GPU加速改善性能 */
|
.gpu-accelerated {
|
transform: translateZ(0);
|
backface-visibility: hidden;
|
perspective: 1000;
|
will-change: transform, opacity;
|
}
|