- 스프레드시트 옵션 preview 한 곳 — 도구 모음 · 오른쪽 클릭 메뉴 없이 수식 입력 줄 · 칸 고침 · 단축키 · 알약 줄(다른 화면 그대로) - 항목 카드 sheetEdit(있을 때만 고침 · 고르기 모달은 보기만 그대로) · 카드 [저장] = 읽은 문서에 시트를 덮어 saveTemplate(전체 편집기와 같은 길 · 번호 칸 유지) - 알약 · 자재 조합 판은 전체 편집기와 같은 부품 — 면적 = pillsFor · 재료 = 담은 자재 + 선택 입력 알약 · 「+ 자재 추가」 · 아래 자재 조합 판(추가 · 빼기 · 적용) - 저장 안 한 카드 고침 — 다른 항목 고르면 물음(머물면 고른 열 되돌림) · 떠나기 · 나무 고침 · 새로고침 막기도 물음 · 위 [저장]도 카드를 먼저 저장 - 카드 안 [자재 추가] 창 목록 높이를 줄여 안 잘리게 - 시험 test_m02_card_sheet_edit 새로 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ly2oHAaTDYRjcniAmHR81z
170 lines
5.0 KiB
CSS
170 lines
5.0 KiB
CSS
/* M02 구조물집계표 아래 설계 컨테이너 — 카드 셋(도면 정보 · 면적산출 · 재료산출) ·
|
|
카드 모양은 좌측 패널과 같은 공용 ui-sidebar-*(ui_template_overlay.css). */
|
|
|
|
/* 표 밖 형제 자리 — 비어 있을 때 메인 간격이 벌어지지 않게 칸을 지움. */
|
|
.m02-main__extra {
|
|
display: contents;
|
|
}
|
|
|
|
/* 카드 셋 나란히(같은 폭) · 카드 하나가 300px 안 되면 자동으로 2열 → 1열(칸 폭에 따라 · 창이 작아지면 바로 바뀜) */
|
|
.m02-struct {
|
|
/* CAD 미리보기 · 면적산출 · 재료산출 내용 최소 높이 — 이보다 작아질 때만 화면이 스크롤 */
|
|
--m02-struct-body-min: 16rem;
|
|
display: grid;
|
|
flex: 1 1 0; /* 메인 칸(창 높이)에서 표 아래 남은 높이를 다 차지 */
|
|
grid-auto-rows: minmax(auto, 1fr); /* 카드 셋 같은 높이 */
|
|
grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
|
|
padding-top: var(--spacing-12);
|
|
border-top: 1px solid var(--color-border);
|
|
min-width: 0;
|
|
}
|
|
|
|
.m02-struct > * {
|
|
min-width: 0;
|
|
}
|
|
|
|
/* 집계표 칸을 골라 카드가 보이면 메인 칸을 창 높이로 고정 — 표 아래 남은 높이만큼만 카드(스크롤 없음) */
|
|
.m02-main:has(> .m02-main__extra > .m02-struct:not([hidden])) {
|
|
box-sizing: border-box;
|
|
height: calc(100vh - var(--spacing-64));
|
|
}
|
|
|
|
/* 표는 줄어들지 않음(줄면 표가 카드 위로 넘침) — 창이 작으면 카드가 최소 높이에서 멈추고 화면이 스크롤 */
|
|
.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;
|
|
}
|
|
|
|
/* 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;
|
|
}
|
|
|
|
/* 면적산출 · 재료산출 카드 미리보기 수정(31-3) — 시트는 카드 높이 · 아래 자재 조합 판은 카드 안에서 스크롤 */
|
|
.m02-struct__sheet.is-edit {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
overflow: auto;
|
|
}
|
|
|
|
.m02-struct__sheet-grid {
|
|
flex: 0 0 auto;
|
|
height: var(--m02-struct-body-min);
|
|
min-width: 0;
|
|
}
|
|
|
|
/* 알약 줄 [자재 추가] 창은 시트 칸 안에서 위로 열림 — 카드 높이에 맞게 목록을 줄임(안 잘리게) */
|
|
.m02-struct__sheet-grid .ss-links__list {
|
|
max-height: 8rem;
|
|
}
|