From bd97ba182995f32a4fb2cb5af89c3f9a9c880f8e Mon Sep 17 00:00:00 2001 From: leefer Date: Thu, 6 Aug 2026 02:48:46 +0800 Subject: [PATCH] feat: unify trading workspace visual system --- app/config/architecture-inventory.json | 24 +- app/frontend/pages/auction/foundation.css | 134 ++--- .../pages/dragon-tiger/foundation.css | 42 +- app/frontend/pages/heaven/foundation.css | 10 +- app/frontend/pages/ladder/foundation.css | 16 +- app/frontend/pages/market/foundation.css | 18 +- app/frontend/pages/mentor/foundation.css | 184 ++++--- app/frontend/pages/pools/foundation.css | 80 +-- app/frontend/pages/popularity/foundation.css | 14 +- app/frontend/pages/review/foundation.css | 76 +-- app/frontend/pages/rotation/foundation.css | 34 +- app/frontend/pages/screener/foundation.css | 465 +++++++----------- app/frontend/pages/screener/page.html | 14 +- app/frontend/pages/sentiment/foundation.css | 38 +- app/frontend/pages/themes/foundation.css | 44 +- app/frontend/shared/auth.css | 10 +- app/frontend/shared/base.css | 12 +- app/frontend/shared/components/cards.css | 58 +-- app/frontend/shared/components/controls.css | 46 +- app/frontend/shared/components/dialogs.css | 8 +- app/frontend/shared/components/feedback.css | 6 +- app/frontend/shared/components/navigation.css | 6 +- app/frontend/shared/components/tables.css | 40 +- app/frontend/shared/shell.css | 123 +++-- app/frontend/shared/tokens.css | 101 ++-- 25 files changed, 803 insertions(+), 800 deletions(-) diff --git a/app/config/architecture-inventory.json b/app/config/architecture-inventory.json index 1a22163..1e68511 100644 --- a/app/config/architecture-inventory.json +++ b/app/config/architecture-inventory.json @@ -436,18 +436,18 @@ "code_hotspots": [ { "path": "frontend/pages/heaven/foundation.css", - "bytes": 184959, - "lines": 11685 + "bytes": 185468, + "lines": 11721 }, { "path": "frontend/pages/screener/foundation.css", - "bytes": 103075, - "lines": 6606 + "bytes": 101609, + "lines": 6509 }, { "path": "frontend/pages/heaven/page.js", - "bytes": 96724, - "lines": 2057 + "bytes": 97189, + "lines": 2069 }, { "path": "backend/features/heaven/engine.py", @@ -461,8 +461,8 @@ }, { "path": "frontend/shared/shell.css", - "bytes": 40260, - "lines": 2800 + "bytes": 40845, + "lines": 2825 }, { "path": "backend/features/screener/catalog.py", @@ -471,8 +471,8 @@ }, { "path": "frontend/pages/auction/foundation.css", - "bytes": 32818, - "lines": 2305 + "bytes": 32995, + "lines": 2317 }, { "path": "database.py", @@ -506,8 +506,8 @@ }, { "path": "frontend/pages/screener/page.html", - "bytes": 19663, - "lines": 233 + "bytes": 19579, + "lines": 229 }, { "path": "frontend/pages/market/preview.js", diff --git a/app/frontend/pages/auction/foundation.css b/app/frontend/pages/auction/foundation.css index 3dd0427..232cc12 100644 --- a/app/frontend/pages/auction/foundation.css +++ b/app/frontend/pages/auction/foundation.css @@ -16,25 +16,25 @@ --line-strong: var(--border-strong); - --surface-muted: #f8fafc; + --surface-muted: var(--surface-subtle); - border-radius: 8px; + border-radius: 0; - color: rgb(31, 41, 55); + color: var(--text-primary); - --action: #1769c2; + --action: var(--primary); - --action-hover: #10569f; + --action-hover: var(--primary-hover); - --action-soft: #eaf2fb; + --action-soft: var(--surface-selected); - --border: #dfe4e9; + --border: var(--color-border); - --border-strong: #cbd3dc; + --border-strong: var(--color-border-strong); - border-color: var(--border); + border-color: transparent; - background: var(--surface); + background: transparent; } .auction-phase-notice > div { @@ -378,7 +378,7 @@ } .auction-table tbody tr:hover td { - background: rgb(248, 250, 255); + background: var(--table-hover); } .auction-stock-cell { @@ -488,7 +488,7 @@ padding-left: 4px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(180, 83, 9); @@ -548,7 +548,7 @@ border-bottom-color: rgb(232, 237, 241); - background: rgb(244, 247, 249); + background: var(--table-header); } .auction-phase-notice { @@ -566,7 +566,7 @@ border: 0px; - background: rgb(243, 244, 246); + background: var(--surface-muted); border-radius: 5px; } @@ -652,13 +652,13 @@ margin-left: auto; - padding: 14px 16px 18px; + padding: var(--page-pad-y) 0 18px; } .auction-page-head-v2 { min-width: 0px; - min-height: 62px; + min-height: 40px; display: flex; @@ -718,13 +718,15 @@ gap: 7px; - padding: 6px 10px; + padding: 0 0 0 12px; - border: 1px solid var(--r2-line); + border: 0; - border-radius: 7px; + border-left: 1px solid var(--r2-line); - background: rgb(255, 255, 255); + border-radius: 0; + + background: transparent; color: var(--r2-sub); @@ -778,21 +780,21 @@ } .auction-phase-notice-v2[data-phase="selection"] { - border-color: rgb(242, 214, 164); + border-color: var(--warning-color); - background: rgb(255, 250, 241); + background: transparent; } .auction-phase-notice-v2[data-phase="selection"] .auction-phase-marker { - background: rgb(217, 119, 6); + background: var(--warning-color); animation: 1.8s ease-in-out 0s infinite normal none running auction-pulse; } .auction-phase-notice-v2[data-phase="finalized"] { - border-color: rgb(207, 224, 215); + border-color: var(--market-down); - background: rgb(244, 251, 247); + background: transparent; } .auction-phase-notice-v2[data-phase="finalized"] .auction-phase-marker { @@ -831,25 +833,27 @@ } .auction-summary-v2 { - min-width: 390px; + min-width: 348px; display: grid; grid-template-columns: repeat(4, minmax(82px, 1fr)); - border: 1px solid var(--r2-line); + border: 0; - border-radius: 9px; + border-left: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + border-radius: 0; - box-shadow: var(--r2-shadow); + background: var(--surface); + + box-shadow: none; } .auction-summary-v2 > div { min-width: 0px; - min-height: 48px; + min-height: 44px; display: grid; @@ -908,9 +912,9 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); - color: rgb(55, 65, 81); + color: var(--text-primary); font-size: 12px; @@ -953,9 +957,9 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); } .auction-primary-card { @@ -965,9 +969,9 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); min-height: 0px; @@ -1073,7 +1077,7 @@ justify-content: space-between; - background: rgb(250, 251, 252); + background: var(--surface-subtle); } .auction-expectation-v2, @@ -1128,13 +1132,13 @@ } .auction-filter-segments button.active { - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); font-weight: 600; - box-shadow: rgba(0, 0, 0, 0.08) 0px 1px 2px; + box-shadow: var(--shadow-xs); } .auction-search-v2 { @@ -1154,7 +1158,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); } .auction-search-v2 .lucide { @@ -1182,7 +1186,7 @@ .auction-search-v2:focus-within { border-color: var(--r2-blue-line); - box-shadow: rgba(37, 99, 235, 0.08) 0px 0px 0px 2px; + box-shadow: 0 0 0 2px var(--focus-ring); } .auction-export-button:focus-visible, @@ -1227,7 +1231,7 @@ height: 35px; - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -1279,7 +1283,7 @@ } .auction-table-v2 tbody tr:hover td { - background: rgb(248, 250, 255); + background: var(--table-hover); } .auction-stock-cell-v2 { @@ -1349,7 +1353,7 @@ border-radius: 3px; - background: rgb(240, 242, 245); + background: var(--surface-muted); color: var(--r2-sub); @@ -1361,7 +1365,7 @@ .auction-source-tags-v2 b:nth-child(n+2) { background: var(--r2-blue-soft); - color: rgb(70, 100, 160); + color: var(--r2-blue); } #auctionView .auction-core-tags { @@ -1397,7 +1401,7 @@ } #auctionView .auction-score { - color: rgb(49, 95, 123); + color: var(--r2-blue); font-weight: 750; } @@ -1431,9 +1435,9 @@ } #auctionView .auction-expectation.matched { - background: rgb(243, 244, 246); + background: var(--surface-muted); - color: rgb(75, 85, 99); + color: var(--text-secondary); } #auctionView .auction-expectation.below { @@ -1541,7 +1545,7 @@ border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); @@ -1619,15 +1623,15 @@ } #auctionView .auction-theme-status.strong { - background: rgb(219, 231, 255); + background: var(--r2-blue-soft); - color: rgb(40, 88, 188); + color: var(--r2-blue); } #auctionView .auction-theme-status.steady { - background: rgb(233, 240, 255); + background: var(--r2-blue-soft); - color: rgb(70, 100, 160); + color: var(--r2-blue); } #auctionView .auction-theme-status.mixed { @@ -1637,7 +1641,7 @@ } #auctionView .auction-theme-status.weak { - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); } @@ -1707,7 +1711,7 @@ background: var(--r2-blue-soft); - color: rgb(70, 100, 160); + color: var(--r2-blue); font-size: 10px; } @@ -1873,7 +1877,7 @@ padding-left: 3px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(217, 119, 6); @@ -2102,7 +2106,7 @@ @media (min-width: 721px) and (max-height: 900px) { .redesigned-auction-view { - padding: 10px 12px 12px; + padding: 10px 0 12px; } .auction-page-head-v2 { @@ -2250,7 +2254,7 @@ background: var(--surface); } -:root[data-theme="dark"] #auctionView :is(.auction-phase-notice-v2, .auction-export-button, .auction-refresh-button, .auction-filter-segments, .auction-table-v2 thead th) { +:root[data-theme="dark"] #auctionView :is(.auction-export-button, .auction-refresh-button, .auction-filter-segments, .auction-table-v2 thead th) { border-color: var(--border); background: var(--surface-muted); @@ -2258,16 +2262,24 @@ color: var(--text-secondary); } +:root[data-theme="dark"] #auctionView .auction-phase-notice-v2 { + border-left-color: var(--border); + + background: transparent; + + color: var(--text-secondary); +} + :root[data-theme="dark"] #auctionView .auction-phase-notice-v2[data-phase="selection"] { border-color: var(--warning-line); - background: var(--warning-soft); + background: transparent; } :root[data-theme="dark"] #auctionView .auction-phase-notice-v2[data-phase="finalized"] { border-color: var(--market-down-soft); - background: var(--market-down-soft); + background: transparent; } :root[data-theme="dark"] #auctionView :is(.auction-filter-segments button.active, .auction-source-tags-v2 b) { diff --git a/app/frontend/pages/dragon-tiger/foundation.css b/app/frontend/pages/dragon-tiger/foundation.css index e6443bc..0878320 100644 --- a/app/frontend/pages/dragon-tiger/foundation.css +++ b/app/frontend/pages/dragon-tiger/foundation.css @@ -68,7 +68,7 @@ .dragon-filter.active { background: var(--blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); } .trader-operations { @@ -130,7 +130,7 @@ } .unclassified-heading:hover { - background: rgb(241, 246, 248); + background: var(--surface-hover); } .unclassified-heading h3 { @@ -492,7 +492,7 @@ background: var(--card-accent); - color: rgb(255, 255, 255); + color: var(--text-inverse); font-family: STKaiti, KaiTi, serif; @@ -859,7 +859,7 @@ border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--card-shadow); @@ -885,7 +885,7 @@ border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--card-shadow); } @@ -897,7 +897,7 @@ border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--card-shadow); @@ -913,7 +913,7 @@ border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--card-shadow); @@ -999,7 +999,7 @@ border-radius: 8px; - background: rgb(244, 245, 247); + background: var(--surface-muted); } .dragon-view-tabs-v2 button { @@ -1021,7 +1021,7 @@ } .dragon-view-tabs-v2 button.active { - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); @@ -1077,7 +1077,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1145,7 +1145,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1195,7 +1195,7 @@ border-radius: 7px; - background: rgb(243, 244, 246); + background: var(--surface-muted); } .dragon-filter-v2 { @@ -1223,7 +1223,7 @@ } .dragon-filter-v2.active { - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-blue); @@ -1307,7 +1307,7 @@ border-radius: var(--r2-radius); - background: rgb(248, 249, 251); + background: var(--surface-subtle); box-shadow: var(--r2-shadow); } @@ -1327,7 +1327,7 @@ border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); } .dragon-stage-heading-v2 > div { @@ -1381,7 +1381,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1435,11 +1435,11 @@ z-index: 2; - background: rgb(250, 251, 252); + background: var(--surface-subtle); } #dragonView .dragon-operation-table tbody tr:hover { - background: rgb(247, 249, 252); + background: var(--table-hover); } #dragonView .dragon-unclassified-v2 { @@ -1451,7 +1451,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1459,7 +1459,7 @@ #dragonView .dragon-unclassified-v2 .unclassified-heading { border-bottom-color: var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); } .dragon-empty-state-v2 { @@ -1479,7 +1479,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); diff --git a/app/frontend/pages/heaven/foundation.css b/app/frontend/pages/heaven/foundation.css index a92187f..8e0bffd 100644 --- a/app/frontend/pages/heaven/foundation.css +++ b/app/frontend/pages/heaven/foundation.css @@ -770,7 +770,7 @@ body[data-active-view="heavenView"] .workspace-view { border-radius: 50%; - color: rgb(255, 255, 255); + color: var(--text-inverse); font-size: 12px; } @@ -5129,7 +5129,7 @@ body[data-active-view="heavenView"] .workspace-view { background: rgb(154, 91, 69); - color: rgb(255, 255, 255); + color: var(--text-inverse); } #heavenHeartPanel .button:disabled { @@ -6083,7 +6083,7 @@ body[data-active-view="heavenView"] .workspace-view { .heaven-reading-history-item.active, .heaven-reading-history-item:hover { - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: rgb(154, 91, 69) 3px 0px inset; } @@ -6343,13 +6343,13 @@ body[data-active-view="heavenView"] .workspace-view { border-color: var(--blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); } .btn.primary:hover { background: var(--blue-d); - color: rgb(255, 255, 255); + color: var(--text-inverse); } .phase-pick .pp.on { diff --git a/app/frontend/pages/ladder/foundation.css b/app/frontend/pages/ladder/foundation.css index cda8a5c..1986fdd 100644 --- a/app/frontend/pages/ladder/foundation.css +++ b/app/frontend/pages/ladder/foundation.css @@ -380,7 +380,7 @@ border-radius: 8px; - background: rgb(243, 244, 246); + background: var(--surface-muted); } .ladder-sort-segment button { @@ -394,7 +394,7 @@ } .ladder-sort-segment button.active { - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); @@ -422,7 +422,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -532,7 +532,7 @@ border-radius: 8px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); @@ -742,7 +742,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -774,7 +774,7 @@ border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); @@ -874,7 +874,7 @@ border-radius: 4px; - background: rgb(243, 244, 246); + background: var(--surface-muted); } .market-ladder-pyramid-row > i b { @@ -954,7 +954,7 @@ border-radius: 4px; - background: rgb(243, 244, 246); + background: var(--surface-muted); } .market-ladder-rate-list > div > i b { diff --git a/app/frontend/pages/market/foundation.css b/app/frontend/pages/market/foundation.css index a85b135..e3fd017 100644 --- a/app/frontend/pages/market/foundation.css +++ b/app/frontend/pages/market/foundation.css @@ -791,21 +791,21 @@ } :is(.global-search-dialog, .stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) { - --dialog-line: #e1e6ec; + --dialog-line: var(--border); - --dialog-line-strong: #cfd7e1; + --dialog-line-strong: var(--border-strong); - --dialog-muted: #f7f9fb; + --dialog-muted: var(--surface-subtle); - --dialog-ink: #1f2937; + --dialog-ink: var(--text-primary); - --dialog-sub: #687586; + --dialog-sub: var(--text-secondary); border: 1px solid var(--dialog-line-strong); border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--dialog-ink); @@ -1026,7 +1026,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); grid-template-columns: repeat(4, minmax(0px, 1fr)); } @@ -1040,7 +1040,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); grid-template-columns: repeat(3, minmax(0px, 1fr)); } @@ -1060,7 +1060,7 @@ border-bottom: 1px solid var(--dialog-line); - background: rgb(255, 255, 255); + background: var(--surface); } .stock-dialog .moneyflow-grid > div:last-child { diff --git a/app/frontend/pages/mentor/foundation.css b/app/frontend/pages/mentor/foundation.css index 38c8563..424e409 100644 --- a/app/frontend/pages/mentor/foundation.css +++ b/app/frontend/pages/mentor/foundation.css @@ -605,7 +605,7 @@ @media (max-width: 900px) { body[data-active-view="mentorView"] .workspace-view { - padding: 10px 10px 84px; + padding: 10px 0 84px; } } @@ -624,7 +624,7 @@ body[data-active-view="mentorView"] .workspace-view { box-shadow: none; - padding: 14px 16px 24px; + padding: var(--page-pad-y) 0 24px; } .mentor-page-controls .mentor-evidence-filters { @@ -720,35 +720,35 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView { - --mentor-blue: #2563eb; + --mentor-blue: var(--action); - --mentor-blue-dark: #1d4ed8; + --mentor-blue-dark: var(--action-hover); - --mentor-blue-soft: #eff4ff; + --mentor-blue-soft: var(--action-soft); - --mentor-blue-line: #c7d8fb; + --mentor-blue-line: var(--color-action-line); - --mentor-line: #e5e7eb; + --mentor-line: var(--border); - --mentor-line-soft: #eef0f3; + --mentor-line-soft: var(--border-subtle); - --mentor-ink: #1f2937; + --mentor-ink: var(--text-primary); - --mentor-sub: #6b7280; + --mentor-sub: var(--text-secondary); - --mentor-faint: #9ca3af; + --mentor-faint: var(--text-tertiary); color: var(--mentor-ink); } #mentorView .mentor-page-header { - min-height: 42px; + min-height: 36px; display: flex; align-items: center; - gap: 18px; + gap: var(--space-12); margin-bottom: 12px; @@ -774,9 +774,9 @@ body[data-active-view="mentorView"] .overview-strip { color: var(--mentor-ink); - font-size: 18px; + font-size: var(--font-size-page-title); - font-weight: 760; + font-weight: var(--font-weight-bold); letter-spacing: 0px; } @@ -786,7 +786,7 @@ body[data-active-view="mentorView"] .overview-strip { color: var(--mentor-faint); - font-size: 11.5px; + font-size: var(--font-size-caption); text-overflow: ellipsis; @@ -818,7 +818,7 @@ body[data-active-view="mentorView"] .overview-strip { border-radius: 8px; - background: rgb(238, 240, 243); + background: var(--surface-muted); } #mentorView .mentor-evidence-filters button { @@ -872,13 +872,13 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-evidence-filters button.active { - background: rgb(255, 255, 255); + background: var(--control-surface); color: var(--mentor-ink); - font-weight: 650; + font-weight: var(--font-weight-semibold); - box-shadow: rgba(16, 24, 40, 0.09) 0px 1px 2px; + box-shadow: var(--shadow-xs); } #mentorView .mentor-evidence-filters button[data-mentor-grade="A"] { @@ -894,7 +894,7 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-evidence-filters button:focus-visible { - outline: rgba(37, 99, 235, 0.35) solid 2px; + outline: var(--action) solid 2px; outline-offset: 1px; } @@ -968,11 +968,11 @@ body[data-active-view="mentorView"] .overview-strip { border: 1px solid var(--mentor-line); - border-radius: 10px; + border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: rgba(16, 24, 40, 0.05) 0px 1px 2px; + box-shadow: var(--card-shadow); position: relative; @@ -1004,15 +1004,15 @@ body[data-active-view="mentorView"] .overview-strip { padding: 0px; - background: rgb(255, 255, 255); + background: var(--surface); } #mentorView .mentor-directory-heading { border-bottom: 1px solid var(--mentor-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); - min-height: 48px; + min-height: 44px; display: flex; @@ -1148,7 +1148,7 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-search-field { - height: 34px; + height: var(--control-height); display: grid; @@ -1164,17 +1164,17 @@ body[data-active-view="mentorView"] .overview-strip { border: 1px solid var(--mentor-line); - border-radius: 7px; + border-radius: var(--radius-md); - background: rgb(255, 255, 255); + background: var(--control-surface); color: var(--mentor-faint); } #mentorView .mentor-search-field:focus-within { - border-color: var(--mentor-blue-line); + border-color: var(--mentor-blue); - box-shadow: rgba(37, 99, 235, 0.08) 0px 0px 0px 2px; + box-shadow: 0 0 0 3px var(--focus-ring); } #mentorView .mentor-search-field .lucide { @@ -1260,7 +1260,7 @@ body[data-active-view="mentorView"] .overview-strip { #mentorView .mentor-option { width: 100%; - min-height: 82px; + min-height: 70px; display: grid; @@ -1286,21 +1286,21 @@ body[data-active-view="mentorView"] .overview-strip { border-radius: 0px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--mentor-ink); box-shadow: none; - transition: background-color 150ms, box-shadow 150ms; + transition: background-color var(--motion-fast), box-shadow var(--motion-fast); } #mentorView .mentor-option:hover { - background: rgb(248, 250, 255); + background: var(--surface-hover); } #mentorView .mentor-option.active { - background: var(--mentor-blue-soft); + background: var(--surface-selected); box-shadow: inset 2px 0 0 var(--mentor-blue); } @@ -1318,11 +1318,11 @@ body[data-active-view="mentorView"] .overview-strip { #mentorView .mentor-option-main { min-width: 0px; - min-height: 81px; + min-height: 69px; display: block; - padding: 10px 7px 9px 14px; + padding: 9px 7px 8px 14px; border: 0px; @@ -1342,7 +1342,7 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-option-main:focus-visible { - outline: rgba(37, 99, 235, 0.42) solid 2px; + outline: var(--action) solid 2px; outline-offset: -3px; } @@ -1504,7 +1504,7 @@ body[data-active-view="mentorView"] .overview-strip { border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--mentor-sub); @@ -1560,7 +1560,7 @@ body[data-active-view="mentorView"] .overview-strip { #mentorView .mentor-badge.quality { border-color: transparent; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--mentor-faint); } @@ -1704,11 +1704,11 @@ body[data-active-view="mentorView"] .overview-strip { border: 1px solid var(--mentor-line); - border-radius: 10px; + border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: rgba(16, 24, 40, 0.05) 0px 1px 2px; + box-shadow: var(--card-shadow); height: 100%; @@ -1720,9 +1720,9 @@ body[data-active-view="mentorView"] .overview-strip { #mentorView .mentor-chat-header { border-bottom: 1px solid var(--mentor-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); - min-height: 69px; + min-height: 64px; display: flex; @@ -1870,9 +1870,9 @@ body[data-active-view="mentorView"] .overview-strip { overflow-y: auto; - padding: 18px; + padding: 20px 24px; - background: rgb(251, 252, 253); + background: var(--surface); scrollbar-color: rgb(215, 220, 228) transparent; @@ -1910,9 +1910,9 @@ body[data-active-view="mentorView"] .overview-strip { border-radius: 8px; - background: rgb(243, 246, 251); + background: var(--action-soft); - color: rgb(100, 130, 183); + color: var(--action); } #mentorView .mentor-empty-mark .lucide { @@ -1924,7 +1924,7 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-empty-state strong { - color: rgb(75, 85, 99); + color: var(--text-primary); font-size: 13px; @@ -1944,33 +1944,45 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-message { - width: fit-content; + width: min(100%, 900px); - max-width: min(84%, 820px); + max-width: 100%; - margin: 0px 0px 12px; + margin: 0px 0px 18px; - padding: 10px 12px; + padding: 2px 8px 18px 16px; - border: 1px solid var(--mentor-line); + border: 0px; - border-radius: 8px; + border-bottom: 1px solid var(--mentor-line-soft); - background: rgb(255, 255, 255); + border-left: 2px solid var(--mentor-blue); - box-shadow: rgba(16, 24, 40, 0.024) 0px 1px 1px; + border-radius: 0px; + + background: transparent; + + box-shadow: none; } #mentorView .mentor-message.user { + width: fit-content; + + max-width: min(72%, 680px); + margin-left: auto; - border-color: var(--mentor-blue-line); + padding: 9px 12px; + + border: 1px solid var(--mentor-blue-line); + + border-radius: var(--radius-md); background: var(--mentor-blue-soft); } #mentorView .mentor-message.assistant { - border-left: 2px solid var(--mentor-blue); + margin-right: auto; } #mentorView .mentor-message-label { @@ -1988,11 +2000,11 @@ body[data-active-view="mentorView"] .overview-strip { overflow-wrap: anywhere; - color: rgb(55, 65, 81); + color: var(--text-primary); font-size: 13px; - line-height: 1.62; + line-height: 1.72; white-space: normal; } @@ -2082,7 +2094,7 @@ body[data-active-view="mentorView"] .overview-strip { border-top: 1px solid var(--mentor-line-soft); - background: rgb(255, 255, 255); + background: var(--surface-subtle); scrollbar-width: none; } @@ -2110,9 +2122,9 @@ body[data-active-view="mentorView"] .overview-strip { border: 1px solid var(--mentor-line); - border-radius: 14px; + border-radius: var(--radius-md); - background: rgb(255, 255, 255); + background: var(--control-surface); color: var(--mentor-sub); @@ -2144,11 +2156,11 @@ body[data-active-view="mentorView"] .overview-strip { gap: 8px; - padding: 8px 14px; + padding: 9px 14px; border-top: 1px solid var(--mentor-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); } #mentorView .mentor-chat-form textarea { @@ -2168,11 +2180,11 @@ body[data-active-view="mentorView"] .overview-strip { border: 1px solid var(--mentor-line); - border-radius: 8px; + border-radius: var(--radius-md); outline: 0px; - background: rgb(255, 255, 255); + background: var(--control-surface); color: var(--mentor-ink); @@ -2204,9 +2216,9 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-chat-form textarea:focus { - border-color: var(--mentor-blue-line); + border-color: var(--mentor-blue); - box-shadow: rgba(37, 99, 235, 0.08) 0px 0px 0px 2px; + box-shadow: 0 0 0 3px var(--focus-ring); } #mentorView .mentor-chat-form .button { @@ -2230,7 +2242,7 @@ body[data-active-view="mentorView"] .overview-strip { background: var(--mentor-blue); - color: rgb(255, 255, 255); + color: var(--on-action); font-size: 12.5px; } @@ -2252,7 +2264,7 @@ body[data-active-view="mentorView"] .overview-strip { padding: 0px 14px 8px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--mentor-faint); @@ -2263,7 +2275,7 @@ body[data-active-view="mentorView"] .overview-strip { @media (min-width: 721px) and (max-width: 1100px) { #mentorView .mentor-layout { - grid-template-columns: 292px minmax(0px, 1fr); + grid-template-columns: 272px minmax(0px, 1fr); } #mentorView .mentor-directory-title > span { @@ -2365,7 +2377,7 @@ body[data-active-view="mentorView"] .overview-strip { border: 0px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--mentor-ink); @@ -2509,6 +2521,14 @@ body[data-active-view="mentorView"] .overview-strip { border-radius: 9px; } + #mentorView .chat-box { + height: 100%; + + min-height: 0px; + + overflow: hidden; + } + #mentorView .mentor-chat-header { min-height: 68px; @@ -2535,6 +2555,10 @@ body[data-active-view="mentorView"] .overview-strip { } #mentorView .mentor-messages { + flex: 1 1 0%; + + min-height: 0px; + padding: 12px 10px; } @@ -2747,13 +2771,13 @@ body[data-active-view="mentorView"] .overview-strip { } :root[data-theme="dark"] #mentorView :is(.mentor-messages, .mentor-empty-mark) { - background: var(--surface-muted); + background: var(--surface); } :root[data-theme="dark"] #mentorView .mentor-message { - border-color: var(--line-soft); + border-color: var(--border-subtle); - background: var(--surface-subtle); + background: transparent; box-shadow: none; } diff --git a/app/frontend/pages/pools/foundation.css b/app/frontend/pages/pools/foundation.css index 11d16dc..f3c0b1b 100644 --- a/app/frontend/pages/pools/foundation.css +++ b/app/frontend/pages/pools/foundation.css @@ -24,7 +24,7 @@ border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); vertical-align: middle; } @@ -54,7 +54,7 @@ padding-block: 8px; - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -64,13 +64,13 @@ } .redesigned-pool-view .data-table th[data-sort]:hover { - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-blue); } .redesigned-pool-view .data-table tbody tr:hover td { - background: rgb(248, 250, 255); + background: var(--table-hover); } .redesigned-pool-view .data-table .row-number { @@ -127,7 +127,7 @@ border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); vertical-align: middle; } @@ -157,7 +157,7 @@ padding-block: 8px; - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -199,7 +199,7 @@ } .redesigned-broken-view .data-table tbody tr:hover td { - background: rgb(248, 250, 255); + background: var(--table-hover); } .redesigned-broken-view .data-table .row-number { @@ -255,7 +255,7 @@ border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); vertical-align: middle; } @@ -285,7 +285,7 @@ padding-block: 8px; - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -327,7 +327,7 @@ } .redesigned-down-view .data-table tbody tr:hover td { - background: rgb(248, 250, 255); + background: var(--table-hover); } .redesigned-down-view .data-table .row-number { @@ -375,7 +375,7 @@ border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); vertical-align: middle; } @@ -405,7 +405,7 @@ padding-block: 8px; - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -447,7 +447,7 @@ } .redesigned-yesterday-view .data-table tbody tr:hover td { - background: rgb(248, 250, 255); + background: var(--table-hover); } .redesigned-yesterday-view .data-table .row-number { @@ -635,7 +635,7 @@ border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--card-shadow); @@ -667,7 +667,7 @@ border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--card-shadow); } @@ -743,7 +743,7 @@ #limitPool .table-frame { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--shadow-xs); } @@ -755,7 +755,7 @@ border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--shadow-xs); @@ -813,7 +813,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); } .pool-search-field .lucide { @@ -873,7 +873,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -917,7 +917,7 @@ } .pool-state-tag.broken { - background: rgb(243, 244, 246); + background: var(--surface-muted); color: rgb(107, 114, 128); } @@ -947,7 +947,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -981,7 +981,7 @@ border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); @@ -1233,7 +1233,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); @@ -1263,7 +1263,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1377,7 +1377,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); @@ -1407,7 +1407,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1493,7 +1493,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); @@ -1519,7 +1519,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1547,7 +1547,7 @@ border-radius: 0px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); @@ -1559,7 +1559,7 @@ } .yesterday-summary-cell:hover { - background: rgb(248, 250, 255); + background: var(--table-hover); } .yesterday-summary-cell.active { @@ -1678,7 +1678,7 @@ .yesterday-outcome-tag.fail { border: 1px solid var(--r2-line); - background: rgb(243, 244, 246); + background: var(--surface-muted); color: rgb(75, 85, 99); } @@ -1800,7 +1800,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1854,7 +1854,7 @@ .performance-status-tag.is-neutral { border-color: var(--r2-line); - background: rgb(243, 244, 246); + background: var(--surface-muted); color: rgb(75, 85, 99); } @@ -1918,7 +1918,7 @@ border-radius: 3px; - background: rgb(240, 242, 245); + background: var(--surface-muted); } .performance-stage-track i { @@ -1954,7 +1954,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-faint); @@ -1980,7 +1980,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -1990,7 +1990,7 @@ padding: 0px; - background: rgb(255, 255, 255); + background: var(--surface); } .performance-panel-head { @@ -2024,7 +2024,7 @@ border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); @@ -2066,7 +2066,7 @@ border-radius: 6px; - background: rgb(240, 242, 245); + background: var(--surface-muted); } .performance-width-bar i { @@ -2305,7 +2305,7 @@ font-size: 12.5px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); diff --git a/app/frontend/pages/popularity/foundation.css b/app/frontend/pages/popularity/foundation.css index 85fe1e3..60447ce 100644 --- a/app/frontend/pages/popularity/foundation.css +++ b/app/frontend/pages/popularity/foundation.css @@ -40,7 +40,7 @@ :where(#popularityView) #popularitySummary { margin-bottom: 12px; - background: rgb(255, 255, 255); + background: var(--surface); } #popularityView .data-table { @@ -148,7 +148,7 @@ border-radius: 8px; - background: rgb(244, 245, 247); + background: var(--surface-muted); } .popularity-source-tabs-v2 button { @@ -174,7 +174,7 @@ } .popularity-source-tabs-v2 button.active { - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); @@ -308,7 +308,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -489,7 +489,7 @@ } .popularity-table-v2 tbody tr:hover { - background: rgb(247, 249, 252); + background: var(--table-hover); } .popularity-rank-v2 { @@ -587,7 +587,7 @@ border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); @@ -792,7 +792,7 @@ } .hot3 .hc { - background: rgb(255, 255, 255); + background: var(--surface); border: 1px solid var(--line); diff --git a/app/frontend/pages/review/foundation.css b/app/frontend/pages/review/foundation.css index 042ed4f..f63571d 100644 --- a/app/frontend/pages/review/foundation.css +++ b/app/frontend/pages/review/foundation.css @@ -176,7 +176,7 @@ @media (max-width: 900px) { body[data-active-view="reviewWorkspaceView"] .workspace-view { - padding: 10px 10px 84px; + padding: 10px 0 84px; } .review-workspace .notes-history-section, @@ -200,7 +200,7 @@ body[data-active-view="reviewWorkspaceView"] .workspace-view { box-shadow: none; - padding: 14px 16px 24px; + padding: var(--page-pad-y) 0 24px; } .review-workspace .workspace-section + .workspace-section { @@ -234,7 +234,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { } .review-workspace .workspace-section { - background: rgb(255, 255, 255); + background: var(--surface); border: 1px solid var(--border); @@ -326,23 +326,23 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { } #reviewWorkspaceView { - --review-blue: #2563eb; + --review-blue: var(--action); - --review-blue-dark: #1d4ed8; + --review-blue-dark: var(--action-hover); - --review-blue-soft: #eff4ff; + --review-blue-soft: var(--action-soft); - --review-blue-line: #c7d8fb; + --review-blue-line: var(--color-action-line); - --review-line: #e5e7eb; + --review-line: var(--border); - --review-line-soft: #eef0f3; + --review-line-soft: var(--border-subtle); - --review-ink: #1f2937; + --review-ink: var(--text-primary); - --review-sub: #6b7280; + --review-sub: var(--text-secondary); - --review-faint: #9ca3af; + --review-faint: var(--text-tertiary); color: var(--review-ink); } @@ -400,7 +400,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); @@ -467,7 +467,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: rgba(16, 24, 40, 0.05) 0px 1px 2px; } @@ -503,7 +503,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--review-sub); @@ -521,7 +521,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-bottom: 1px solid var(--review-line-soft); - background: rgb(250, 251, 252); + background: var(--surface-subtle); color: var(--review-faint); @@ -547,7 +547,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { } #reviewWorkspaceView .data-table tbody tr:hover { - background: rgb(248, 250, 255); + background: var(--table-hover); } #reviewWorkspaceView .stock-cell { @@ -625,7 +625,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { } #reviewWorkspaceView .table-action.down:hover { - background: rgb(245, 246, 248); + background: var(--surface-hover); color: rgb(209, 67, 67); } @@ -683,7 +683,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { background: var(--review-blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); font-size: 11.5px; } @@ -715,7 +715,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-bottom: 1px solid var(--review-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); } #reviewWorkspaceView .trade-log-summary:empty { @@ -799,7 +799,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 5px; - background: rgb(248, 249, 251); + background: var(--surface-subtle); color: var(--review-sub); @@ -821,7 +821,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 5px; - background: rgb(248, 249, 251); + background: var(--surface-subtle); color: var(--review-sub); @@ -947,7 +947,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 6px; - background: rgb(248, 249, 251); + background: var(--surface-subtle); color: var(--review-sub); @@ -961,7 +961,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { padding: 14px 16px 16px; - background: rgb(255, 255, 255); + background: var(--surface); } #reviewWorkspaceView .journal-form .form-field:nth-of-type(2) textarea { @@ -973,11 +973,11 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { #reviewWorkspaceView .journal-form textarea:focus { border-color: var(--review-blue-line); - box-shadow: rgba(37, 99, 235, 0.08) 0px 0px 0px 2px; + box-shadow: 0 0 0 2px var(--focus-ring); } #reviewWorkspaceView .journal-form textarea::placeholder { - color: rgb(166, 173, 183); + color: var(--review-faint); } #reviewWorkspaceView .journal-form .dialog-actions { @@ -1005,7 +1005,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { background: var(--review-blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); font-size: 12px; } @@ -1035,7 +1035,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { overflow-y: auto; - background: rgb(255, 255, 255); + background: var(--surface); } #reviewWorkspaceView .note-row { @@ -1273,7 +1273,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-bottom: 1px solid var(--review-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); min-height: 48px; @@ -1418,7 +1418,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { outline: 0px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--review-ink); @@ -1470,7 +1470,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { outline: 0px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--review-ink); @@ -1565,7 +1565,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 8px; - background: rgb(255, 255, 255); + background: var(--surface); } .watchlist-search-control:focus-within { @@ -1649,7 +1649,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-image: none; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(31, 41, 55); @@ -1657,7 +1657,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { } .watchlist-search-results button:hover { - background: rgb(245, 248, 255); + background: var(--surface-selected); } .watchlist-search-results button > span { @@ -1713,7 +1713,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { border-radius: 8px; - background: rgb(247, 249, 254); + background: var(--surface-subtle); } .watchlist-selection[hidden] { @@ -1869,7 +1869,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { } #reviewWorkspaceView .journal-form .form-field > span { - color: rgb(55, 65, 81); + color: var(--review-sub); font-size: 12px; @@ -1937,7 +1937,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { padding: 18px 20px 20px; - background: rgb(250, 251, 252); + background: var(--surface-subtle); } .trade-log-dialog .trade-log-form-grid { @@ -1992,7 +1992,7 @@ body[data-active-view="reviewWorkspaceView"] .overview-strip { padding: 5px 10px; - background: rgb(255, 255, 255); + background: var(--surface); } .search .ico { diff --git a/app/frontend/pages/rotation/foundation.css b/app/frontend/pages/rotation/foundation.css index a1730c5..2d1cfa1 100644 --- a/app/frontend/pages/rotation/foundation.css +++ b/app/frontend/pages/rotation/foundation.css @@ -89,7 +89,7 @@ border-radius: 4px; - background: rgb(255, 255, 255); + background: var(--surface); } .rotation-legend span { @@ -225,7 +225,7 @@ border-radius: 8px; - background: rgb(243, 244, 246); + background: var(--surface-muted); } .rotation-order-control button { @@ -247,7 +247,7 @@ } .rotation-order-control button.active { - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-ink); @@ -280,7 +280,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); @@ -303,7 +303,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -315,7 +315,7 @@ border-radius: var(--r2-radius); - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); @@ -379,7 +379,7 @@ border-radius: 5px; - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); @@ -579,7 +579,7 @@ border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(55, 65, 81); @@ -623,7 +623,7 @@ border-radius: 0px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: none; } @@ -639,7 +639,7 @@ border-bottom: 1px solid var(--r2-line-soft); - background: rgb(248, 250, 252); + background: var(--table-header); } #rotationView .rotation-day > header time { @@ -681,7 +681,7 @@ background: var(--r2-blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); font-size: 9px; @@ -757,19 +757,19 @@ #rotationView .rotation-rank.rank-1 { background: rgb(224, 69, 54); - color: rgb(255, 255, 255); + color: var(--text-inverse); } #rotationView .rotation-rank.rank-2 { background: rgb(240, 113, 79); - color: rgb(255, 255, 255); + color: var(--text-inverse); } #rotationView .rotation-rank.rank-3 { background: rgb(245, 166, 35); - color: rgb(255, 255, 255); + color: var(--text-inverse); } #rotationView .rotation-sector-chip strong { @@ -837,7 +837,7 @@ background: var(--r2-ink); - color: rgb(255, 255, 255); + color: var(--text-inverse); font-size: 10.5px; @@ -870,7 +870,7 @@ border-bottom: 1px solid var(--r2-line); - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -966,7 +966,7 @@ } #rotationView .trend-flat { - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); } diff --git a/app/frontend/pages/screener/foundation.css b/app/frontend/pages/screener/foundation.css index ec26dfd..6e59ec1 100644 --- a/app/frontend/pages/screener/foundation.css +++ b/app/frontend/pages/screener/foundation.css @@ -1187,7 +1187,7 @@ } .screener-strategy-title b.neutral { - background: rgb(243, 244, 246); + background: var(--surface-muted); color: rgb(107, 114, 128); } @@ -1198,10 +1198,6 @@ font-size: 12px; } -:where(#screenerView) .screener-run-actions { - flex-wrap: wrap; -} - :where(#screenerView) .screener-pipeline-status strong { margin-left: 3px; } @@ -1243,7 +1239,7 @@ height: 38px; - background: rgb(248, 250, 252); + background: var(--table-header); color: rgb(107, 114, 128); @@ -1253,7 +1249,7 @@ #screenerView .screener-result-frame thead th:nth-child(-n+3) { z-index: 5; - background: rgb(248, 250, 252); + background: var(--table-header); } .strategy-drawer { @@ -1283,7 +1279,7 @@ border-radius: 0px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: rgba(15, 23, 42, 0.16) -12px 0px 32px; } @@ -1385,7 +1381,7 @@ border-radius: 6px; - background: rgb(255, 255, 255); + background: var(--surface); } #screenerView .strategy-drawer .strategy-workbench { @@ -1543,28 +1539,6 @@ padding: 0px 7px; } - .screener-runbar { - align-items: stretch; - - flex-direction: column; - - margin-top: 8px; - - padding: 10px; - } - - .screener-run-actions { - display: grid; - - grid-template-columns: 1fr 1fr; - } - - .screener-run-actions .button { - min-height: 42px; - - justify-content: center; - } - .screener-pipeline-status { justify-content: space-between; @@ -1652,7 +1626,7 @@ border-radius: 5px; - background: rgb(255, 255, 255); + background: var(--surface); color: rgb(31, 41, 55); @@ -1949,7 +1923,7 @@ @media (max-width: 900px) { body[data-active-view="screenerView"] .workspace-view { - padding: 10px 10px 84px; + padding: 10px 0 84px; } :where(#screenerView) .screener-page-heading { @@ -2032,7 +2006,7 @@ body[data-active-view="screenerView"] .workspace-view { box-shadow: none; - padding: 14px 16px 24px; + padding: var(--page-pad-y) 0 24px; } .screener-page-bar .screener-mode-tabs { @@ -2118,7 +2092,7 @@ body[data-active-view="screenerView"] .overview-strip { } :where(#screenerView) .screener-page-bar { - gap: 20px; + gap: 12px; margin-bottom: 12px; @@ -2152,7 +2126,7 @@ body[data-active-view="screenerView"] .overview-strip { } :where(#screenerView) .screener-mode-tabs button.active { - border-bottom-color: var(--primary); + border-bottom-color: var(--scr-blue); box-shadow: none; } @@ -2174,7 +2148,7 @@ body[data-active-view="screenerView"] .overview-strip { .screener-step[data-state="active"] .step-marker { background: var(--primary); - color: rgb(255, 255, 255); + color: var(--text-inverse); } :where(#screenerView) .screener-overview-grid { @@ -2222,7 +2196,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 5px; - background: rgb(255, 255, 255); + background: var(--surface); font-size: 10.5px; @@ -2241,12 +2215,6 @@ body[data-active-view="screenerView"] .overview-strip { line-height: 1.65; } -:where(#screenerView) .screener-runbar { - border-color: var(--border); - - margin: 0px; -} - :where(#screenerView) .curated-screener-panel { border-radius: 7px; @@ -2376,7 +2344,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 6px; - background: rgb(255, 255, 255); + background: var(--surface); } .quant-rule-row .quant-weight-control input[type="range"] { @@ -2450,41 +2418,31 @@ body[data-active-view="screenerView"] .overview-strip { --line-strong: var(--border-strong); - --surface-muted: #f8fafc; + border-radius: 0; - border-radius: 8px; + color: var(--text-primary); - color: rgb(31, 41, 55); + border-color: transparent; - --action: #1769c2; + background: transparent; - --action-hover: #10569f; + --scr-blue: var(--action); - --action-soft: #eaf2fb; + --scr-blue-soft: var(--action-soft); - --border: #dfe4e9; + --scr-red: var(--market-up); - --border-strong: #cbd3dc; + --scr-red-soft: var(--market-up-soft); - border-color: var(--border); + --scr-green: var(--market-down); - background: var(--surface); + --scr-green-soft: var(--market-down-soft); - --scr-blue: #2563eb; + --scr-amber: var(--warning-color); - --scr-blue-soft: #eff4ff; + --scr-amber-soft: var(--warning-soft); - --scr-red: #e04536; - - --scr-red-soft: #fff0ed; - - --scr-green: #16a34a; - - --scr-amber: #b45309; - - --scr-amber-soft: #fff8ec; - - padding: 14px 16px 18px; + padding: var(--page-pad-y) 0 18px; } #screenerView .member-gate { @@ -2530,35 +2488,35 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .screener-mode-tabs { - min-height: 36px; + min-height: 34px; display: inline-flex; flex: 0 0 auto; - gap: 3px; + gap: 2px; margin: 0px; - padding: 3px; + padding: 0; - border: 1px solid var(--r2-line); + border: 0; - border-radius: 10px; + border-radius: 0; - background: rgb(255, 255, 255); + background: transparent; } #screenerView .screener-mode-tabs button { - min-width: 112px; + min-width: 96px; - min-height: 30px; + min-height: 34px; - padding: 0px 17px; + padding: 0 14px; border: 0px; - border-radius: 7px; + border-radius: 0; background: transparent; @@ -2566,7 +2524,7 @@ body[data-active-view="screenerView"] .overview-strip { font-size: 13px; - font-weight: 650; + font-weight: var(--font-weight-medium); box-shadow: none; } @@ -2576,15 +2534,17 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .screener-mode-tabs button:hover { - background: rgb(245, 247, 250); + background: var(--surface-hover); color: var(--r2-ink); } #screenerView .screener-mode-tabs button.active { - background: var(--scr-blue); + background: transparent; - color: rgb(255, 255, 255); + color: var(--scr-blue); + + font-weight: var(--font-weight-semibold); } #screenerView .screener-mobile-tabs { @@ -2600,7 +2560,7 @@ body[data-active-view="screenerView"] .overview-strip { flex-direction: column; - gap: 12px; + gap: 10px; } #screenerView .screener-step { @@ -2642,7 +2602,7 @@ body[data-active-view="screenerView"] .overview-strip { #screenerView .screener-step[data-state="current"] .step-marker { background: var(--scr-blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); } #screenerView .step-line.complete { @@ -2652,6 +2612,10 @@ body[data-active-view="screenerView"] .overview-strip { #screenerView .screener-overview-card { min-width: 0px; + display: flex; + + flex-direction: column; + overflow: hidden; padding: 0px; @@ -2660,9 +2624,9 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); } #screenerView .screener-card-heading h3 { @@ -2712,13 +2676,23 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .regime-advice::before { - content: "⚠"; + content: ""; + + width: 3px; + + align-self: stretch; + + flex: 0 0 3px; + + border-radius: 2px; + + background: var(--scr-amber); } #screenerView .regime-selector { min-height: 38px; - background: rgb(255, 255, 255); + background: var(--surface); display: flex; @@ -2852,39 +2826,11 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView #activeStrategyRegimes b.neutral { - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); } -#screenerView .screener-runbar { - min-height: 56px; - - display: flex; - - align-items: center; - - gap: 10px; - - padding: 9px 14px; - - border: 1px solid var(--r2-line); - - border-radius: 10px; - - background: rgb(255, 255, 255); - - box-shadow: var(--r2-shadow); -} - -#screenerView .screener-run-actions { - display: flex; - - align-items: center; - - gap: 8px; -} - #screenerView .quant-screener-panel .button { min-height: 32px; @@ -2893,16 +2839,7 @@ body[data-active-view="screenerView"] .overview-strip { font-size: 11.5px; } -#screenerView .screener-runbar .button { - min-height: 32px; - - border-radius: 6px; - - font-size: 11.5px; -} - -#screenerView .quant-screener-panel .button.primary, -#screenerView .screener-runbar .button.primary { +#screenerView .quant-screener-panel .button.primary { background: var(--scr-blue); } @@ -2933,7 +2870,7 @@ body[data-active-view="screenerView"] .overview-strip { max-width: 100%; - margin: 12px 14px 14px; + margin: 0; overflow: hidden; @@ -2943,13 +2880,13 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); } #screenerView .strategy-tracking-panel { - margin: 12px 14px 14px; + margin: 0; overflow: hidden; @@ -2959,9 +2896,9 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); } #screenerView .screener-results-view .result-toolbar, @@ -2974,7 +2911,7 @@ body[data-active-view="screenerView"] .overview-strip { border: 0px; - background: rgb(255, 255, 255); + background: var(--surface); } #screenerView .result-toolbar h2 { @@ -3054,7 +2991,7 @@ body[data-active-view="screenerView"] .overview-strip { padding: 8px 11px; - background: rgb(248, 250, 252); + background: var(--table-header); color: var(--r2-sub); @@ -3148,7 +3085,7 @@ body[data-active-view="screenerView"] .overview-strip { #screenerView .curated-workspace { display: grid; - grid-template-columns: minmax(340px, 0.9fr) minmax(560px, 1.5fr); + grid-template-columns: minmax(360px, 0.92fr) minmax(520px, 1.48fr); gap: 12px; @@ -3164,9 +3101,9 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); display: flex; @@ -3186,7 +3123,7 @@ body[data-active-view="screenerView"] .overview-strip { border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); } #screenerView .curated-library-heading > div > span { @@ -3226,7 +3163,7 @@ body[data-active-view="screenerView"] .overview-strip { border-bottom: 1px solid var(--r2-line-soft); - background: rgb(250, 251, 252); + background: var(--surface-subtle); } #screenerView .curated-view-toggle { @@ -3242,7 +3179,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); } #screenerView .curated-view-toggle button { @@ -3298,7 +3235,7 @@ body[data-active-view="screenerView"] .overview-strip { border-bottom: 1px solid var(--r2-line-soft); - background: rgb(255, 255, 255); + background: var(--surface); scrollbar-width: none; } @@ -3380,7 +3317,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); } #screenerView .curated-search .lucide { @@ -3424,7 +3361,7 @@ body[data-active-view="screenerView"] .overview-strip { appearance: none; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-sub); @@ -3444,7 +3381,7 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .curated-strategy-list { - min-height: 352px; + min-height: 320px; max-height: 532px; @@ -3452,7 +3389,7 @@ body[data-active-view="screenerView"] .overview-strip { flex-direction: column; - gap: 6px; + gap: 4px; overflow-y: auto; @@ -3474,7 +3411,7 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .curated-strategy-list.is-grid .curated-strategy-card { - min-height: 124px; + min-height: 104px; align-items: center; @@ -3486,7 +3423,7 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .curated-strategy-list.is-grid .curated-strategy-card:hover { - transform: translateY(-2px); + transform: translateY(-1px); } #screenerView .curated-strategy-list.is-grid .curated-strategy-card.active { @@ -3533,15 +3470,15 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .curated-strategy-card:hover { - border-color: rgb(183, 201, 238); + border-color: var(--blue-line); - background: rgb(244, 247, 253); + background: var(--surface-hover); - transform: translateX(2px); + transform: translateX(1px); } #screenerView .curated-strategy-card.active { - border-color: rgb(156, 181, 236); + border-color: var(--blue-line); background: var(--scr-blue-soft); @@ -3657,7 +3594,7 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .curated-card-tags em:nth-child(2) { - background: rgb(243, 244, 246); + background: var(--surface-muted); color: var(--r2-sub); } @@ -3677,9 +3614,9 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); display: flex; @@ -3759,7 +3696,7 @@ body[data-active-view="screenerView"] .overview-strip { border-bottom: 1px solid var(--r2-line-soft); - background: rgb(250, 251, 252); + background: var(--surface-subtle); } #screenerView .curated-health-grid > div { @@ -3875,7 +3812,7 @@ body[data-active-view="screenerView"] .overview-strip { border-top: 1px solid var(--r2-line-soft); - background: rgb(250, 251, 252); + background: var(--surface-subtle); } #screenerView .curated-data-status > .lucide { @@ -3988,7 +3925,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 7px; - background: rgb(250, 251, 252); + background: var(--surface-subtle); } #screenerView .quant-rule-row input[type="text"] { @@ -4000,7 +3937,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 6px; - background: rgb(255, 255, 255); + background: var(--surface); font-size: 10.5px; } @@ -4014,7 +3951,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 6px; - background: rgb(255, 255, 255); + background: var(--surface); font-size: 10.5px; } @@ -4141,7 +4078,7 @@ body[data-active-view="screenerView"] .overview-strip { @media (max-width: 820px) { #screenerView { - padding: 10px; + padding: 10px 0; } #screenerView .screener-page-bar { @@ -4182,18 +4119,6 @@ body[data-active-view="screenerView"] .overview-strip { margin-inline: 7px; } - #screenerView .screener-runbar { - align-items: stretch; - - flex-direction: column; - } - - #screenerView .screener-run-actions { - display: grid; - - grid-template-columns: 1fr 1fr; - } - #screenerView .screener-pipeline-status { margin-left: 0px; } @@ -4257,10 +4182,6 @@ body[data-active-view="screenerView"] .overview-strip { display: none; } - #screenerView .screener-run-actions { - grid-template-columns: 1fr; - } - #screenerView .screener-backtest-strip .dragon-summary { display: grid; @@ -4348,7 +4269,7 @@ body[data-active-view="screenerView"] .overview-strip { display: flex; - margin: 0px 0px 12px; + margin: 0 0 12px; flex-wrap: nowrap; } @@ -4364,15 +4285,13 @@ body[data-active-view="screenerView"] .overview-strip { border: 1px solid var(--r2-line); - border-radius: 10px; + border-radius: var(--card-radius); - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); - min-height: 52px; - - padding-block: 8px; + min-height: 44px; } #screenerView .screener-overview-grid { @@ -4425,13 +4344,13 @@ body[data-active-view="screenerView"] .overview-strip { border-style: none none solid; - border-color: currentcolor currentcolor rgb(240, 230, 215); + border-color: currentcolor currentcolor var(--border-subtle); border-image: none; border-radius: 0px; - background: rgb(255, 250, 243); + background: var(--warning-soft); min-height: 54px; @@ -4544,19 +4463,19 @@ body[data-active-view="screenerView"] .overview-strip { min-width: 116px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: rgba(31, 41, 55, 0.45) -7px 0px 10px -10px; + box-shadow: -1px 0 0 var(--border-subtle); } #screenerView .screener-result-frame thead th:last-child { z-index: 3; - background: rgb(248, 250, 252); + background: var(--table-header); } #screenerView .screener-result-frame tbody tr:hover td:last-child { - background: rgb(248, 250, 255); + background: var(--table-hover); } #screenerTrackingView { @@ -4584,7 +4503,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); } @@ -4604,7 +4523,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 6px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-sub); @@ -4642,7 +4561,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); @@ -4722,7 +4641,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); box-shadow: var(--r2-shadow); @@ -4776,7 +4695,7 @@ body[data-active-view="screenerView"] .overview-strip { padding: 8px 11px; - background: rgb(248, 250, 252); + background: var(--table-header); font-size: 10.5px; } @@ -4904,11 +4823,11 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .screener-step .step-marker { - width: 24px; + width: 22px; - height: 24px; + height: 22px; - flex: 0 0 24px; + flex: 0 0 22px; display: grid; @@ -4916,7 +4835,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 50%; - background: rgb(232, 235, 240); + background: var(--surface-muted); color: var(--r2-faint); @@ -4940,7 +4859,7 @@ body[data-active-view="screenerView"] .overview-strip { #screenerView .screener-step[data-state="complete"] .step-marker::after { content: "✓"; - color: rgb(255, 255, 255); + color: var(--text-inverse); font-size: 13px; @@ -4982,7 +4901,7 @@ body[data-active-view="screenerView"] .overview-strip { margin: 0px; - color: rgb(55, 65, 81); + color: var(--text-primary); font-size: 12.5px; @@ -5000,9 +4919,9 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); } #screenerView .quant-summary-pane { @@ -5016,9 +4935,9 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 10px; - background: rgb(255, 255, 255); + background: var(--surface); - box-shadow: var(--r2-shadow); + box-shadow: var(--card-shadow); } #screenerView .quant-right-stack { @@ -5042,7 +4961,7 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .quant-panel-heading { - background: rgb(255, 255, 255); + background: var(--surface); min-height: 45px; @@ -5058,7 +4977,7 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .quant-summary-pane > header { - background: rgb(255, 255, 255); + background: var(--surface); min-height: 45px; @@ -5107,7 +5026,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); font-size: 12px; } @@ -5119,7 +5038,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 7px; - background: rgb(255, 255, 255); + background: var(--surface); font-size: 12px; } @@ -5163,7 +5082,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 0px; - background: rgb(255, 255, 255); + background: var(--surface); } #screenerView .quant-factor-identity { @@ -5187,7 +5106,7 @@ body[data-active-view="screenerView"] .overview-strip { background: var(--scr-blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); font-style: normal; @@ -5277,7 +5196,7 @@ body[data-active-view="screenerView"] .overview-strip { border: 0px; - background: rgb(248, 250, 252); + background: var(--table-header); font-size: 12px; } @@ -5468,15 +5387,13 @@ body[data-active-view="screenerView"] .overview-strip { #screenerView .step-line { height: 1px; - margin: 0px 14px; + margin: 0 8px; - background: rgb(217, 222, 231); + background: var(--border); - width: 40px; + width: 28px; - flex: 0 0 40px; - - margin-inline: 10px; + flex: 0 0 28px; } #screenerView .screener-card-heading { @@ -5506,6 +5423,8 @@ body[data-active-view="screenerView"] .overview-strip { min-height: 0px; + flex: 1 1 auto; + padding: 9px 14px; } @@ -5538,6 +5457,12 @@ body[data-active-view="screenerView"] .overview-strip { } #screenerView .regime-advice { + display: flex; + + align-items: center; + + gap: 7px; + padding: 6px 9px; border-radius: 6px; @@ -5576,7 +5501,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 6px; - background: rgb(255, 255, 255); + background: var(--surface); color: var(--r2-sub); @@ -5594,6 +5519,8 @@ body[data-active-view="screenerView"] .overview-strip { min-height: 0px; + flex: 1 1 auto; + padding: 10px 14px; } @@ -5640,7 +5567,7 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 0px; - background: rgb(255, 255, 255); + background: var(--surface); grid-template-columns: 220px 72px 96px 26px; @@ -5654,15 +5581,15 @@ body[data-active-view="screenerView"] .overview-strip { border-radius: 8px; - border-color: rgb(157, 185, 238); + border-color: var(--blue-line); - background: rgb(239, 244, 255); + background: var(--action-soft); - color: rgb(29, 78, 216); + color: var(--action); font-weight: 700; - box-shadow: rgba(37, 99, 235, 0.12) 0px 2px 8px; + box-shadow: none; transition: transform 160ms, border-color 160ms, background-color 160ms, box-shadow 160ms; } @@ -5678,17 +5605,17 @@ body[data-active-view="screenerView"] .overview-strip { background: var(--scr-blue); - color: rgb(255, 255, 255); + color: var(--text-inverse); } #screenerView .screener-tracking-entry:hover { - border-color: rgb(114, 152, 224); + border-color: var(--action); - background: rgb(231, 239, 255); + background: var(--surface-selected); - color: rgb(23, 70, 162); + color: var(--action-hover); - box-shadow: rgba(37, 99, 235, 0.16) 0px 4px 11px; + box-shadow: none; transform: translateY(-1px); } @@ -5798,7 +5725,7 @@ body[data-active-view="screenerView"] .overview-strip { min-width: 0px; - min-height: 68px; + min-height: 58px; display: flex; @@ -5808,7 +5735,7 @@ body[data-active-view="screenerView"] .overview-strip { gap: 16px; - padding: 12px 14px; + padding: 9px 14px; border: 1px solid var(--r2-line); @@ -5859,7 +5786,7 @@ body[data-active-view="screenerView"] .overview-strip { max-height: 640px; - min-height: 230px; + min-height: 260px; overflow: auto; @@ -5948,7 +5875,7 @@ body[data-active-view="screenerView"] .overview-strip { color: var(--sub); - background: rgb(243, 244, 246); + background: var(--surface-muted); border-radius: 5px; @@ -5980,7 +5907,7 @@ body[data-active-view="screenerView"] .overview-strip { .method { display: inline-flex; - background: rgb(255, 255, 255); + background: var(--surface); border: 1px solid var(--line); @@ -6002,7 +5929,7 @@ body[data-active-view="screenerView"] .overview-strip { margin-bottom: 12px; - background: rgb(255, 255, 255); + background: var(--surface); border: 1px solid var(--line); @@ -6028,7 +5955,7 @@ body[data-active-view="screenerView"] .overview-strip { background: var(--down); - color: rgb(255, 255, 255); + color: var(--text-inverse); display: flex; @@ -6079,66 +6006,28 @@ body[data-active-view="screenerView"] .overview-strip { margin-bottom: 12px; } -.runbar { - display: flex; - - align-items: center; - - gap: 10px; - - margin-bottom: 12px; - - background: rgb(255, 255, 255); - - border: 1px solid var(--line); - - border-radius: var(--radius); - - padding: 10px 14px; - - flex-wrap: wrap; -} - -.runbar .pipe { - display: flex; - - gap: 14px; - - font-size: 11.5px; - - color: var(--sub); - - margin-left: auto; - - flex-wrap: wrap; -} - -.runbar .pipe .ok { - color: var(--down); -} - .view { display: none; } #screenerView .curated-strategy-card { - min-height: 70px; + min-height: 56px; display: flex; flex-direction: column; - gap: 6px; + gap: 4px; flex: 0 0 auto; - padding: 9px 10px; + padding: 7px 9px; border: 1px solid transparent; border-radius: 7px; - background: rgb(248, 250, 252); + background: var(--table-header); box-shadow: none; @@ -6167,7 +6056,7 @@ body[data-active-view="screenerView"] .overview-strip { :root #screenerView .screener-result-frame { max-height: none; - overflow: visible; + overflow: auto; } } @@ -6235,7 +6124,7 @@ body[data-active-view="screenerView"] .overview-strip { background: var(--surface-muted); } -:root[data-theme="dark"] #screenerView :is(.screener-mode-tabs, .screener-stepper, .regime-selector, .regime-option, .screener-runbar, .screener-results-view, .result-toolbar) { +:root[data-theme="dark"] #screenerView :is(.screener-mode-tabs, .screener-stepper, .regime-selector, .regime-option, .screener-results-view, .result-toolbar) { border-color: var(--border); background: var(--surface); @@ -6445,7 +6334,21 @@ body[data-active-view="screenerView"] .overview-strip { justify-content: flex-end; - gap: 10px; + gap: 8px; +} + +#screenerView .screener-result-tools > .button { + min-height: 30px; + + padding: 0 9px; + + white-space: nowrap; +} + +#screenerView .screener-result-tools > .button .lucide { + width: 13px; + + height: 13px; } #screenerView .screener-archive-tabs { diff --git a/app/frontend/pages/screener/page.html b/app/frontend/pages/screener/page.html index d74d6db..bdb5d36 100644 --- a/app/frontend/pages/screener/page.html +++ b/app/frontend/pages/screener/page.html @@ -55,15 +55,6 @@ -
-
- -
-
- 因子 等待检查 - 编译 本地模板编译 -
-