- 지도 층 단추 열다섯 안팎 · 표시 토글 셋 · 라이다 겹침 = 켜기 칩(층 색 점) · 도엽 보간 방식 = 분할 고르기 · 도구줄 부품 - 고르기 38 → 고르기 부품 · 점 크기 · 밀도 = 슬라이더 · 입력 파일 정보 = 값 목록 · 초기화 = 위험 고스트 · 묶음 상자 = 카드 + 패널 머리 - 죽은 CSS 열여섯 걷음 · 날 색 → 공통 값 · 가이드 촬영 선택자 · 지킴 시험 test_553_1_pages 늘림 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
205 lines
5.3 KiB
CSS
205 lines
5.3 KiB
CSS
/* =============================================================================
|
|
* B04_PreProcess_UI_Style_Map.css
|
|
* 1차 워크플로우 하단 **2D 지도**와 그 도구줄·시트 툴바.
|
|
*
|
|
* `B04_PreProcess_UI_Style.css` 가 700줄을 넘겨 잘라낸 조각이다(2026-09-04).
|
|
* 규칙·순서·값 그대로 옮겼고, 진입 TS 가 본체 다음에 불러 캐스케이드 순서도 같다.
|
|
* ========================================================================== */
|
|
|
|
/* --- 하단 2D 지도 --- */
|
|
.b04-map {
|
|
--b04-map-vector: var(--color-accent);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-12);
|
|
margin: var(--spacing-24);
|
|
}
|
|
|
|
.b04-map__header,
|
|
.b04-map__control-group,
|
|
.b04-map__layer-buttons {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.b04-map__header {
|
|
justify-content: space-between;
|
|
gap: var(--spacing-16);
|
|
}
|
|
|
|
.b04-map__header h3 {
|
|
font-size: var(--text-body);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.b04-map__controls {
|
|
gap: var(--spacing-12);
|
|
}
|
|
|
|
.b04-map__control-group {
|
|
gap: var(--spacing-8);
|
|
color: var(--color-text-secondary);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.b04-map__layer-buttons {
|
|
gap: var(--spacing-4);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
/* 관 매설 우클릭 메뉴 — 지도 뷰포트 기준 절대 위치 · 모양은 공용 `.ui-ctx-menu`. */
|
|
.b04-map__context-menu {
|
|
position: absolute;
|
|
z-index: 6;
|
|
}
|
|
|
|
.b04-map__viewport {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 560px;
|
|
overflow: hidden;
|
|
touch-action: none;
|
|
/* 좌버튼은 선택 전용이라 손바닥(grab) 커서를 쓰지 않는다. 팬 중(가운데 버튼)에만
|
|
JS가 grabbing으로 바꾼다(2026-08-01 사용자 지시). */
|
|
cursor: default;
|
|
user-select: none;
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-cards);
|
|
background: var(--color-canvas);
|
|
}
|
|
|
|
.b04-map__image,
|
|
.b04-map__canvas {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.b04-map__image {
|
|
object-fit: contain;
|
|
transform-origin: center;
|
|
user-select: none;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.b04-map__canvas {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.b04-map__empty {
|
|
position: absolute;
|
|
z-index: 2;
|
|
inset: 50% auto auto 50%;
|
|
transform: translate(-50%, -50%);
|
|
color: var(--color-text-secondary);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
/* 지도 위 좌상단 문구 묶음 — 배수유역 정보 자리(2026-08-01 사용자 지시).
|
|
지도 조작을 가리지 않도록 포인터 이벤트는 통과시킨다. */
|
|
.b04-map__status-stack {
|
|
position: absolute;
|
|
z-index: 2;
|
|
top: var(--spacing-12);
|
|
left: var(--spacing-12);
|
|
display: flex;
|
|
max-width: min(62%, 900px);
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: var(--spacing-4);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* 배수유역 "분석 중…" 진행 문구 자리 — 우측 최상단(2026-08-01 사용자 지시).
|
|
결과 문구는 좌상단에 그대로 남는다. */
|
|
.b04-map__status-topright {
|
|
position: absolute;
|
|
z-index: 2;
|
|
top: var(--spacing-12);
|
|
right: var(--spacing-12);
|
|
display: flex;
|
|
max-width: min(40%, 360px);
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
gap: var(--spacing-4);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* 객체 표시(지형지물 개수) 라벨 자리 — 우측 최하단(2026-08-01 사용자 지시).
|
|
축척은 좌하단이라 서로 겹치지 않는다. */
|
|
.b04-map__status-corner {
|
|
position: absolute;
|
|
z-index: 2;
|
|
right: var(--spacing-12);
|
|
bottom: var(--spacing-12);
|
|
display: flex;
|
|
max-width: min(50%, 480px);
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
gap: var(--spacing-4);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* 배수유역 전용 상태 줄 — 지도 자체 상태(.b04-map__status)와 칸을 나눠 쓰면
|
|
나중에 끝난 쪽이 상대 문구를 지운다. 그래서 줄을 따로 둔다.
|
|
배경지도(위성·지적·등고선)가 복잡해 글자가 묻히므로 배경 칩을 깐다. */
|
|
.b04-map__status,
|
|
.b04-map__watershed-status {
|
|
display: block;
|
|
padding: var(--spacing-4) var(--spacing-8);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-inputs);
|
|
background: color-mix(in srgb, var(--color-surface-raised) 92%, transparent);
|
|
color: var(--color-text-body);
|
|
font-size: var(--text-caption);
|
|
line-height: 1.5;
|
|
word-break: keep-all;
|
|
backdrop-filter: blur(6px);
|
|
-webkit-backdrop-filter: blur(6px);
|
|
}
|
|
|
|
.b04-map__watershed-status[hidden] {
|
|
display: none;
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.b04-map__header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.b04-surface__viewers {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* 도엽등고 3D 서피스 컨테이너 — 2026-08-30 */
|
|
.b04-surface__sheet-section {
|
|
margin: 0 var(--spacing-24) var(--spacing-16);
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.b04-surface__sheet-section > .terrain-model-group {
|
|
margin-top: var(--spacing-12);
|
|
}
|
|
|
|
/* 도엽 서피스 줄 — 방식 고르기(분할 고르기) · 도구줄 부품 · 스무딩 고르기는 이름 옆에 한 줄로 */
|
|
.b04-surface__sheet-section .ui-toolbar {
|
|
margin: var(--spacing-12) 0;
|
|
}
|
|
|
|
.b04-surface__sheet-section .ui-toolbar .ui-field {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
/* 아직 만들지 않은 방식 — 누르면 계산이 시작된다는 것을 눌러 보기 전에 알린다. */
|
|
.b04-surface__sheet-section .ui-segment__item.is-unbuilt:not([aria-checked="true"]) {
|
|
color: var(--color-text-muted);
|
|
font-style: italic;
|
|
}
|