diff --git a/packages/home/src/views/ai-extension-home/common.less b/packages/home/src/views/ai-extension-home/common.less new file mode 100644 index 00000000..6d144645 --- /dev/null +++ b/packages/home/src/views/ai-extension-home/common.less @@ -0,0 +1,278 @@ +/* ==================== 公共样式 ==================== */ + +.ai-extension-home { + /* 工具类 */ + .pad-b40 { + padding-bottom: 40px !important; + } + + .pad-t40 { + padding-top: 40px !important; + } + + /* 通用布局 */ + .section { + min-height: 100vh; + width: 100%; + position: relative; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .text-center { + text-align: center; + } + + /* 背景类 */ + .bg-tech-1 { + background-size: cover; + background-position: center; + } + + .bg-tech-2 { + background-size: cover; + background-position: center; + } + + /* 通用文字样式 */ + .title { + font-size: 52px; + font-weight: 700; + color: #191919; + letter-spacing: 2px; + line-height: 1.2; + padding-bottom: 32px; + .title-us { + font-size: 56px; + } + } + + .subtitle { + font-size: 50px; + padding-bottom: 48px; + line-height: 1.5; + background: linear-gradient(90deg, #cb43a8 10%, #2c5fef 50%); + -webkit-background-clip: text; + background-clip: text; + letter-spacing: 5px; + -webkit-text-fill-color: transparent; + font-weight: 700; + } + + .description { + font-size: 18px; + padding-bottom: 48px; + line-height: 2; + color: #a0a0a0; + letter-spacing: 2px; + font-weight: 400; + } + + .feature-title { + font-size: 36px; + } + + /* 按钮样式 */ + .btn { + padding: 12px 44px; + line-height: 24px; + border-radius: 30px; + font-size: 16px; + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + cursor: pointer; + letter-spacing: 1px; + position: relative; + overflow: hidden; + font-weight: 400; + } + + .btn.primary { + background: #191919; + color: white; + border: none; + box-shadow: 0 10px 25px rgba(94, 124, 226, 0.3); + } + + .btn.primary:hover { + transform: translateY(-3px); + box-shadow: 0 15px 35px rgba(94, 124, 226, 0.5); + } + + .btn.secondary { + background: transparent; + color: #191919; + border: 1px solid #191919; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); + } + + .btn.secondary:hover { + transform: translateY(-3px); + border-color: #191919; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); + } + + /* 动画效果 */ + .fade-in-up { + opacity: 0; + transform: translateY(30px); + transition: opacity 0.6s ease-out, transform 0.6s ease-out; + } + + .fade-in-up.is-visible { + opacity: 1; + transform: translateY(0); + } + + @keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(40px); + } + to { + opacity: 1; + transform: translateY(0); + } + } + + @keyframes float { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-25px); + } + 100% { + transform: translateY(0px); + } + } + + /* ==================== 响应式适配 ==================== */ + + /* 中等屏幕 (1024px - 1440px) - 小桌面 */ + @media (max-width: 1440px) { + * { + zoom: 0.9; + } + } + + /* 平板横屏 (1024px - 1440px) */ + @media (max-width: 1024px) { + * { + zoom: 1; + } + + .title { + font-size: 28px; + letter-spacing: 3px; + } + + .subtitle { + font-size: 26px; + letter-spacing: 3px; + } + + .description { + font-size: 16px; + } + + .feature-title { + font-size: 30px; + } + } + + /* 平板竖屏 / 大手机 (768px - 1024px) */ + @media (max-width: 768px) { + * { + zoom: 1; + } + + .section { + min-height: auto; + padding: 60px 20px; + } + + .title { + font-size: 28px; + letter-spacing: 2px; + padding-bottom: 15px; + } + + .subtitle { + font-size: 26px; + letter-spacing: 2px; + padding-bottom: 15px; + } + + .description { + padding-bottom: 20px; + } + + .cta-group { + gap: 15px; + width: 100%; + justify-content: center; + } + + .btn { + padding: 14px 30px; + font-size: 14px; + } + + .feature-title { + font-size: 28px; + } + + .pad-b40 { + padding-bottom: 30px !important; + } + } + + /* 小手机 (< 480px) */ + @media (max-width: 480px) { + .section { + padding: 40px 15px; + } + + .btn { + padding: 12px 24px; + font-size: 14px; + line-height: 1; + } + + .description { + letter-spacing: 0px; + padding-left: 15px; + padding-right: 15px; + } + + .title { + font-size: 22px; + letter-spacing: 1px; + .title-us { + font-size: 24px; + } + } + + .subtitle { + font-size: 20px; + letter-spacing: 1px; + } + + .feature-title { + font-size: 24px; + } + } + + /* 无障碍支持 */ + @media (prefers-reduced-motion: reduce) { + .fade-in-up { + opacity: 1 !important; + transform: none !important; + transition: none !important; + } + } +} diff --git a/packages/home/src/views/ai-extension-home/components/FeatureSection.vue b/packages/home/src/views/ai-extension-home/components/FeatureSection.vue new file mode 100644 index 00000000..bda22d13 --- /dev/null +++ b/packages/home/src/views/ai-extension-home/components/FeatureSection.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/packages/home/src/views/ai-extension-home/components/HeroSection.vue b/packages/home/src/views/ai-extension-home/components/HeroSection.vue new file mode 100644 index 00000000..5168e0cd --- /dev/null +++ b/packages/home/src/views/ai-extension-home/components/HeroSection.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/packages/home/src/views/ai-extension-home/components/HighlightsSection.vue b/packages/home/src/views/ai-extension-home/components/HighlightsSection.vue new file mode 100644 index 00000000..14199efe --- /dev/null +++ b/packages/home/src/views/ai-extension-home/components/HighlightsSection.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/packages/home/src/views/ai-extension-home/index.vue b/packages/home/src/views/ai-extension-home/index.vue index 2edc7716..482a1c38 100644 --- a/packages/home/src/views/ai-extension-home/index.vue +++ b/packages/home/src/views/ai-extension-home/index.vue @@ -1,609 +1,164 @@ - -