From 7cb008c551bb488474a0b81407bdc9ad9f762a35 Mon Sep 17 00:00:00 2001 From: Light1YT Date: Mon, 22 Jun 2026 11:08:44 +0500 Subject: [PATCH] revert(site-finder): rollback dark entry-landing skin to light MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ПТИЦА dark "operator terminal" skin was applied to the main /site-finder map page in b3fd053 ("dark Site Finder"), but the 2026-06-21 rollback (#1865) only reverted the analysis route — the entry-landing stayed dark. Точечно откатывает 8 файлов entry-landing (page.tsx + 7 entry-компонентов) до состояния b3fd053~1 и удаляет осиротевший site-finder.module.css. НЕ трогает: PticaMapInner / ptica.module.css (используются и старым ptica, и Site Finder v2 cockpit) — карта аналитики остаётся glyph-pin как была. --- frontend/src/app/site-finder/page.tsx | 23 ++- .../app/site-finder/site-finder.module.css | 132 ------------------ .../src/components/site-finder/CadInput.tsx | 34 ++--- .../components/site-finder/entry/EntryMap.tsx | 61 ++++---- .../site-finder/entry/MapFilterBar.tsx | 40 +++--- .../site-finder/entry/ParcelDrawer.tsx | 71 +++++----- .../site-finder/entry/ParcelLegend.tsx | 18 ++- .../site-finder/entry/RecentParcels.tsx | 38 ++--- 8 files changed, 126 insertions(+), 291 deletions(-) delete mode 100644 frontend/src/app/site-finder/site-finder.module.css diff --git a/frontend/src/app/site-finder/page.tsx b/frontend/src/app/site-finder/page.tsx index c55fc79d..82c2080c 100644 --- a/frontend/src/app/site-finder/page.tsx +++ b/frontend/src/app/site-finder/page.tsx @@ -19,7 +19,6 @@ import type { ParcelBboxItem, BboxCoords, } from "@/lib/site-finder-api"; -import styles from "./site-finder.module.css"; // EntryMap uses Leaflet — must load without SSR const EntryMap = dynamic( @@ -32,13 +31,13 @@ const EntryMap = dynamic( style={{ flex: 1, minHeight: 480, - background: "rgba(9, 22, 31, 0.62)", - border: "1px dashed rgba(150, 192, 214, 0.4)", + background: "var(--bg-card-alt)", + border: "1px dashed var(--border-strong)", borderRadius: 12, display: "flex", alignItems: "center", justifyContent: "center", - color: "#8ba6b3", + color: "var(--fg-tertiary)", fontSize: 14, }} > @@ -130,10 +129,9 @@ export default function SiteFinderPage() { return (
← Главная - · + ·

SiteFinder · карта участков @@ -177,7 +174,7 @@ export default function SiteFinderPage() { style={{ marginLeft: "auto", fontSize: 13, - color: "#7fd0ee", + color: "var(--accent)", textDecoration: "none", fontWeight: 500, }} diff --git a/frontend/src/app/site-finder/site-finder.module.css b/frontend/src/app/site-finder/site-finder.module.css deleted file mode 100644 index 781619a7..00000000 --- a/frontend/src/app/site-finder/site-finder.module.css +++ /dev/null @@ -1,132 +0,0 @@ -/* - * SiteFinder entry page — ПТИЦА dark "operator terminal" skin (Track B). - * - * Every design token is scoped under `.sfRoot[data-theme="dark"]` (the page - * wrapper carries BOTH the class and the attribute) so these dark vars NEVER - * leak onto the global light theme of other pages (analytics etc.). This - * mirrors how the ПТИЦА cockpit scopes its dark tokens under - * `.pticaRoot[data-theme="dark"]`. The dark palette is the SAME cockpit palette - * (#060f16 / #08131c surfaces, #dcebf2 text, #7fd0ee accent-cyan, token borders). - */ - -/* ===================== SCOPED TOKENS (dark) ===================== */ -.sfRoot[data-theme="dark"] { - --sf-font-mono: "IBM Plex Mono", "Roboto Mono", ui-monospace, monospace; - - /* accents */ - --sf-accent-cyan: #7fd0ee; - --sf-accent-cyan-strong: #8ed3ff; - --sf-accent-green: #38c172; - --sf-accent-yellow: #e0a93b; - --sf-accent-red: #d2655b; - - /* dark surface palette */ - --sf-bg: #060f16; - --sf-bg-2: #08131c; - --sf-grid-line: rgba(120, 165, 190, 0.06); - --sf-surface: rgba(11, 26, 36, 0.72); - --sf-surface-2: rgba(9, 22, 31, 0.62); - --sf-surface-strong: rgba(12, 30, 42, 0.94); - --sf-surface-muted: rgba(26, 52, 67, 0.55); - --sf-surface-inset: rgba(4, 12, 18, 0.6); - - --sf-text: #dcebf2; - --sf-text-strong: #f2fafe; - --sf-text-muted: #8ba6b3; - --sf-text-soft: #5f7886; - - --sf-border: rgba(150, 192, 214, 0.18); - --sf-border-strong: rgba(150, 192, 214, 0.4); - --sf-border-faint: rgba(150, 192, 214, 0.1); - - --sf-map-filter: saturate(0.7) contrast(1.12) brightness(0.7); - --sf-glow: rgba(110, 200, 240, 0.28); - --sf-glow-strong: rgba(110, 200, 240, 0.55); - --sf-shadow: 0 18px 70px rgba(0, 0, 0, 0.5); - - /* root paint — subtle grid + corner glow, same recipe as the cockpit */ - color: var(--sf-text); - font-variant-numeric: tabular-nums; - -webkit-font-smoothing: antialiased; - background: - linear-gradient(90deg, transparent 31px, var(--sf-grid-line) 32px), - linear-gradient(0deg, transparent 31px, var(--sf-grid-line) 32px), - radial-gradient(circle at 82% -8%, var(--sf-glow), transparent 42%), - var(--sf-bg); - background-size: - 32px 32px, - 32px 32px, - 100% 100%, - 100% 100%; -} - -/* ===================== LEAFLET (dark map chrome) ===================== */ -.sfRoot :global(.leaflet-container) { - background: var(--sf-bg-2); - font-family: inherit; -} -/* dark base tiles → muted / contrast-bumped so markers stay readable */ -.sfRoot :global(.leaflet-tile-pane) { - filter: var(--sf-map-filter); -} -/* glassy dark popups (match the cockpit chrome) */ -.sfRoot :global(.leaflet-popup-content-wrapper) { - background: var(--sf-surface-strong); - color: var(--sf-text); - border: 1px solid var(--sf-border); - border-radius: 8px; - box-shadow: var(--sf-shadow); -} -.sfRoot :global(.leaflet-popup-tip) { - background: var(--sf-surface-strong); -} -.sfRoot :global(.leaflet-popup-content) { - margin: 10px 12px; -} -.sfRoot :global(.leaflet-container a.leaflet-popup-close-button) { - color: var(--sf-text-muted); -} -/* dark tooltips */ -.sfRoot :global(.leaflet-tooltip) { - background: var(--sf-surface-strong); - color: var(--sf-text); - border: 1px solid var(--sf-border); - box-shadow: var(--sf-shadow); -} -.sfRoot :global(.leaflet-tooltip-top::before) { - border-top-color: var(--sf-border); -} -.sfRoot :global(.leaflet-control-attribution) { - background: rgba(8, 19, 28, 0.55); - color: var(--sf-text-soft); - font-size: 9px; - padding: 1px 6px; - opacity: 0.65; - backdrop-filter: blur(4px); -} -.sfRoot :global(.leaflet-control-attribution a) { - color: var(--sf-text-muted); -} -/* dark-styled zoom +/- control (prototype map controls) */ -.sfRoot :global(.leaflet-control-zoom) { - border: 1px solid var(--sf-border-strong); - border-radius: 4px; - overflow: hidden; - box-shadow: 0 0 12px var(--sf-glow); -} -.sfRoot :global(.leaflet-control-zoom a) { - background: var(--sf-surface-strong); - color: var(--sf-text); - border-bottom: 1px solid var(--sf-border); - width: 28px; - height: 28px; - line-height: 28px; -} -.sfRoot :global(.leaflet-control-zoom a:hover) { - background: var(--sf-surface-muted); - color: var(--sf-accent-cyan); -} -.sfRoot :global(.leaflet-control-zoom a.leaflet-disabled) { - background: var(--sf-surface-strong); - color: var(--sf-text-soft); -} diff --git a/frontend/src/components/site-finder/CadInput.tsx b/frontend/src/components/site-finder/CadInput.tsx index 15a62783..414b517e 100644 --- a/frontend/src/components/site-finder/CadInput.tsx +++ b/frontend/src/components/site-finder/CadInput.tsx @@ -30,15 +30,7 @@ export function CadInput({ onSubmit, loading }: Props) { } return ( -
+