Wave 0.5: 4K 布局与空态修复(老板验收 15 条,视觉规范 v1.3)
This commit is contained in:
@@ -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 三断点) ---------- */
|
||||
/* 紧凑 960–1199px:导航收起 64px,KPI 2×2,中段上下堆叠,状态网格 2 列 */
|
||||
/* ---------- 响应式(v1.3 §6 四断点) ---------- */
|
||||
/* 紧凑 960–1199px:导航收起 64px,KPI 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 {
|
||||
}
|
||||
}
|
||||
|
||||
/* 标准 1200–1599px:默认样式(完整导航、KPI 一排 4、诊断+快速 2:1、状态网格 3 列) */
|
||||
/* 宽阔 ≥1600px:内容锁 1440 居中,状态网格 4 列 */
|
||||
@media (min-width: 1600px) {
|
||||
.cli-status-grid {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
/* 标准 1200–1919px:默认(完整导航、KPI 一排 4、诊断+快速 2:1、内容区 max 1440 居中)
|
||||
* 宽阔 1920–2559px:内容区 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user