fix(M02): 카드 넷 높이 = 화면에 맞춰 크게 · 엑셀 격자가 카드를 채움 (PLAN 31-6)

- 카드 높이 360px → min(640px, 70vh) · 도면 CAD 칸은 카드를 채움
- 엑셀 카드(면적 · 재료) 격자 = 카드 몫 최소 높이(카드 - 8rem) · 판이 없으면 채움 · 자재 조합 판은 그 아래 카드 안 스크롤(격자 높이 0 이던 흠 함께)
- 시험 한 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 20:58:16 +09:00
co-authored by Claude Opus 5.5
parent 8206bf6bb4
commit 2f7acff79f
2 changed files with 8 additions and 7 deletions
@@ -6,12 +6,14 @@
display: contents;
}
/* 카드 넷(도면 정보 · 면적산출 · 재료산출 · 선택 입력) = 2행 2열 · 카드 높이 고정(PLAN 31-2) ·
/* 카드 넷(도면 정보 · 면적산출 · 재료산출 · 선택 입력) = 2행 2열 · 카드 높이 = 화면 높이에 맞춰 크게(PLAN 31-6) ·
칸이 좁으면(720px 아래) 1열 */
.m02-struct {
/* 카드 본문은 카드 높이를 채움 — 넘치면 카드 안에서 스크롤 */
--m02-struct-body-min: 0;
--m02-struct-card-h: 360px;
--m02-struct-card-h: min(640px, 70vh);
/* 엑셀 카드 격자 최소 높이 — 카드에서 제목 · 머리 · 알약 줄 몫을 뺀 만큼(자재 조합 판은 그 아래 · 카드 안 스크롤) */
--m02-struct-grid-min: calc(var(--m02-struct-card-h) - 8rem);
display: grid;
flex: none;
grid-auto-rows: var(--m02-struct-card-h);
@@ -225,8 +227,7 @@
}
.m02-struct__sheet-grid {
flex: 0 0 auto;
height: var(--m02-struct-body-min);
flex: 1 0 var(--m02-struct-grid-min); /* 판이 없으면 카드를 채우고 · 있으면 최소 높이 뒤에 판 */
min-width: 0;
}
+3 -3
View File
@@ -135,9 +135,9 @@ def test_항목_추가_창_카드_격자_표_접기():
assert "askNewItem({" in panel and "M02_TreeUnit" not in panel
css = (m02 / "M02_MasterTemplete_Structure.css").read_text("utf-8")
assert "grid-template-columns: repeat(2, minmax(0, 1fr));" in css
assert (
"grid-auto-rows: var(--m02-struct-card-h);" in css and "--m02-struct-card-h: 360px;" in css
)
assert "grid-auto-rows: var(--m02-struct-card-h);" in css
assert "--m02-struct-card-h: min(640px, 70vh);" in css # 31-6 화면 높이에 맞춤
assert "flex: 1 0 var(--m02-struct-grid-min);" in css # 엑셀 격자가 카드 높이를 채움
assert "max-height: calc(100vh - var(--spacing-64));\n overflow-y: auto;" in css
main = (m02 / "M02_MasterTemplete_UI_Main.ts").read_text("utf-8")
assert "host.hidden = !host.hidden;" in main and 'title.classList.toggle("is-folded"' in main