12451 8e7435005e refactor(landing): 改为全屏主视觉 + 毛玻璃文案面板(消除"贴图硬边")
## 问题

分栏布局里,产品图是 4:3 矩形、自带浅灰蓝背景,贴在页面白底上有一道
**明显的竖直硬边**;上一提交用径向遮罩缓解了,但本质上"图在盒子里"这个
结构仍会让人觉得过渡生硬(用户指出,并建议:做成一张全图,左边没内容或
少量内容,或者左边用毛玻璃、背后能稍微看到内容)。

## 方案(按用户建议)

**一张全图做底 + 左侧毛玻璃面板**,从结构上消除"过渡"这件事:

1. **重新生成主视觉图**(Agnes Image 图生图,2K 16:9):
   - 柜子置于画面**右侧约四成**,左侧约六成是**纯净负空间**(无物体/阴影/文字)
   - ⛔ 明确声明画面内**不出现任何文字、数字、字母、水印、logo**
     (v1 的教训:提示词里写了十六进制色值和"36",模型把它们**当文字画进了图里**,
     左侧出现"36 智能充电电柜 / #0366e6"。故颜色只描述为"品牌蓝",绝不写 hex)
2. **全屏背景**:`.bg` 用 `background-size: cover` 铺满视口(保持宽高比、永不变形)
3. **左侧白纱**:`.bg::after` 叠一层从左到右渐淡的白色轻纱,保证文字对比度
4. **毛玻璃面板**(核心):
   ```css
   background: rgba(255,255,255,0.58);
   backdrop-filter: blur(26px) saturate(1.5);
   border: 1px solid rgba(255,255,255,0.72);
   border-radius: 22px;
   box-shadow: 0 24px 60px rgba(15,20,25,0.10), inset 0 1px 0 rgba(255,255,255,0.85);
   ```
   背后的柜子与渐变会**隐约透出**,边界从"贴图的硬边"变成"玻璃的质感"。

## 清理

- 删除 `deploy/landing/hero.jpg`(分栏布局废弃,146KB)
- 删除 `.hero` / `.hero::before` / `.hero img` 全部 CSS 与 HTML(含此前的 mask 方案)
- 媒体查询改为:窄屏收紧面板宽度、减弱白纱让图更多露出

## 文件

| 文件 | 变化 |
|---|---|
| `deploy/landing/hero-full.jpg` | 新增(1920×1077,114.7KB) |
| `deploy/landing/index.html` | 全屏背景 + 毛玻璃面板;删 hero 相关 |
| `deploy/landing/hero.jpg` | **删除** |

## 实测(发布后打真实 URL)

```
200  114.7KB image/jpeg    hero-full.jpg
200   68.6KB image/jpeg    og-image.jpg
200   21.1KB image/svg+xml favicon.svg
200   12.3KB image/svg+xml logo.svg
404  text/html             hero.jpg      (已删)
```
HTML 已确认含 `background: url("hero-full.jpg")`、两条 `backdrop-filter`、
`<div class="copy">`,且不再有 `class="hero"` / `mask-image`。

## 备注

生成按 Agnes **串行**要求执行:全程一次一个任务(v1 失败 → v2 成功)。
2026-09-21 03:09:26 +08:00

