From e6d0332fbabb46f29af1116990adcd07550dd092 Mon Sep 17 00:00:00 2001 From: rayd1o Date: Mon, 20 Apr 2026 22:12:19 +0800 Subject: [PATCH] release: bump version to 0.29.1 --- VERSION | 2 +- docs/CHANGELOG.md | 17 +++ docs/version-history.md | 3 +- frontend/package.json | 2 +- frontend/public/earth/css/base.css | 60 ++------ frontend/public/earth/css/hud.css | 134 ++++++++++++++--- frontend/public/earth/css/info-panel.css | 30 +++- frontend/public/earth/index.html | 7 +- frontend/public/earth/js/bgp.js | 29 ++-- frontend/public/earth/js/cables.js | 14 +- frontend/public/earth/js/constants.js | 14 +- frontend/public/earth/js/main.js | 49 ++++--- frontend/public/earth/js/ui.js | 175 ++++++++++++++++------- pyproject.toml | 2 +- uv.lock | 2 +- 15 files changed, 360 insertions(+), 180 deletions(-) diff --git a/VERSION b/VERSION index ae6dd4e2..25939d35 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.29.0 +0.29.1 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 83647726..bdbc3ee6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -8,6 +8,23 @@ This project follows the repository versioning rule: - `improvement` -> `+0.0.1`(bugfix + 小功能混合) - `bugfix` -> `+0.0.1` +## [0.29.1] — 2026-04-20 + +### ✨ Highlights +- Earth 加载状态条改成单一队列式通知面板,加载阶段不再因为步骤文案变化而回缩,也不会被其他通知打断 +- 调整 brand panel 的呈现方式与昼夜/选中态可读性,让品牌区更自然、交互高亮在白天和黑夜里都更稳定 + +### 🔧 Improvements +- 移除旧的地球加载浮层结构,统一由 HUD 状态消息承载三点脉冲加载过程 +- brand panel 改为无边框品牌层,仅保留轻微氛围光,不再因为非常规尺寸显得像第五块功能面板 +- 温和收敛地球昼夜材质与主背光强度,保留昼夜辨识度的同时提升白天地表纹理和夜面交互可见性 + +### 🐛 Fixes +- 修复加载地球时通知条在步骤切换中反复缩短、其他状态消息抢占加载流程的问题 +- 修复海缆、登陆点和 BGP 选中高亮在黑夜中过暗、在高光中过亮导致难以辨识的问题 + +--- + ## [0.29.0] — 2026-04-20 ### ✨ Highlights diff --git a/docs/version-history.md b/docs/version-history.md index 71ddfd7a..fc63a8cd 100644 --- a/docs/version-history.md +++ b/docs/version-history.md @@ -16,12 +16,13 @@ ## Current Version - `main` 当前主线历史推导到:`0.16.5` -- `dev` 当前开发分支历史推导到:`0.29.0` +- `dev` 当前开发分支历史推导到:`0.29.1` ## Timeline | Version | Type | Branch | Commit | Summary | | --- | --- | --- | --- | --- | +| `0.29.1` | bugfix | `dev` | `pending` | Earth 加载通知条改为队列式单面板显示,brand panel 去框并收敛昼夜与选中态可读性 | | `0.29.0` | feature | `dev` | `pending` | Earth 新增天球背景与太阳/月亮位置层,强化昼夜分隔并收口卫星图例与图层面板交互 | | `0.28.2` | bugfix | `dev` | `pending` | 修正媒体情报 tab 尺寸记忆与切换锚点逻辑,并清理 docs 根目录遗留旧路径文档 | | `0.28.1` | bugfix | `dev` | `pending` | 收口 Earth 媒体情报面板命名与 tab 文案,整理 docs 分组并归档已完成/废弃计划文档 | diff --git a/frontend/package.json b/frontend/package.json index 624913ed..549127c9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "planet-frontend", - "version": "0.29.0", + "version": "0.29.1", "private": true, "packageManager": "bun@1", "dependencies": { diff --git a/frontend/public/earth/css/base.css b/frontend/public/earth/css/base.css index b6b210d6..1243c65e 100644 --- a/frontend/public/earth/css/base.css +++ b/frontend/public/earth/css/base.css @@ -83,59 +83,17 @@ body.earth-page { pointer-events: none; } -.earth-loading { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 240; - min-width: min(calc(320px * var(--hud-scale)), 78vw); - padding: calc(26px * var(--hud-scale)); - border-radius: calc(18px * var(--hud-scale)); - border: 1px solid rgba(77, 184, 255, 0.34); - background: - radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.12), transparent 35%), - linear-gradient(180deg, rgba(13, 24, 46, 0.95), rgba(7, 14, 28, 0.94)); - box-shadow: - 0 0 30px rgba(77, 184, 255, 0.22), - 0 16px 40px rgba(0, 0, 0, 0.28); - text-align: center; - color: #4db8ff; -} - -.earth-loading-text { - color: #4db8ff; -} - -.earth-loading-title { - font-size: calc(1.15rem * var(--hud-scale)); - font-weight: 600; -} - -.earth-loading-subtitle { - margin-top: calc(10px * var(--hud-scale)); - color: #9ab7d4; - font-size: calc(0.84rem * var(--hud-scale)); - line-height: 1.45; -} - -.earth-loading-spinner { - width: calc(40px * var(--hud-scale)); - height: calc(40px * var(--hud-scale)); - margin: 0 auto calc(15px * var(--hud-scale)); - border: 4px solid rgba(77, 184, 255, 0.28); - border-top: 4px solid #4db8ff; - border-radius: 50%; - animation: spin 1s linear infinite; -} - -@keyframes spin { - 0% { - transform: rotate(0deg); +@keyframes earthLoadingPulse { + 0%, + 80%, + 100% { + opacity: 0.28; + transform: scale(0.78); } - 100% { - transform: rotate(360deg); + 40% { + opacity: 1; + transform: scale(1); } } diff --git a/frontend/public/earth/css/hud.css b/frontend/public/earth/css/hud.css index be1f6bd8..fb905907 100644 --- a/frontend/public/earth/css/hud.css +++ b/frontend/public/earth/css/hud.css @@ -243,21 +243,32 @@ .earth-status-message { position: absolute; - top: 20px; + top: calc(20px * var(--hud-scale)); left: 50%; transform: translate(-50%, -18px); - background: - linear-gradient(180deg, rgba(18, 31, 52, 0.92), rgba(8, 18, 32, 0.9)); - border-radius: 14px; - padding: 11px 15px; - z-index: 210; - box-shadow: var(--hud-shadow-soft); - border: 1px solid var(--hud-border); - font-size: 0.9rem; display: none; - backdrop-filter: blur(10px); - text-align: center; - min-width: 180px; + align-items: center; + gap: calc(10px * var(--hud-scale)); + background: + linear-gradient(90deg, rgba(145, 186, 255, 0.07) 0%, transparent 44%), + linear-gradient(180deg, rgba(22, 36, 58, 0.95), rgba(8, 18, 32, 0.93)); + border-radius: 999px; + border: 1px solid var(--hud-border); + border-left-color: rgba(145, 186, 255, 0.32); + padding: calc(8px * var(--hud-scale)) calc(20px * var(--hud-scale)) calc(8px * var(--hud-scale)) calc(16px * var(--hud-scale)); + z-index: 210; + box-shadow: + var(--hud-shadow-soft), + 0 0 18px rgba(145, 186, 255, 0.06); + font-size: calc(0.84rem * var(--hud-scale)); + font-weight: 500; + letter-spacing: 0.01em; + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + text-align: left; + min-width: min(calc(160px * var(--hud-scale)), 58vw); + max-width: min(calc(440px * var(--hud-scale)), 74vw); + color: var(--hud-text); opacity: 0; transition: transform 0.28s ease, @@ -269,19 +280,110 @@ opacity: 1; } +/* ── Indicator: single dot (transient) or three dots (loading) ── */ + +.earth-status-indicator { + display: inline-flex; + align-items: center; + gap: calc(5px * var(--hud-scale)); + flex: 0 0 auto; +} + +.earth-status-dot { + width: calc(7px * var(--hud-scale)); + height: calc(7px * var(--hud-scale)); + border-radius: 50%; + background: rgba(145, 186, 255, 0.95); + box-shadow: + 0 0 8px rgba(145, 186, 255, 0.7), + 0 0 20px rgba(145, 186, 255, 0.28); + animation: statusDotPulse 2.4s ease-in-out infinite; +} + +.earth-status-text { + flex: 1 1 auto; + min-width: 0; +} + +/* Loading: three-dot sequential pulse */ +.earth-status-message.loading .earth-status-dot { + animation: earthLoadingPulse 1.2s ease-in-out infinite; +} + +.earth-status-message.loading .earth-status-dot:nth-child(2) { + animation-delay: 0.16s; +} + +.earth-status-message.loading .earth-status-dot:nth-child(3) { + animation-delay: 0.32s; +} + +/* ── Status color variants ───────────────────────────────────── */ + .earth-status-message.success { - color: #d8f7df; - border-left: 3px solid #66d18f; + color: #dff8e7; + background: + linear-gradient(90deg, rgba(102, 209, 143, 0.08) 0%, transparent 44%), + linear-gradient(180deg, rgba(22, 36, 58, 0.95), rgba(8, 18, 32, 0.93)); + border-left-color: rgba(102, 209, 143, 0.38); + box-shadow: + var(--hud-shadow-soft), + 0 0 18px rgba(102, 209, 143, 0.06); +} + +.earth-status-message.success .earth-status-dot { + background: #66d18f; + box-shadow: + 0 0 8px rgba(102, 209, 143, 0.8), + 0 0 20px rgba(102, 209, 143, 0.3); } .earth-status-message.warning { color: #fff2c3; - border-left: 3px solid #e4c464; + background: + linear-gradient(90deg, rgba(228, 196, 100, 0.08) 0%, transparent 44%), + linear-gradient(180deg, rgba(22, 36, 58, 0.95), rgba(8, 18, 32, 0.93)); + border-left-color: rgba(228, 196, 100, 0.38); + box-shadow: + var(--hud-shadow-soft), + 0 0 18px rgba(228, 196, 100, 0.06); +} + +.earth-status-message.warning .earth-status-dot { + background: #e4c464; + box-shadow: + 0 0 8px rgba(228, 196, 100, 0.8), + 0 0 20px rgba(228, 196, 100, 0.3); } .earth-status-message.error { color: #ffd4d7; - border-left: 3px solid #ff7b86; + background: + linear-gradient(90deg, rgba(255, 123, 134, 0.08) 0%, transparent 44%), + linear-gradient(180deg, rgba(22, 36, 58, 0.95), rgba(8, 18, 32, 0.93)); + border-left-color: rgba(255, 123, 134, 0.38); + box-shadow: + var(--hud-shadow-soft), + 0 0 18px rgba(255, 123, 134, 0.06); +} + +.earth-status-message.error .earth-status-dot { + background: #ff7b86; + box-shadow: + 0 0 8px rgba(255, 123, 134, 0.8), + 0 0 20px rgba(255, 123, 134, 0.34); +} + +@keyframes statusDotPulse { + 0%, 100% { + opacity: 0.82; + transform: scale(0.9); + } + + 50% { + opacity: 1; + transform: scale(1); + } } .earth-tooltip { diff --git a/frontend/public/earth/css/info-panel.css b/frontend/public/earth/css/info-panel.css index c7629ec5..3ff1096e 100644 --- a/frontend/public/earth/css/info-panel.css +++ b/frontend/public/earth/css/info-panel.css @@ -26,13 +26,23 @@ .hud-panel-brand { --brand-scale: 0.88; --brand-copy-width: 160px; - border-radius: 0; - padding: calc(18px * var(--hud-scale)) calc(20px * var(--hud-scale)); + padding: calc(10px * var(--hud-scale)) calc(4px * var(--hud-scale)) calc(12px * var(--hud-scale)) 0; display: flex; align-items: center; - justify-content: center; + justify-content: flex-start; /* Reserve full panel height before brand images load */ min-height: calc(66px * var(--hud-scale)); + background: transparent; + border: 0; + box-shadow: none; + backdrop-filter: none; + -webkit-backdrop-filter: none; + isolation: isolate; +} + +.hud-panel-brand::before, +.hud-panel-brand::after { + display: none; } .hud-panel-brand .earth-brand { @@ -40,6 +50,20 @@ align-items: center; gap: calc(10px * var(--hud-scale) * var(--brand-scale)); min-width: 0; + position: relative; +} + +.hud-panel-brand .earth-brand::after { + content: ""; + position: absolute; + inset: calc(4px * var(--hud-scale)) calc(-10px * var(--hud-scale)) calc(6px * var(--hud-scale)) calc(-10px * var(--hud-scale)); + background: + radial-gradient(circle at 18% 50%, rgba(145, 186, 255, 0.14), transparent 32%), + linear-gradient(90deg, rgba(145, 186, 255, 0.05), transparent 58%); + opacity: 0.75; + pointer-events: none; + filter: blur(14px); + z-index: -1; } .hud-panel-brand .earth-brand__logo { diff --git a/frontend/public/earth/index.html b/frontend/public/earth/index.html index 50495301..eb076998 100644 --- a/frontend/public/earth/index.html +++ b/frontend/public/earth/index.html @@ -397,12 +397,7 @@
-
-
-
正在初始化全球态势数据...
-
同步卫星、海底光缆、登陆点与BGP态势数据
-
-
+