Wave 0.5: 4K 布局与空态修复(老板验收 15 条,视觉规范 v1.3)

This commit is contained in:
AgentDock 施工员
2026-08-25 01:04:14 +08:00
parent 7208586850
commit c47494180b
15 changed files with 560 additions and 206 deletions
+215 -49
View File
@@ -1,6 +1,6 @@
/* ============================================================
* AgentDock 全局样式(Wave 0
* 全部颜色/辉光/动效时长来自 tokens/(视觉规范 v1.2),
* AgentDock 全局样式(Wave 0.5
* 全部颜色/辉光/动效时长来自 tokens/(视觉规范 v1.3),
* 本文件不出现任何魔法色值;布局尺寸来自规范 §3.0/§6。
* ============================================================ */
@@ -12,18 +12,22 @@
}
html,
body,
#root {
body {
height: 100%;
}
#root {
min-height: 100%;
}
body {
font-family: var(--ad-font-ui);
font-size: var(--ad-text-m-size);
line-height: var(--ad-text-m-height);
color: var(--ad-text-1);
background: var(--ad-bg-0);
overflow: hidden;
background: var(--ad-bg-gradient); /* v1.3 §3.0:静态深空渐变,网格已移除 */
overflow-y: auto; /* v1.3 §3.0:主滚动容器 = 窗口,滚动条贴右缘 */
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
@@ -31,25 +35,40 @@ button {
font-family: inherit;
}
/* ---------- 背景网格(§3.0:5% + 边缘羽化,低档静态 ---------- */
.bg-grid {
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
background-image:
linear-gradient(var(--ad-grid-color) 1px, transparent 1px),
linear-gradient(90deg, var(--ad-grid-color) 1px, transparent 1px);
background-size: var(--ad-grid-size) var(--ad-grid-size);
-webkit-mask-image: var(--ad-grid-mask);
mask-image: var(--ad-grid-mask);
/* ---------- 自定义滚动条(v1.3 §2.7:10px、灰蓝滑块、透明轨道、不发光 ---------- */
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: var(--ad-scrollbar-thumb);
border-radius: 5px;
border: 2px solid transparent;
background-clip: padding-box;
min-height: 32px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--ad-scrollbar-thumb-hover);
background-clip: padding-box;
}
/* 标准属性兜底(Firefox 等) */
* {
scrollbar-width: thin;
scrollbar-color: var(--ad-scrollbar-thumb) transparent;
}
/* ---------- 应用外壳 ---------- */
.app-shell {
position: relative;
display: flex;
height: 100%;
min-height: 100vh;
z-index: 1;
}
@@ -60,17 +79,29 @@ button {
flex-direction: column;
}
.app-content {
flex: 1;
overflow-y: auto;
/* 内容区与顶栏内区共用同一宽度体系(v1.3 §3.0:顶栏与内容区右缘对齐) */
.app-content,
.header-inner {
width: 100%;
max-width: 1440px; /* §6 宽阔断点锁宽居中 */
margin: 0 auto;
padding: var(--ad-space-6) var(--ad-space-8);
max-width: var(--ad-frame-max);
margin-left: auto;
margin-right: auto;
padding-left: var(--ad-frame-pad-x);
padding-right: var(--ad-frame-pad-x);
}
/* ---------- 侧边栏(§3.0 ---------- */
.app-content {
flex: 1;
padding-top: var(--ad-space-6);
padding-bottom: var(--ad-space-6);
}
/* ---------- 侧边栏(§3.0:232px 贴左,窗口滚动时保持固定) ---------- */
.sidebar {
position: sticky;
top: 0;
align-self: flex-start;
height: 100vh;
width: 232px;
flex-shrink: 0;
display: flex;
@@ -141,17 +172,23 @@ button {
margin-left: auto;
}
/* ---------- 顶栏(§3.0 ---------- */
/* ---------- 顶栏(§3.0:通栏 56px,内区与内容区同一宽度体系,滚动时吸顶 ---------- */
.header {
position: sticky;
top: 0;
z-index: 10;
height: 56px;
flex-shrink: 0;
background: var(--ad-bg-0);
border-bottom: 1px solid var(--ad-border);
}
.header-inner {
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--ad-space-4);
padding: 0 var(--ad-space-8);
background: var(--ad-bg-0);
border-bottom: 1px solid var(--ad-border);
}
.header-title {
@@ -233,6 +270,8 @@ button {
justify-content: center;
gap: var(--ad-space-2);
height: 36px;
min-width: 96px; /* v1.3 §2.6.1 */
max-width: 360px; /* v1.3 §2.6.1:禁止通栏 */
padding: 0 var(--ad-space-4);
border: 1px solid transparent;
border-radius: var(--ad-radius-s);
@@ -245,7 +284,7 @@ button {
}
.btn:disabled {
opacity: 0.55;
opacity: 0.4; /* v1.3 §3.7:无意义操作置灰 */
cursor: not-allowed;
}
@@ -524,8 +563,12 @@ button {
gap: var(--ad-space-3);
}
/* v1.3 §2.6.1:快速操作组定宽(组宽 = min(内容宽, 360px)),左对齐,不通栏 */
.quick-card .btn {
width: 100%;
width: min(100%, 360px);
justify-content: flex-start;
padding-left: var(--ad-space-4);
padding-right: var(--ad-space-4);
}
.recent-installs {
@@ -592,10 +635,6 @@ button {
color: var(--ad-text-1);
}
.cli-block-version .mono-chip {
color: var(--ad-text-3);
}
.cli-block-auth {
display: flex;
align-items: center;
@@ -604,6 +643,80 @@ button {
font-size: var(--ad-text-xs-size);
}
/* 未安装卡版本位(v1.3 §3.1.4:废止「—」chip,改灰字「未安装」) */
.cli-block-version .version-missing {
color: var(--ad-text-3);
font-size: var(--ad-text-s-size);
}
/* 首跑精简块:安装入口(v1.3 §3.1.5) */
.cli-block-install {
display: flex;
align-items: center;
justify-content: flex-end;
margin-top: var(--ad-space-1);
}
/* ---------- 总览:首跑空态引导区(v1.3 §3.1.5 ---------- */
.onboarding {
display: grid;
grid-template-columns: auto 1fr;
gap: var(--ad-space-6);
align-items: center;
padding: var(--ad-space-6);
background: var(--ad-bg-1);
border: 1px solid var(--ad-border);
border-radius: var(--ad-radius-l);
}
.onboarding-art {
display: flex;
align-items: center;
justify-content: center;
color: var(--ad-border-bright);
}
.onboarding-copy {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--ad-space-3);
}
.onboarding-title {
font-size: var(--ad-text-xl-size);
font-weight: var(--ad-text-xl-weight);
color: var(--ad-text-1);
}
.onboarding-desc {
max-width: 480px;
color: var(--ad-text-2);
font-size: var(--ad-text-m-size);
line-height: 1.6;
}
.onboarding-actions {
display: flex;
align-items: center;
gap: var(--ad-space-3);
margin-top: var(--ad-space-2);
}
/* 诊断空态(v1.3 §3.1.2 / §3.7:无记录不渲染占位行) */
.diag-empty {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--ad-space-3);
padding: var(--ad-space-5) var(--ad-space-2);
}
.diag-empty-text {
color: var(--ad-text-2);
font-size: var(--ad-text-s-size);
}
/* ---------- 总览:本机环境 ---------- */
.env-panel {
margin-top: var(--ad-space-6);
@@ -640,10 +753,11 @@ button {
word-break: break-all;
}
/* 本机环境运行时项(v1.3 §3.1.6:四元组同构,点—名称—版本—行动,行高 28px) */
.runtime-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: var(--ad-space-3);
grid-template-columns: repeat(4, 1fr);
gap: var(--ad-space-4);
align-content: start;
}
@@ -651,17 +765,32 @@ button {
display: flex;
align-items: center;
gap: var(--ad-space-2);
min-height: 28px;
min-width: 0;
}
.runtime-name {
flex: 1;
color: var(--ad-text-2);
color: var(--ad-text-1);
font-size: var(--ad-text-s-size);
white-space: nowrap;
}
.runtime-version {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
min-width: 0;
}
.runtime-missing {
color: var(--ad-warning);
color: var(--ad-text-3);
font-size: var(--ad-text-xs-size);
white-space: nowrap;
}
.runtime-action {
margin-left: auto;
white-space: nowrap;
}
.path-block {
@@ -903,8 +1032,8 @@ button {
}
}
/* ---------- 响应式(§6 断点) ---------- */
/* 紧凑 9601199px:导航收起 64pxKPI 2×2,中段上下堆叠,状态网格 2 列 */
/* ---------- 响应式(v1.3 §6 断点) ---------- */
/* 紧凑 9601199px:导航收起 64pxKPI 2×2,中段上下堆叠 */
@media (max-width: 1199px) {
.sidebar {
width: 64px;
@@ -942,7 +1071,7 @@ button {
grid-template-columns: 1fr;
}
.cli-status-grid {
.runtime-grid {
grid-template-columns: repeat(2, 1fr);
}
@@ -983,11 +1112,48 @@ button {
}
}
/* 标准 12001599px:默认样式(完整导航、KPI 一排 4、诊断+快速 2:1、状态网格 3 列) */
/* 宽阔 ≥1600px:内容锁 1440 居中,状态网格 4 列 */
@media (min-width: 1600px) {
.cli-status-grid {
grid-template-columns: repeat(4, 1fr);
/* 标准 12001919px:默认(完整导航、KPI 一排 4、诊断+快速 2:1、内容区 max 1440 居中)
* 宽阔 19202559px:内容区 max 1760 居中(v1.3 §6
* 超宽 ≥2560px:取消居中锁宽,内容区全宽、边距 48px(v1.3 §6 */
@media (min-width: 1920px) and (max-width: 2559px) {
:root {
--ad-frame-max: 1760px;
}
}
@media (min-width: 2560px) {
:root {
--ad-frame-max: none;
--ad-frame-pad-x: var(--ad-space-12);
}
}
/* 超宽 ≥2560px:中段三栏(诊断 1/2 + 快速操作 1/4 + 本机环境 1/4),本机环境上提 */
@media (min-width: 2560px) {
.overview {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
column-gap: var(--ad-space-4);
row-gap: var(--ad-space-6);
}
.overview .kpi-grid {
grid-column: 1 / -1;
margin-bottom: 0;
}
.overview .overview-mid {
grid-column: 1 / 3;
margin-bottom: 0;
}
.overview .cli-status-panel {
grid-column: 1 / -1;
}
.overview .env-panel {
grid-column: 3;
margin-top: 0;
}
}