fix(ui): remove decorative outlines and restore lab spacing
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
.e35-degradation-evidence__timeline {
|
||||
position: absolute;
|
||||
z-index: 3;
|
||||
top: 3.7rem;
|
||||
top: 4.9rem;
|
||||
right: 0.6rem;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@@ -27,11 +27,24 @@
|
||||
max-width: calc(100% - 1.2rem);
|
||||
}
|
||||
|
||||
.e35-degradation-evidence__timeline .nodedc-button {
|
||||
.e35-degradation-evidence__timeline
|
||||
.nodedc-button[data-variant="secondary"] {
|
||||
background: var(--nodedc-floating-surface);
|
||||
backdrop-filter: blur(var(--nodedc-blur-control));
|
||||
}
|
||||
|
||||
.e35-degradation-evidence__timeline
|
||||
.nodedc-button[data-variant="primary"] {
|
||||
background: var(--nodedc-glass-control-active);
|
||||
color: var(--nodedc-glass-control-active-text);
|
||||
backdrop-filter: blur(var(--nodedc-blur-control));
|
||||
}
|
||||
|
||||
.e35-degradation-evidence__timeline
|
||||
.nodedc-button[data-variant="primary"]:hover:not(:disabled) {
|
||||
background: var(--nodedc-glass-control-active);
|
||||
}
|
||||
|
||||
.e35-degradation-evidence__telemetry {
|
||||
position: absolute;
|
||||
z-index: 3;
|
||||
@@ -74,7 +87,7 @@
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.e35-degradation-evidence__timeline {
|
||||
top: 4rem;
|
||||
top: 5.2rem;
|
||||
}
|
||||
|
||||
.e35-degradation-evidence__timeline .nodedc-button {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
.laboratory-summary__brief {
|
||||
.laboratory-summary .laboratory-summary__brief {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 0.4rem;
|
||||
margin-top: 0.65rem;
|
||||
margin-top: 0.85rem;
|
||||
}
|
||||
|
||||
.laboratory-summary__brief > div {
|
||||
@@ -44,7 +44,7 @@
|
||||
}
|
||||
|
||||
@media (max-width: 1100px) {
|
||||
.laboratory-summary__brief {
|
||||
.laboratory-summary .laboratory-summary__brief {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
gap: 0.85rem;
|
||||
}
|
||||
|
||||
.laboratory-work-template {
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.recordings-workspace {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@@ -163,7 +167,7 @@
|
||||
.laboratory-summary__method {
|
||||
display: grid;
|
||||
gap: 0.45rem;
|
||||
margin-top: 0.65rem;
|
||||
margin-top: 0.85rem;
|
||||
}
|
||||
|
||||
.laboratory-summary__method > header {
|
||||
|
||||
@@ -55,7 +55,6 @@
|
||||
.compute-contour-settings__install code {
|
||||
overflow: auto;
|
||||
padding: 0.8rem;
|
||||
border: 1px solid var(--station-hairline);
|
||||
border-radius: var(--nodedc-radius-control);
|
||||
background: var(--station-panel-deep);
|
||||
color: var(--nodedc-text-secondary);
|
||||
@@ -132,7 +131,6 @@
|
||||
.system-telemetry-series,
|
||||
.network-stat-card {
|
||||
min-width: 0;
|
||||
border: 1px solid var(--station-hairline);
|
||||
border-radius: var(--nodedc-radius-card);
|
||||
background: var(--station-panel-soft);
|
||||
}
|
||||
@@ -213,8 +211,8 @@
|
||||
|
||||
.worker-hardware__facts dl {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
border: 1px solid var(--station-hairline);
|
||||
border-radius: var(--nodedc-radius-control);
|
||||
background: var(--station-panel-soft);
|
||||
}
|
||||
|
||||
.worker-hardware__facts dl > div,
|
||||
@@ -383,13 +381,11 @@
|
||||
gap: 0.75rem;
|
||||
padding: 0.72rem 0.8rem;
|
||||
isolation: isolate;
|
||||
border: 1px solid var(--station-hairline);
|
||||
border-radius: var(--nodedc-radius-control);
|
||||
background: var(--station-panel-soft);
|
||||
}
|
||||
|
||||
.worker-stage-list li[data-state="active"] {
|
||||
border-color: var(--station-hairline-strong);
|
||||
background: var(--nodedc-focus-surface);
|
||||
}
|
||||
|
||||
@@ -498,7 +494,6 @@
|
||||
min-width: 0;
|
||||
gap: 0.3rem;
|
||||
padding: 0.78rem;
|
||||
border: 1px solid var(--station-hairline);
|
||||
border-radius: var(--nodedc-radius-control);
|
||||
background: var(--station-panel-soft);
|
||||
}
|
||||
|
||||
@@ -30,6 +30,14 @@ const e35ResultUrl = new URL(
|
||||
"../src/workspaces/laboratory/E35Result.tsx",
|
||||
import.meta.url,
|
||||
);
|
||||
const e35StylesUrl = new URL(
|
||||
"../src/styles/e35-degradation-recovery.css",
|
||||
import.meta.url,
|
||||
);
|
||||
const laboratoryReportingStylesUrl = new URL(
|
||||
"../src/styles/laboratory-reporting.css",
|
||||
import.meta.url,
|
||||
);
|
||||
const advancedLaboratoryResultUrl = new URL(
|
||||
"../src/workspaces/laboratory/AdvancedLaboratoryResult.tsx",
|
||||
import.meta.url,
|
||||
@@ -166,9 +174,18 @@ test("E34 keeps temporal evidence inside the canonical LAB and viewer contracts"
|
||||
});
|
||||
|
||||
test("E35 extends the canonical LAB with fault and recovery evidence", async () => {
|
||||
const [e35Source, advancedSource] = await Promise.all([
|
||||
const [
|
||||
e35Source,
|
||||
advancedSource,
|
||||
e35Styles,
|
||||
laboratoryStyles,
|
||||
reportingStyles,
|
||||
] = await Promise.all([
|
||||
readFile(e35ResultUrl, "utf8"),
|
||||
readFile(advancedLaboratoryResultUrl, "utf8"),
|
||||
readFile(e35StylesUrl, "utf8"),
|
||||
readFile(laboratoryStylesUrl, "utf8"),
|
||||
readFile(laboratoryReportingStylesUrl, "utf8"),
|
||||
]);
|
||||
|
||||
assert.match(e35Source, /<LaboratoryWorkTemplate/);
|
||||
@@ -182,6 +199,22 @@ test("E35 extends the canonical LAB with fault and recovery evidence", async ()
|
||||
assert.match(e35Source, /PHASE_LABELS/);
|
||||
assert.match(advancedSource, /id: "e35-degradation-recovery"/);
|
||||
assert.match(advancedSource, /<E35Result/);
|
||||
assert.match(
|
||||
e35Styles,
|
||||
/\.e35-degradation-evidence__timeline[\s\S]*top:\s*4\.9rem/,
|
||||
);
|
||||
assert.match(
|
||||
e35Styles,
|
||||
/\.nodedc-button\[data-variant="primary"\][\s\S]*background:\s*var\(--nodedc-glass-control-active\)/,
|
||||
);
|
||||
assert.match(
|
||||
laboratoryStyles,
|
||||
/\.laboratory-work-template\s*\{[^}]*gap:\s*1rem/s,
|
||||
);
|
||||
assert.match(
|
||||
reportingStyles,
|
||||
/\.laboratory-summary\s+\.laboratory-summary__brief\s*\{[^}]*margin-top:\s*0\.85rem/s,
|
||||
);
|
||||
});
|
||||
|
||||
test("the primary point-cloud viewer restores from fullscreen on Escape", async () => {
|
||||
|
||||
@@ -59,6 +59,11 @@ test("Worker 006 telemetry remains a bounded system feature slice", async () =>
|
||||
telemetryStyles,
|
||||
/\.worker-stage-list\s*\{[^}]*grid-template-columns:\s*repeat\(3,/s,
|
||||
);
|
||||
assert.doesNotMatch(
|
||||
telemetryStyles,
|
||||
/\bborder:\s*1px\s+solid/,
|
||||
"System product blocks must not reintroduce decorative perimeter outlines",
|
||||
);
|
||||
assert.match(networkWorkspace, /127\.0\.0\.1:8000/);
|
||||
assert.match(networkWorkspace, /telemetry_poll_interval_seconds/);
|
||||
assert.match(networkWorkspace, />\s*Обновить\s*</);
|
||||
|
||||
Reference in New Issue
Block a user