@hyzyn/dsh-docker 0.9.5 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +120 -27
- package/README.md +106 -26
- package/client-src/docker.css +326 -160
- package/client-src/index.js +288 -21
- package/client.js +349 -183
- package/lib/docker.d.ts +32 -3
- package/lib/docker.js +43 -7
- package/lib/docker.js.map +1 -1
- package/lib/index.d.ts +49 -0
- package/lib/index.js +390 -10
- package/lib/index.js.map +1 -1
- package/lib/ssh-exec.d.ts +9 -0
- package/lib/ssh-exec.js +149 -16
- package/lib/ssh-exec.js.map +1 -1
- package/package.json +1 -1
- package/scripts/client-smoke.mjs +205 -0
- package/scripts/log-perf.mjs +9 -2
- package/scripts/route-smoke.mjs +73 -4
package/client-src/docker.css
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* - 几何(圆角 / 控件高度 / 间距)统一用 --dk-* 令牌,禁止在规则里写魔法数字;
|
|
8
8
|
* - 三档层级:base(面板底)→ layer-2(栏 / 卡片底)→ layer-3(行 / 输入底);
|
|
9
9
|
* - 交互元素必须有 hover / active / :focus-visible / :disabled 四态;
|
|
10
|
-
* -
|
|
10
|
+
* - 状态色只用在徽章与进度条上,正文保持中性,避免彩色噪音;
|
|
11
|
+
* - 文字角色对齐宿主设置类组件:font-size 一律配官方成对行高(11/16 · 12/18 · 13/20 · 14/20 · 16/24),
|
|
12
|
+
* 字重只用 400/500/600——标题与行名 500、强调(弹窗标题 / 选中态 / 告警)600,不用 700。
|
|
11
13
|
*
|
|
12
14
|
* 由 scripts/build-client.mjs 以 text loader 内联进 client.js。
|
|
13
15
|
*/
|
|
@@ -20,11 +22,13 @@
|
|
|
20
22
|
* 完成替换;只在 :root 声明会永远拿到浅色值。
|
|
21
23
|
*/
|
|
22
24
|
:where(html, body) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
--dk-r-
|
|
26
|
-
--dk-r-
|
|
27
|
-
--dk-r-
|
|
25
|
+
/* 圆角对齐官方六档(docs/ui-radius.zh.md):私有名只做宿主令牌的中转,
|
|
26
|
+
不自造 6/8/10/12 这套「整体偏紧一格」的平行尺度。 */
|
|
27
|
+
--dk-r-xs: var(--dsw-radius-xs, 4px);
|
|
28
|
+
--dk-r-sm: var(--dsw-radius-sm, 8px);
|
|
29
|
+
--dk-r-md: var(--dsw-radius-md, 12px);
|
|
30
|
+
--dk-r-lg: var(--dsw-radius-lg, 16px);
|
|
31
|
+
--dk-r-xl: var(--dsw-radius-xl, 20px);
|
|
28
32
|
--dk-r-pill: 999px;
|
|
29
33
|
--dk-h-sm: 24px;
|
|
30
34
|
--dk-h-md: 28px;
|
|
@@ -36,31 +40,54 @@
|
|
|
36
40
|
--dk-gap-xl: 16px;
|
|
37
41
|
/* 设置卡片标题行内边距:对齐 DSH 内置卡片 / 其他插件卡片(pM_pluginCard、tt_card) */
|
|
38
42
|
--dk-pad-cardHead: 14px 16px;
|
|
39
|
-
|
|
43
|
+
/* 等宽字体走宿主契约变量(--ds-font-family-code,主题所有);宿主不在时退回本包原栈。 */
|
|
44
|
+
--dk-mono: var(--ds-font-family-code, "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace);
|
|
40
45
|
--dk-ease: cubic-bezier(.2, .8, .2, 1);
|
|
41
46
|
--dk-dur: .16s;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
--dk-
|
|
47
|
-
--dk-
|
|
48
|
-
--dk-
|
|
49
|
-
--dk-
|
|
50
|
-
--dk-
|
|
51
|
-
|
|
47
|
+
/* 颜色一律只引用宿主主题令牌(--dsw-*),**不带颜色字面量兜底**:兜底只在取不到值时
|
|
48
|
+
生效,而这些令牌是存在的——所以它平时永远测不到,只会在宿主改名后安静地顶上一份
|
|
49
|
+
与主题不同的颜色。本包没有 preview harness,脱离宿主时的配色由 dev 环境的假主题
|
|
50
|
+
负责,生产 CSS 只引用主题令牌。 */
|
|
51
|
+
--dk-accent: var(--dsw-alias-state-business-primary);
|
|
52
|
+
--dk-danger: var(--dsw-alias-state-error-primary);
|
|
53
|
+
--dk-success: var(--dsw-alias-state-success-primary);
|
|
54
|
+
--dk-warn: var(--dsw-alias-state-warn-primary);
|
|
55
|
+
--dk-border: var(--dsw-alias-border-l1);
|
|
56
|
+
/* 域调色板:日志级别色(.dk_logLevel[data-level])与终端仿真色是终端语义色,不属于
|
|
57
|
+
主题色板——它们**只在本定义位登记一次**(见下方 --dk-log-*),规则体一律 var() 读。 */
|
|
58
|
+
--dk-border-strong: var(--dsw-alias-border-l2);
|
|
59
|
+
--dk-hover: var(--dsw-alias-interactive-bg-hover);
|
|
60
|
+
--dk-hover-solid: var(--dsw-alias-interactive-bg-hover-solid);
|
|
61
|
+
--dk-label: var(--dsw-alias-label-primary);
|
|
62
|
+
--dk-label-2: var(--dsw-alias-label-secondary);
|
|
52
63
|
--dk-label-dimmed: var(--dsw-alias-label-dimmed, var(--dk-label-3));
|
|
53
|
-
--dk-label-3: var(--dsw-alias-label-tertiary
|
|
54
|
-
--dk-surface: var(--dsw-alias-bg-base
|
|
55
|
-
--dk-surface-solid: var(--dsw-alias-bg-layer-2
|
|
56
|
-
--dk-surface-2: var(--dsw-alias-bg-layer-2
|
|
57
|
-
--dk-surface-3: var(--dsw-alias-bg-layer-3
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
--dk-label-3: var(--dsw-alias-label-tertiary);
|
|
65
|
+
--dk-surface: var(--dsw-alias-bg-base);
|
|
66
|
+
--dk-surface-solid: var(--dsw-alias-bg-layer-2);
|
|
67
|
+
--dk-surface-2: var(--dsw-alias-bg-layer-2);
|
|
68
|
+
--dk-surface-3: var(--dsw-alias-bg-layer-3);
|
|
69
|
+
/* 设置卡片材质:与宿主 base.css 的权威卡片同源(settings-account / plugin-inventory /
|
|
70
|
+
agent-preset 三处逐字相同:`.5px solid settings-card-stroke` + radius-xl + settings-card-fill)。
|
|
71
|
+
只做宿主令牌的中转,不自带脱离宿主时的兜底配色(同上:兜底由 dev 假主题负责)。 */
|
|
72
|
+
--dk-surface-card: var(--dsw-alias-settings-card-fill);
|
|
73
|
+
--dk-stroke-card: var(--dsw-alias-settings-card-stroke);
|
|
74
|
+
--dk-input: var(--dsw-specific-input-major);
|
|
75
|
+
/* elevation 一律取宿主的三档权威令牌,本包不自造阴影配方(自造的那份是第二份 elevation
|
|
76
|
+
权威,会和主题的层级语言对不上):
|
|
77
|
+
-panel 浮层:卡片悬停 / 菜单 / toast(本包默认浮起档)
|
|
78
|
+
-prominent 更高一层:对话框 / 悬浮按钮
|
|
79
|
+
-soft 柔光:选中态(规则里直接写 var(--dsw-elevation-soft))。 */
|
|
80
|
+
--dk-shadow: var(--dsw-elevation-panel);
|
|
81
|
+
--dk-shadow-lg: var(--dsw-elevation-prominent);
|
|
61
82
|
--dk-ring: 0 0 0 2px color-mix(in srgb, var(--dk-accent) 42%, transparent);
|
|
62
83
|
--dk-log-bg: #0b0e14;
|
|
63
84
|
--dk-log-fg: #d7dce5;
|
|
85
|
+
--dk-log-trace: #8a93a5;
|
|
86
|
+
--dk-log-debug: #8a93a5;
|
|
87
|
+
--dk-log-info: #6ea8fe;
|
|
88
|
+
--dk-log-warn: #e0a94a;
|
|
89
|
+
--dk-log-error: #ff6b6b;
|
|
90
|
+
--dk-log-ts: #7f8899;
|
|
64
91
|
}
|
|
65
92
|
|
|
66
93
|
/* ============================ 通用 ============================ */
|
|
@@ -108,6 +135,7 @@
|
|
|
108
135
|
border-radius: var(--dk-r-md);
|
|
109
136
|
color: var(--dk-label-2);
|
|
110
137
|
font-size: 13px;
|
|
138
|
+
line-height: 20px;
|
|
111
139
|
white-space: nowrap;
|
|
112
140
|
cursor: pointer;
|
|
113
141
|
user-select: none;
|
|
@@ -165,6 +193,7 @@
|
|
|
165
193
|
align-items: center;
|
|
166
194
|
gap: var(--dk-gap-xs);
|
|
167
195
|
font-size: 11px;
|
|
196
|
+
line-height: 16px;
|
|
168
197
|
color: var(--dk-label-3);
|
|
169
198
|
font-variant-numeric: tabular-nums;
|
|
170
199
|
}
|
|
@@ -173,6 +202,7 @@
|
|
|
173
202
|
width: 6px;
|
|
174
203
|
height: 6px;
|
|
175
204
|
border-radius: var(--dk-r-pill);
|
|
205
|
+
corner-shape: round;
|
|
176
206
|
background: var(--dk-label-3);
|
|
177
207
|
}
|
|
178
208
|
|
|
@@ -190,7 +220,8 @@
|
|
|
190
220
|
align-items: center;
|
|
191
221
|
justify-content: center;
|
|
192
222
|
padding: clamp(8px, 3vh, 32px);
|
|
193
|
-
|
|
223
|
+
/* 宿主权威遮罩(浅 24% / 深 50%);原来的固定 42% 浅色下更深、深色下更浅 */
|
|
224
|
+
background: var(--dsw-alias-bg-mask-1);
|
|
194
225
|
backdrop-filter: blur(2px);
|
|
195
226
|
animation: dk_fade var(--dk-dur) var(--dk-ease);
|
|
196
227
|
}
|
|
@@ -207,13 +238,13 @@
|
|
|
207
238
|
height: min(820px, 100%);
|
|
208
239
|
min-height: 420px;
|
|
209
240
|
overflow: hidden;
|
|
210
|
-
border:
|
|
241
|
+
border: 0;
|
|
211
242
|
border-radius: var(--dk-r-xl);
|
|
212
243
|
background: var(--dk-surface-solid);
|
|
213
244
|
color: var(--dk-label);
|
|
214
|
-
box-shadow: var(--
|
|
245
|
+
box-shadow: var(--dsw-elevation-prominent);
|
|
215
246
|
font-size: 13px;
|
|
216
|
-
line-height:
|
|
247
|
+
line-height: 20px;
|
|
217
248
|
}
|
|
218
249
|
|
|
219
250
|
/*
|
|
@@ -240,7 +271,7 @@
|
|
|
240
271
|
flex-direction: column;
|
|
241
272
|
height: min(46%, 380px);
|
|
242
273
|
min-height: 180px;
|
|
243
|
-
border-top:
|
|
274
|
+
border-top: 0.5px solid var(--dk-border-strong);
|
|
244
275
|
background: var(--dk-surface-2);
|
|
245
276
|
animation: dk_drawerIn var(--dk-dur) var(--dk-ease);
|
|
246
277
|
}
|
|
@@ -285,7 +316,7 @@
|
|
|
285
316
|
flex: 0 0 auto;
|
|
286
317
|
min-height: 34px;
|
|
287
318
|
padding: var(--dk-gap-xs) var(--dk-gap-lg);
|
|
288
|
-
border-bottom:
|
|
319
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
289
320
|
}
|
|
290
321
|
|
|
291
322
|
.dk_drawerIcon {
|
|
@@ -297,7 +328,8 @@
|
|
|
297
328
|
.dk_drawerTitle {
|
|
298
329
|
min-width: 0;
|
|
299
330
|
font-size: 12px;
|
|
300
|
-
|
|
331
|
+
line-height: 18px;
|
|
332
|
+
font-weight: 500;
|
|
301
333
|
white-space: nowrap;
|
|
302
334
|
overflow: hidden;
|
|
303
335
|
text-overflow: ellipsis;
|
|
@@ -306,7 +338,8 @@
|
|
|
306
338
|
.dk_drawerHint {
|
|
307
339
|
flex: none;
|
|
308
340
|
color: var(--dk-label-3);
|
|
309
|
-
font-size:
|
|
341
|
+
font-size: 12px;
|
|
342
|
+
line-height: 18px;
|
|
310
343
|
white-space: nowrap;
|
|
311
344
|
}
|
|
312
345
|
|
|
@@ -326,7 +359,7 @@
|
|
|
326
359
|
flex-wrap: wrap;
|
|
327
360
|
min-height: 44px;
|
|
328
361
|
padding: var(--dk-gap-sm) var(--dk-gap-lg);
|
|
329
|
-
border-bottom:
|
|
362
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
330
363
|
background: var(--dk-surface-2);
|
|
331
364
|
}
|
|
332
365
|
|
|
@@ -348,7 +381,8 @@
|
|
|
348
381
|
|
|
349
382
|
.dk_title {
|
|
350
383
|
font-size: 13px;
|
|
351
|
-
|
|
384
|
+
line-height: 20px;
|
|
385
|
+
font-weight: 500;
|
|
352
386
|
letter-spacing: .2px;
|
|
353
387
|
}
|
|
354
388
|
|
|
@@ -369,9 +403,12 @@
|
|
|
369
403
|
transition: background var(--dk-dur) var(--dk-ease), color var(--dk-dur) var(--dk-ease), opacity var(--dk-dur) var(--dk-ease);
|
|
370
404
|
}
|
|
371
405
|
|
|
372
|
-
.dk_iconBtn:hover { background: var(--
|
|
373
|
-
|
|
374
|
-
.dk_iconBtn:disabled {
|
|
406
|
+
.dk_iconBtn:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); color: var(--dk-label); }
|
|
407
|
+
/* 图标按钮也补按下态:与描边/填充按钮同一套 active 语言(官方 interactive-bg-active) */
|
|
408
|
+
.dk_iconBtn:active:not(:disabled) { background: var(--dsw-alias-interactive-bg-active); }
|
|
409
|
+
/* 焦点环换成宿主官方那条 outline(同 .dk_btn),不再用私有 --dk-ring */
|
|
410
|
+
.dk_iconBtn:focus-visible { outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary)); }
|
|
411
|
+
.dk_iconBtn:disabled { opacity: .4; cursor: not-allowed; }
|
|
375
412
|
|
|
376
413
|
/*
|
|
377
414
|
* 刷新中的图标自己转(data-spin 由各处的 refresh 按钮按 loading 打):
|
|
@@ -389,7 +426,7 @@
|
|
|
389
426
|
flex: 0 0 auto;
|
|
390
427
|
flex-wrap: wrap;
|
|
391
428
|
padding: var(--dk-gap-md) var(--dk-gap-lg);
|
|
392
|
-
border-bottom:
|
|
429
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
393
430
|
}
|
|
394
431
|
|
|
395
432
|
/*
|
|
@@ -408,11 +445,13 @@
|
|
|
408
445
|
.dk_input {
|
|
409
446
|
height: var(--dk-h-lg);
|
|
410
447
|
padding: 0 var(--dk-gap-md);
|
|
411
|
-
border:
|
|
412
|
-
|
|
448
|
+
border: 0.5px solid var(--dk-border-strong);
|
|
449
|
+
/* H32 标准控件 → R12(官方 ui-radius 组件尺寸映射) */
|
|
450
|
+
border-radius: var(--dk-r-md);
|
|
413
451
|
background: var(--dk-input);
|
|
414
452
|
color: var(--dk-label);
|
|
415
453
|
font-size: 13px;
|
|
454
|
+
line-height: 20px;
|
|
416
455
|
font-family: inherit;
|
|
417
456
|
transition: border-color var(--dk-dur) var(--dk-ease), box-shadow var(--dk-dur) var(--dk-ease);
|
|
418
457
|
}
|
|
@@ -443,7 +482,7 @@
|
|
|
443
482
|
.dk_seg {
|
|
444
483
|
display: inline-flex;
|
|
445
484
|
padding: 2px;
|
|
446
|
-
border:
|
|
485
|
+
border: 0.5px solid var(--dk-border);
|
|
447
486
|
border-radius: var(--dk-r-md);
|
|
448
487
|
background: var(--dk-surface-2);
|
|
449
488
|
/*
|
|
@@ -468,6 +507,8 @@
|
|
|
468
507
|
background: transparent;
|
|
469
508
|
color: var(--dk-label-2);
|
|
470
509
|
font-size: 12px;
|
|
510
|
+
/* 官方规范:字号必须与行高配对。分段按钮不是 Button 变体、尺寸不动,只补上配对的 18px */
|
|
511
|
+
line-height: 18px;
|
|
471
512
|
font-family: inherit;
|
|
472
513
|
cursor: pointer;
|
|
473
514
|
transition: background var(--dk-dur) var(--dk-ease), color var(--dk-dur) var(--dk-ease);
|
|
@@ -487,7 +528,7 @@
|
|
|
487
528
|
background: color-mix(in srgb, var(--dk-accent) 18%, transparent);
|
|
488
529
|
color: var(--dk-label);
|
|
489
530
|
font-weight: 600;
|
|
490
|
-
box-shadow:
|
|
531
|
+
box-shadow: var(--dsw-elevation-soft);
|
|
491
532
|
}
|
|
492
533
|
|
|
493
534
|
.dk_check {
|
|
@@ -495,15 +536,35 @@
|
|
|
495
536
|
align-items: center;
|
|
496
537
|
gap: var(--dk-gap-sm);
|
|
497
538
|
font-size: 12px;
|
|
539
|
+
line-height: 18px;
|
|
498
540
|
color: var(--dk-label-2);
|
|
499
541
|
cursor: pointer;
|
|
500
542
|
user-select: none;
|
|
501
543
|
}
|
|
502
544
|
|
|
503
|
-
|
|
504
|
-
|
|
545
|
+
/*
|
|
546
|
+
* 复选框的「选中态」走宿主的中性 brand,不走 --dk-accent。
|
|
547
|
+
* 宿主 dsh-client-ui-primitives/lib/Checkbox.module.css 是 16×16 +
|
|
548
|
+
* `accent-color: var(--dsw-alias-brand-primary)`(浅色近黑、深色近白);--dk-accent 是本包的
|
|
549
|
+
* **强调蓝**(business-primary #4176e6),它给状态与徽标用——宿主 Switch 的开启态同样是
|
|
550
|
+
* brand-primary。两个复选框共用一条规则,免得漂成两套(判据见 client-style-spec 检查十四)。
|
|
551
|
+
* cursor 要单独写:复选框的 cursor 不随 label 继承(UA 样式)。
|
|
552
|
+
*/
|
|
505
553
|
.dk_check input[type="checkbox"],
|
|
506
|
-
.dk_capRow input[type="checkbox"] {
|
|
554
|
+
.dk_capRow input[type="checkbox"] {
|
|
555
|
+
width: 16px;
|
|
556
|
+
height: 16px;
|
|
557
|
+
margin: 0;
|
|
558
|
+
flex: none;
|
|
559
|
+
cursor: pointer;
|
|
560
|
+
accent-color: var(--dsw-alias-brand-primary);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
.dk_check input[type="checkbox"]:focus-visible,
|
|
564
|
+
.dk_capRow input[type="checkbox"]:focus-visible {
|
|
565
|
+
outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));
|
|
566
|
+
outline-offset: 2px;
|
|
567
|
+
}
|
|
507
568
|
|
|
508
569
|
/*
|
|
509
570
|
* 工具条末尾的两个开关(含已停止 / 自动刷新)成组:它们是一个「开关簇」,工具条在宽面板里
|
|
@@ -518,39 +579,55 @@
|
|
|
518
579
|
|
|
519
580
|
/* ============================ 按钮 ============================ */
|
|
520
581
|
|
|
582
|
+
/*
|
|
583
|
+
* 描边按钮 = 宿主 Button variant="outline" size="sm"。本包控件都是 H28 档,
|
|
584
|
+
* 故取官方 sm 尺(H28 / R8 / 12px / 18px / padding 0 10px);几何声明与下面的
|
|
585
|
+
* .dk_btnPrimary / .dk_btnDanger 逐项一致——官方要求各变体保持同尺寸同圆角。
|
|
586
|
+
*/
|
|
521
587
|
.dk_btn {
|
|
588
|
+
box-sizing: border-box;
|
|
522
589
|
display: inline-flex;
|
|
523
590
|
align-items: center;
|
|
524
591
|
justify-content: center;
|
|
525
|
-
gap:
|
|
526
|
-
height:
|
|
527
|
-
padding: 0
|
|
528
|
-
border:
|
|
529
|
-
border-radius: var(--
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
592
|
+
gap: 4px;
|
|
593
|
+
height: 28px;
|
|
594
|
+
padding: 0 10px;
|
|
595
|
+
border: 0.5px solid var(--dsw-alias-border-l3);
|
|
596
|
+
border-radius: var(--dsw-radius-sm);
|
|
597
|
+
/* 官方 Button variant="outline":transparent 底。实心底(--dk-surface-solid)会让
|
|
598
|
+
按钮在 --dk-surface-2 的行底上变成不透明白块——与官方「卸载」按钮观感对不上。 */
|
|
599
|
+
background: transparent;
|
|
600
|
+
color: var(--dsw-alias-label-primary);
|
|
533
601
|
font-family: inherit;
|
|
534
|
-
|
|
602
|
+
font-size: 12px;
|
|
603
|
+
line-height: 18px;
|
|
535
604
|
white-space: nowrap;
|
|
605
|
+
cursor: pointer;
|
|
536
606
|
transition: background var(--dk-dur) var(--dk-ease), border-color var(--dk-dur) var(--dk-ease), color var(--dk-dur) var(--dk-ease);
|
|
537
607
|
}
|
|
538
608
|
|
|
539
|
-
.dk_btn:hover { background: var(--
|
|
540
|
-
|
|
541
|
-
.dk_btn:
|
|
542
|
-
|
|
609
|
+
.dk_btn:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); }
|
|
610
|
+
/* 官方 ghost 的按下态:active 用 interactive-bg-active,不是 hover-solid(那是更深的悬停灰) */
|
|
611
|
+
.dk_btn:active:not(:disabled) { background: var(--dsw-alias-interactive-bg-active); }
|
|
612
|
+
/*
|
|
613
|
+
* 焦点环不自造:宿主 51 处组件用的就是这条 outline。私有 --dk-ring(outline:none + box-shadow)
|
|
614
|
+
* 会把宿主全局的 :focus-visible 一并顶掉,键盘用户就没有官方那圈环了。
|
|
615
|
+
*/
|
|
616
|
+
.dk_btn:focus-visible { outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary)); }
|
|
617
|
+
.dk_btn:disabled { opacity: .4; cursor: not-allowed; }
|
|
543
618
|
|
|
544
619
|
.dk_btnPrimary {
|
|
545
620
|
border-color: transparent;
|
|
546
|
-
background: var(--
|
|
547
|
-
color:
|
|
621
|
+
background: var(--dsw-alias-button-primary-fill);
|
|
622
|
+
color: var(--dsw-alias-label-primary-foreground);
|
|
548
623
|
}
|
|
549
624
|
|
|
550
|
-
.
|
|
625
|
+
/* 基线 .dk_btn:hover / :active 带 :not(:disabled)(权重同为 (0,3,0)),靠这里更靠后取胜 */
|
|
626
|
+
.dk_btnPrimary:hover:not(:disabled) { background: var(--dsw-alias-button-primary-hover); }
|
|
551
627
|
|
|
552
|
-
.dk_btnDanger { border-color: color-mix(in srgb, var(--dk-danger)
|
|
553
|
-
|
|
628
|
+
.dk_btnDanger { border-color: color-mix(in srgb, var(--dk-danger) 30%, transparent); color: var(--dk-danger); } /* 官方 danger 是 30% 红描边 */
|
|
629
|
+
/* 选择器补 :not(:disabled) 只为跟上基线 .dk_btn:hover 的权重(否则红色 hover 会被灰色盖掉);声明未动 */
|
|
630
|
+
.dk_btnDanger:hover:not(:disabled) { background: color-mix(in srgb, var(--dk-danger) 8%, transparent); } /* 官方把 hover 底重绑成 8% 红 */
|
|
554
631
|
|
|
555
632
|
/* ============================ 主体 / 容器卡片 ============================ */
|
|
556
633
|
|
|
@@ -641,10 +718,12 @@
|
|
|
641
718
|
padding: 4px var(--dk-gap-lg);
|
|
642
719
|
border: 1px solid color-mix(in srgb, var(--dk-accent) 42%, transparent);
|
|
643
720
|
border-radius: var(--dk-r-pill);
|
|
721
|
+
corner-shape: round;
|
|
644
722
|
background: color-mix(in srgb, var(--dk-accent) 12%, var(--dk-surface-solid));
|
|
645
723
|
backdrop-filter: blur(6px);
|
|
646
|
-
box-shadow:
|
|
724
|
+
box-shadow: var(--dsw-elevation-panel);
|
|
647
725
|
font-size: 12px;
|
|
726
|
+
line-height: 18px;
|
|
648
727
|
color: var(--dk-accent);
|
|
649
728
|
}
|
|
650
729
|
|
|
@@ -687,7 +766,7 @@
|
|
|
687
766
|
flex-direction: column;
|
|
688
767
|
gap: var(--dk-gap-sm);
|
|
689
768
|
padding: var(--dk-gap-lg);
|
|
690
|
-
border:
|
|
769
|
+
border: 0.5px solid var(--dk-border);
|
|
691
770
|
border-radius: var(--dk-r-lg);
|
|
692
771
|
background: var(--dk-surface-solid);
|
|
693
772
|
cursor: pointer;
|
|
@@ -717,7 +796,8 @@
|
|
|
717
796
|
flex: 1 1 auto;
|
|
718
797
|
min-width: 0;
|
|
719
798
|
font-size: 13px;
|
|
720
|
-
|
|
799
|
+
line-height: 20px;
|
|
800
|
+
font-weight: 500;
|
|
721
801
|
overflow: hidden;
|
|
722
802
|
text-overflow: ellipsis;
|
|
723
803
|
white-space: nowrap;
|
|
@@ -736,6 +816,7 @@
|
|
|
736
816
|
gap: var(--dk-gap-md);
|
|
737
817
|
align-items: baseline;
|
|
738
818
|
font-size: 12px;
|
|
819
|
+
line-height: 18px;
|
|
739
820
|
}
|
|
740
821
|
|
|
741
822
|
.dk_cardLabel {
|
|
@@ -756,16 +837,17 @@
|
|
|
756
837
|
gap: var(--dk-gap-xs);
|
|
757
838
|
margin-top: var(--dk-gap-sm);
|
|
758
839
|
padding-top: var(--dk-gap-sm);
|
|
759
|
-
border-top:
|
|
840
|
+
border-top: 0.5px solid var(--dk-border);
|
|
760
841
|
}
|
|
761
842
|
|
|
762
843
|
.dk_actionBar .dk_iconBtn {
|
|
763
|
-
|
|
844
|
+
/* 描边走官方 .outline 用的 --dsw-alias-border-l3,与它旁边的 .dk_btn 同一条线;尺寸维持不变 */
|
|
845
|
+
border: 0.5px solid var(--dsw-alias-border-l3);
|
|
764
846
|
background: var(--dk-surface-2);
|
|
765
847
|
}
|
|
766
848
|
|
|
767
849
|
.dk_actionBar .dk_iconBtn:hover:not(:disabled) {
|
|
768
|
-
background: var(--
|
|
850
|
+
background: var(--dsw-alias-interactive-bg-hover);
|
|
769
851
|
color: var(--dk-label);
|
|
770
852
|
}
|
|
771
853
|
|
|
@@ -796,11 +878,12 @@
|
|
|
796
878
|
height: 20px;
|
|
797
879
|
padding: 0 var(--dk-gap-sm);
|
|
798
880
|
border-radius: var(--dk-r-pill);
|
|
799
|
-
|
|
881
|
+
corner-shape: round;
|
|
882
|
+
border: 0.5px solid var(--dk-border-strong);
|
|
800
883
|
background: var(--dk-surface-2);
|
|
801
884
|
color: var(--dk-label-2);
|
|
802
885
|
font-size: 11px;
|
|
803
|
-
line-height:
|
|
886
|
+
line-height: 16px;
|
|
804
887
|
white-space: nowrap;
|
|
805
888
|
/* 启停后状态徽标会从「运行中」翻到「已停止」:给个过渡,别硬切 */
|
|
806
889
|
transition: background-color var(--dk-dur) var(--dk-ease), border-color var(--dk-dur) var(--dk-ease), color var(--dk-dur) var(--dk-ease);
|
|
@@ -811,6 +894,7 @@
|
|
|
811
894
|
width: 6px;
|
|
812
895
|
height: 6px;
|
|
813
896
|
border-radius: var(--dk-r-pill);
|
|
897
|
+
corner-shape: round;
|
|
814
898
|
background: currentColor;
|
|
815
899
|
opacity: .8;
|
|
816
900
|
}
|
|
@@ -833,6 +917,7 @@
|
|
|
833
917
|
background: var(--dk-surface-3);
|
|
834
918
|
color: var(--dk-label-2);
|
|
835
919
|
font-size: 11px;
|
|
920
|
+
line-height: 16px;
|
|
836
921
|
}
|
|
837
922
|
|
|
838
923
|
/* 需关注原因徽标(总览异常表) */
|
|
@@ -847,6 +932,7 @@
|
|
|
847
932
|
background: var(--dk-surface-3);
|
|
848
933
|
color: var(--dk-label-2);
|
|
849
934
|
font-size: 11px;
|
|
935
|
+
line-height: 16px;
|
|
850
936
|
white-space: nowrap;
|
|
851
937
|
}
|
|
852
938
|
|
|
@@ -870,7 +956,8 @@
|
|
|
870
956
|
.dk_detailTitle {
|
|
871
957
|
min-width: 0;
|
|
872
958
|
font-size: 13px;
|
|
873
|
-
|
|
959
|
+
line-height: 20px;
|
|
960
|
+
font-weight: 500;
|
|
874
961
|
overflow: hidden;
|
|
875
962
|
text-overflow: ellipsis;
|
|
876
963
|
white-space: nowrap;
|
|
@@ -879,7 +966,8 @@
|
|
|
879
966
|
.dk_detailSub {
|
|
880
967
|
flex: none;
|
|
881
968
|
color: var(--dk-label-3);
|
|
882
|
-
font-size:
|
|
969
|
+
font-size: 12px;
|
|
970
|
+
line-height: 18px;
|
|
883
971
|
font-family: var(--dk-mono);
|
|
884
972
|
}
|
|
885
973
|
|
|
@@ -890,7 +978,7 @@
|
|
|
890
978
|
flex: 0 0 auto;
|
|
891
979
|
flex-wrap: wrap; /* 窄面板下过滤行换行,而不是把右侧控件裁掉(D60) */
|
|
892
980
|
padding: 0 var(--dk-gap-lg);
|
|
893
|
-
border-bottom:
|
|
981
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
894
982
|
}
|
|
895
983
|
|
|
896
984
|
.dk_filterBar {
|
|
@@ -923,6 +1011,7 @@
|
|
|
923
1011
|
background: transparent;
|
|
924
1012
|
color: var(--dk-label-2);
|
|
925
1013
|
font-size: 12px;
|
|
1014
|
+
line-height: 18px;
|
|
926
1015
|
font-family: inherit;
|
|
927
1016
|
cursor: pointer;
|
|
928
1017
|
}
|
|
@@ -953,22 +1042,25 @@
|
|
|
953
1042
|
|
|
954
1043
|
.dk_toolLabel {
|
|
955
1044
|
color: var(--dk-label-3);
|
|
956
|
-
font-size:
|
|
957
|
-
|
|
1045
|
+
font-size: 12px;
|
|
1046
|
+
line-height: 18px;
|
|
1047
|
+
font-weight: 500;
|
|
958
1048
|
letter-spacing: .4px;
|
|
959
1049
|
}
|
|
960
1050
|
|
|
961
|
-
.dk_selectSm { height: var(--dk-h-md); padding: 0 var(--dk-gap-sm); font-size: 12px; }
|
|
1051
|
+
.dk_selectSm { height: var(--dk-h-md); padding: 0 var(--dk-gap-sm); font-size: 12px; line-height: 18px; }
|
|
962
1052
|
|
|
963
1053
|
.dk_pill {
|
|
964
1054
|
min-width: 44px;
|
|
965
1055
|
height: var(--dk-h-md);
|
|
966
1056
|
padding: 0 var(--dk-gap-md);
|
|
967
|
-
border:
|
|
1057
|
+
border: 0.5px solid var(--dk-border-strong);
|
|
968
1058
|
border-radius: var(--dk-r-pill);
|
|
1059
|
+
corner-shape: round;
|
|
969
1060
|
background: var(--dk-surface-2);
|
|
970
1061
|
color: var(--dk-label-3);
|
|
971
1062
|
font-size: 12px;
|
|
1063
|
+
line-height: 18px;
|
|
972
1064
|
font-family: inherit;
|
|
973
1065
|
cursor: pointer;
|
|
974
1066
|
transition: background var(--dk-dur) var(--dk-ease), color var(--dk-dur) var(--dk-ease), border-color var(--dk-dur) var(--dk-ease);
|
|
@@ -1004,6 +1096,7 @@
|
|
|
1004
1096
|
cursor: not-allowed;
|
|
1005
1097
|
}
|
|
1006
1098
|
|
|
1099
|
+
/*
|
|
1007
1100
|
.dk_pill:disabled:hover { background: var(--dk-surface-2); }
|
|
1008
1101
|
|
|
1009
1102
|
/* FOLLOW 连接状态行:小圆点 + 文案(连接错误只在这里表达,不弹横幅刷屏) */
|
|
@@ -1013,10 +1106,11 @@
|
|
|
1013
1106
|
gap: var(--dk-gap-sm);
|
|
1014
1107
|
flex: 0 0 auto;
|
|
1015
1108
|
padding: var(--dk-gap-xs) var(--dk-gap-lg);
|
|
1016
|
-
border-bottom:
|
|
1109
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
1017
1110
|
background: var(--dk-surface-2);
|
|
1018
1111
|
color: var(--dk-label-3);
|
|
1019
|
-
font-size:
|
|
1112
|
+
font-size: 12px;
|
|
1113
|
+
line-height: 18px;
|
|
1020
1114
|
}
|
|
1021
1115
|
|
|
1022
1116
|
.dk_followState::before {
|
|
@@ -1024,6 +1118,7 @@
|
|
|
1024
1118
|
width: 6px;
|
|
1025
1119
|
height: 6px;
|
|
1026
1120
|
border-radius: 50%;
|
|
1121
|
+
corner-shape: round;
|
|
1027
1122
|
background: var(--dk-label-3);
|
|
1028
1123
|
}
|
|
1029
1124
|
|
|
@@ -1040,14 +1135,16 @@
|
|
|
1040
1135
|
z-index: 2;
|
|
1041
1136
|
height: var(--dk-h-md);
|
|
1042
1137
|
padding: 0 var(--dk-gap-md);
|
|
1043
|
-
border:
|
|
1138
|
+
border: 0;
|
|
1044
1139
|
border-radius: var(--dk-r-pill);
|
|
1140
|
+
corner-shape: round;
|
|
1045
1141
|
background: var(--dk-surface-2);
|
|
1046
1142
|
color: var(--dk-label);
|
|
1047
|
-
font-size:
|
|
1143
|
+
font-size: 12px;
|
|
1144
|
+
line-height: 18px;
|
|
1048
1145
|
font-family: inherit;
|
|
1049
1146
|
cursor: pointer;
|
|
1050
|
-
box-shadow:
|
|
1147
|
+
box-shadow: var(--dsw-elevation-prominent);
|
|
1051
1148
|
}
|
|
1052
1149
|
|
|
1053
1150
|
.dk_backToBottom:hover { background: var(--dk-hover-solid); }
|
|
@@ -1100,7 +1197,8 @@
|
|
|
1100
1197
|
transform: translateY(-50%);
|
|
1101
1198
|
white-space: nowrap;
|
|
1102
1199
|
color: var(--dk-label-3);
|
|
1103
|
-
font-size:
|
|
1200
|
+
font-size: 12px;
|
|
1201
|
+
line-height: 18px;
|
|
1104
1202
|
font-variant-numeric: tabular-nums;
|
|
1105
1203
|
}
|
|
1106
1204
|
|
|
@@ -1113,7 +1211,7 @@
|
|
|
1113
1211
|
color: var(--dk-log-fg);
|
|
1114
1212
|
font-family: var(--dk-mono);
|
|
1115
1213
|
font-size: 12px;
|
|
1116
|
-
line-height:
|
|
1214
|
+
line-height: 18px;
|
|
1117
1215
|
/*
|
|
1118
1216
|
* 关掉浏览器的滚动锚定(D152):窗口化会把垫高与行**成批地换掉**,Chrome 的锚定
|
|
1119
1217
|
* 会挑一个节点把 scrollTop 拽回去,跟「贴底钉住 / 锚点修正」互相打架——表现就是
|
|
@@ -1148,7 +1246,7 @@
|
|
|
1148
1246
|
.dk_logLine mark {
|
|
1149
1247
|
background: color-mix(in srgb, var(--dk-warn) 62%, transparent);
|
|
1150
1248
|
color: inherit;
|
|
1151
|
-
border-radius:
|
|
1249
|
+
border-radius: var(--dsw-radius-xs);
|
|
1152
1250
|
}
|
|
1153
1251
|
|
|
1154
1252
|
/*
|
|
@@ -1167,16 +1265,17 @@
|
|
|
1167
1265
|
font-weight: 600;
|
|
1168
1266
|
}
|
|
1169
1267
|
|
|
1170
|
-
|
|
1171
|
-
.dk_logLevel[data-level="
|
|
1172
|
-
.dk_logLevel[data-level="
|
|
1173
|
-
.dk_logLevel[data-level="
|
|
1174
|
-
.dk_logLevel[data-level="
|
|
1175
|
-
.dk_logLevel[data-level="
|
|
1268
|
+
/* 日志级别色:域调色板,值登记在 :where(html, body) 的 --dk-log-*(唯一登记处),这里只 var() 读 */
|
|
1269
|
+
.dk_logLevel[data-level="TRACE"] { color: var(--dk-log-trace); }
|
|
1270
|
+
.dk_logLevel[data-level="DEBUG"] { color: var(--dk-log-debug); }
|
|
1271
|
+
.dk_logLevel[data-level="INFO"] { color: var(--dk-log-info); }
|
|
1272
|
+
.dk_logLevel[data-level="WARN"] { color: var(--dk-log-warn); }
|
|
1273
|
+
.dk_logLevel[data-level="ERROR"] { color: var(--dk-log-error); }
|
|
1274
|
+
.dk_logLevel[data-level="FATAL"] { color: var(--dk-log-error); font-weight: 600; }
|
|
1176
1275
|
|
|
1177
|
-
.dk_logTs { margin-right: var(--dk-gap-sm); color:
|
|
1276
|
+
.dk_logTs { margin-right: var(--dk-gap-sm); color: var(--dk-log-ts); }
|
|
1178
1277
|
.dk_logText { color: inherit; }
|
|
1179
|
-
.dk_logMore { color:
|
|
1278
|
+
.dk_logMore { color: var(--dk-log-ts); font-style: italic; }
|
|
1180
1279
|
|
|
1181
1280
|
/* ------------------------------------------------------------------ *
|
|
1182
1281
|
* 日志 → 会话桥:右键菜单 / 预览卡片 / 失败提示
|
|
@@ -1197,20 +1296,21 @@
|
|
|
1197
1296
|
min-width: 220px;
|
|
1198
1297
|
max-width: 320px;
|
|
1199
1298
|
padding: var(--dk-gap-xs);
|
|
1200
|
-
border:
|
|
1299
|
+
border: 0;
|
|
1201
1300
|
border-radius: var(--dk-r-md);
|
|
1202
1301
|
background: var(--dk-surface-solid);
|
|
1203
|
-
box-shadow: var(--
|
|
1302
|
+
box-shadow: var(--dsw-elevation-prominent);
|
|
1204
1303
|
color: var(--dk-label);
|
|
1205
1304
|
font-size: 12px;
|
|
1305
|
+
line-height: 18px;
|
|
1206
1306
|
}
|
|
1207
1307
|
|
|
1208
|
-
.dk_menuHead { padding: 6px 8px 2px; font-weight:
|
|
1308
|
+
.dk_menuHead { padding: 6px 8px 2px; font-weight: 500; }
|
|
1209
1309
|
.dk_menuSub {
|
|
1210
1310
|
padding: 0 8px 6px;
|
|
1211
1311
|
color: var(--dk-label-3);
|
|
1212
|
-
font-size:
|
|
1213
|
-
line-height:
|
|
1312
|
+
font-size: 12px;
|
|
1313
|
+
line-height: 18px;
|
|
1214
1314
|
word-break: break-all;
|
|
1215
1315
|
}
|
|
1216
1316
|
|
|
@@ -1233,15 +1333,15 @@
|
|
|
1233
1333
|
.dk_menuItem:focus-visible { outline: none; box-shadow: var(--dk-ring); }
|
|
1234
1334
|
.dk_menuItem:disabled { cursor: not-allowed; }
|
|
1235
1335
|
.dk_menuItem:disabled .dk_menuItemLabel { color: var(--dk-label-3); }
|
|
1236
|
-
.dk_menuItemHint { color: var(--dk-label-3); font-size:
|
|
1336
|
+
.dk_menuItemHint { color: var(--dk-label-3); font-size: 12px; line-height: 18px; }
|
|
1237
1337
|
|
|
1238
1338
|
.dk_menuNote {
|
|
1239
1339
|
margin-top: var(--dk-gap-xs);
|
|
1240
1340
|
padding: 6px 8px 2px;
|
|
1241
|
-
border-top:
|
|
1341
|
+
border-top: 0.5px solid var(--dk-border);
|
|
1242
1342
|
color: var(--dk-label-3);
|
|
1243
|
-
font-size:
|
|
1244
|
-
line-height:
|
|
1343
|
+
font-size: 12px;
|
|
1344
|
+
line-height: 18px;
|
|
1245
1345
|
}
|
|
1246
1346
|
|
|
1247
1347
|
.dk_askToast {
|
|
@@ -1257,7 +1357,7 @@
|
|
|
1257
1357
|
box-shadow: var(--dk-shadow);
|
|
1258
1358
|
color: var(--dk-danger);
|
|
1259
1359
|
font-size: 12px;
|
|
1260
|
-
line-height:
|
|
1360
|
+
line-height: 18px;
|
|
1261
1361
|
}
|
|
1262
1362
|
|
|
1263
1363
|
/* 成功回执:同一枚 toast 换配色(默认那套是「失败」的红) */
|
|
@@ -1272,6 +1372,7 @@
|
|
|
1272
1372
|
grid-template-columns: 92px 1fr;
|
|
1273
1373
|
gap: var(--dk-gap-xs) var(--dk-gap-md);
|
|
1274
1374
|
font-size: 12px;
|
|
1375
|
+
line-height: 18px;
|
|
1275
1376
|
}
|
|
1276
1377
|
|
|
1277
1378
|
.dk_kvKey { color: var(--dk-label-3); }
|
|
@@ -1299,7 +1400,7 @@
|
|
|
1299
1400
|
color: var(--dk-log-fg);
|
|
1300
1401
|
font-family: var(--dk-mono);
|
|
1301
1402
|
font-size: 12px;
|
|
1302
|
-
line-height:
|
|
1403
|
+
line-height: 18px;
|
|
1303
1404
|
white-space: pre-wrap;
|
|
1304
1405
|
word-break: break-word;
|
|
1305
1406
|
max-height: none;
|
|
@@ -1308,7 +1409,7 @@
|
|
|
1308
1409
|
.dk_logBox mark {
|
|
1309
1410
|
background: color-mix(in srgb, var(--dk-warn) 55%, transparent);
|
|
1310
1411
|
color: inherit;
|
|
1311
|
-
border-radius:
|
|
1412
|
+
border-radius: var(--dsw-radius-xs);
|
|
1312
1413
|
}
|
|
1313
1414
|
|
|
1314
1415
|
/* 统计 */
|
|
@@ -1316,12 +1417,13 @@
|
|
|
1316
1417
|
width: 100%;
|
|
1317
1418
|
border-collapse: collapse;
|
|
1318
1419
|
font-size: 12px;
|
|
1420
|
+
line-height: 18px;
|
|
1319
1421
|
}
|
|
1320
1422
|
|
|
1321
1423
|
.dk_stats th,
|
|
1322
1424
|
.dk_stats td {
|
|
1323
1425
|
padding: var(--dk-gap-sm) var(--dk-gap-md);
|
|
1324
|
-
border-bottom:
|
|
1426
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
1325
1427
|
text-align: left;
|
|
1326
1428
|
white-space: nowrap;
|
|
1327
1429
|
}
|
|
@@ -1338,6 +1440,7 @@
|
|
|
1338
1440
|
width: 72px;
|
|
1339
1441
|
height: 6px;
|
|
1340
1442
|
border-radius: var(--dk-r-pill);
|
|
1443
|
+
corner-shape: round;
|
|
1341
1444
|
background: var(--dk-surface-3);
|
|
1342
1445
|
overflow: hidden;
|
|
1343
1446
|
}
|
|
@@ -1346,6 +1449,7 @@
|
|
|
1346
1449
|
position: absolute;
|
|
1347
1450
|
inset: 0 auto 0 0;
|
|
1348
1451
|
border-radius: var(--dk-r-pill);
|
|
1452
|
+
corner-shape: round;
|
|
1349
1453
|
background: var(--dk-accent);
|
|
1350
1454
|
transition: width var(--dk-dur) var(--dk-ease);
|
|
1351
1455
|
}
|
|
@@ -1391,12 +1495,13 @@
|
|
|
1391
1495
|
width: 100%;
|
|
1392
1496
|
border-collapse: collapse;
|
|
1393
1497
|
font-size: 12px;
|
|
1498
|
+
line-height: 18px;
|
|
1394
1499
|
}
|
|
1395
1500
|
|
|
1396
1501
|
.dk_images th,
|
|
1397
1502
|
.dk_images td {
|
|
1398
1503
|
padding: var(--dk-gap-sm) var(--dk-gap-md);
|
|
1399
|
-
border-bottom:
|
|
1504
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
1400
1505
|
text-align: left;
|
|
1401
1506
|
white-space: nowrap;
|
|
1402
1507
|
}
|
|
@@ -1419,17 +1524,18 @@
|
|
|
1419
1524
|
justify-content: center;
|
|
1420
1525
|
width: 16px;
|
|
1421
1526
|
height: 16px;
|
|
1422
|
-
border:
|
|
1527
|
+
border: 0.5px solid var(--dk-border-strong);
|
|
1423
1528
|
border-radius: var(--dk-r-xs);
|
|
1424
1529
|
background: var(--dk-input);
|
|
1425
1530
|
color: transparent;
|
|
1426
1531
|
font-size: 11px;
|
|
1427
|
-
line-height:
|
|
1532
|
+
line-height: 16px;
|
|
1428
1533
|
transition: background var(--dk-dur) var(--dk-ease), border-color var(--dk-dur) var(--dk-ease), color var(--dk-dur) var(--dk-ease);
|
|
1429
1534
|
}
|
|
1430
1535
|
|
|
1431
1536
|
.dk_pick::after { content: '✓'; }
|
|
1432
|
-
|
|
1537
|
+
/* 实心填充上的文字走宿主官方前景令牌(浅色档 #fff、深色档深墨色) */
|
|
1538
|
+
.dk_pick[data-on="1"] { background: var(--dk-accent); border-color: var(--dk-accent); color: var(--dsw-alias-label-primary-foreground); }
|
|
1433
1539
|
|
|
1434
1540
|
/* 选择态:整张卡片就是勾选开关,动作条收起(否则一边多选一边能点到启停删) */
|
|
1435
1541
|
.dk_card[data-pick="1"] .dk_actionBar { display: none; }
|
|
@@ -1443,7 +1549,7 @@
|
|
|
1443
1549
|
gap: var(--dk-gap-sm);
|
|
1444
1550
|
flex: 0 0 auto;
|
|
1445
1551
|
padding: var(--dk-gap-sm) var(--dk-gap-lg);
|
|
1446
|
-
border-bottom:
|
|
1552
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
1447
1553
|
background: var(--dk-surface-2);
|
|
1448
1554
|
}
|
|
1449
1555
|
|
|
@@ -1462,7 +1568,8 @@
|
|
|
1462
1568
|
}
|
|
1463
1569
|
|
|
1464
1570
|
.dk_pickPresetsLabel {
|
|
1465
|
-
font-size:
|
|
1571
|
+
font-size: 12px;
|
|
1572
|
+
line-height: 18px;
|
|
1466
1573
|
color: var(--dk-label-3);
|
|
1467
1574
|
}
|
|
1468
1575
|
|
|
@@ -1470,11 +1577,13 @@
|
|
|
1470
1577
|
.dk_chip {
|
|
1471
1578
|
height: var(--dk-h-sm);
|
|
1472
1579
|
padding: 0 var(--dk-gap-md);
|
|
1473
|
-
border:
|
|
1580
|
+
border: 0.5px solid var(--dk-border-strong);
|
|
1474
1581
|
border-radius: var(--dk-r-pill);
|
|
1582
|
+
corner-shape: round;
|
|
1475
1583
|
background: var(--dk-surface-solid);
|
|
1476
1584
|
color: var(--dk-label-2);
|
|
1477
1585
|
font-size: 11px;
|
|
1586
|
+
line-height: 16px;
|
|
1478
1587
|
font-family: inherit;
|
|
1479
1588
|
font-variant-numeric: tabular-nums;
|
|
1480
1589
|
cursor: pointer;
|
|
@@ -1488,6 +1597,7 @@
|
|
|
1488
1597
|
|
|
1489
1598
|
.dk_pickCount {
|
|
1490
1599
|
font-size: 12px;
|
|
1600
|
+
line-height: 18px;
|
|
1491
1601
|
font-weight: 600;
|
|
1492
1602
|
color: var(--dk-label);
|
|
1493
1603
|
font-variant-numeric: tabular-nums;
|
|
@@ -1505,16 +1615,28 @@
|
|
|
1505
1615
|
.dk_activity {
|
|
1506
1616
|
flex: 0 0 auto;
|
|
1507
1617
|
margin-bottom: var(--dk-gap-lg);
|
|
1508
|
-
border:
|
|
1618
|
+
border: 0.5px solid var(--dk-border);
|
|
1509
1619
|
border-radius: var(--dk-r-md);
|
|
1510
1620
|
background: var(--dk-surface-2);
|
|
1511
1621
|
overflow: hidden;
|
|
1512
1622
|
}
|
|
1513
1623
|
|
|
1624
|
+
/*
|
|
1625
|
+
* 头行:折叠按钮占满剩余宽度,「重连」是它的兄弟而不是子元素
|
|
1626
|
+
* (按钮里嵌按钮既非法,也会把两个动作读成一个)。所以这里用 flex 行做容器,
|
|
1627
|
+
* 让折叠按钮 flex:1 吃掉可用宽度,重连按钮贴右侧。
|
|
1628
|
+
*/
|
|
1629
|
+
.dk_activityHeadRow {
|
|
1630
|
+
display: flex;
|
|
1631
|
+
align-items: center;
|
|
1632
|
+
min-width: 0;
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1514
1635
|
.dk_activityHead {
|
|
1515
1636
|
display: flex;
|
|
1516
1637
|
align-items: center;
|
|
1517
1638
|
gap: var(--dk-gap-md);
|
|
1639
|
+
flex: 1;
|
|
1518
1640
|
width: 100%;
|
|
1519
1641
|
min-width: 0;
|
|
1520
1642
|
padding: var(--dk-gap-sm) var(--dk-gap-lg);
|
|
@@ -1523,13 +1645,32 @@
|
|
|
1523
1645
|
color: var(--dk-label);
|
|
1524
1646
|
font-family: inherit;
|
|
1525
1647
|
font-size: 12px;
|
|
1648
|
+
line-height: 18px;
|
|
1526
1649
|
text-align: left;
|
|
1527
1650
|
cursor: pointer;
|
|
1528
1651
|
}
|
|
1529
1652
|
|
|
1530
1653
|
.dk_activityHead:hover { background: var(--dk-hover); }
|
|
1531
1654
|
.dk_activityHead:focus-visible { outline: none; box-shadow: var(--dk-ring); }
|
|
1532
|
-
.dk_activityTitle { flex: none; font-weight:
|
|
1655
|
+
.dk_activityTitle { flex: none; font-weight: 500; letter-spacing: .3px; }
|
|
1656
|
+
|
|
1657
|
+
/* 断开时的「重连」:只在终止态出现,用危险色的边框暗示「这里出事了,点它修」 */
|
|
1658
|
+
.dk_activityRetry {
|
|
1659
|
+
flex: none;
|
|
1660
|
+
margin-right: var(--dk-gap-lg);
|
|
1661
|
+
padding: 2px 10px;
|
|
1662
|
+
border: 1px solid var(--dk-danger);
|
|
1663
|
+
border-radius: var(--dk-r-sm);
|
|
1664
|
+
background: transparent;
|
|
1665
|
+
color: var(--dk-danger);
|
|
1666
|
+
font-family: inherit;
|
|
1667
|
+
font-size: 12px;
|
|
1668
|
+
line-height: 18px;
|
|
1669
|
+
cursor: pointer;
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
.dk_activityRetry:hover { background: var(--dk-hover); }
|
|
1673
|
+
.dk_activityRetry:focus-visible { outline: none; box-shadow: var(--dk-ring); }
|
|
1533
1674
|
|
|
1534
1675
|
/* 状态点沿用 .dk_followState 的语义色,但内联在标题行里、不占整行也没有下边框 */
|
|
1535
1676
|
.dk_activityState {
|
|
@@ -1538,7 +1679,8 @@
|
|
|
1538
1679
|
gap: var(--dk-gap-sm);
|
|
1539
1680
|
flex: none;
|
|
1540
1681
|
color: var(--dk-label-3);
|
|
1541
|
-
font-size:
|
|
1682
|
+
font-size: 12px;
|
|
1683
|
+
line-height: 18px;
|
|
1542
1684
|
}
|
|
1543
1685
|
|
|
1544
1686
|
.dk_activityState::before {
|
|
@@ -1546,6 +1688,7 @@
|
|
|
1546
1688
|
width: 6px;
|
|
1547
1689
|
height: 6px;
|
|
1548
1690
|
border-radius: 50%;
|
|
1691
|
+
corner-shape: round;
|
|
1549
1692
|
background: var(--dk-label-3);
|
|
1550
1693
|
}
|
|
1551
1694
|
|
|
@@ -1574,7 +1717,8 @@
|
|
|
1574
1717
|
.dk_activityEmpty {
|
|
1575
1718
|
padding: 0 var(--dk-gap-lg) var(--dk-gap-md);
|
|
1576
1719
|
color: var(--dk-label-3);
|
|
1577
|
-
font-size:
|
|
1720
|
+
font-size: 12px;
|
|
1721
|
+
line-height: 18px;
|
|
1578
1722
|
}
|
|
1579
1723
|
|
|
1580
1724
|
.dk_activityItem {
|
|
@@ -1583,10 +1727,11 @@
|
|
|
1583
1727
|
gap: var(--dk-gap-sm);
|
|
1584
1728
|
max-width: 100%;
|
|
1585
1729
|
padding: 2px var(--dk-gap-sm);
|
|
1586
|
-
border:
|
|
1730
|
+
border: 0.5px solid var(--dk-border);
|
|
1587
1731
|
border-radius: var(--dk-r-xs);
|
|
1588
1732
|
background: var(--dk-surface-solid);
|
|
1589
1733
|
font-size: 11px;
|
|
1734
|
+
line-height: 16px;
|
|
1590
1735
|
}
|
|
1591
1736
|
|
|
1592
1737
|
.dk_activityTime {
|
|
@@ -1666,7 +1811,7 @@
|
|
|
1666
1811
|
flex-direction: column;
|
|
1667
1812
|
gap: var(--dk-gap-sm);
|
|
1668
1813
|
padding: var(--dk-gap-md) var(--dk-gap-lg);
|
|
1669
|
-
border:
|
|
1814
|
+
border: 0.5px solid var(--dk-border);
|
|
1670
1815
|
border-radius: var(--dk-r-md);
|
|
1671
1816
|
background: var(--dk-surface-solid);
|
|
1672
1817
|
color: inherit;
|
|
@@ -1696,7 +1841,8 @@
|
|
|
1696
1841
|
flex: 1 1 auto;
|
|
1697
1842
|
min-width: 0;
|
|
1698
1843
|
font-size: 13px;
|
|
1699
|
-
|
|
1844
|
+
line-height: 20px;
|
|
1845
|
+
font-weight: 500;
|
|
1700
1846
|
overflow: hidden;
|
|
1701
1847
|
text-overflow: ellipsis;
|
|
1702
1848
|
white-space: nowrap;
|
|
@@ -1723,6 +1869,7 @@
|
|
|
1723
1869
|
gap: var(--dk-gap-xs);
|
|
1724
1870
|
min-width: 0;
|
|
1725
1871
|
font-size: 12px;
|
|
1872
|
+
line-height: 18px;
|
|
1726
1873
|
color: var(--dk-label-3);
|
|
1727
1874
|
}
|
|
1728
1875
|
|
|
@@ -1730,6 +1877,7 @@
|
|
|
1730
1877
|
|
|
1731
1878
|
.dk_ovCountValue {
|
|
1732
1879
|
font-size: 16px;
|
|
1880
|
+
line-height: 24px;
|
|
1733
1881
|
font-weight: 600;
|
|
1734
1882
|
font-variant-numeric: tabular-nums;
|
|
1735
1883
|
text-align: right;
|
|
@@ -1749,6 +1897,7 @@
|
|
|
1749
1897
|
align-items: center;
|
|
1750
1898
|
gap: var(--dk-gap-sm);
|
|
1751
1899
|
font-size: 12px;
|
|
1900
|
+
line-height: 18px;
|
|
1752
1901
|
color: var(--dk-label-3);
|
|
1753
1902
|
}
|
|
1754
1903
|
|
|
@@ -1761,6 +1910,7 @@
|
|
|
1761
1910
|
gap: var(--dk-gap-sm);
|
|
1762
1911
|
min-width: 0;
|
|
1763
1912
|
font-size: 12px;
|
|
1913
|
+
line-height: 18px;
|
|
1764
1914
|
}
|
|
1765
1915
|
|
|
1766
1916
|
/* SSH 报错是一长串:卡片里只留一行,全量在 title 里 */
|
|
@@ -1776,7 +1926,8 @@
|
|
|
1776
1926
|
.dk_ovSection {
|
|
1777
1927
|
margin: 0 0 var(--dk-gap-sm);
|
|
1778
1928
|
font-size: 12px;
|
|
1779
|
-
|
|
1929
|
+
line-height: 18px;
|
|
1930
|
+
font-weight: 500;
|
|
1780
1931
|
color: var(--dk-label-2);
|
|
1781
1932
|
}
|
|
1782
1933
|
|
|
@@ -1796,8 +1947,8 @@
|
|
|
1796
1947
|
text-align: center;
|
|
1797
1948
|
}
|
|
1798
1949
|
|
|
1799
|
-
.dk_emptyTitle { font-size: 13px; color: var(--dk-label-2); }
|
|
1800
|
-
.dk_emptyHint { font-size: 12px; max-width: 420px; line-height:
|
|
1950
|
+
.dk_emptyTitle { font-size: 13px; line-height: 20px; color: var(--dk-label-2); }
|
|
1951
|
+
.dk_emptyHint { font-size: 12px; max-width: 420px; line-height: 18px; }
|
|
1801
1952
|
|
|
1802
1953
|
.dk_banner {
|
|
1803
1954
|
display: flex;
|
|
@@ -1810,7 +1961,7 @@
|
|
|
1810
1961
|
background: color-mix(in srgb, var(--dk-danger) 8%, transparent);
|
|
1811
1962
|
color: var(--dk-label);
|
|
1812
1963
|
font-size: 12px;
|
|
1813
|
-
line-height:
|
|
1964
|
+
line-height: 18px;
|
|
1814
1965
|
}
|
|
1815
1966
|
|
|
1816
1967
|
.dk_banner[data-kind="warn"] {
|
|
@@ -1837,20 +1988,20 @@
|
|
|
1837
1988
|
align-items: center;
|
|
1838
1989
|
justify-content: center;
|
|
1839
1990
|
padding: var(--dk-gap-lg);
|
|
1840
|
-
background:
|
|
1991
|
+
background: var(--dsw-alias-bg-mask-1);
|
|
1841
1992
|
}
|
|
1842
1993
|
|
|
1843
1994
|
.dk_confirm {
|
|
1844
1995
|
width: min(420px, 100%);
|
|
1845
1996
|
padding: var(--dk-gap-xl);
|
|
1846
|
-
border:
|
|
1997
|
+
border: 0;
|
|
1847
1998
|
border-radius: var(--dk-r-lg);
|
|
1848
1999
|
background: var(--dk-surface-solid);
|
|
1849
|
-
box-shadow: var(--
|
|
2000
|
+
box-shadow: var(--dsw-elevation-prominent);
|
|
1850
2001
|
}
|
|
1851
2002
|
|
|
1852
|
-
.dk_confirmTitle { font-size: 13px; font-weight: 600; margin-bottom: var(--dk-gap-md); }
|
|
1853
|
-
.dk_confirmText { font-size: 12px; color: var(--dk-label-2); line-height:
|
|
2003
|
+
.dk_confirmTitle { font-size: 13px; line-height: 20px; font-weight: 600; margin-bottom: var(--dk-gap-md); }
|
|
2004
|
+
.dk_confirmText { font-size: 12px; color: var(--dk-label-2); line-height: 18px; margin-bottom: var(--dk-gap-lg); }
|
|
1854
2005
|
.dk_confirmActions { display: flex; justify-content: flex-end; gap: var(--dk-gap-md); }
|
|
1855
2006
|
|
|
1856
2007
|
/* ============================ 设置卡片 ============================ */
|
|
@@ -1866,14 +2017,17 @@
|
|
|
1866
2017
|
|
|
1867
2018
|
.dk_settingsCard {
|
|
1868
2019
|
list-style: none;
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
2020
|
+
/* 与宿主设置卡片同材质:.5px 发丝描边 + settings-card 底 + radius-xl。
|
|
2021
|
+
原先的 1px border-l2 + 12px 圆角 + bg-layer-3 是「另一套」——宿主自己三张卡片都不这么写。 */
|
|
2022
|
+
border: .5px solid var(--dk-stroke-card);
|
|
2023
|
+
border-radius: var(--dsw-radius-xl);
|
|
2024
|
+
background: var(--dk-surface-card);
|
|
1872
2025
|
transition: border-color var(--dk-dur) var(--dk-ease), background var(--dk-dur) var(--dk-ease);
|
|
1873
2026
|
}
|
|
1874
2027
|
|
|
1875
2028
|
.dk_settingsCard:hover { border-color: var(--dk-label-dimmed); }
|
|
1876
|
-
|
|
2029
|
+
/* 展开态比折叠态低一档:底色整体上移一档(fill 已是 layer-2)后,这里落到 layer-1 */
|
|
2030
|
+
.dk_settingsCardOpen { background: var(--dsw-alias-bg-layer-1); border-color: var(--dk-label-dimmed); }
|
|
1877
2031
|
|
|
1878
2032
|
.dk_settingsHead {
|
|
1879
2033
|
display: flex;
|
|
@@ -1882,7 +2036,7 @@
|
|
|
1882
2036
|
width: 100%;
|
|
1883
2037
|
padding: var(--dk-pad-cardHead);
|
|
1884
2038
|
border: 0;
|
|
1885
|
-
border-radius: var(--
|
|
2039
|
+
border-radius: var(--dsw-radius-xl);
|
|
1886
2040
|
background: transparent;
|
|
1887
2041
|
color: inherit;
|
|
1888
2042
|
font: inherit;
|
|
@@ -1892,22 +2046,26 @@
|
|
|
1892
2046
|
|
|
1893
2047
|
.dk_settingsHead:focus-visible { outline: none; box-shadow: var(--dk-ring); }
|
|
1894
2048
|
.dk_settingsHeadText { display: flex; flex-direction: column; gap: var(--dk-gap-xs); flex: 1; min-width: 0; }
|
|
1895
|
-
.dk_settingsName { color: var(--dk-label); font-size: 14px; font-weight:
|
|
2049
|
+
.dk_settingsName { color: var(--dk-label); font-size: 14px; font-weight: 500; line-height: 20px; }
|
|
1896
2050
|
/* dsh-plugin-kit 套件徽标(约定见 @hyzyn/dsh-kit README:全部 kit 设置卡片共用) */
|
|
1897
2051
|
.dshkit_badge {
|
|
1898
2052
|
flex: none;
|
|
1899
2053
|
margin-left: auto;
|
|
1900
2054
|
padding: 1px 8px;
|
|
1901
2055
|
border-radius: 999px;
|
|
2056
|
+
corner-shape: round;
|
|
1902
2057
|
font-size: 11px;
|
|
1903
2058
|
font-weight: 600;
|
|
1904
2059
|
line-height: 16px;
|
|
1905
2060
|
letter-spacing: 0.02em;
|
|
1906
2061
|
color: var(--dk-label-2, var(--dsw-alias-label-dimmed));
|
|
1907
|
-
|
|
1908
|
-
|
|
2062
|
+
/* 原先写的是 --dk-bg-2(本文件从未定义)——有 fallback 所以不报错,但会**静默降级**成
|
|
2063
|
+
--dsw-alias-bg-layer-2,绕过了 --dk-* 令牌层(皮肤下拿不到本包的层 2 取值)。
|
|
2064
|
+
真名是 --dk-surface-2。守卫:client-lint 检查五。 */
|
|
2065
|
+
background: var(--dk-surface-2, var(--dsw-alias-bg-layer-2));
|
|
2066
|
+
border: 0.5px solid var(--dk-border, var(--dsw-alias-border-l1));
|
|
1909
2067
|
}
|
|
1910
|
-
.dk_settingsDesc { color: var(--dk-label-2); font-size: 12px; line-height:
|
|
2068
|
+
.dk_settingsDesc { color: var(--dk-label-2); font-size: 12px; line-height: 18px; }
|
|
1911
2069
|
|
|
1912
2070
|
.dk_settingsChevron {
|
|
1913
2071
|
flex: none;
|
|
@@ -1925,15 +2083,17 @@
|
|
|
1925
2083
|
padding: 2px var(--dk-gap-xl) var(--dk-gap-xl);
|
|
1926
2084
|
color: var(--dk-label);
|
|
1927
2085
|
font-size: 13px;
|
|
2086
|
+
line-height: 20px;
|
|
1928
2087
|
}
|
|
1929
2088
|
|
|
1930
2089
|
.dk_cardSection {
|
|
1931
2090
|
margin-top: var(--dk-gap-xs);
|
|
1932
2091
|
padding-bottom: var(--dk-gap-xs);
|
|
1933
|
-
border-bottom:
|
|
2092
|
+
border-bottom: 0.5px solid var(--dk-border);
|
|
1934
2093
|
color: var(--dk-label-3);
|
|
1935
2094
|
font-size: 12px;
|
|
1936
|
-
|
|
2095
|
+
line-height: 18px;
|
|
2096
|
+
font-weight: 500;
|
|
1937
2097
|
letter-spacing: .3px;
|
|
1938
2098
|
}
|
|
1939
2099
|
|
|
@@ -1951,8 +2111,8 @@
|
|
|
1951
2111
|
* 差 2.5px 错开,基线也高低不齐。给死行高后两种文本的行框等高,输入框顶边对齐。
|
|
1952
2112
|
* 别删成 line-height: normal —— 一删就退回字体度量决定行框。
|
|
1953
2113
|
*/
|
|
1954
|
-
.dk_label { font-size: 12px; line-height:
|
|
1955
|
-
.dk_hint { font-size:
|
|
2114
|
+
.dk_label { font-size: 12px; line-height: 18px; color: var(--dk-label-2); }
|
|
2115
|
+
.dk_hint { font-size: 12px; color: var(--dk-label-3); line-height: 18px; }
|
|
1956
2116
|
.dk_row { display: flex; align-items: center; gap: var(--dk-gap-md); flex-wrap: wrap; }
|
|
1957
2117
|
|
|
1958
2118
|
/*
|
|
@@ -1995,7 +2155,7 @@
|
|
|
1995
2155
|
gap: var(--dk-gap-sm);
|
|
1996
2156
|
align-items: center;
|
|
1997
2157
|
padding: var(--dk-gap-sm);
|
|
1998
|
-
border:
|
|
2158
|
+
border: 0.5px solid var(--dk-border);
|
|
1999
2159
|
border-radius: var(--dk-r-md);
|
|
2000
2160
|
background: var(--dk-surface-2);
|
|
2001
2161
|
}
|
|
@@ -2046,11 +2206,12 @@
|
|
|
2046
2206
|
}
|
|
2047
2207
|
.dk_capLabel {
|
|
2048
2208
|
font-size: 12px;
|
|
2209
|
+
line-height: 18px;
|
|
2049
2210
|
color: var(--dk-label-2);
|
|
2050
2211
|
cursor: pointer;
|
|
2051
2212
|
user-select: none;
|
|
2052
2213
|
}
|
|
2053
|
-
|
|
2214
|
+
/* 复选框的几何与选中色见 .dk_check 那一处(两处共用一条规则)。 */
|
|
2054
2215
|
.dk_capState {
|
|
2055
2216
|
/* 显式落在第二列:它跟的是「文字」那一列的左缘,而不是行左缘 */
|
|
2056
2217
|
grid-column: 2;
|
|
@@ -2058,9 +2219,9 @@
|
|
|
2058
2219
|
align-items: center;
|
|
2059
2220
|
gap: var(--dk-gap-sm);
|
|
2060
2221
|
/* 与 .dk_hint 同档:它是说明性文字,不该跟开关抢注意力 */
|
|
2061
|
-
font-size:
|
|
2222
|
+
font-size: 12px;
|
|
2062
2223
|
color: var(--dk-label-3);
|
|
2063
|
-
line-height:
|
|
2224
|
+
line-height: 18px;
|
|
2064
2225
|
}
|
|
2065
2226
|
/* 撤销按钮推到第二列右缘:两个能力的按钮落在同一条竖线上,不会跟着标签长度左右跳 */
|
|
2066
2227
|
.dk_capRevoke {
|
|
@@ -2103,11 +2264,12 @@
|
|
|
2103
2264
|
min-width: 0;
|
|
2104
2265
|
overflow-x: auto;
|
|
2105
2266
|
padding: 6px 8px;
|
|
2106
|
-
border:
|
|
2267
|
+
border: 0.5px solid var(--dk-border);
|
|
2107
2268
|
border-radius: 4px;
|
|
2108
2269
|
background: var(--dk-surface-2);
|
|
2109
2270
|
font-family: var(--dk-mono);
|
|
2110
2271
|
font-size: 12px;
|
|
2272
|
+
line-height: 18px;
|
|
2111
2273
|
white-space: pre;
|
|
2112
2274
|
user-select: all;
|
|
2113
2275
|
}
|
|
@@ -2129,6 +2291,7 @@
|
|
|
2129
2291
|
cursor: pointer;
|
|
2130
2292
|
color: var(--dk-label-2);
|
|
2131
2293
|
font-size: 12px;
|
|
2294
|
+
line-height: 18px;
|
|
2132
2295
|
}
|
|
2133
2296
|
|
|
2134
2297
|
.dk_targetInline {
|
|
@@ -2156,7 +2319,7 @@
|
|
|
2156
2319
|
gap: var(--dk-gap-md);
|
|
2157
2320
|
}
|
|
2158
2321
|
|
|
2159
|
-
.dk_msg { font-size: 12px; }
|
|
2322
|
+
.dk_msg { font-size: 12px; line-height: 18px; }
|
|
2160
2323
|
.dk_msg[data-kind="ok"] { color: var(--dk-success); }
|
|
2161
2324
|
.dk_msg[data-kind="error"] { color: var(--dk-danger); }
|
|
2162
2325
|
|
|
@@ -2167,6 +2330,7 @@
|
|
|
2167
2330
|
border: 2px solid var(--dk-border-strong);
|
|
2168
2331
|
border-top-color: var(--dk-accent);
|
|
2169
2332
|
border-radius: 50%;
|
|
2333
|
+
corner-shape: round;
|
|
2170
2334
|
animation: dk_spin .7s linear infinite;
|
|
2171
2335
|
}
|
|
2172
2336
|
|
|
@@ -2216,6 +2380,7 @@
|
|
|
2216
2380
|
align-items: center;
|
|
2217
2381
|
gap: var(--dk-gap-md);
|
|
2218
2382
|
font-size: 12px;
|
|
2383
|
+
line-height: 18px;
|
|
2219
2384
|
color: var(--dk-label-2);
|
|
2220
2385
|
}
|
|
2221
2386
|
|
|
@@ -2229,7 +2394,7 @@
|
|
|
2229
2394
|
|
|
2230
2395
|
.dk_layerId { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2231
2396
|
|
|
2232
|
-
.dk_labelList { display: flex; flex-direction: column; gap: 2px; font-size: 12px; }
|
|
2397
|
+
.dk_labelList { display: flex; flex-direction: column; gap: 2px; font-size: 12px; line-height: 18px; }
|
|
2233
2398
|
.dk_labelItem { display: grid; grid-template-columns: minmax(0, 240px) 1fr; gap: var(--dk-gap-md); }
|
|
2234
2399
|
.dk_labelKey { color: var(--dk-label-3); font-family: var(--dk-mono); overflow-wrap: anywhere; }
|
|
2235
2400
|
.dk_labelVal { color: var(--dk-label); font-family: var(--dk-mono); overflow-wrap: anywhere; }
|
|
@@ -2246,13 +2411,13 @@
|
|
|
2246
2411
|
min-height: 180px;
|
|
2247
2412
|
margin-top: var(--dk-gap-md);
|
|
2248
2413
|
padding: var(--dk-gap-md);
|
|
2249
|
-
border:
|
|
2414
|
+
border: 0.5px solid var(--dk-border);
|
|
2250
2415
|
border-radius: var(--dk-r-md);
|
|
2251
2416
|
background: var(--dk-log-bg);
|
|
2252
2417
|
color: var(--dk-log-fg);
|
|
2253
2418
|
font-family: var(--dk-mono);
|
|
2254
2419
|
font-size: 12px;
|
|
2255
|
-
line-height:
|
|
2420
|
+
line-height: 18px;
|
|
2256
2421
|
overflow: auto;
|
|
2257
2422
|
white-space: pre-wrap;
|
|
2258
2423
|
word-break: break-word;
|
|
@@ -2286,14 +2451,14 @@
|
|
|
2286
2451
|
|
|
2287
2452
|
.dk_spark svg { display: block; width: 96px; height: 22px; overflow: visible; }
|
|
2288
2453
|
.dk_spark[data-alert="1"] { color: var(--dk-danger); }
|
|
2289
|
-
.dk_sparkEmpty { font-size:
|
|
2454
|
+
.dk_sparkEmpty { font-size: 12px; line-height: 18px; color: var(--dk-label-3); }
|
|
2290
2455
|
|
|
2291
2456
|
/* ============================ Compose 项目 ============================ */
|
|
2292
2457
|
|
|
2293
2458
|
.dk_projects { display: flex; flex-direction: column; gap: var(--dk-gap-lg); }
|
|
2294
2459
|
|
|
2295
2460
|
.dk_project {
|
|
2296
|
-
border:
|
|
2461
|
+
border: 0.5px solid var(--dk-border);
|
|
2297
2462
|
border-radius: var(--dk-r-md);
|
|
2298
2463
|
background: var(--dk-surface-2);
|
|
2299
2464
|
overflow: hidden;
|
|
@@ -2305,8 +2470,8 @@
|
|
|
2305
2470
|
.dk_project:focus-visible { outline: none; box-shadow: var(--dk-ring); }
|
|
2306
2471
|
.dk_projectHead { display: flex; align-items: center; gap: var(--dk-gap-md); padding: var(--dk-gap-md) var(--dk-gap-lg); }
|
|
2307
2472
|
.dk_projectIcon { display: inline-flex; align-items: center; color: var(--dk-accent); }
|
|
2308
|
-
.dk_projectName { font-size: 13px; font-weight:
|
|
2309
|
-
.dk_projectRows { display: flex; flex-direction: column; border-top:
|
|
2473
|
+
.dk_projectName { font-size: 13px; line-height: 20px; font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2474
|
+
.dk_projectRows { display: flex; flex-direction: column; border-top: 0.5px solid var(--dk-border); }
|
|
2310
2475
|
|
|
2311
2476
|
.dk_projectRow {
|
|
2312
2477
|
display: grid;
|
|
@@ -2315,11 +2480,12 @@
|
|
|
2315
2480
|
gap: var(--dk-gap-md);
|
|
2316
2481
|
padding: var(--dk-gap-sm) var(--dk-gap-lg);
|
|
2317
2482
|
font-size: 12px;
|
|
2318
|
-
|
|
2483
|
+
line-height: 18px;
|
|
2484
|
+
border-top: 0.5px solid var(--dk-border);
|
|
2319
2485
|
}
|
|
2320
2486
|
|
|
2321
2487
|
.dk_projectRow:first-child { border-top: none; }
|
|
2322
|
-
.dk_projectSvc { color: var(--dk-label-2); font-weight:
|
|
2488
|
+
.dk_projectSvc { color: var(--dk-label-2); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2323
2489
|
.dk_projectContainer { font-family: var(--dk-mono); color: var(--dk-label); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2324
2490
|
.dk_projectImage { font-family: var(--dk-mono); color: var(--dk-label-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2325
2491
|
.dk_projectPorts { color: var(--dk-label-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
@@ -2327,4 +2493,4 @@
|
|
|
2327
2493
|
.dk_composeTable td { vertical-align: middle; }
|
|
2328
2494
|
|
|
2329
2495
|
/* 聚合日志的 [service] 前缀(同一份日志着色,只多一个来源标签) */
|
|
2330
|
-
.dk_logSvc { margin-right: 6px; color: var(--dk-accent); font-weight:
|
|
2496
|
+
.dk_logSvc { margin-right: 6px; color: var(--dk-accent); font-weight: 500; }
|