Files
Aislo/ui_template/ui_template_modal.css
T
eomsangdonandClaude Opus 5.5 4ae8d742f2 fix(835-1): M02 불러오기 화면 여섯 — 보기 자동 저장 취소 · 비목 줄 금액 칸 · 상세 초록 칠 걷음 · 저장 단추 → 고르면 모달 · 모달 1400
- 자동 저장 취소(요구 852-1) — 가져온 식 열기 = 미리 보기 `…/sangeun/from-hopyo/preview`(층 · 재료 고름 안 씀 ·
  같은 내용 SK 있으면 그것을 읽음) · [저장] = `from-hopyo` 몸 `문서`(고친 문서째 · 안쪽 산근 참조 · 내 기계 그때) ·
  옛 길: 단가산출표 목록 [내 단가산출로] · [수정] 모달 단산 줄 누름이 서버 make 로 SK 를 바로 만들었음
  (`FromHopyo.make` 를 `_prep` · `draft` · `make(doc)` 로 · `Imported.new_doc` · `keep` · `draft` · `MatPick.merge`)
- 산출근거 표 비목 줄(노무비 : … = 금액) = 합계 · 그 비목 칸에 금액(엑셀 단가산출 시트와 같음 · 852-2 · `line_stack_out`)
- 단가산출 상세 시트 블록 안 줄 이어짐 초록 안 칠함 — 출처 행 = 인력 · 기계 노무비 행(852-3 · 다른 칠 · 머리 행 그대로)
- 단가산출 목록 [내 단가산출로] 걷음 → 줄 고르면 개인 층 가져온 식 모달(852-4)
- 일위대가표 목록 [내 일위대가로] 걷음 → 줄 고르면 [수정] 모달(852-5 · 모달 머리 [내 일위대가로] 그대로)
- 부품 상자 모달 큰 중간 창 `1400px`(1400 × 880) — 불러오기 [수정] · 가져온 식 모달(852-6)
- 시험: 새 test_835_1(미리 보기 쓰기 0 · [저장] = 옛 길과 같은 SK) · 낡은 시험 고침 —
  test_627(저장 단추 걷음 · MatPick 가짜 없어 import.meta 로 죽던 것) · test_779_5(이어짐 초록 안 칠함) ·
  test_793_3b · test_809_1(수정 모달 단산 줄 = 가져온 식 모달)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-15 11:54:05 +09:00

133 lines
3.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.ui-modal__backdrop {
position: fixed;
inset: 0;
z-index: var(--z-modal);
display: flex;
align-items: flex-start;
justify-content: center;
background-color: var(--color-scrim); /* 공용 확인 창(.ui-confirm)과 같이 뒤를 가림 */
}
/* 위에서 고정 거리 — 최대 높이일 때 가운데 자리에 윗변을 붙이고 아래로만 늘고 줆(찾기 칸이 안 움직임).
큰 창은 max-height 대신 --modal-max 를 줌. */
.ui-modal {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
width: min(720px, 92vw);
max-height: var(--modal-max, 80vh);
margin-top: calc((100dvh - var(--modal-max, 80vh)) / 2);
padding: var(--spacing-16);
border-radius: var(--radius-xl);
border: 1px solid var(--color-border);
background: var(--color-surface-raised);
box-shadow: var(--shadow-lg);
font-size: var(--text-body-sm);
overflow: auto;
}
.ui-modal__top {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--spacing-8);
}
/* 머리 단추 자리(곁값 actions) — 제목이 남는 폭을 먹고 단추는 [닫기] 바로 왼쪽 ·
긴 제목 = 한 줄 말줄임(전체 글 = title) · [닫기] · 머리 단추는 안 줄고 안 꺾임 */
.ui-modal__top > h3 {
flex: 1 1 auto;
min-width: 0;
margin-right: auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ui-modal__top > :not(h3) {
flex: none;
}
.ui-modal__top > button,
.ui-modal__top > .ui-modal__actions > button {
white-space: nowrap;
}
.ui-modal__actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: var(--spacing-8);
}
/* 큰 창(곁값 wide) — 화면 거의 꽉 · 몸 넘침만 스크롤. 화면별 클래스보다 앞서게 두 클래스 */
.ui-modal.ui-modal--wide {
width: 96vw;
height: 94vh;
--modal-max: 94vh;
overflow: hidden;
}
.ui-modal--wide > .ui-modal__body {
flex: 1;
min-height: 0;
overflow: auto;
}
.ui-modal__body {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
}
/* 모달 · 확인창(552-3) — 폭 단 · 확인창 제목 · 글 묻기 칸 */
.ui-modal[data-width="24rem"] {
width: min(24rem, 92vw);
}
.ui-modal[data-width="40rem"] {
width: min(40rem, 92vw);
}
.ui-modal[data-width="960px"] {
width: min(960px, 92vw);
}
/* 넓은 중간 창(557-2) — wide 꼴 + 1100 × 680 · 몸 안 칸이 따로 스크롤 */
.ui-modal.ui-modal--wide[data-width="1100px"] {
--modal-max: min(680px, 86vh);
width: min(1100px, 94vw);
height: var(--modal-max);
}
/* 큰 중간 창(835-1) — wide 꼴 + 1400 × 880 */
.ui-modal.ui-modal--wide[data-width="1400px"] {
--modal-max: min(880px, 90vh);
width: min(1400px, 94vw);
height: var(--modal-max);
}
/* 확인창 글 — 줄바꿈(
) 그대로(쓰는 곳 목록 · 바뀐 자원 줄) */
.ui-confirm__message {
white-space: pre-line;
}
.ui-confirm__title {
margin: 0 0 var(--spacing-8);
font-size: var(--text-body);
font-weight: 700;
color: var(--color-text);
}
/* 확인창 덧 내용(표 · `detail`) — 넓은 판 · 넘치면 안에서 스크롤 */
.ui-confirm__panel.ui-confirm__panel--wide {
max-width: min(720px, 92vw);
}
.ui-confirm__detail {
max-height: 40vh;
overflow: auto;
margin-bottom: var(--spacing-16);
}
.ui-confirm__input {
box-sizing: border-box;
width: 100%;
margin-bottom: var(--spacing-16);
}
/* 숨김 — display 가 [hidden] 을 덮지 않게(공용 기본 꼴이 안 실린 곳 · 페이지 꾸밈 위에서도) */
:is(.ui-modal, .ui-modal__actions, .ui-modal__backdrop, .ui-modal__body, .ui-modal__top)[hidden] {
display: none !important;
}