Refine registration series defaults and mapping controls

This commit is contained in:
Codex
2026-05-29 00:33:40 +08:00
parent c4f0fd54d6
commit f9063b674c
4 changed files with 404 additions and 70 deletions

View File

@@ -662,6 +662,12 @@ button {
overflow-x: auto;
}
.dicom-panel .viewer-head {
align-content: center;
flex-wrap: wrap;
overflow-x: auto;
}
.viewer-head h2 {
margin: 0;
font-size: 16px;
@@ -696,6 +702,11 @@ button {
color: white;
}
.mini-segmented button {
min-width: 56px;
min-height: 30px;
}
.ghost-btn,
.primary-btn,
.state-btn {
@@ -855,12 +866,36 @@ button {
.top-loading span {
display: block;
height: 100%;
width: 34%;
border-radius: 999px;
background: linear-gradient(90deg, transparent, var(--cyan), var(--blue), transparent);
}
.fusion-loading i {
width: 0;
background: linear-gradient(90deg, var(--cyan), var(--blue));
transition: width 0.18s ease;
}
.fusion-loading i.indeterminate {
width: 34%;
animation: sweep 1.1s ease-in-out infinite;
}
.top-loading span {
width: 34%;
animation: sweep 1.1s ease-in-out infinite;
}
.fusion-loading em {
display: block;
margin-top: 6px;
color: #c8f7ff;
font-size: 11px;
font-style: normal;
font-weight: 900;
text-align: right;
}
.top-loading {
position: fixed;
top: 66px;
@@ -881,16 +916,80 @@ button {
}
}
.slice-row {
height: 48px;
.slice-range-panel {
min-height: 104px;
display: grid;
grid-template-columns: 98px minmax(0, 1fr);
gap: 12px;
align-items: center;
padding: 0 14px;
grid-template-rows: auto 26px auto 24px;
gap: 8px;
padding: 10px 16px;
border-top: 1px solid var(--line);
}
.slice-range-head,
.slice-range-foot,
.slice-current-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.slice-range-head strong {
color: #dbeafe;
font-size: 13px;
font-weight: 950;
}
.slice-range-head span,
.slice-range-foot span,
.slice-current-row span {
color: var(--muted);
font-size: 12px;
font-weight: 900;
}
.slice-range-head span {
color: #8fb5ff;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.dual-range {
position: relative;
height: 26px;
}
.dual-range::before {
content: "";
position: absolute;
top: 11px;
left: 0;
right: 0;
height: 8px;
border-radius: 999px;
background: rgba(148, 163, 184, 0.22);
}
.dual-range input {
position: absolute;
inset: 0;
width: 100%;
pointer-events: none;
background: transparent;
}
.dual-range input::-webkit-slider-thumb {
pointer-events: auto;
}
.dual-range input::-moz-range-thumb {
pointer-events: auto;
}
.slice-current-row {
display: grid;
grid-template-columns: 104px minmax(0, 1fr);
}
.dicom-stage {
position: relative;
min-height: 0;
@@ -1197,7 +1296,7 @@ input[type="range"] {
.pose-control {
display: grid;
grid-template-columns: 56px 26px minmax(0, 1fr) 26px 64px;
grid-template-columns: 62px 28px minmax(96px, 1fr) 28px minmax(82px, 96px);
gap: 6px;
align-items: center;
}
@@ -1210,13 +1309,15 @@ input[type="range"] {
.pose-control input[type="number"] {
width: 100%;
height: 30px;
height: 36px;
border: 1px solid var(--line);
border-radius: 8px;
background: rgba(6, 10, 15, 0.86);
color: var(--text);
text-align: right;
padding: 0 7px;
font-size: 16px;
font-weight: 900;
text-align: center;
padding: 0 6px;
}
.pose-control button,
@@ -1281,6 +1382,16 @@ input[type="range"] {
padding: 10px;
}
.compact-auto {
display: grid;
gap: 8px;
}
.wide-action {
width: 100%;
min-height: 34px;
}
.auto-options {
display: grid;
grid-template-columns: repeat(4, 1fr);
@@ -1320,6 +1431,53 @@ input[type="range"] {
text-align: center;
}
.modal-shell {
position: fixed;
inset: 0;
z-index: 90;
display: flex;
align-items: center;
justify-content: center;
background: rgba(2, 6, 12, 0.72);
backdrop-filter: blur(8px);
}
.modal-panel {
width: min(560px, calc(100vw - 36px));
border: 1px solid var(--line);
border-radius: 16px;
background: linear-gradient(180deg, rgba(18, 28, 42, 0.98), rgba(8, 13, 20, 0.98));
box-shadow: var(--shadow);
padding: 16px;
}
.modal-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-bottom: 14px;
}
.modal-head h2 {
margin: 0;
font-size: 18px;
}
.modal-head p {
margin: 5px 0 0;
color: var(--muted);
font-size: 12px;
}
.modal-options {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.modal-actions {
margin: 12px 0 0;
}
.login-overlay {
position: fixed;
inset: 0;