dsh-biocore 0.1.0 → 0.1.1
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/package.json +1 -1
- package/ui/panel.css +46 -5
- package/ui/panel.html +33 -32
package/package.json
CHANGED
package/ui/panel.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* BioCore instrument panel — FlClash mobile spec.
|
|
1
|
+
/* BioCore instrument panel — FlClash mobile spec. | layout v22
|
|
2
2
|
1) tokens 2) base 3) topbar 4) cards 5) figures 6) lists 7) forms
|
|
3
3
|
8) switches 9) nav 10) edit mode 11) desktop.
|
|
4
4
|
Rule: one component rule per selector, px values from docs/DSH-PANEL-FLCLASH-SPEC.md. */
|
|
@@ -202,9 +202,9 @@ body {
|
|
|
202
202
|
.delta.up { color: var(--ok); }
|
|
203
203
|
.delta.down { color: var(--danger); }
|
|
204
204
|
.sub-value { display: flex; align-items: baseline; gap: 6px; letter-spacing: -0.02em; }
|
|
205
|
-
.sub-value strong { font-size:
|
|
206
|
-
.channels-card .sub-value strong { font-size:
|
|
207
|
-
.mood-card .sub-value strong { font-size:
|
|
205
|
+
.sub-value strong { font-size: 20px; line-height: 26px; font-weight: 700; }
|
|
206
|
+
.channels-card .sub-value strong { font-size: 20px; line-height: 26px; }
|
|
207
|
+
.mood-card .sub-value strong { font-size: 30px; line-height: 34px; }
|
|
208
208
|
.unit { display: none; }
|
|
209
209
|
.sub-status { margin-left: auto; color: var(--text-2); font-size: 13px; line-height: 18px; letter-spacing: 0; }
|
|
210
210
|
.sub-note { color: var(--text-3); font-size: 12px; line-height: 16px; min-height: 16px; }
|
|
@@ -246,7 +246,7 @@ canvas#moodChart { display: block; width: 100%; height: 150px; }
|
|
|
246
246
|
.memory-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
|
|
247
247
|
.memory-stat { display: flex; flex-direction: column; gap: 2px; padding: 14px; background: var(--block); border-radius: var(--radius-block); }
|
|
248
248
|
.memory-stat span { color: var(--text-2); font-size: 12px; line-height: 16px; }
|
|
249
|
-
.memory-stat strong { font-size:
|
|
249
|
+
.memory-stat strong { font-size: 22px; line-height: 28px; font-weight: 700; letter-spacing: -0.02em; }
|
|
250
250
|
.memory-stat em { color: var(--text-2); font-size: 12px; font-style: normal; }
|
|
251
251
|
.memory-summary-card .capacity { margin-top: 14px; }
|
|
252
252
|
.capacity { margin-top: 12px; }
|
|
@@ -498,3 +498,44 @@ canvas#moodChart { display: block; width: 100%; height: 150px; }
|
|
|
498
498
|
@media (max-width: 620px) {
|
|
499
499
|
.expression-fields { grid-template-columns: 1fr; }
|
|
500
500
|
}
|
|
501
|
+
|
|
502
|
+
/* ---------- 13. layout guards (防止旧版/串版样式压扁版面) ---------- */
|
|
503
|
+
.masthead { height: auto; max-height: none; overflow: visible; }
|
|
504
|
+
.masthead .orb-wrap { min-width: 88px; min-height: 88px; overflow: visible; }
|
|
505
|
+
.masthead .orb { flex: 0 0 auto; }
|
|
506
|
+
.identity { align-self: center; width: 100%; }
|
|
507
|
+
.channels-wrap { position: relative; }
|
|
508
|
+
.channels-wrap > .channel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
|
|
509
|
+
|
|
510
|
+
/* ---------- 14. channels: four independent cards (2×2) ---------- */
|
|
511
|
+
.channels-wrap { position: relative; }
|
|
512
|
+
.channel-title-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 2px 4px 10px; }
|
|
513
|
+
.channel-title-row h2 { margin: 0; font-size: 17px; line-height: 22px; font-weight: 600; letter-spacing: -0.01em; }
|
|
514
|
+
.channel-aside { color: var(--text-3); font-size: 13px; line-height: 18px; }
|
|
515
|
+
.channel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
|
|
516
|
+
.channel-card {
|
|
517
|
+
display: flex;
|
|
518
|
+
flex-direction: column;
|
|
519
|
+
gap: 6px;
|
|
520
|
+
min-width: 0;
|
|
521
|
+
padding: 14px;
|
|
522
|
+
background: var(--card);
|
|
523
|
+
border-radius: 20px;
|
|
524
|
+
box-shadow: var(--shadow-e1);
|
|
525
|
+
}
|
|
526
|
+
.channel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
|
|
527
|
+
.channel-label { color: var(--text-2); font-size: 12px; line-height: 16px; }
|
|
528
|
+
.channel-card .sub-trend { color: var(--text-3); font-size: 12px; line-height: 16px; }
|
|
529
|
+
.channel-value { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
|
|
530
|
+
.channel-value strong { font-size: 30px; line-height: 34px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
|
|
531
|
+
.channel-card .sub-status { margin-left: auto; color: var(--text-2); font-size: 13px; line-height: 18px; }
|
|
532
|
+
.channel-card .sub-note { margin: 0; color: var(--text-3); font-size: 11px; line-height: 15px; min-height: 15px; }
|
|
533
|
+
.channel-card .bar { margin-top: 2px; }
|
|
534
|
+
.channel-card .bar-legend { margin-top: 4px; gap: 10px; font-size: 11px; line-height: 15px; }
|
|
535
|
+
.channel-card .bar-legend .legend-dot { width: 5px; height: 5px; border-radius: 2.5px; margin-right: 3px; }
|
|
536
|
+
@media (min-width: 360px) {
|
|
537
|
+
.channels-wrap .channel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
538
|
+
}
|
|
539
|
+
@media (max-width: 359px) {
|
|
540
|
+
.channels-wrap .channel-grid { grid-template-columns: 1fr; }
|
|
541
|
+
}
|
package/ui/panel.html
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
|
+
<!-- BioCore panel layout v22 (FlClash mobile): masthead/orb centered, channels 2x2, pill tabbar -->
|
|
2
3
|
<html lang="zh-CN">
|
|
3
4
|
<head>
|
|
4
5
|
<meta charset="utf-8">
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
7
|
<title>生物核 · 仪器面板</title>
|
|
7
|
-
<link rel="stylesheet" href="panel.css?v=
|
|
8
|
+
<link rel="stylesheet" href="panel.css?v=22">
|
|
8
9
|
</head>
|
|
9
10
|
<body>
|
|
10
11
|
<main class="panel" id="panel">
|
|
@@ -62,39 +63,39 @@
|
|
|
62
63
|
</div>
|
|
63
64
|
</section>
|
|
64
65
|
|
|
65
|
-
<
|
|
66
|
-
<div class="
|
|
67
|
-
|
|
68
|
-
<
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
<div class="subblock">
|
|
73
|
-
<div class="sub-label"><span>绷紧</span><span class="sub-trend"><b id="arrow-tension">→</b><span class="delta" id="delta-tension">—</span></span></div>
|
|
74
|
-
<div class="sub-value"><strong id="num-tension">–</strong><span class="sub-status" id="status-tension">—</span></div>
|
|
75
|
-
<div class="sub-note" id="note-tension">—</div>
|
|
66
|
+
<div class="channels-wrap" data-card-id="channels" data-card-label="四通道">
|
|
67
|
+
<div class="channel-title-row"><h2>四通道</h2><span class="channel-aside">2 × 2</span></div>
|
|
68
|
+
<div class="channel-grid">
|
|
69
|
+
<section class="card channel-card">
|
|
70
|
+
<div class="channel-head"><span class="channel-label">绷紧</span><span class="sub-trend"><b id="arrow-tension">→</b><span class="delta" id="delta-tension">—</span></span></div>
|
|
71
|
+
<div class="channel-value"><strong id="num-tension">–</strong><span class="sub-status" id="status-tension">—</span></div>
|
|
72
|
+
<p class="sub-note" id="note-tension">—</p>
|
|
76
73
|
<div class="bar stat-bar"><i id="bar-tension"></i><b class="bar-over" id="over-tension"></b></div>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
<div class="sub-
|
|
81
|
-
<div class="sub-
|
|
74
|
+
<div class="bar-legend"><span><i class="legend-dot"></i>当前</span><span><i class="legend-dot warn"></i>超阈值</span></div>
|
|
75
|
+
</section>
|
|
76
|
+
<section class="card channel-card">
|
|
77
|
+
<div class="channel-head"><span class="channel-label">暖</span><span class="sub-trend"><b id="arrow-warmth">→</b><span class="delta" id="delta-warmth">—</span></span></div>
|
|
78
|
+
<div class="channel-value"><strong id="num-warmth">–</strong><span class="sub-status" id="status-warmth">—</span></div>
|
|
79
|
+
<p class="sub-note" id="note-warmth">—</p>
|
|
82
80
|
<div class="bar stat-bar"><i id="bar-warmth"></i><b class="bar-over" id="over-warmth"></b></div>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
<div class="sub-
|
|
87
|
-
<div class="sub-
|
|
81
|
+
<div class="bar-legend"><span><i class="legend-dot"></i>当前</span><span><i class="legend-dot warn"></i>超阈值</span></div>
|
|
82
|
+
</section>
|
|
83
|
+
<section class="card channel-card">
|
|
84
|
+
<div class="channel-head"><span class="channel-label">沉</span><span class="sub-trend"><b id="arrow-heaviness">→</b><span class="delta" id="delta-heaviness">—</span></span></div>
|
|
85
|
+
<div class="channel-value"><strong id="num-heaviness">–</strong><span class="sub-status" id="status-heaviness">—</span></div>
|
|
86
|
+
<p class="sub-note" id="note-heaviness">—</p>
|
|
88
87
|
<div class="bar stat-bar"><i id="bar-heaviness"></i><b class="bar-over" id="over-heaviness"></b></div>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
<div class="sub-
|
|
93
|
-
<div class="sub-
|
|
88
|
+
<div class="bar-legend"><span><i class="legend-dot"></i>当前</span><span><i class="legend-dot warn"></i>超阈值</span></div>
|
|
89
|
+
</section>
|
|
90
|
+
<section class="card channel-card">
|
|
91
|
+
<div class="channel-head"><span class="channel-label">清</span><span class="sub-trend"><b id="arrow-clarity">→</b><span class="delta" id="delta-clarity">—</span></span></div>
|
|
92
|
+
<div class="channel-value"><strong id="num-clarity">–</strong><span class="sub-status" id="status-clarity">—</span></div>
|
|
93
|
+
<p class="sub-note" id="note-clarity">—</p>
|
|
94
94
|
<div class="bar stat-bar"><i id="bar-clarity"></i><b class="bar-over" id="over-clarity"></b></div>
|
|
95
|
-
|
|
95
|
+
<div class="bar-legend"><span><i class="legend-dot"></i>当前</span><span><i class="legend-dot warn"></i>超阈值</span></div>
|
|
96
|
+
</section>
|
|
96
97
|
</div>
|
|
97
|
-
</
|
|
98
|
+
</div>
|
|
98
99
|
|
|
99
100
|
<section class="card chart-card" data-card-id="chart" data-card-label="心情曲线">
|
|
100
101
|
<div class="card-head">
|
|
@@ -261,8 +262,8 @@
|
|
|
261
262
|
<span>BioCore · 只读投影</span>
|
|
262
263
|
</footer>
|
|
263
264
|
</main>
|
|
264
|
-
<script src="panel-layout.js?v=
|
|
265
|
-
<script src="trace-view.js?v=
|
|
266
|
-
<script src="panel.js?v=
|
|
265
|
+
<script src="panel-layout.js?v=5"></script>
|
|
266
|
+
<script src="trace-view.js?v=5"></script>
|
|
267
|
+
<script src="panel.js?v=5"></script>
|
|
267
268
|
</body>
|
|
268
269
|
</html>
|