Files
5e3fc860-6dee-4968-83bd-1e5…/src/index.css

231 lines
4.9 KiB
CSS

@import "tailwindcss";
/* CSS 变量定义 */
:root {
/* 背景色 */
--sa-bg-primary: #0a0a0f;
--sa-bg-secondary: #12121a;
--sa-bg-tertiary: #1a1a25;
/* 强调色 */
--sa-accent-cyan: #00d4ff;
--sa-accent-sky: #0ea5e9;
--sa-accent-blue: #3b82f6;
/* 文字色 */
--sa-text-primary: #f0f0f5;
--sa-text-secondary: #a0a0b0;
--sa-text-muted: #606070;
/* 边框色 */
--sa-border-primary: rgba(255, 255, 255, 0.1);
--sa-border-glow: rgba(0, 212, 255, 0.3);
/* 玻璃效果 */
--sa-glass-bg: rgba(255, 255, 255, 0.03);
--sa-glass-border: rgba(255, 255, 255, 0.08);
}
/* 基础样式 */
html, body, #root {
margin: 0;
padding: 0;
min-height: 100vh;
background: var(--sa-bg-primary);
color: var(--sa-text-primary);
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
/* 网格背景图案 */
.grid-pattern {
background-image:
linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
background-size: 50px 50px;
}
/* 动态光晕 */
.glow-orb {
position: absolute;
border-radius: 50%;
filter: blur(100px);
pointer-events: none;
}
.glow-orb-1 {
width: 384px;
height: 384px;
background: var(--sa-accent-cyan);
opacity: 0.15;
top: -100px;
left: -100px;
filter: blur(120px);
animation: float-1 8s ease-in-out infinite;
}
.glow-orb-2 {
width: 320px;
height: 320px;
background: var(--sa-accent-sky);
opacity: 0.15;
bottom: -80px;
right: -80px;
filter: blur(100px);
animation: float-2 10s ease-in-out infinite;
}
.glow-orb-3 {
width: 600px;
height: 600px;
background: var(--sa-accent-blue);
opacity: 0.08;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
filter: blur(150px);
animation: pulse 6s ease-in-out infinite;
}
/* 光晕动画 */
@keyframes float-1 {
0%, 100% { transform: translate(0, 0); }
50% { transform: translate(30px, 20px); }
}
@keyframes float-2 {
0%, 100% { transform: translate(0, 0); }
50% { transform: translate(-20px, -30px); }
}
@keyframes pulse {
0%, 100% { opacity: 0.08; transform: translate(-50%, -50%) scale(1); }
50% { opacity: 0.12; transform: translate(-50%, -50%) scale(1.1); }
}
/* 数据流动效果 */
.data-stream {
position: absolute;
width: 100%;
height: 100%;
overflow: hidden;
pointer-events: none;
}
.data-stream::before,
.data-stream::after {
content: '';
position: absolute;
width: 2px;
height: 100px;
background: linear-gradient(180deg, transparent, var(--sa-accent-cyan), transparent);
opacity: 0.3;
animation: stream 4s linear infinite;
}
.data-stream::before {
left: 20%;
animation-delay: 0s;
}
.data-stream::after {
left: 80%;
animation-delay: 2s;
}
@keyframes stream {
0% { top: -100px; opacity: 0; }
10% { opacity: 0.3; }
90% { opacity: 0.3; }
100% { top: 100%; opacity: 0; }
}
/* 玻璃拟态卡片 */
.glass-card {
background: var(--sa-glass-bg);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid var(--sa-glass-border);
border-radius: 16px;
box-shadow:
0 4px 30px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.glass-card:hover {
border-color: var(--sa-border-glow);
box-shadow:
0 4px 30px rgba(0, 0, 0, 0.3),
0 0 30px rgba(0, 212, 255, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
/* Logo 图片亮化效果 - 将深色logo转为亮色 */
.logo-invert {
filter: brightness(0) invert(1);
opacity: 0.9;
transition: all 0.3s ease;
}
.logo-invert:hover {
opacity: 1;
filter: brightness(0) invert(1) drop-shadow(0 0 20px rgba(0, 212, 255, 0.6));
}
/* 发光按钮 */
.glow-button {
background: linear-gradient(135deg, var(--sa-accent-cyan), var(--sa-accent-blue));
color: white;
border: none;
padding: 12px 32px;
border-radius: 8px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.glow-button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s ease;
}
.glow-button:hover::before {
left: 100%;
}
.glow-button:hover {
box-shadow: 0 0 30px rgba(0, 212, 255, 0.5);
transform: translateY(-2px);
}
/* 文字渐变 */
.text-gradient {
background: linear-gradient(135deg, var(--sa-accent-cyan), var(--sa-accent-sky), var(--sa-accent-blue));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
/* 扫描线效果 */
.scanline {
position: absolute;
width: 100%;
height: 2px;
background: linear-gradient(90deg, transparent, var(--sa-accent-cyan), transparent);
opacity: 0.5;
animation: scan 3s linear infinite;
}
@keyframes scan {
0% { top: 0; opacity: 0; }
50% { opacity: 0.5; }
100% { top: 100%; opacity: 0; }
}