/** * AutoGLM - Industrial Cyber Console Theme * 工业赛博控制台核心样式 */ @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;900&family=JetBrains+Mono:wght@300;400;500;600&display=swap'); /* ==================== 核心变量 ==================== */ :root { /* 主色调 - 霓虹绿 */ --cyber-green: #00ff9f; --cyber-green-dim: rgba(0, 255, 159, 0.15); --cyber-green-glow: rgba(0, 255, 159, 0.5); /* 状态色 */ --cyber-amber: #ffb800; --cyber-amber-dim: rgba(255, 184, 0, 0.15); --cyber-red: #ff4757; --cyber-red-dim: rgba(255, 71, 87, 0.15); --cyber-blue: #00d4ff; --cyber-blue-dim: rgba(0, 212, 255, 0.15); /* 背景色 */ --cyber-bg-primary: #0a0e27; --cyber-bg-secondary: #131829; --cyber-bg-tertiary: #1a2040; --cyber-bg-elevated: #222b4a; /* 文字色 */ --cyber-text-primary: #e8eaed; --cyber-text-secondary: #9aa0b8; --cyber-text-muted: #5a6382; /* 边框和分隔 */ --cyber-border: #2a3455; --cyber-border-bright: #3a4a7a; /* 阴影和发光 */ --cyber-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); --cyber-glow-green: 0 0 20px rgba(0, 255, 159, 0.3); --cyber-glow-blue: 0 0 20px rgba(0, 212, 255, 0.3); --cyber-glow-red: 0 0 20px rgba(255, 71, 87, 0.3); /* 字体 */ --cyber-font-display: 'Orbitron', sans-serif; --cyber-font-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace; /* 间距 */ --cyber-space-xs: 0.25rem; --cyber-space-sm: 0.5rem; --cyber-space-md: 1rem; --cyber-space-lg: 1.5rem; --cyber-space-xl: 2rem; --cyber-space-2xl: 3rem; /* 过渡 */ --cyber-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --cyber-transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1); --cyber-transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1); } /* ==================== 全局重置 ==================== */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--cyber-font-mono); background-color: var(--cyber-bg-primary); color: var(--cyber-text-primary); line-height: 1.6; min-height: 100vh; overflow-x: hidden; position: relative; } /* ==================== 背景网格效果 ==================== */ body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-image: linear-gradient(rgba(0, 255, 159, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 159, 0.03) 1px, transparent 1px); background-size: 50px 50px; pointer-events: none; z-index: 0; } /* ==================== CRT 扫描线效果 ==================== */ body::after { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient( 0deg, rgba(0, 0, 0, 0.1) 0px, transparent 1px, transparent 2px, rgba(0, 0, 0, 0.1) 3px ); background-size: 100% 4px; pointer-events: none; z-index: 9999; opacity: 0.3; animation: scanline 8s linear infinite; } @keyframes scanline { 0% { transform: translateY(0); } 100% { transform: translateY(50px); } } /* ==================== 主容器 ==================== */ #app { position: relative; z-index: 1; } /* ==================== 滚动条样式 ==================== */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--cyber-bg-secondary); } ::-webkit-scrollbar-thumb { background: var(--cyber-border); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--cyber-border-bright); } /* ==================== 选择文本样式 ==================== */ ::selection { background: var(--cyber-green-dim); color: var(--cyber-green); } /* ==================== 链接样式 ==================== */ a { color: var(--cyber-green); text-decoration: none; transition: var(--cyber-transition-fast); } a:hover { color: var(--cyber-blue); text-shadow: var(--cyber-glow-blue); } /* ==================== 通用工具类 ==================== */ .cyber-text-glow { text-shadow: 0 0 10px currentColor; } .cyber-border-glow { box-shadow: 0 0 15px currentColor, inset 0 0 15px currentColor; } .cyber-flicker { animation: flicker 3s infinite; } @keyframes flicker { 0%, 100% { opacity: 1; } 92% { opacity: 1; } 93% { opacity: 0.8; } 94% { opacity: 1; } 96% { opacity: 0.9; } 97% { opacity: 1; } } /* ==================== 装饰性角落 ==================== */ .cyber-corner { position: relative; } .cyber-corner::before, .cyber-corner::after { content: ''; position: absolute; width: 20px; height: 20px; border-color: var(--cyber-green); border-style: solid; opacity: 0.5; transition: var(--cyber-transition-normal); } .cyber-corner::before { top: 0; left: 0; border-width: 2px 0 0 2px; } .cyber-corner::after { bottom: 0; right: 0; border-width: 0 2px 2px 0; } .cyber-corner:hover::before, .cyber-corner:hover::after { opacity: 1; width: 30px; height: 30px; } /* ==================== 数据流动画 ==================== */ @keyframes dataFlow { 0% { transform: translateX(-100%); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateX(100%); opacity: 0; } } .cyber-data-flow { position: relative; overflow: hidden; } .cyber-data-flow::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--cyber-green), transparent); animation: dataFlow 2s linear infinite; } /* ==================== 脉冲动画 ==================== */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .cyber-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* ==================== 打字机效果 ==================== */ @keyframes typing { from { width: 0; } to { width: 100%; } } @keyframes blink { 50% { border-color: transparent; } } .cyber-typing { overflow: hidden; white-space: nowrap; border-right: 2px solid var(--cyber-green); animation: typing 3s steps(40, end), blink 0.75s step-end infinite; } /* ==================== 故障效果 ==================== */ @keyframes glitch { 0% { transform: translate(0); } 20% { transform: translate(-2px, 2px); } 40% { transform: translate(-2px, -2px); } 60% { transform: translate(2px, 2px); } 80% { transform: translate(2px, -2px); } 100% { transform: translate(0); } } .cyber-glitch:hover { animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both infinite; color: var(--cyber-green); } /* ==================== 全息效果 ==================== */ .cyber-hologram { position: relative; background: linear-gradient( 135deg, rgba(0, 255, 159, 0.1) 0%, rgba(0, 212, 255, 0.1) 50%, rgba(0, 255, 159, 0.1) 100% ); backdrop-filter: blur(10px); } .cyber-hologram::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 45deg, transparent 30%, rgba(0, 255, 159, 0.1) 50%, transparent 70% ); animation: hologramShift 3s linear infinite; } @keyframes hologramShift { 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); } 100% { transform: translateX(100%) translateY(100%) rotate(45deg); } } /* ==================== 响应式 ==================== */ @media (max-width: 768px) { body::before { background-size: 30px 30px; } body::after { background-size: 100% 3px; } }