fix(523-1): B07 설정 모달 좁은 폭 머리 한 줄 · 단추 줄 한 규격 · 밖에서 누르고 안에서 떼도 안 닫힘

- 공용 모달 바깥 닫기 = 뗌 자리도 배경일 때만(누름 바깥 · 뗌 안 = 안 닫힘)
- 360 px 모달 제목 · [원본에서 다시 그리기] · [닫기] 줄바꿈 없앰 · 단추 줄 [안내선 숨기기]도 같은 키(32 px)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-25 14:44:46 +09:00
co-authored by Claude Opus 5.5
parent 871174d214
commit 1dddb5185c
2 changed files with 24 additions and 4 deletions
@@ -500,6 +500,17 @@ html.is-bm-route .b07-cad-stack > .cad-tabs {
width: min(360px, 92vw);
}
/* 좁은 폭 — 제목 · 머리 단추 한 줄(줄바꿈 없음) */
.ui-modal.b07-settings .ui-modal__top > h3 {
font-size: 16px;
white-space: nowrap;
}
.ui-modal.b07-settings .ui-modal__top .ui-btn {
padding-inline: var(--spacing-8);
white-space: nowrap;
}
.b07-settings__note {
margin: 0;
color: var(--color-text-secondary);
@@ -536,6 +547,14 @@ html.is-bm-route .b07-cad-stack > .cad-tabs {
margin-left: auto;
}
/* 단추 줄 한 규격 — 안내선 단추(좌측 패널 작은 꼴)도 같은 키 · 좁은 폭에 맞춘 옆 여백 */
.b07-settings__actions .ui-btn {
padding: var(--spacing-8) var(--spacing-12);
font-size: var(--text-body-sm);
border-radius: var(--radius-buttons);
white-space: nowrap;
}
/* ⚙ 축척 칸(485-2) — X · Y(· 평면도) 칸 한 줄 */
.b07-scale {
display: flex;
+5 -4
View File
@@ -50,10 +50,11 @@ export function openModal(opts: ModalOptions): { close: () => void } {
className: `ui-modal__backdrop ${opts.backdropClass ?? ""}`.trim(),
children: [dialog],
});
// 바깥 누르기 = 누름 · 뗌 둘 다 바깥일 때만 — 칸 안에서 끌어 바깥에서 떼면 안 닫음
let downOutside = false;
backdrop.addEventListener("pointerdown", (ev) => (downOutside = ev.target === backdrop));
backdrop.addEventListener("click", (ev) => ev.target === backdrop && downOutside && void ask());
// 바깥 누르기 = 누름 · 뗌 둘 다 바깥일 때만 — 칸 안에서 끌어 바깥에서 떼면(그 반대도) 안 닫음
let outside = false;
backdrop.addEventListener("pointerdown", (ev) => (outside = ev.target === backdrop));
backdrop.addEventListener("pointerup", (ev) => (outside &&= ev.target === backdrop));
backdrop.addEventListener("click", (ev) => ev.target === backdrop && outside && void ask());
backdrop.addEventListener("keydown", (ev) => ev.key === "Escape" && void ask());
opts.mount(body, close, actions);
// 단추가 있을 때만 머리에 — [닫기] 는 머리 직속 그대로(B05 추천의 `.ui-modal__top > button` 갈아 끼우기)