diff --git a/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx b/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx index a8671987a..2eecde5a6 100644 --- a/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx +++ b/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx @@ -57,21 +57,18 @@ const DEFAULT_SETTING_FILTERS: SettingFilters = { }; const TOOLBAR_INPUT_CLASS_NAME = - "h-[30px] rounded-none border border-[#8f98a3] bg-white px-2 text-[12px] text-[#1f2937] outline-none"; - -const TOOLBAR_BUTTON_CLASS_NAME = - "h-[30px] min-w-[44px] rounded-none border border-[#7c5a20] bg-[#ef8d2f] px-3 text-[12px] font-semibold text-white hover:bg-[#df7f24]"; + "h-10 rounded-md border border-slate-300 bg-white px-3 text-[1.05rem] text-slate-700 outline-none"; const SECONDARY_BUTTON_CLASS_NAME = - "h-[28px] rounded-none border border-[#8f98a3] bg-white px-3 text-[12px] text-[#334155] hover:bg-[#f8fafc]"; + "h-10 rounded-md border border-slate-300 bg-white px-5 text-[1.05rem] text-slate-700 hover:bg-slate-100"; const ACTION_BUTTON_CLASS_NAME = - "h-[28px] rounded-[6px] border border-[#2e77bc] bg-[#3f8fd7] px-3 text-[12px] font-semibold text-white hover:bg-[#337ec1]"; + "h-10 px-5 !text-[1.05rem]"; const WATER_RISK_PAGE_SIZE = 10; const RESULT_TABLE_CONTAINER_CLASS_NAME = - "min-h-0 overflow-hidden rounded-[10px] border border-[#d6e1ee] bg-[linear-gradient(180deg,#ffffff_0%,#f9fbfe_100%)] shadow-[0_6px_16px_rgba(31,59,87,0.06)]"; + "min-h-0 overflow-hidden border border-[#dbe2e6] bg-white"; const SETTING_TABLE_CONTAINER_CLASS_NAME = - "min-h-0 overflow-hidden rounded-[10px] border border-[#d6e1ee] bg-[linear-gradient(180deg,#ffffff_0%,#f9fbfe_100%)] shadow-[0_6px_16px_rgba(31,59,87,0.06)]"; + "min-h-0 overflow-hidden border border-[#dbe2e6] bg-white"; const postMessageToOpener = (type: string, payload?: Record) => { if (typeof window === "undefined" || !window.opener) return; @@ -396,28 +393,28 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { }; return ( -
-
+
+
{activeView === "setting" ? ( ) : null} -

+

{activeView === "result" ? "통수위험분석" : "통수위험분석 설정"}

-
+
{activeView === "result" ? ( -
-
-
-
+
+
+ + + + + +
-
+ +
-
+
+

+ 통수위험 분석 결과 {visibleResultRows.length.toLocaleString("ko-KR")}건 +

+
+
@@ -620,10 +639,10 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { ) : null} ) : ( -
-
-
-
+
+
+ + +
-
+ +
-
+
+

+ 통수위험 설정 현황 {visibleSettingRows.length.toLocaleString("ko-KR")}건 +

+
+
@@ -754,10 +785,10 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { ) : null} {showSettingEditor ? ( -
+
-
-
+
+
설정 편집 대상: {currentSettingAreaName || "선택 전"}
@@ -765,7 +796,7 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { type="button" size="sm" color="white" - className="h-[28px] rounded-[4px] border border-[#cad7e6] bg-white px-[10px] text-[12px] text-[#43566b] hover:bg-[#f8fbff]" + className="h-9 rounded-md border border-slate-300 bg-white px-4 text-[1.05rem] text-slate-700 hover:bg-slate-100" onClick={handleStopSettingEdit} > 편집 종료 @@ -774,7 +805,7 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { type="button" size="sm" color="white" - className="h-[28px] rounded-[4px] border border-[#cad7e6] bg-white px-[10px] text-[12px] text-[#43566b] hover:bg-[#f8fbff]" + className="h-9 rounded-md border border-slate-300 bg-white px-4 text-[1.05rem] text-slate-700 hover:bg-slate-100" onClick={handleClearStagedPipes} disabled={snapshot.stagedPipes.length === 0} > @@ -783,6 +814,7 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) {
-
+
@@ -832,7 +864,7 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { type="button" size="sm" color="white" - className="h-[28px] rounded-[4px] border border-[#cad7e6] bg-white px-[10px] text-[12px] text-[#43566b] hover:bg-[#f8fbff]" + className="h-9 rounded-md border border-slate-300 bg-white px-4 text-[1.05rem] text-slate-700 hover:bg-slate-100" onClick={() => handleMoveStagedPipe(pipe.pipeId, "UP")} disabled={index === 0} > @@ -842,7 +874,7 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { type="button" size="sm" color="white" - className="h-[28px] rounded-[4px] border border-[#cad7e6] bg-white px-[10px] text-[12px] text-[#43566b] hover:bg-[#f8fbff]" + className="h-9 rounded-md border border-slate-300 bg-white px-4 text-[1.05rem] text-slate-700 hover:bg-slate-100" onClick={() => handleMoveStagedPipe(pipe.pipeId, "DOWN")} disabled={index === snapshot.stagedPipes.length - 1} > @@ -852,7 +884,7 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { type="button" size="sm" color="white" - className="h-[28px] rounded-none border border-[#e7b7b7] bg-white px-3 text-[12px] text-[#c62828] hover:bg-[#fff8f8]" + className="h-9 rounded-md border border-[#e7b7b7] bg-white px-4 text-[1.05rem] text-[#c62828] hover:bg-[#fff8f8]" onClick={() => handleRemoveStagedPipe(pipe.pipeId)} > 삭제 diff --git a/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md b/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md index 272371f54..a485657bb 100644 --- a/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md +++ b/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md @@ -95,6 +95,21 @@ - 남은 메모 - 실제 운영에서 요구되는 카드 고정 규칙과 사용성은 브라우저 수동 검증에서 한 번 더 확정할 필요가 있다. +### 4.6 2026-06-15 통수위험 팝업 디자인 톤 재정렬 + +- 반영 파일 + - `FE_APP_ROOT/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx` +- 배경 + - 사용자 피드백 기준으로 현재 `통수위험분석` 팝업은 `관로분석`, `노후관로` 계열과 비교해 별도 그라데이션/카드/버튼 톤이 강해 혼자 튀는 상태로 보였다. + - 이번 라운드에서는 기능 흐름은 유지하고, 시각 언어만 기존 지도형 팝업 계열과 같은 방향으로 다시 맞추는 것을 목표로 했다. +- 구현 내용 + - 상단 헤더를 `bg-primary` + 흰색 제목 구조로 바꿔 `관로분석`, `노후관로` 팝업과 같은 첫인상을 맞췄다. + - 본문 배경을 흰색으로 단순화하고, 조회조건 영역을 `slate-50` 기반 필터 바 형태로 바꿨다. + - 결과/설정 화면 모두에 `card-header` 스타일의 제목 줄을 추가해 기존 팝업의 표 제목 리듬과 맞췄다. + - 버튼 높이, 입력 높이, 테이블 외곽선, 편집 영역 상단 바를 기존 팝업 계열과 가까운 톤으로 조정했다. +- 남은 메모 + - 현재는 `노후관로`/`관로분석` 계열에 시각 톤을 맞춘 1차 정리이며, 실제 사용자 체감 기준에서 간격이나 글자 크기 보정이 더 필요하면 후속 유지보수로 미세조정할 수 있다. + ## 5. 기능별 현재 상태 ### 5.1 결과 조회
순번