diff --git a/docs/todo.md b/docs/todo.md index 8d406fb..af86b80 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -16,3 +16,5 @@ - 라이트모드 최종 QA 시 홈/설정/관리자/에디터를 실제 사용 흐름으로 돌리며, 남아 있는 하드코딩 텍스트 색과 플레이스홀더 배경을 한 번 더 점검한다. - 관리자 아이템 라이브러리는 보관 자산까지 노출되므로, 이후에는 `활성 템플릿 / 보관 자산` 분리 필터나 그룹 보기까지 검토한다. + +- 가이드 모달과 관리자 아이템 모달은 현재 같은 톤의 큰 셸을 쓰므로, 이후 공통 모달 레이아웃 컴포넌트로 분리할지 검토한다. diff --git a/docs/update.md b/docs/update.md index 4023c00..50b831c 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,5 +1,10 @@ # 업데이트 로그 +## 2026-04-01 v1.3.37 +- 가이드 모달은 모바일에서 왼쪽 단계 목록 대신 현재 단계만 선택하는 셀렉트형 피커를 중심으로 쓰도록 높이와 내부 스크롤 구조를 다시 잡아, 작은 화면에서도 내용이 잘리지 않고 조작할 수 있게 정리함. +- 관리자 아이템 상세 모달은 가이드 모달과 같은 큰 2단 셸 문법으로 다시 묶어, 왼쪽 게임 선택 패널과 오른쪽 이미지·메타·액션 영역이 더 넓고 여유 있게 보이도록 재구성함. +- 아이템 상세 모달 내부 정보 카드와 액션 영역도 같은 톤의 패널형 블록으로 정리해, 가이드와 관리자 모달 사이의 시각적 통일감을 높임. + ## 2026-04-01 v1.3.36 - `내 티어표` 화면 헤더를 공통 `pageHead` 문법으로 통일하고, 라이트모드에서는 공통 `railHeader` 배경을 사이드 레일과 같은 톤으로 맞춰 화면 간 상단 밀도 차를 줄임. - 관리자 아이템 상세 모달은 더 넓은 비율로 키우고, 템플릿에 연결된 게임 이름은 hover 가능한 버튼으로 바꿔 클릭 시 해당 게임이 선택된 `게임 관리` 탭으로 바로 이동할 수 있게 함. diff --git a/frontend/src/App.vue b/frontend/src/App.vue index d5087f3..bb37736 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -526,6 +526,12 @@ function submitGlobalSearch() {
Guide
티어 메이커 기능 안내
+
+ + +
-
-
+ +
+
{{ modalTargetCustomItem.label }}
{{ modalTargetCustomItem.sourceLabel }}
@@ -2035,12 +2033,13 @@ async function saveFeaturedOrder() {
아직 템플릿에 연결된 게임이 없어요.
-
- 이미지 다운로드 - - +
+ 이미지 다운로드 + + +
@@ -3186,17 +3185,17 @@ async function saveFeaturedOrder() { } .customItemModal { display: grid; - grid-template-columns: minmax(320px, 360px) minmax(0, 1fr); - gap: 28px; - align-items: start; + grid-template-columns: 300px minmax(0, 1fr); + min-height: min(820px, calc(100dvh - 48px)); + align-items: stretch; } .customItemModal__pickerPanel { display: grid; - gap: 12px; + align-content: start; + gap: 18px; min-width: 0; - padding: 16px; - border-radius: 20px; - border: 1px solid var(--theme-border); + padding: 28px 22px; + border-right: 1px solid var(--theme-border); background: var(--theme-pill-bg); } .customItemModal__pickerHead { @@ -3251,22 +3250,48 @@ async function saveFeaturedOrder() { color: var(--theme-text-soft); } .customItemModal__body { - display: grid; - gap: 14px; min-width: 0; + min-height: 0; + display: grid; + grid-template-rows: auto minmax(0, 1fr); + gap: 16px; + padding: 24px 28px 28px; +} +.customItemModal__content { + min-width: 0; + min-height: 0; + display: grid; + align-content: start; + gap: 18px; + overflow: auto; + padding-right: 2px; } .customItemModal__titleRow, .customItemModal__linked { display: grid; gap: 8px; } +.customItemModal__linked { + padding: 14px 16px; + border-radius: 18px; + border: 1px solid var(--theme-border); + background: var(--theme-surface-soft); +} +.customItemModal__close { + justify-self: end; + border: 0; + background: transparent; + color: var(--theme-text-muted); + cursor: pointer; + font-size: 13px; +} .customItemModal__image { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; - border-radius: 20px; - background: var(--theme-surface-soft); - border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 24px; + background: radial-gradient(circle at top, rgba(77, 127, 233, 0.18), rgba(255, 255, 255, 0.02) 52%), rgba(255, 255, 255, 0.03); + border: 1px solid var(--theme-border); } .customItemModal__label { font-size: 11px; @@ -3291,6 +3316,10 @@ async function saveFeaturedOrder() { .customItemModal__metaList { display: grid; gap: 10px; + padding: 14px 16px; + border-radius: 18px; + border: 1px solid var(--theme-border); + background: var(--theme-surface-soft); } .customItemModal__metaRow { display: grid; @@ -3312,7 +3341,8 @@ async function saveFeaturedOrder() { .customItemModal__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 10px; + gap: 12px; + align-self: end; } .customItemModal__action { width: 100%; @@ -3323,7 +3353,14 @@ async function saveFeaturedOrder() { text-align: center; } .modalCard--customItem { - width: min(1280px, calc(100vw - 40px)); + width: min(1360px, calc(100vw - 40px)); + height: min(820px, calc(100dvh - 40px)); + padding: 0; + overflow: hidden; + border-radius: 28px; + border: 1px solid var(--theme-border-strong); + background: linear-gradient(180deg, rgba(34, 34, 34, 0.98), rgba(18, 18, 18, 0.98)); + box-shadow: 0 28px 90px rgba(0, 0, 0, 0.42); } .pager { margin-top: 16px; @@ -3941,6 +3978,23 @@ async function saveFeaturedOrder() { } .customItemModal { grid-template-columns: 1fr; + min-height: auto; + } + .modalCard--customItem { + width: min(100%, calc(100vw - 24px)); + height: min(100%, calc(100dvh - 24px)); + } + .customItemModal__pickerPanel { + border-right: 0; + border-bottom: 1px solid var(--theme-border); + padding: 20px 18px; + } + .customItemModal__body { + min-height: 0; + padding: 20px 18px 18px; + } + .customItemModal__content { + min-height: 0; } .customItemModal__actions { grid-template-columns: 1fr;