refactor: BackupPage & ContactsPage & ExportPage & InsightInboxPage & MyFootprintPage & ResourcesPage UI rebuild

This commit is contained in:
Jason committed 2026-05-05 22:17:30 +08:00
1 parent 5319153879
commit 24ab0239df
8 files changed
+358 -398

No files matched your search

+42 -44
View File
@@ -1,37 +1,37 @@
.resources-page.stream-rebuild {
--stream-columns: 4;
--stream-grid-gap: 12px;
--stream-card-width: 272px;
--stream-card-height: 356px;
--stream-visual-height: 236px;
--stream-grid-gap: 10px;
--stream-card-width: 248px;
--stream-card-height: 318px;
--stream-visual-height: 210px;
--stream-slot-width: calc(var(--stream-card-width) + var(--stream-grid-gap));
--stream-slot-height: calc(var(--stream-card-height) + var(--stream-grid-gap));
--stream-grid-width: calc(var(--stream-slot-width) * var(--stream-columns));
height: calc(100% + 48px);
margin: -24px;
padding: 16px 18px;
padding: 14px 16px;
position: relative;
background: var(--bg-primary);
display: flex;
flex-direction: column;
gap: 12px;
gap: 10px;
overflow: hidden;
.stream-toolbar {
border: 1px solid color-mix(in srgb, var(--border-color) 78%, transparent);
background: var(--card-bg, #f8f9fb);
border-radius: 16px;
padding: 12px;
border-radius: 8px;
padding: 10px;
display: flex;
justify-content: space-between;
gap: 12px;
gap: 10px;
align-items: flex-start;
}
.toolbar-left {
display: flex;
flex-direction: column;
gap: 10px;
gap: 8px;
min-width: 0;
flex: 1;
}
@@ -41,7 +41,7 @@
align-items: center;
width: fit-content;
padding: 4px;
border-radius: 12px;
border-radius: 8px;
background: color-mix(in srgb, var(--bg-secondary) 85%, transparent);
border: 1px solid var(--border-color);
@@ -49,16 +49,16 @@
border: none;
background: transparent;
color: var(--text-secondary, #5f6674);
border-radius: 9px;
padding: 7px 14px;
border-radius: 6px;
padding: 6px 12px;
font-size: 13px;
cursor: pointer;
transition: all 0.2s ease;
transition: background 0.15s ease, color 0.15s ease;
&.active {
background: color-mix(in srgb, var(--primary) 18%, var(--card-bg));
color: var(--text-primary, #1c2230);
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 45%, transparent);
box-shadow: none;
}
}
}
@@ -76,9 +76,9 @@
border: 1px solid color-mix(in srgb, var(--border-color, #d2d7df) 95%, transparent);
background: var(--bg-secondary, #f3f5f8);
color: var(--text-secondary, #566074);
border-radius: 10px;
border-radius: 8px;
padding: 0 10px;
min-height: 36px;
min-height: 34px;
box-sizing: border-box;
svg {
@@ -103,8 +103,8 @@
color: var(--text-primary, #1c2230);
font-size: 13px;
min-width: 0;
height: 34px;
line-height: 34px;
height: 32px;
line-height: 32px;
font-family: "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
appearance: none;
}
@@ -129,8 +129,8 @@
border: 1px solid var(--border-color);
background: transparent;
color: var(--text-secondary, #5f6674);
border-radius: 10px;
height: 36px;
border-radius: 8px;
height: 34px;
padding: 0 12px;
cursor: pointer;
}
@@ -152,8 +152,8 @@
border: 1px solid var(--border-color);
background: var(--bg-secondary, #f3f5f8);
color: var(--text-secondary, #5f6674);
border-radius: 10px;
height: 34px;
border-radius: 8px;
height: 32px;
padding: 0 12px;
font-size: 13px;
display: inline-flex;
@@ -184,9 +184,9 @@
}
.stream-state {
height: 120px;
height: 104px;
border: 1px dashed var(--border-color);
border-radius: 12px;
border-radius: 8px;
background: var(--card-bg);
color: var(--text-secondary);
display: flex;
@@ -204,7 +204,7 @@
flex: 1;
min-height: 0;
border: 1px solid color-mix(in srgb, var(--border-color) 80%, transparent);
border-radius: 16px;
border-radius: 8px;
background: color-mix(in srgb, var(--card-bg) 94%, transparent);
overflow: hidden;
display: flex;
@@ -226,7 +226,7 @@
justify-content: flex-start;
align-items: flex-start;
align-content: flex-start;
padding: 10px 0 2px;
padding: 8px 0 2px;
width: var(--stream-grid-width);
min-width: var(--stream-grid-width);
max-width: var(--stream-grid-width);
@@ -257,7 +257,7 @@
height: 100%;
border: 1px solid var(--border-color);
background: var(--bg-secondary);
border-radius: 14px;
border-radius: 8px;
overflow: hidden;
transition: border-color 0.16s ease;
position: relative;
@@ -288,7 +288,7 @@
z-index: 4;
width: 28px;
height: 28px;
border-radius: 9px;
border-radius: 6px;
border: 1px solid color-mix(in srgb, var(--danger) 48%, var(--border-color));
color: var(--danger);
background: color-mix(in srgb, var(--bg-secondary) 90%, transparent);
@@ -297,9 +297,9 @@
justify-content: center;
cursor: pointer;
opacity: 0;
transform: translateY(-2px) scale(0.96);
transform: none;
pointer-events: none;
transition: opacity 0.16s ease, transform 0.16s ease;
transition: opacity 0.15s ease;
}
.floating-info {
@@ -317,7 +317,7 @@
.media-card:hover .floating-delete,
.media-card:focus-within .floating-delete {
opacity: 1;
transform: translateY(0) scale(1);
transform: none;
pointer-events: auto;
}
@@ -329,7 +329,7 @@
border: 1px solid color-mix(in srgb, var(--primary) 45%, var(--border-color));
background: color-mix(in srgb, var(--bg-secondary) 90%, transparent);
color: var(--text-primary);
border-radius: 9px;
border-radius: 6px;
height: 28px;
padding: 0 8px;
font-size: 11px;
@@ -408,15 +408,15 @@
align-items: center;
justify-content: center;
pointer-events: none;
background: linear-gradient(140deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.04));
background: rgba(255, 255, 255, 0.08);
overflow: hidden;
&::before {
content: '';
position: absolute;
inset: -40%;
background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.35) 50%, transparent 65%);
animation: decrypt-sheen 1.6s linear infinite;
background: none;
animation: none;
pointer-events: none;
}
}
@@ -429,16 +429,14 @@
border-radius: 999px;
border: 2px solid rgba(15, 23, 42, 0.2);
border-top-color: color-mix(in srgb, var(--primary) 78%, #ffffff);
animation: decrypt-spin 0.85s linear infinite, decrypt-pulse 1.2s ease-in-out infinite;
box-shadow:
0 0 0 8px rgba(255, 255, 255, 0.26),
0 10px 24px rgba(15, 23, 42, 0.12);
animation: decrypt-spin 0.85s linear infinite;
box-shadow: none;
}
}
.card-meta {
padding: 9px 10px 8px;
min-height: 66px;
padding: 8px 10px;
min-height: 58px;
margin-top: auto;
cursor: pointer;
border-top: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
@@ -517,8 +515,8 @@
width: min(420px, calc(100% - 32px));
background: var(--dialog-surface);
border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
border-radius: 14px;
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
border-radius: 10px;
box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
overflow: hidden;
}