diff --git a/bug修改.md b/bug修改.md deleted file mode 100644 index 7d0394c..0000000 --- a/bug修改.md +++ /dev/null @@ -1,20 +0,0 @@ -# Bug 修改记录 - -## 2026-03-17 - -### 初始项目创建 -- 创建 YG-Dataset 重构项目 -- 搭建 FastAPI + Vue 3 基础架构 - ---- - -## 修复记录格式 - -### 日期 -**问题描述:** -**原因:** -**修复方案:** - ---- - -*持续更新中...* diff --git a/frontend/src/styles/home.scss b/frontend/src/styles/home.scss deleted file mode 100644 index 8650969..0000000 --- a/frontend/src/styles/home.scss +++ /dev/null @@ -1,426 +0,0 @@ -/* ======================== - HomeView Styles - ======================== */ - -.home { - min-height: 100vh; - padding: 60px 40px 80px; - max-width: 1400px; - margin: 0 auto; -} - -/* Hero Section */ -.hero { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 60px; - align-items: center; - margin-bottom: 60px; -} - -.hero-badge { - display: inline-flex; - align-items: center; - gap: 8px; - padding: 6px 14px; - background: var(--accent-primary-muted); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 100px; - font-size: 13px; - color: var(--accent-primary); - margin-bottom: 20px; -} - -.badge-dot { - width: 6px; - height: 6px; - background: var(--accent-primary); - border-radius: 50%; - animation: pulse 2s ease-in-out infinite; -} - -@keyframes pulse { - 0%, 100% { opacity: 1; transform: scale(1); } - 50% { opacity: 0.5; transform: scale(1.2); } -} - -.hero-title { - font-size: 56px; - font-weight: 700; - line-height: 1.1; - letter-spacing: -0.03em; - margin-bottom: 20px; -} - -.hero-subtitle { - font-size: 18px; - color: var(--text-secondary); - line-height: 1.6; - margin-bottom: 32px; - max-width: 480px; -} - -.hero-actions { - display: flex; - gap: 14px; -} - -.btn-primary { - padding: 14px 28px; - font-size: 15px; - border-radius: var(--radius-md); -} - -.btn-secondary { - padding: 14px 28px; - font-size: 15px; - border-radius: var(--radius-md); - background: var(--bg-tertiary); - border: 1px solid var(--border-default); - color: var(--text-primary); -} - -.btn-secondary:hover { - background: var(--bg-hover); - border-color: var(--border-strong); -} - -/* ======================== - Hero Visual - 全息粒子矩阵 - ======================== */ -.hero-visual { - position: relative; - height: 420px; - perspective: 1000px; -} - -/* 全息卡片基础样式 */ -.hologram-card { - position: absolute; - width: 180px; - padding: 24px 20px; - background: linear-gradient(135deg, rgba(20, 20, 30, 0.9) 0%, rgba(10, 10, 18, 0.95) 100%); - border: 1px solid rgba(255, 255, 255, 0.08); - border-radius: 20px; - backdrop-filter: blur(20px); - cursor: pointer; - transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); - transform-style: preserve-3d; - animation: hologramFloat 6s ease-in-out infinite; - overflow: hidden; -} - -/* 卡片位置 */ -.hologram-card.card-1 { - top: 10px; - right: 60px; - animation-delay: 0s; -} - -.hologram-card.card-2 { - top: 130px; - left: 30px; - animation-delay: -2s; -} - -.hologram-card.card-3 { - bottom: 20px; - right: 80px; - animation-delay: -4s; -} - -@keyframes hologramFloat { - 0%, 100% { transform: translateY(0) rotateX(0) rotateY(0); } - 25% { transform: translateY(-8px) rotateX(2deg) rotateY(-2deg); } - 50% { transform: translateY(0) rotateX(0) rotateY(0); } - 75% { transform: translateY(-5px) rotateX(-1deg) rotateY(2deg); } -} - -/* 悬浮时的3D效果 */ -.hologram-card:hover { - transform: translateY(-15px) scale(1.05); - border-color: rgba(0, 212, 255, 0.4); - box-shadow: - 0 25px 50px -12px rgba(0, 0, 0, 0.5), - 0 0 30px rgba(0, 212, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.1); -} - -.hologram-card:hover .scan-line { - animation: scanMove 1.5s linear infinite; -} - -.hologram-card:hover .pulse-ring { - animation: pulseRing 2s ease-out infinite; -} - -.hologram-card:hover .particle { - animation: particleBurst 1s ease-out forwards; - animation-delay: calc(var(--i, 0) * 0.1s); -} - -/* 卡片背景 */ -.card-bg { - position: absolute; - inset: 0; - background: radial-gradient(ellipse at top, rgba(0, 212, 255, 0.08) 0%, transparent 50%), - radial-gradient(ellipse at bottom right, rgba(124, 58, 237, 0.08) 0%, transparent 50%); - opacity: 0.8; -} - -.card-2 .card-bg { - background: radial-gradient(ellipse at top, rgba(124, 58, 237, 0.12) 0%, transparent 50%), - radial-gradient(ellipse at bottom right, rgba(0, 212, 255, 0.06) 0%, transparent 50%); -} - -.card-3 .card-bg { - background: radial-gradient(ellipse at top, rgba(6, 182, 212, 0.12) 0%, transparent 50%), - radial-gradient(ellipse at bottom right, rgba(124, 58, 237, 0.06) 0%, transparent 50%); -} - -/* 扫描线效果 */ -.scan-line { - position: absolute; - top: -50%; - left: -50%; - width: 200%; - height: 200%; - background: linear-gradient( - transparent 0%, - rgba(0, 212, 255, 0.03) 50%, - transparent 100% - ); - transform: rotate(30deg); - pointer-events: none; -} - -@keyframes scanMove { - 0% { transform: translateY(-100%) rotate(30deg); } - 100% { transform: translateY(100%) rotate(30deg); } -} - -/* 粒子容器 */ -.particles-container { - position: absolute; - inset: 0; - pointer-events: none; - overflow: hidden; -} - -.particle { - position: absolute; - width: 3px; - height: 3px; - border-radius: 50%; - opacity: 0; - left: var(--x); - top: var(--y); -} - -.card-1 .particle { - background: var(--accent-primary); - box-shadow: 0 0 6px var(--accent-primary); -} - -.card-2 .particle { - background: var(--accent-secondary); - box-shadow: 0 0 6px var(--accent-secondary); -} - -.card-3 .particle { - background: var(--accent-tertiary); - box-shadow: 0 0 6px var(--accent-tertiary); -} - -@keyframes particleBurst { - 0% { opacity: 0; transform: scale(0); } - 20% { opacity: 1; transform: scale(1); } - 100% { opacity: 0; transform: scale(2); } -} - -/* 脉动光环 */ -.pulse-ring { - position: absolute; - top: 50%; - left: 50%; - width: 60px; - height: 60px; - transform: translate(-50%, -50%); - border-radius: 50%; - border: 1px solid rgba(0, 212, 255, 0.3); - opacity: 0; - pointer-events: none; -} - -.card-2 .pulse-ring { border-color: rgba(124, 58, 237, 0.3); } -.card-3 .pulse-ring { border-color: rgba(6, 182, 212, 0.3); } - -@keyframes pulseRing { - 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.5); } - 100% { opacity: 0; transform: translate(-50%, -50%) scale(2); } -} - -/* 卡片内容 */ -.card-content { - position: relative; - z-index: 1; - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - gap: 12px; -} - -/* 图标包装器 */ -.icon-wrapper { - position: relative; - width: 64px; - height: 64px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 18px; - background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.02) 100%); - border: 1px solid rgba(255,255,255,0.1); - transition: all 0.3s ease; -} - -.icon-wrapper.cyan { - background: linear-gradient(135deg, rgba(0, 212, 255, 0.2) 0%, rgba(0, 212, 255, 0.05) 100%); - border-color: rgba(0, 212, 255, 0.3); - color: var(--accent-primary); -} - -.icon-wrapper.violet { - background: linear-gradient(135deg, rgba(124, 58, 237, 0.2) 0%, rgba(124, 58, 237, 0.05) 100%); - border-color: rgba(124, 58, 237, 0.3); - color: var(--accent-secondary); -} - -.icon-wrapper.teal { - background: linear-gradient(135deg, rgba(6, 182, 212, 0.2) 0%, rgba(6, 182, 212, 0.05) 100%); - border-color: rgba(6, 182, 212, 0.3); - color: var(--accent-tertiary); -} - -/* 图标发光 */ -.icon-glow { - position: absolute; - inset: -2px; - border-radius: 20px; - background: inherit; - filter: blur(15px); - opacity: 0.5; - z-index: -1; -} - -.hologram-card:hover .icon-wrapper { - transform: scale(1.1); - box-shadow: 0 0 30px rgba(0, 212, 255, 0.4); -} - -.hologram-card:hover .icon-glow { opacity: 0.8; } - -/* 标签文字 */ -.card-label { - font-size: 15px; - font-weight: 600; - color: var(--text-primary); - letter-spacing: 0.02em; -} - -.card-sublabel { - font-size: 11px; - color: var(--text-muted); - letter-spacing: 0.05em; - text-transform: uppercase; -} - -/* 响应式 */ -@media (max-width: 1200px) { - .hero-visual { display: none; } -} - -/* Quick Actions */ -.quick-actions { margin-bottom: 50px; } - -.action-card { - display: flex; - align-items: center; - gap: 20px; - padding: 24px; - background: var(--glass-bg); - backdrop-filter: blur(20px); - border: 1px solid var(--glass-border); - border-radius: var(--radius-lg); - cursor: pointer; - transition: all var(--transition-base); -} - -.action-card:hover { - border-color: var(--accent-primary); - transform: translateX(6px); -} - -.action-icon { - width: 52px; - height: 52px; - display: flex; - align-items: center; - justify-content: center; - background: var(--accent-primary-muted); - border-radius: var(--radius-md); - font-size: 24px; - color: var(--accent-primary); -} - -.action-info h3 { font-size: 16px; font-weight: 600; margin-bottom: 4px; } -.action-info p { font-size: 14px; color: var(--text-tertiary); } - -.action-arrow { - margin-left: auto; - font-size: 20px; - color: var(--text-muted); - transition: transform var(--transition-base); -} - -.action-card:hover .action-arrow { - transform: translateX(4px); - color: var(--accent-primary); -} - -/* Projects Section */ -.section-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 28px; -} - -.section-title h2 { font-size: 24px; font-weight: 600; margin-bottom: 4px; } -.section-title p { font-size: 14px; color: var(--text-tertiary); } - -.add-btn { padding: 10px 18px; border-radius: var(--radius-md); } - -.projects-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); - gap: 20px; -} - -/* Responsive */ -@media (max-width: 1024px) { - .hero { - grid-template-columns: 1fr; - text-align: center; - } - .hero-subtitle { max-width: 100%; } - .hero-actions { justify-content: center; } -} - -@media (max-width: 640px) { - .home { padding: 40px 20px 60px; } - .hero-title { font-size: 36px; } - .hero-actions { flex-direction: column; } - .projects-grid { grid-template-columns: 1fr; } -}