From dc137e33ca8e3a8abf38e2b4015c214ee2e715c6 Mon Sep 17 00:00:00 2001 From: OoO Date: Wed, 6 May 2026 21:46:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=E6=9A=96=E8=89=B2=E7=B3=BB?= =?UTF-8?q?=E7=82=BA=E9=AE=AE=E6=98=8E=E7=B4=94=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 2 +- config.py | 2 +- scripts/check_observability_ui.py | 5 +- templates/auto_import_index.html | 46 +++++++------- .../components/_analysis_report_tabs.html | 2 +- templates/components/_ewoooc_shell.html | 20 +++--- templates/components/_navbar.html | 16 +++-- templates/daily_sales.html | 58 +++++++++-------- templates/ewoooc_base.html | 35 ++++++----- templates/growth_analysis.html | 22 +++---- templates/sales_analysis.html | 31 +++++---- web/static/css/ewoooc-tokens.css | 63 ++++++++++--------- 12 files changed, 149 insertions(+), 153 deletions(-) diff --git a/app.py b/app.py index 1c6b68a..8b809dc 100644 --- a/app.py +++ b/app.py @@ -96,7 +96,7 @@ except Exception as e: # 🚩 系統版本定義 (備份與顯示用) # 🚩 2026-05-01 V10.76: Move monthly analysis report onto V2 shell -SYSTEM_VERSION = "V10.86" +SYSTEM_VERSION = "V10.87" # ========================================== # 🔒 SQL Injection 防護函數 diff --git a/config.py b/config.py index 6a548c1..d5358db 100644 --- a/config.py +++ b/config.py @@ -314,7 +314,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '') # ========================================== # 系統版本與路徑 # ========================================== -SYSTEM_VERSION = "V10.86" +SYSTEM_VERSION = "V10.87" LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log') public_url = PUBLIC_URL # 用於模板顯示 diff --git a/scripts/check_observability_ui.py b/scripts/check_observability_ui.py index 18149bb..234f57d 100644 --- a/scripts/check_observability_ui.py +++ b/scripts/check_observability_ui.py @@ -97,14 +97,15 @@ REQUIRED_SHELL_SNIPPETS = [ "momo-nav-subtitle", "momo-nav-sublink", "rgba(255, 248, 238, 0.72)", - "linear-gradient(180deg", + "background: #f2eadf", + "var(--momo-page-accent, #e4573d)", ] FORBIDDEN_SHELL_PATTERNS = [ Rule( "pure_black_sidebar", re.compile(r"\.momo-sidebar\s*\{[^}]*background\s*:\s*(#000|black)\b", re.IGNORECASE | re.DOTALL), - "側欄不得回退成純黑背景;必須維持暖深咖啡漸層。", + "側欄不得回退成純黑背景;必須維持暖色系新版 shell。", ), Rule( "low_contrast_sublink", diff --git a/templates/auto_import_index.html b/templates/auto_import_index.html index dd609f8..aeaea7b 100644 --- a/templates/auto_import_index.html +++ b/templates/auto_import_index.html @@ -17,9 +17,7 @@ padding: 22px; border: 1px solid var(--momo-border-strong); border-radius: 8px; - background: - radial-gradient(circle at 16px 16px, rgba(42, 37, 32, 0.11) 1px, transparent 1px), - linear-gradient(135deg, rgba(247, 239, 227, 0.98), rgba(237, 214, 204, 0.5) 48%, rgba(198, 154, 74, 0.12)); + background: var(--momo-warm-cream); background-size: 18px 18px, auto; box-shadow: var(--momo-shadow-soft); } @@ -46,19 +44,20 @@ } .auto-import-page .card-header { - background: linear-gradient(135deg, var(--momo-warm-terracotta), var(--momo-warm-copper)); - color: var(--momo-page-inverse); - border: none; + background: var(--momo-warm-apricot); + color: var(--momo-text-primary); + border: 0; + border-bottom: 1px solid var(--momo-warm-latte); border-radius: 8px 8px 0 0 !important; padding: 1rem 1.25rem; } .auto-import-page .card:nth-of-type(2) .card-header { - background: linear-gradient(135deg, var(--momo-warm-apricot), var(--momo-warm-caramel)); + background: var(--momo-warm-amber); } .auto-import-page .card:nth-of-type(3) .card-header { - background: linear-gradient(135deg, var(--momo-warm-copper), var(--momo-warm-olive)); + background: var(--momo-warm-cream); } .auto-import-page .card-header h5 { @@ -67,19 +66,19 @@ } .auto-import-page .btn-primary { - background: linear-gradient(135deg, var(--momo-warm-terracotta), var(--momo-warm-copper)); + background: var(--momo-warm-terracotta); border: none; border-radius: 8px; padding: 0.6rem 1.5rem; font-weight: 750; - box-shadow: 0 4px 12px rgba(184, 111, 82, 0.18); + box-shadow: 0 4px 12px rgba(228, 87, 61, 0.18); transition: all 0.3s ease; } .auto-import-page .btn-primary:hover { transform: translateY(-2px); - box-shadow: 0 6px 16px rgba(184, 111, 82, 0.24); - background: linear-gradient(135deg, var(--momo-warm-copper), var(--momo-warm-terracotta)); + box-shadow: 0 6px 16px rgba(228, 87, 61, 0.24); + background: var(--momo-accent-600); } .auto-import-page .btn-secondary { @@ -93,7 +92,7 @@ } .auto-import-page .btn-success { - background: linear-gradient(135deg, var(--momo-warm-olive), var(--momo-warm-amber)); + background: var(--momo-warm-olive); border: none; border-radius: 8px; padding: 0.6rem 1.5rem; @@ -105,7 +104,7 @@ .auto-import-page .btn-success:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(143, 137, 104, 0.24); - background: linear-gradient(135deg, var(--momo-warm-amber), var(--momo-warm-olive)); + background: color-mix(in srgb, var(--momo-warm-olive) 88%, var(--momo-text-primary)); } .auto-import-page .table { @@ -114,9 +113,9 @@ } .auto-import-page .table thead th { - background: linear-gradient(90deg, var(--momo-warm-copper), var(--momo-warm-terracotta)); + background: var(--momo-warm-cream); border-bottom: 0; - color: var(--momo-page-inverse); + color: var(--momo-text-primary); font-weight: 800; text-transform: uppercase; font-size: 0.75rem; @@ -154,12 +153,12 @@ .auto-import-page .badge-downloading { background: var(--momo-warm-peach-soft); - color: #5f4035; + color: var(--momo-accent-700); } .auto-import-page .badge-importing { background: var(--momo-warm-mahogany-soft); - color: #5f4035; + color: var(--momo-accent-700); } .auto-import-page .badge-completed { @@ -179,7 +178,7 @@ } .auto-import-page .progress-bar { - background: linear-gradient(90deg, var(--momo-warm-terracotta), var(--momo-warm-apricot), var(--momo-warm-amber)); + background: var(--momo-warm-terracotta); } .auto-import-page .form-label { @@ -190,7 +189,7 @@ .auto-import-page .form-control:focus { border-color: var(--momo-warm-terracotta); - box-shadow: 0 0 0 0.2rem rgba(184, 111, 82, 0.15); + box-shadow: 0 0 0 0.2rem rgba(228, 87, 61, 0.15); } .auto-import-page .alert { @@ -198,10 +197,9 @@ } .auto-import-page .alert-info { - color: #5f4035; - background: - linear-gradient(135deg, rgba(237, 214, 204, 0.58), rgba(247, 239, 227, 0.88)); - border-color: rgba(184, 111, 82, 0.22); + color: var(--momo-accent-700); + background: rgba(255, 224, 211, 0.46); + border-color: rgba(228, 87, 61, 0.22); } .auto-import-page .alert-light { diff --git a/templates/components/_analysis_report_tabs.html b/templates/components/_analysis_report_tabs.html index 60aca1a..dc515f0 100644 --- a/templates/components/_analysis_report_tabs.html +++ b/templates/components/_analysis_report_tabs.html @@ -38,7 +38,7 @@ } .analysis-report-tab.is-active { border-color: var(--momo-page-accent-dark, #a95846); - background: linear-gradient(135deg, var(--momo-page-accent, #d96f52), var(--momo-page-accent-dark, #a95846)); + background: var(--momo-page-accent, #c8796a); color: var(--momo-page-inverse, #fff8ee); } .analysis-report-tab.is-external { diff --git a/templates/components/_ewoooc_shell.html b/templates/components/_ewoooc_shell.html index 93ad4ef..888d0da 100644 --- a/templates/components/_ewoooc_shell.html +++ b/templates/components/_ewoooc_shell.html @@ -18,9 +18,7 @@