feat: professionalize control plane and standalone delivery

This commit is contained in:
theshy
2026-04-07 10:46:30 +08:00
parent d0cf1fd0df
commit 862db502b0
100 changed files with 8313 additions and 1483 deletions

View File

@ -66,11 +66,20 @@ button {
gap: 16px;
}
.toast-stack {
display: grid;
gap: 10px;
}
.status-banner {
border-radius: 18px;
padding: 12px 16px;
border: 1px solid var(--line);
background: rgba(255,255,255,0.86);
display: flex;
justify-content: space-between;
gap: 12px;
align-items: center;
}
.status-banner.good {
@ -88,6 +97,13 @@ button {
color: var(--accent);
}
.toast-close {
border: 0;
background: transparent;
color: inherit;
font-weight: 600;
}
.react-topbar {
padding: 18px 22px;
display: flex;
@ -225,6 +241,11 @@ button {
gap: 16px;
}
.tasks-main-stack {
display: grid;
gap: 16px;
}
.overview-stack-react {
display: grid;
gap: 16px;
@ -259,49 +280,61 @@ button {
background: rgba(255,255,255,0.92);
}
.table-wrap-react {
max-height: calc(100vh - 280px);
overflow: auto;
.task-cards-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.task-card {
display: grid;
gap: 12px;
border: 1px solid var(--line);
border-radius: 16px;
border-radius: 18px;
padding: 16px;
background: rgba(255,255,255,0.84);
}
.task-table-react {
width: 100%;
min-width: 980px;
border-collapse: collapse;
}
.task-table-react th,
.task-table-react td {
padding: 12px 14px;
border-bottom: 1px solid var(--line);
color: var(--ink);
text-align: left;
vertical-align: top;
}
.task-table-react th {
position: sticky;
top: 0;
background: rgba(243, 239, 232, 0.96);
.task-card.active {
border-color: rgba(178, 75, 26, 0.28);
background: linear-gradient(135deg, rgba(255, 248, 240, 0.98), rgba(249, 242, 234, 0.95));
}
.task-card-head,
.task-card-foot {
display: flex;
justify-content: space-between;
gap: 10px;
align-items: flex-start;
flex-wrap: wrap;
}
.task-card-metrics {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.task-metric {
border: 1px solid var(--line);
border-radius: 14px;
padding: 10px 12px;
background: rgba(255,255,255,0.72);
}
.task-metric span {
display: block;
color: var(--muted);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.08em;
margin-bottom: 6px;
}
.task-table-react tbody tr {
cursor: pointer;
transition: background 140ms ease;
}
.task-table-react tbody tr:hover {
background: rgba(178, 75, 26, 0.06);
}
.task-table-react tbody tr.active {
background: linear-gradient(135deg, rgba(255, 248, 240, 0.98), rgba(249, 242, 234, 0.95));
.task-metric strong {
display: block;
font-size: 14px;
line-height: 1.4;
}
.task-title {
@ -315,6 +348,40 @@ button {
word-break: break-all;
}
.focus-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.focus-card {
display: grid;
gap: 10px;
border: 1px solid var(--line);
border-radius: 18px;
padding: 16px;
background: rgba(255,255,255,0.84);
text-align: left;
color: var(--ink);
}
.focus-card.active {
border-color: rgba(178, 75, 26, 0.28);
background: linear-gradient(135deg, rgba(255, 248, 240, 0.98), rgba(249, 242, 234, 0.95));
}
.focus-card p {
margin: 0;
color: var(--muted);
}
.focus-card-head {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.detail-panel .detail-row,
.list-row {
display: flex;
@ -351,6 +418,31 @@ button {
font-size: 13px;
}
.detail-lead {
margin-top: 8px;
max-width: 56ch;
}
.bind-block {
display: grid;
gap: 10px;
margin-top: 14px;
padding-top: 12px;
border-top: 1px solid var(--line);
}
.bind-block input {
width: 100%;
border: 1px solid var(--line);
border-radius: 14px;
padding: 11px 12px;
background: rgba(255,255,255,0.96);
}
.session-card-full {
grid-column: 1 / -1;
}
.row-actions,
.service-actions,
.card-head-inline {
@ -550,4 +642,34 @@ button {
.toolbar-grid {
grid-template-columns: 1fr;
}
.session-card-full {
grid-column: auto;
}
.focus-grid {
grid-template-columns: 1fr;
}
.task-cards-grid,
.task-card-metrics {
grid-template-columns: 1fr;
}
}
@media (max-width: 760px) {
.react-shell {
width: min(100vw - 20px, 100%);
margin: 10px auto 24px;
}
.panel,
.react-topbar,
.react-sidebar {
border-radius: 18px;
}
.task-card {
padding: 14px;
}
}