chore(release): 1.1.35 - 系统更新看板化重构、消除弹窗抖动与排队卡死

This commit is contained in:
Qiufeng
2026-09-04 15:18:39 +08:00
parent b46a7ddc87
commit 2869d17fe3
3 changed files with 966 additions and 725 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "tallynote",
"version": "1.1.34",
"version": "1.1.35",
"private": true,
"type": "module",
"packageManager": "pnpm@9.0.6",
File diff suppressed because it is too large Load Diff
+349 -29
View File
@@ -679,35 +679,7 @@ input:focus-visible, textarea:focus-visible, select:focus-visible {
gap: 14px;
margin-bottom: 16px;
}
.tn-metric-card .t-card__body {
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 16px 18px;
min-height: 104px;
}
.tn-metric-content {
width: 100%;
}
.tn-metric-label {
display: block;
font-size: 12px;
color: var(--tn-text-secondary);
margin-bottom: 4px;
}
.tn-metric-value {
font-size: 20px;
font-weight: 700;
color: var(--tn-navy-900);
font-family: "Plus Jakarta Sans Variable", sans-serif;
font-variant-numeric: tabular-nums;
line-height: 1.2;
}
.tn-metric-foot {
margin-top: 6px;
font-size: 12px;
color: var(--tn-text-muted);
}
/* Stepper Surface */
.tn-stepper-surface {
@@ -1147,3 +1119,351 @@ input:focus-visible, textarea:focus-visible, select:focus-visible {
justify-content: flex-start;
}
}
/* System Update Console & Phase Styles */
.tn-release-version-title {
margin: 4px 0 8px;
font-size: 20px;
font-weight: 700;
color: var(--tn-navy-900);
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.tn-release-nickname {
font-size: 15px;
font-weight: 500;
color: var(--tn-text-secondary);
}
.tn-release-meta-row {
display: flex;
align-items: center;
gap: 16px;
font-size: 13px;
color: var(--tn-text-secondary);
flex-wrap: wrap;
}
.tn-meta-item {
display: inline-flex;
align-items: center;
gap: 6px;
}
.tn-meta-link {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--td-brand-color);
text-decoration: none;
}
.tn-meta-link:hover {
text-decoration: underline;
}
/* In-Page Release Notes Container */
.tn-release-notes-surface {
margin-bottom: 16px;
padding: 20px;
}
.tn-release-notes-box {
margin: 0;
padding: 16px 20px;
background: var(--tn-surface-alt, #f8fafc);
border: 1px solid var(--tn-border);
border-left: 3px solid var(--td-brand-color);
border-radius: 4px;
}
.tn-release-notes-content {
font-size: 13.5px;
color: var(--tn-text);
line-height: 1.7;
max-height: 380px;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: var(--td-brand-color-3) transparent;
}
/* Upgrade Modal Phases */
.tn-upgrade-phase-confirm {
padding: 12px 0;
}
.tn-confirm-phase-head {
display: flex;
align-items: flex-start;
gap: 16px;
margin-bottom: 16px;
}
.tn-confirm-phase-head h4 {
margin: 0 0 6px;
font-size: 17px;
font-weight: 600;
color: var(--tn-navy-900);
}
.tn-confirm-phase-head p {
margin: 0;
font-size: 13.5px;
}
.tn-upgrade-safety-tips {
background: rgba(23, 92, 211, 0.04);
border: 1px solid rgba(23, 92, 211, 0.15);
border-radius: 4px;
padding: 14px 16px;
font-size: 13px;
line-height: 1.8;
color: var(--tn-navy-900);
margin-bottom: 20px;
}
.tn-modal-actions-bar {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 12px;
margin-top: 20px;
}
.tn-staged-apply-box {
padding: 12px 0 4px;
}
.tn-staged-title {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 8px;
font-size: 15px;
}
.tn-upgrade-phase-completed {
padding: 24px 0 12px;
}
.tn-completed-banner {
display: flex;
align-items: center;
gap: 18px;
background: rgba(47, 125, 92, 0.06);
border: 1px solid rgba(47, 125, 92, 0.2);
border-radius: 4px;
padding: 18px 22px;
margin-bottom: 16px;
}
.tn-completed-banner h4 {
margin: 0 0 4px;
font-size: 18px;
font-weight: 600;
color: #1e6043;
}
.tn-completed-banner p {
margin: 0;
font-size: 13.5px;
color: var(--tn-text);
}
.tn-upgrade-phase-failed {
padding: 16px 0;
}
.tn-modal-footer-close {
display: flex;
justify-content: center;
margin-top: 18px;
border-top: 1px dashed var(--tn-border);
padding-top: 14px;
}
/* ============================================================
ASCII Layout Accurate Styles for Update Center
============================================================ */
/* 4 Metric Cards Grid - Strictly Fixed Height & Zero Layout Shift */
.tn-metrics-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 16px;
margin-bottom: 20px;
align-items: start;
}
.tn-metric-card {
height: 104px !important;
min-height: 104px !important;
max-height: 104px !important;
box-sizing: border-box !important;
padding: 0 !important;
background: #ffffff;
border: 1px solid var(--tn-border);
border-radius: 4px;
overflow: hidden !important;
}
.tn-metric-card .t-card__body {
height: 100% !important;
box-sizing: border-box !important;
display: flex !important;
flex-direction: column !important;
justify-content: space-between !important;
padding: 14px 18px !important;
}
.tn-metric-label {
display: block;
font-size: 12.5px;
color: var(--tn-text-secondary);
line-height: 1;
margin: 0;
}
.tn-metric-value {
font-size: 20px;
font-weight: 700;
color: var(--tn-navy-900);
line-height: 1.2;
margin: 4px 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-variant-numeric: tabular-nums;
}
.tn-metric-card.tn-metric-date .tn-metric-value {
font-size: 16px !important;
font-weight: 600 !important;
line-height: 1.3 !important;
}
.tn-metric-foot {
font-size: 12px;
color: var(--tn-text-secondary);
height: 20px !important;
min-height: 20px !important;
max-height: 20px !important;
line-height: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: flex;
align-items: center;
margin: 0;
}
/* Container 5: Release Details (Exact ASCII: 2 rows, 3 columns) */
.tn-ascii-release-container {
padding: 22px 24px;
margin-bottom: 20px;
background: #ffffff;
border: 1px solid var(--tn-border);
border-radius: 4px;
}
.tn-ascii-release-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 18px;
border-bottom: 1px solid #edf1f5;
padding-bottom: 12px;
}
.tn-ascii-release-title {
margin: 0;
font-size: 16px;
font-weight: 700;
color: var(--tn-navy-900);
}
.tn-ascii-info-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px 24px;
margin-bottom: 24px;
}
.tn-ascii-info-item {
font-size: 13.5px;
color: var(--tn-text);
line-height: 1.6;
}
.tn-ascii-info-label {
color: var(--tn-text-secondary);
margin-right: 6px;
}
.tn-ascii-info-val {
font-weight: 600;
color: var(--tn-navy-900);
}
.tn-ascii-release-actions {
display: flex;
justify-content: flex-end;
border-top: 1px solid #edf1f5;
padding-top: 18px;
}
/* Container 6: In-page Release Notes Card */
.tn-ascii-notes-container {
padding: 22px 24px;
margin-bottom: 24px;
background: #ffffff;
border: 1px solid var(--tn-border);
border-radius: 4px;
}
.tn-ascii-notes-head {
margin-bottom: 16px;
border-bottom: 1px solid #edf1f5;
padding-bottom: 12px;
}
.tn-ascii-notes-title {
margin: 0;
font-size: 16px;
font-weight: 700;
color: var(--tn-navy-900);
}
.tn-ascii-notes-body {
font-size: 13.5px;
color: var(--tn-text);
line-height: 1.75;
max-height: 420px;
overflow-y: auto;
padding-right: 8px;
}
/* Modal Inner Card matching ASCII */
.tn-modal-card-box {
background: #f8fafc;
border: 1px solid var(--tn-border);
border-radius: 4px;
padding: 20px 24px;
margin: 16px 0;
}
.tn-modal-card-title {
font-size: 15px;
font-weight: 600;
color: var(--tn-navy-900);
margin-bottom: 14px;
}
.tn-modal-metrics-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin-top: 14px;
font-size: 13px;
color: var(--tn-text-secondary);
padding-top: 12px;
border-top: 1px solid #eef2f6;
}
.tn-modal-metrics-item strong {
color: var(--tn-navy-900);
margin-left: 4px;
}
.tn-modal-info-note {
font-size: 12.5px;
color: var(--tn-text-secondary);
line-height: 1.6;
margin: 12px 0 16px;
display: flex;
align-items: center;
gap: 6px;
}
/* Compact Floating Mock Switcher at bottom-right instead of giant top banner */
.tn-dev-mock-dock {
position: fixed;
bottom: 16px;
right: 16px;
z-index: 999;
background: #ffffff;
border: 1px solid var(--td-brand-color);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
border-radius: 4px;
padding: 8px 12px;
display: flex;
align-items: center;
gap: 10px;
font-size: 12px;
}