297 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 全站统一 favicon:与 web 管理端同源(logo/favicon.svg) -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>艾动智能 — 智能充电柜矩阵系统</title>
<!-- 社交分享(og / Twitter):此前完全缺失,链接被分享时没有预览图 -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="艾动智能">
<meta property="og:title" content="艾动智能 — 为换电场景打造的下一代智能充电">
<meta property="og:description" content="36 仓独立直流快充,4G 远程实时管控,多重安全防护体系。从硬件到云端,全栈自研的智能充电解决方案。">
<meta property="og:image" content="https://app.anzhizhichong.com/og-image.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://app.anzhizhichong.com/">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="艾动智能 — 为换电场景打造的下一代智能充电">
<meta name="twitter:description" content="36 仓独立直流快充,4G 远程实时管控,多重安全防护体系。从硬件到云端,全栈自研。">
<meta name="twitter:image" content="https://app.anzhizhichong.com/og-image.jpg">
<style>
/* ==========================================================================
艾动智能 · 产品介绍页(单屏不滚动 / 明亮浅色)
—— 设计口径见 AGENTS.md「操作规则」:偏好明亮浅色、单屏不滚动,⛔ 不做暗色科技风
—— 品牌色直接取自 logo:logo/纯色横向.svg 的 .cls-1 = #0366e6
========================================================================== */
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--brand: #0366e6; /* 取自 logo 的蓝,全站强调色统一用它 */
--brand-dark: #0354c4; /* hover 加深 */
--brand-soft: #eaf2fe; /* 极浅蓝底,用于标签/弱化背景 */
--ink: #0F1419; /* 主标题 */
--body: #454B58; /* 正文 */
--muted: #8B92A5; /* 辅助文字 */
--line: rgba(15,20,25,0.08);
}
html, body {
height: 100%;
overflow: hidden; /* 单屏不滚动(AGENTS.md 口径) */
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", sans-serif;
color: var(--body);
-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
/* ===== 整体:上 / 中 / 下 三块,中块自适应 ===== */
.layout { display: flex; flex-direction: column; height: 100vh; }
/* ===== 背景:一张全屏产品主视觉图(cover 填满,永不变形)=====
图是专门为这个布局生成的:柜子在画面右侧约四成,左侧是纯净负空间。
::after 再叠一层从左到右渐淡的白色轻纱,保证左侧文字对比度。 */
.bg {
position: fixed; inset: 0; z-index: 0; pointer-events: none;
background: url("hero-full.jpg") no-repeat center center;
background-size: cover;
}
.bg::after {
content: ''; position: absolute; inset: 0;
background: linear-gradient(to right,
rgba(255,255,255,0.62) 0%,
rgba(255,255,255,0.34) 38%,
rgba(255,255,255,0.06) 58%,
transparent 72%);
}
/* ===== TOP: 顶部导航 ===== */
.top {
position: relative; z-index: 2;
flex-shrink: 0;
display: flex; align-items: center; justify-content: space-between;
padding: 14px 48px;
}
.top-brand { display: flex; align-items: center; }
/* 横版锁标 1511.75×413.59(≈3.65:1);48px 高 ⇒ 约 175px 宽 */
.logo { height: 46px; width: auto; display: block; }
.top-links { display: flex; align-items: center; gap: 6px; }
.top-link {
font-size: 13px; font-weight: 500; color: var(--body);
padding: 8px 16px; border-radius: 8px; transition: all .2s;
}
.top-link:hover { background: var(--brand-soft); color: var(--brand); }
.top-link--cta { background: var(--ink); color: #fff; }
.top-link--cta:hover { background: #23272F; color: #fff; }
/* ===== MID: 全屏图上叠一块毛玻璃文案面板 ===== */
.mid {
position: relative; z-index: 1;
flex: 1; min-height: 0;
display: flex; align-items: center;
padding: 0 56px;
}
/* ---- 毛玻璃面板 ----
半透明白底 + 背景模糊:背后的柜子与渐变会隐约透出来,
边界从"贴图的硬边"变成"玻璃的质感"——这是消除突兀感的关键。 */
.copy {
width: min(720px, 46vw);
padding: 40px 44px;
display: flex; flex-direction: column; gap: 20px;
background: rgba(255,255,255,0.58);
-webkit-backdrop-filter: blur(26px) saturate(1.5);
backdrop-filter: blur(26px) saturate(1.5);
border: 1px solid rgba(255,255,255,0.72);
border-radius: 22px;
box-shadow:
0 24px 60px rgba(15,20,25,0.10),
0 2px 8px rgba(15,20,25,0.04),
inset 0 1px 0 rgba(255,255,255,0.85);
}
/* 小标签:品牌蓝 + 呼吸圆点 */
.tag {
display: inline-flex; align-items: center; gap: 8px;
padding: 6px 14px 6px 12px;
background: var(--brand-soft);
border: 1px solid rgba(3,102,230,0.16);
border-radius: 100px;
font-size: 13px; font-weight: 600; color: var(--brand);
width: fit-content;
}
.tag .dot {
width: 7px; height: 7px; border-radius: 50%;
background: var(--brand);
box-shadow: 0 0 0 0 rgba(3,102,230,0.45);
animation: pulse 2.4s ease-out infinite;
}
@keyframes pulse {
0% { box-shadow: 0 0 0 0 rgba(3,102,230,0.40); }
70% { box-shadow: 0 0 0 7px rgba(3,102,230,0); }
100% { box-shadow: 0 0 0 0 rgba(3,102,230,0); }
}
h1 {
font-size: clamp(38px, 4.2vw, 58px);
font-weight: 800;
line-height: 1.18;
letter-spacing: -0.02em;
color: var(--ink);
}
h1 .accent { color: var(--brand); }
.subhead {
font-size: clamp(15px, 1.25vw, 17px);
font-weight: 400;
line-height: 1.8;
color: var(--body);
max-width: 500px;
}
/* 能力标签:只放 stats 里没有的,避免信息重复 */
.pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pill {
padding: 5px 13px;
background: #fff;
border: 1px solid var(--line);
border-radius: 100px;
font-size: 13px; font-weight: 500; color: var(--body);
box-shadow: 0 1px 2px rgba(15,20,25,0.03);
}
/* 行动按钮(此前只有 CSS、HTML 里从未渲染过)*/
.ctas { display: flex; align-items: center; gap: 12px; margin-top: 2px; }
.btn {
display: inline-flex; align-items: center; gap: 8px;
padding: 13px 26px;
font-size: 15px; font-weight: 600;
border-radius: 10px; transition: all .2s;
white-space: nowrap;
}
.btn-primary {
background: var(--brand); color: #fff;
box-shadow: 0 6px 20px rgba(3,102,230,0.24);
}
.btn-primary:hover {
background: var(--brand-dark);
transform: translateY(-2px);
box-shadow: 0 10px 26px rgba(3,102,230,0.30);
}
.btn-ghost { color: var(--body); border: 1.5px solid rgba(15,20,25,0.13); background: #fff; }
.btn-ghost:hover { border-color: var(--brand); color: var(--brand); }
.btn .arrow { transition: transform .2s; }
.btn-primary:hover .arrow { transform: translateX(3px); }
/* 数据条 */
.stats {
display: flex; gap: 40px;
padding-top: 18px; margin-top: 4px;
border-top: 1px solid var(--line);
}
.stat-num {
font-size: 30px; font-weight: 800; color: var(--ink);
line-height: 1.1; letter-spacing: -0.01em;
font-variant-numeric: tabular-nums; /* 数字等宽,四个数据对齐 */
}
.stat-num .unit { font-size: 15px; font-weight: 700; color: var(--muted); margin-left: 2px; }
.stat-label { font-size: 12px; font-weight: 500; color: var(--muted); margin-top: 5px; }
/* ===== BOT: 底部备案 ===== */
.bot {
position: relative; z-index: 2;
flex-shrink: 0;
text-align: center; padding: 14px;
font-size: 12px; color: var(--muted);
}
.bot a { color: var(--brand); }
.bot a:hover { text-decoration: underline; }
/* ===== 自适应:窄屏时收紧,保证仍然单屏不滚动 ===== */
@media (max-width: 1180px) {
.mid { padding: 0 32px; }
.copy { width: min(640px, 62vw); padding: 32px 34px; }
.stats { gap: 26px; }
.stat-num { font-size: 26px; }
}
/* 更窄/更矮时:面板进一步收紧,并减弱背后的白纱让图更多露出来 */
@media (max-width: 820px), (max-height: 600px) {
.copy { width: 100%; padding: 26px 26px; }
.bg::after {
background: linear-gradient(to right,
rgba(255,255,255,0.72) 0%, rgba(255,255,255,0.42) 55%, transparent 85%);
}
}
</style>
</head>
<body>
<div class="bg"></div>
<div class="layout">
<!-- 上:顶部导航 -->
<div class="top">
<div class="top-brand">
<!-- 横版锁标(图标 + "艾动智能"字样,文字已转为路径、无字体依赖)-->
<img class="logo" src="logo.svg" alt="艾动智能">
</div>
<div class="top-links">
<a href="/doc/" class="top-link">开发文档</a>
<a href="/pms/" class="top-link top-link--cta">管理后台</a>
</div>
</div>
<!-- 中:左文右图 -->
<div class="mid">
<div class="copy">
<div class="tag"><span class="dot"></span>智能充电矩阵系统</div>
<h1>为换电场景打造的<br><span class="accent">下一代智能充电</span></h1>
<p class="subhead">
36 仓独立直流快充,4G 远程实时管控,多重安全防护体系。<br>
从硬件到云端,全栈自研的智能充电解决方案。
</p>
<!-- 只放 stats 未覆盖的能力点,"36仓独立"已由下方数据条表达,不再重复 -->
<div class="pills">
<span class="pill">多重防护</span>
<span class="pill">4G 在线</span>
<span class="pill">BMS 适配</span>
</div>
<!-- 首屏行动按钮 -->
<div class="ctas">
<a href="/pms/" class="btn btn-primary">
进入管理后台
<svg class="arrow" width="16" height="16" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 12h14M13 6l6 6-6 6"/>
</svg>
</a>
<a href="/doc/" class="btn btn-ghost">开发文档</a>
</div>
<div class="stats">
<div><div class="stat-num">36</div><div class="stat-label">独立仓体</div></div>
<div><div class="stat-num">&lt;0.5<span class="unit">s</span></div><div class="stat-label">指令响应</div></div>
<div><div class="stat-num">8000<span class="unit">h</span></div><div class="stat-label">MTBF</div></div>
<div><div class="stat-num">99<span class="unit">%</span></div><div class="stat-label">可用率</div></div>
</div>
</div>
</div>
<!-- 下:备案 -->
<div class="bot">
© 2026 艾动智能 · <a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener">苏ICP备2025198376号-1</a>
</div>
</div>
</body>
</html>