重做实例页 UI:列表卡片为主,添加收起,Token 默认隐藏,风格对齐系统设置。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-04 07:35:57 +08:00
parent bce446178d
commit 2e460efb73
4 changed files with 394 additions and 49 deletions
+181 -1
View File
@@ -329,7 +329,6 @@ button, .btn {
align-items: end;
}
.check { display: flex !important; align-items: center; gap: 8px; }
.inst-row { margin: 10px 0; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; }
.update-version {
font-size: 0.82rem;
font-variant-numeric: tabular-nums;
@@ -345,6 +344,187 @@ button, .btn {
.update-status.ok { color: var(--ok); }
.update-status.err { color: var(--bad); }
.update-table td { vertical-align: middle; }
/* 实例页 */
.inst-page-head {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.inst-page-head-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.inst-add-trigger {
display: inline-flex;
align-items: center;
cursor: pointer;
margin: 0;
}
.inst-add-check {
position: absolute;
opacity: 0;
pointer-events: none;
width: 0;
height: 0;
}
.inst-shell {
max-width: 920px;
}
.inst-add-panel {
display: none;
border-bottom: 1px solid rgba(56, 189, 248, 0.12);
}
#inst-add-toggle:checked ~ .inst-shell .inst-add-panel {
display: block;
}
.inst-list-head {
border-bottom: 1px solid rgba(56, 189, 248, 0.12);
}
.inst-card-list {
padding: 16px 18px 20px;
display: flex;
flex-direction: column;
gap: 12px;
}
.inst-empty {
margin: 8px 4px 12px;
line-height: 1.5;
font-size: 0.88rem;
}
.inst-card {
border: 1px solid rgba(56, 189, 248, 0.16);
border-radius: 14px;
background: rgba(5, 12, 22, 0.45);
overflow: hidden;
}
.inst-card[open] {
border-color: rgba(56, 189, 248, 0.35);
box-shadow: 0 0 0 1px rgba(34, 211, 238, 0.08);
}
.inst-card-summary {
list-style: none;
display: flex;
align-items: center;
gap: 14px;
padding: 14px 16px;
cursor: pointer;
user-select: none;
}
.inst-card-summary::-webkit-details-marker { display: none; }
.inst-card-main { flex: 1; min-width: 0; }
.inst-card-title-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
margin-bottom: 4px;
}
.inst-card-name {
font-size: 1rem;
font-weight: 650;
letter-spacing: 0.02em;
}
.inst-card-url {
font-size: 0.8rem;
word-break: break-all;
line-height: 1.35;
}
.inst-card-aside {
display: flex;
align-items: center;
gap: 10px;
flex: 0 0 auto;
}
.inst-card-chevron {
width: 8px;
height: 8px;
border-right: 2px solid var(--muted);
border-bottom: 2px solid var(--muted);
transform: rotate(45deg);
transition: transform 0.15s ease;
margin-top: -4px;
}
.inst-card[open] .inst-card-chevron {
transform: rotate(225deg);
margin-top: 2px;
}
.inst-pill {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: 999px;
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.02em;
}
.inst-pill--on {
color: #86efac;
background: rgba(22, 101, 52, 0.35);
border: 1px solid rgba(74, 222, 128, 0.35);
}
.inst-pill--off {
color: #fda4af;
background: rgba(127, 29, 29, 0.35);
border: 1px solid rgba(251, 113, 133, 0.35);
}
.inst-pill--tag {
color: #bae6fd;
background: rgba(14, 116, 144, 0.28);
border: 1px solid rgba(56, 189, 248, 0.28);
max-width: 12rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.inst-card-body {
padding: 0 8px 14px;
border-top: 1px solid rgba(56, 189, 248, 0.1);
}
.inst-card-body .inst-form {
padding-top: 14px;
padding-bottom: 8px;
}
.inst-card-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
margin-top: 4px;
}
.inst-card-actions .btn,
.inst-card-actions .settings-primary {
margin-top: 0;
}
.inst-delete-form {
padding: 0 12px 4px;
}
.inst-token-wrap {
display: flex;
gap: 8px;
align-items: stretch;
margin-top: 6px;
}
.inst-token-wrap .inst-token-input {
margin-top: 0 !important;
flex: 1;
min-width: 0;
}
.inst-token-wrap .inst-token-toggle {
flex: 0 0 auto;
align-self: center;
margin-top: 0;
}
@media (max-width: 720px) {
.inst-page-head { align-items: flex-start; }
.settings-row-2 { grid-template-columns: 1fr; }
.inst-card-summary { flex-direction: column; align-items: stretch; gap: 8px; }
.inst-card-aside { justify-content: space-between; }
}
.overview-table-wrap {
overflow-x: auto;
margin-top: 12px;