From 25ccaea8739a0c813f347aac2c40ed7d71ec739c Mon Sep 17 00:00:00 2001 From: Codex Date: Thu, 2 Jul 2026 03:05:27 +0800 Subject: [PATCH] style: tighten legacy backoffice density --- .../src/pages/platform-admin/platform.css | 224 ++++++++++++++++ apps/taro/src/pages/tenant-admin/admin.css | 240 ++++++++++++++++++ 2 files changed, 464 insertions(+) diff --git a/apps/taro/src/pages/platform-admin/platform.css b/apps/taro/src/pages/platform-admin/platform.css index 2c3b5a64..c6b4ebdb 100644 --- a/apps/taro/src/pages/platform-admin/platform.css +++ b/apps/taro/src/pages/platform-admin/platform.css @@ -474,3 +474,227 @@ flex: 1 1 138px; } } + +/* Legacy platform density pass: old web admin card/table rhythm. */ +.platform-page { + background: + linear-gradient(to right, rgba(15, 23, 42, 0.03) 1px, transparent 1px), + linear-gradient(to bottom, rgba(15, 23, 42, 0.03) 1px, transparent 1px), + #f4f6f9; + background-size: 40px 40px; +} + +.platform-shell { + gap: 18px; +} + +.platform-header { + border: 1px solid #f1f5f9; + border-radius: 16px; + background: #fff; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); +} + +.platform-header::after { + display: none; +} + +.platform-kicker { + color: #2563eb; + font-size: 14px; + font-weight: 900; +} + +.platform-title { + color: #111827; + font-size: 30px; + font-weight: 900; +} + +.platform-subtitle { + color: #64748b; + font-size: 15px; +} + +.platform-section, +.platform-metric, +.platform-row, +.platform-form, +.platform-permission-panel { + border-color: #f1f5f9; + border-radius: 16px; + background: #fff; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); +} + +.platform-section { + padding: 18px; +} + +.platform-section-title { + display: flex; + align-items: center; + gap: 9px; + margin-bottom: 12px; + font-size: 20px; +} + +.platform-section-title::before { + content: ""; + width: 5px; + height: 18px; + border-radius: 999px; + background: #2563eb; +} + +.platform-shell > .platform-actions, +.platform-shell > .platform-tabs, +.platform-section > .platform-actions:first-child { + padding: 10px; + border-color: #f1f5f9; + border-radius: 16px; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); +} + +.platform-actions, +.platform-tabs, +.platform-row-actions { + gap: 8px; +} + +.platform-button, +.platform-mini-button { + border-color: #e5e7eb; + border-radius: 10px; + color: #475569; + box-shadow: none; +} + +.platform-button { + min-width: 98px; + height: 42px; + font-size: 14px; + line-height: 42px; +} + +.platform-mini-button { + min-width: 86px; + height: 36px; + font-size: 13px; + line-height: 36px; +} + +.platform-button.primary, +.platform-button.active, +.platform-mini-button.active { + border-color: #1e293b; + background: #1e293b; + color: #fff; + box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15); +} + +.platform-mini-button.danger { + border-color: #fecaca; + background: #fff1f2; + color: #dc2626; +} + +.platform-metric { + min-height: 88px; + padding: 14px; +} + +.platform-metric-label, +.platform-field-label { + color: #6b7280; + font-size: 13px; + font-weight: 760; +} + +.platform-metric-value { + margin-top: 6px; + font-size: 24px; + font-weight: 900; +} + +.platform-row { + padding: 14px 16px; + border-radius: 14px; +} + +.platform-row:nth-child(4n + 1), +.platform-row:nth-child(4n + 2), +.platform-row:nth-child(4n + 3) { + border-color: #f1f5f9; +} + +.platform-row-main { + font-size: 17px; + font-weight: 850; +} + +.platform-row-meta { + margin-top: 5px; + color: #64748b; + font-size: 13px; + line-height: 1.45; +} + +.platform-input { + height: 44px; + padding: 0 12px; + border-color: #e5e7eb; + border-radius: 10px; + font-size: 14px; +} + +.platform-form { + gap: 10px; + padding: 12px; + background: #f8fafc; +} + +.platform-empty { + padding: 24px; + border-color: #e5e7eb; + border-radius: 16px; + color: #94a3b8; + font-size: 14px; +} + +.platform-chip { + min-height: 34px; + padding: 0 10px; + border-color: #e5e7eb; + border-radius: 8px; + font-size: 13px; +} + +.platform-chip.active, +.platform-chip.readonly { + border-color: #bfdbfe; + background: #eff6ff; + color: #1d4ed8; +} + +.platform-error { + font-size: 14px; +} + +@media (min-width: 980px) { + .platform-page { + padding: 24px; + } + + .platform-shell { + gap: 16px; + } + + .platform-header { + padding: 22px; + } + + .platform-title { + font-size: 30px; + } +} diff --git a/apps/taro/src/pages/tenant-admin/admin.css b/apps/taro/src/pages/tenant-admin/admin.css index e6f62c0a..0c05ac9a 100644 --- a/apps/taro/src/pages/tenant-admin/admin.css +++ b/apps/taro/src/pages/tenant-admin/admin.css @@ -540,3 +540,243 @@ flex: 1 1 138px; } } + +/* Legacy admin density pass: align backoffice surfaces with the old web console. */ +.admin-page { + background: + linear-gradient(to right, rgba(15, 23, 42, 0.03) 1px, transparent 1px), + linear-gradient(to bottom, rgba(15, 23, 42, 0.03) 1px, transparent 1px), + #f4f6f9; + background-size: 40px 40px; +} + +.admin-shell { + gap: 18px; +} + +.admin-header { + border: 1px solid #f1f5f9; + border-radius: 16px; + background: #fff; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); +} + +.admin-header::after { + display: none; +} + +.admin-kicker { + color: #2563eb; + font-size: 14px; + font-weight: 900; +} + +.admin-title { + color: #111827; + font-size: 30px; + font-weight: 900; +} + +.admin-subtitle { + color: #64748b; + font-size: 15px; +} + +.admin-section, +.admin-metric, +.admin-row, +.admin-form-grid, +.admin-sub-list, +.theme-preview-panel { + border-color: #f1f5f9; + border-radius: 16px; + background: #fff; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); +} + +.admin-section { + padding: 18px; +} + +.admin-section-title { + display: flex; + align-items: center; + gap: 9px; + margin-bottom: 12px; + font-size: 20px; +} + +.admin-section-title::before { + content: ""; + width: 5px; + height: 18px; + border-radius: 999px; + background: #2563eb; +} + +.admin-shell > .admin-actions, +.admin-shell > .admin-tabs, +.admin-section > .admin-actions:first-child { + padding: 10px; + border-color: #f1f5f9; + border-radius: 16px; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); +} + +.admin-actions, +.admin-tabs, +.admin-row-actions { + gap: 8px; +} + +.admin-button, +.admin-mini-button { + border-color: #e5e7eb; + border-radius: 10px; + color: #475569; + box-shadow: none; +} + +.admin-button { + min-width: 98px; + height: 42px; + font-size: 14px; + line-height: 42px; +} + +.admin-mini-button { + min-width: 86px; + height: 36px; + font-size: 13px; + line-height: 36px; +} + +.admin-button.primary, +.admin-mini-button.primary, +.admin-button.active { + border-color: #1e293b; + background: #1e293b; + color: #fff; + box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15); +} + +.admin-mini-button.danger { + border-color: #fecaca; + background: #fff1f2; + color: #dc2626; +} + +.admin-metric { + min-height: 88px; + padding: 14px; +} + +.admin-metric-label, +.admin-field-label { + color: #6b7280; + font-size: 13px; + font-weight: 760; +} + +.admin-metric-value { + margin-top: 6px; + font-size: 24px; + font-weight: 900; +} + +.admin-row { + padding: 14px 16px; + border-radius: 14px; +} + +.admin-row:nth-child(4n + 1), +.admin-row:nth-child(4n + 2), +.admin-row:nth-child(4n + 3) { + border-color: #f1f5f9; +} + +.admin-row.active, +.admin-row.nested { + border-color: #bfdbfe; + background: #eff6ff; +} + +.admin-row-main { + font-size: 17px; + font-weight: 850; +} + +.admin-row-meta { + margin-top: 5px; + color: #64748b; + font-size: 13px; + line-height: 1.45; +} + +.admin-input { + height: 44px; + padding: 0 12px; + border-color: #e5e7eb; + border-radius: 10px; + font-size: 14px; +} + +.admin-input.compact { + height: 40px; + font-size: 13px; +} + +.admin-textarea { + min-height: 128px; + padding: 12px; + border-color: #e5e7eb; + border-radius: 12px; + font-size: 14px; +} + +.admin-form-grid { + gap: 10px; + padding: 12px; + background: #f8fafc; +} + +.admin-empty { + padding: 24px; + border-color: #e5e7eb; + border-radius: 16px; + color: #94a3b8; + font-size: 14px; +} + +.admin-sub-row { + border-color: #f1f5f9; + border-radius: 12px; +} + +.theme-swatch { + width: 34px; + height: 34px; + border-radius: 9px; +} + +@media (min-width: 980px) { + .admin-page { + padding: 24px; + } + + .admin-shell { + gap: 16px; + } + + .admin-header { + padding: 22px; + } + + .admin-title { + font-size: 30px; + } + + .admin-section .admin-list { + gap: 10px; + } +}