Files
Aislo/M02_MasterTemplete/M02_MasterTemplete_Structure.css
T
eomsangdonandClaude Opus 5.5 b981911755 feat(M02): 항목 추가 창 = 종류 + 이름 + 일위대가 · 카드 넷 2×2 · 표 접기 (PLAN 31-2)
- 항목 추가(나무 「항목 추가」 · 「새 항목」) — 구조물 종류(있는 것 고름 · 새 이름 · 폴더를 골라 두었으면 그 안) + 이름 + 일위대가(세 층 조합 고르기 창 · 찾기 AND · 비워도 됨) · 단위 칸 없앰 · 빈 칸 안내 · 서버 add-item 이 일위대가 받음
- 일위대가 고르기 창을 pickCombo 로 내보내 표 칸 고르기와 같이 씀
- 카드 넷(도면 정보 · 면적산출 · 재료산출 · 선택 입력) 2행 2열 · 높이 360px · 넘치면 카드 안 스크롤 · 상세 칸 전체 스크롤(좁으면 1열)
- 「구조물 조합」 제목을 누르면 표 접힘 · 펴짐
- 시험 — 항목 추가 서버 · 창 · 격자 · 접기 · 옛 단위 필수 시험을 31 정함으로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 20:19:11 +09:00

167 lines
4.4 KiB
CSS

/* M02 구조물집계표 아래 설계 컨테이너 — 카드 셋(도면 정보 · 면적산출 · 재료산출) ·
카드 모양은 좌측 패널과 같은 공용 ui-sidebar-*(ui_template_overlay.css). */
/* 표 밖 형제 자리 — 비어 있을 때 메인 간격이 벌어지지 않게 칸을 지움. */
.m02-main__extra {
display: contents;
}
/* 카드 넷(도면 정보 · 면적산출 · 재료산출 · 선택 입력) = 2행 2열 · 카드 높이 고정(PLAN 31-2) ·
칸이 좁으면(720px 아래) 1열 */
.m02-struct {
/* 카드 본문은 카드 높이를 채움 — 넘치면 카드 안에서 스크롤 */
--m02-struct-body-min: 0;
--m02-struct-card-h: 360px;
display: grid;
flex: none;
grid-auto-rows: var(--m02-struct-card-h);
grid-template-columns: repeat(2, minmax(0, 1fr));
padding-top: var(--spacing-12);
border-top: 1px solid var(--color-border);
min-width: 0;
}
@media (max-width: 720px) {
.m02-struct {
grid-template-columns: minmax(0, 1fr);
}
}
.m02-struct > * {
min-width: 0;
}
/* 카드가 보이면 상세 칸은 창 높이까지 — 표 + 카드가 넘치면 상세 칸 전체가 스크롤 */
.m02-main:has(> .m02-main__extra > .m02-struct:not([hidden])) {
box-sizing: border-box;
max-height: calc(100vh - var(--spacing-64));
overflow-y: auto;
}
/* 표는 줄어들지 않음(줄면 표가 카드 위로 넘침) */
.m02-main:has(> .m02-main__extra > .m02-struct:not([hidden])) > .m02-main__host {
flex-shrink: 0;
}
/* 카드 = 제목 + 머리 + 본문 — 본문이 남는 높이를 채움 · 넘치면 카드 안 스크롤 */
.m02-struct__card {
display: flex;
flex-direction: column;
min-height: 0;
overflow: hidden;
}
.m02-struct__card > :last-child {
flex: 1 1 0;
min-height: 0;
overflow: auto;
}
/* ui-sidebar-panel 은 display:flex 라 hidden 속성을 덮어씀 — 안 보일 땐 확실히 안 보이게 */
.m02-struct[hidden] {
display: none;
}
.m02-struct__head,
.m02-struct__subhead {
display: flex;
align-items: center;
gap: var(--spacing-12);
min-width: 0;
}
/* 머리 = 번호 · [수정] 한 줄, 이름은 그 아래 전체 폭 — 긴 이름도 잘리지 않게 줄바꿈 */
.m02-struct__head {
flex-wrap: wrap;
}
.m02-struct__title {
order: 1;
flex: 1 0 100%;
min-width: 0;
margin: 0;
color: var(--color-text);
font-size: var(--text-body);
overflow-wrap: anywhere; /* 이름이 길어도 잘리지 않게 줄바꿈 */
}
.m02-struct__no {
padding: 0 var(--spacing-8);
border-radius: var(--radius-md);
background: color-mix(in srgb, var(--color-accent) 14%, transparent);
color: var(--color-text);
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.m02-struct__head .ui-btn,
.m02-struct__subhead .ui-btn {
margin-left: auto;
white-space: nowrap;
}
/* 미리보기 — 웹캐드는 높이를 부모에서 받음(`.m02-drawing` 이 flex: 1 1 0).
`.cad-host` 는 원래 상세 페이지 몫이라 min-height:420px 를 가짐 — 미리보기 카드 높이(24rem=384px)보다
커서 카드 밖으로 넘쳤음(넘침 숨김 + 강제로 0 으로 덮어씀). */
.m02-struct__preview {
display: flex;
overflow: hidden;
flex: 1 1 0;
min-height: var(--m02-struct-body-min);
min-width: 0;
}
.m02-struct__preview .cad-host {
min-height: 0;
}
/* 면적산출 · 재료산출 미리보기 — `.ss` 는 height:100% 로 부모 높이를 그대로 받는데 부모(이 칸)에 높이가
없으면 0 이 되어 칸이 안 보였음(진짜 원인). 약 30행이 늘 보이게 높이를 정하고
넘치면 격자 안쪽(.ss-grid-host)이 스스로 스크롤(spreadsheet_grid.css). */
.m02-struct__sheet {
flex: 1 1 0;
min-height: var(--m02-struct-body-min);
overflow: hidden;
min-width: 0;
}
.m02-struct__empty {
margin: 0;
padding: var(--spacing-16);
color: var(--color-text-secondary);
}
/* 조회 후 선택 창 — 찾기 칸 + 목록(번호 · 이름) */
.m02-pick__list {
display: flex;
flex-direction: column;
max-height: 55vh;
overflow: auto;
margin: var(--spacing-8) 0;
}
.m02-pick__item {
display: flex;
gap: var(--spacing-12);
padding: var(--spacing-8);
border: none;
border-radius: var(--radius-sm, 4px);
background: none;
color: inherit;
font: inherit;
text-align: left;
cursor: pointer;
}
.m02-pick__item:hover,
.m02-pick__item:focus-visible {
background: var(--color-surface-sunken);
}
.m02-pick__key {
flex: none;
min-width: 6rem;
color: var(--color-text-muted);
font-variant-numeric: tabular-nums;
}