diff --git a/.gitignore b/.gitignore index 9767479..77b0e58 100644 --- a/.gitignore +++ b/.gitignore @@ -56,7 +56,7 @@ yarn-error.log* .wrangler/ **/.wrangler/ # Gemini/AI assistant state -.gemini/ +.antigravity # Act (local GitHub Actions) configuration and state .actrc .event diff --git a/frontend/src/app/styles/modules/components/backup.css b/frontend/src/app/styles/modules/components/backup.css index f4ba63d..2c7e737 100644 --- a/frontend/src/app/styles/modules/components/backup.css +++ b/frontend/src/app/styles/modules/components/backup.css @@ -1,8 +1,4 @@ /* Backup Feature Styles */ -.backup-container { - padding: 10px; -} - .backup-header-actions { display: flex; justify-content: space-between; @@ -13,6 +9,7 @@ .backup-provider-card { height: 100%; transition: transform 0.2s; + border-radius: 8px; } .backup-provider-card:hover { @@ -41,6 +38,14 @@ .backup-action-buttons { display: flex; gap: 10px; + flex-wrap: wrap; +} + +@media (max-width: 768px) { + .backup-action-buttons .el-button { + margin-left: 0 !important; + margin-right: 8px !important; + } } .backup-form-tip { @@ -115,15 +120,17 @@ text-align: center; } -/* Global Fix for Element Plus Icon & Loading Alignment */ -.el-button { +/* Global Fix for Element Plus Icon & Loading Alignment in Backup Feature */ +.data-backup-wrapper .el-button, +.backup-container .el-button { display: inline-flex !important; align-items: center !important; justify-content: center !important; vertical-align: middle; } -.el-button .el-icon { +.data-backup-wrapper .el-button .el-icon, +.backup-container .el-button .el-icon { display: inline-flex !important; align-items: center !important; justify-content: center !important; @@ -263,4 +270,18 @@ .dark .btn-dropbox-auth:hover { background-color: #00368c; +} + +/* Connection Test Success State Fix */ +.backup-action-buttons .el-button.btn-test-success.is-disabled { + opacity: 1 !important; + color: var(--el-color-primary) !important; + border-color: var(--el-color-primary-light-7) !important; + background-color: var(--el-color-primary-light-9) !important; + cursor: default !important; +} + +.dark .backup-action-buttons .el-button.btn-test-success.is-disabled { + background-color: rgba(64, 158, 255, 0.1) !important; + border-color: rgba(64, 158, 255, 0.2) !important; } \ No newline at end of file diff --git a/frontend/src/app/styles/modules/components/migration.css b/frontend/src/app/styles/modules/components/migration.css index da679ae..63ac24e 100644 --- a/frontend/src/app/styles/modules/components/migration.css +++ b/frontend/src/app/styles/modules/components/migration.css @@ -2,7 +2,7 @@ .migration-export-groups { max-width: 100%; - margin: 0 auto; + margin: 10px auto; display: flex; flex-direction: column; gap: 20px; diff --git a/frontend/src/app/styles/modules/components/security.css b/frontend/src/app/styles/modules/components/security.css index 0e1d6bc..3b2f52c 100644 --- a/frontend/src/app/styles/modules/components/security.css +++ b/frontend/src/app/styles/modules/components/security.css @@ -1,3 +1,7 @@ +.security-wrapper .tab-card-wrapper { + padding-bottom: 40px; +} + .security-wrapper .empty-state { padding: 60px 0; } diff --git a/frontend/src/app/styles/modules/components/shared.css b/frontend/src/app/styles/modules/components/shared.css index 2fa9d13..3d01753 100644 --- a/frontend/src/app/styles/modules/components/shared.css +++ b/frontend/src/app/styles/modules/components/shared.css @@ -100,6 +100,10 @@ } /* 3. QrScanner Component */ +.add-vault-wrapper .tab-card-wrapper { + padding-bottom: 40px; +} + .qr-scanner-container { width: 100%; } diff --git a/frontend/src/app/styles/modules/components/tools.css b/frontend/src/app/styles/modules/components/tools.css index 3c598c1..40a3658 100644 --- a/frontend/src/app/styles/modules/components/tools.css +++ b/frontend/src/app/styles/modules/components/tools.css @@ -1,6 +1,11 @@ /* ========================================= 4. UtilityTools 组件 (工具箱) ========================================= */ + +.tools-wrapper .tab-card-wrapper { + padding-bottom: 40px; +} + .tools-header { display: flex; align-items: center; diff --git a/frontend/src/app/styles/modules/components/vault.css b/frontend/src/app/styles/modules/components/vault.css index af12b80..6636d10 100644 --- a/frontend/src/app/styles/modules/components/vault.css +++ b/frontend/src/app/styles/modules/components/vault.css @@ -411,4 +411,48 @@ html.dark .category-tag.is-active { .tag-count { margin-left: 5px; font-size: 11px; +} + +/* --- 分类标签加载动效 (对齐 asyncHelper.js 的朴素风格) --- */ +.category-tag { + position: relative; + /* 移除 overflow: hidden,由下方的 track 容器单独负责裁剪,确保文字显示完全 */ +} + +.tag-loading-track { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 2px; + background: rgba(var(--el-color-primary-rgb, 64, 158, 255), 0.1); + border-radius: 0 0 3px 3px; + overflow: hidden; + /* 在这里进行裁剪 */ + z-index: 10; +} + +.tag-loading-bar { + position: absolute; + top: 0; + left: 0; + width: 40%; + height: 100%; + background: var(--el-color-primary); + border-radius: 2px; + animation: plain-loading-flow 1.5s infinite ease-in-out; +} + +@keyframes plain-loading-flow { + 0% { + transform: translateX(-100%); + } + + 100% { + transform: translateX(250%); + } +} + +.vault-list-wrapper { + transition: opacity 0.3s ease; } \ No newline at end of file diff --git a/frontend/src/features/backup/components/backupSettings.vue b/frontend/src/features/backup/components/backupSettings.vue index 99ccb67..c72c73d 100644 --- a/frontend/src/features/backup/components/backupSettings.vue +++ b/frontend/src/features/backup/components/backupSettings.vue @@ -47,6 +47,18 @@