공통레이어(PLANNING §5B, WISE/UIWS 이식): - 인증강화 2FA: TotpService(RFC6238)·OTP 등록/검증/초기화·로그인 실패 잠금·admin 비번 env 주입(admin123 시드 없음). 기존 JWT/RBAC 무수정, security 패키지 레이어만 추가 - 시스템관리: 사용자·역할/권한·공통코드·메뉴·시스템설정·감사(@Audited AOP). SystemAccessGuard(전역 ADMIN/홀매니저) — EventAccessGuard와 직교 이중 RBAC - 공통 업무기능: worklog·schedule·message·notice·opinion·meeting·report·notification(단일 채널)·stats·search - 스키마 V7(시스템관리·보안)·V8(공통 업무모듈) 멱등, V1~V6 불변 design.md v1.2: MDI 셸 표준 §2.7(탭바·다중문서·상태보존·세션복원·단축키·역할별) CLAUDE.md: G1·G2 게이트 해소 반영 backend gradlew build·frontend tsc EXIT 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
544 lines
68 KiB
Markdown
544 lines
68 KiB
Markdown
# 킨텍스 AI 전시관리 시스템 — UI 디자인 스펙 (design.md)
|
||
|
||
> 작성: 디자인 에이전트(designer) · 작성일: 2026-07-11 · 버전: v1.2
|
||
> 근거 문서: `docs/PLANNING.md` v1.0 (모듈 맵 M1~M9, P0 기능, 나노바나나 표준 샷 세트 S1~S7) · Stitch 산출물 `stitch_kintex_ai_system_architect/`(18화면 + DESIGN.md 3변형) 학습·정합
|
||
> **단일 출처(Single Source of Truth)**: 프론트 구현 토큰·컴포넌트 계약은 본 문서가 권위다. Stitch 화면(code.html/screen.png)은 시각 참조로만 사용하며, 상충 시 본 문서를 따른다.
|
||
> 용도: **각 화면의 "Stitch 프롬프트" 코드블록을 Google Stitch(stitch.withgoogle.com)에 그대로 붙여넣어 화면을 생성**한다. 문서는 한국어, Stitch 프롬프트만 영어.
|
||
|
||
---
|
||
|
||
## 1. 디자인 시스템
|
||
|
||
### 1-1. 브랜드 톤
|
||
|
||
- **킨텍스 CI 기반 블루 계열, 신뢰감 있는 B2B 실무 톤.** 화려함보다 밀도·정확성·진행 상태 가시성이 우선.
|
||
- 이 제품의 히어로는 **시각화**다: 홀 도면 캔버스, 시공 예상 사진(나노바나나), before/after 슬라이더, 배선 오버레이를 화면에서 가장 크게 배치한다.
|
||
- AI가 생성한 것(배치안·설계 초안·예상 이미지·사전심사 플래그)은 항상 **"AI 생성/초안" 라벨**로 사람 산출물과 구분한다 (PLANNING.md R1·R2 리스크 대응).
|
||
|
||
### 1-2. 컬러 팔레트
|
||
|
||
| 토큰 | Hex | 용도 |
|
||
|---|---|---|
|
||
| `primary-700` | `#004C86` | 헤더, 강조 텍스트, hover |
|
||
| `primary-600` | `#0066B3` | **주 브랜드 블루(킨텍스 CI)** — 주요 버튼, 활성 탭, 링크 |
|
||
| `primary-100` | `#D9EAF7` | 선택 배경, 활성 사이드바 항목 |
|
||
| `primary-050` | `#EFF6FC` | 페이지 서브 배경, 테이블 호버 |
|
||
| `ai-accent` | `#6D4AFF` | **AI 액션 전용** — "AI 자동배치", "예상 사진 생성" 버튼, AI 라벨 |
|
||
| `success` | `#0E8A5F` | 승인 완료, 규정 통과, 결제 완료 |
|
||
| `warning` | `#B45309` | 마감 임박(D-3 이내), 확인 필요 플래그 |
|
||
| `error` | `#D92D20` | 규정 위반, 반려, 마감 초과 |
|
||
| `neutral-900` | `#101828` | 본문 제목 |
|
||
| `neutral-700` | `#344054` | 본문 텍스트 |
|
||
| `neutral-500` | `#667085` | 보조 텍스트, 플레이스홀더 |
|
||
| `neutral-200` | `#E4E7EC` | 구분선, 카드 테두리 |
|
||
| `neutral-050` | `#F9FAFB` | 앱 배경 |
|
||
| `canvas-bg` | `#1C2536` | **에디터 캔버스 전용 다크 서피스** (배치 에디터·배선 뷰의 도면 영역) |
|
||
| 배선-전기 | `#EF4444` | S6 오버레이: 전기 경로 (적) |
|
||
| 배선-네트워크 | `#3B82F6` | S6 오버레이: 네트워크/전화 경로 (청) |
|
||
| 배선-급배수 | `#22C55E` | S6 오버레이: 급배수·압축공기 경로 (녹) |
|
||
|
||
명도 대비는 WCAG AA 이상: 본문 텍스트는 `neutral-700` 이상, 컬러 배경 위 텍스트는 흰색(`#FFFFFF`) 고정. `warning`·`error`는 텍스트 사용 시 위 표의 진한 값만 사용.
|
||
|
||
> **Stitch 실증 정합(v1.1)**: Stitch가 생성한 3개 디자인 변형 중 **Precision Enterprise AI** 변형이 위 토큰을 그대로 검증했다 — `primary-container #0066B3`(우리 `primary-600`), 캔버스 `#1C2536`, AI 액센트 `#6D4AFF`, `error #D92D20`, 배경 `#F9FAFB`, 본문 `#101828`, 카드 테두리 `#E4E7EC`가 실제 code.html(`booth_layout_editor` 등 시공 화면 전체)에 반영됨. StatusBadge 진행(회색→파랑→**보라(AI)**→녹색→빨강)도 동일. 나머지 2개 변형(Intelligence·Nexus)은 더 짙은 헤리티지 블루 `#0059A6`/`#00427D`를 primary로 채택했는데, 이는 우리 `primary-700 #004C86`보다 약간 짙다. **결론: 우리 `docs/design.md`가 프론트 구현의 단일 출처이며 `#0066B3`를 주 브랜드 블루로 유지한다.** `#0059A6`·`#00427D`는 헤더/hover의 짙은 대체 톤으로만 허용(신규 토큰 추가 금지). Intelligence 변형의 `ai-surface #F5F3FF`(옅은 보라 배경)는 AI 구동 섹션 배경으로 채택 가능 — 우리 `primary-050`과 별개로 AI 카드 배경에 한해 사용.
|
||
|
||
### 1-3. 타이포그래피 (한국어)
|
||
|
||
- 서체: **Pretendard** (fallback: Noto Sans KR, system-ui). 숫자·좌표·견적 금액은 tabular numerals.
|
||
- 스케일: Display 28/36 Bold(대시보드 KPI) · H1 24/32 Bold · H2 20/28 SemiBold · H3 16/24 SemiBold · Body 14/22 Regular · Caption 12/18 Regular · Mono 13(좌표·치수·스키마 값, JetBrains Mono).
|
||
- B2B 밀도: 기본 Body 14px, 테이블 행 높이 44px(모바일 터치 타깃 48px).
|
||
|
||
> **Stitch 실증 정합(v1.1)**: 제품 UI 텍스트는 한국어이므로 **Pretendard가 권위 서체(단일 출처)**로 유지된다. Stitch는 라틴 문자 대체로 **Hanken Grotesk**(Intelligence·Nexus 변형) / **Inter**(Precision 변형)를 선택하고 Pretendard를 한글 fallback으로 지정했다 — 실제 렌더 화면과의 라틴·숫자 자형 일관성을 원할 경우 Pretendard 로드 실패 시 **Inter를 라틴/tabular-numeral 보조 서체**로 허용(별도 브랜드 결정 없이는 Pretendard 우선). 모노 서체는 우리 JetBrains Mono를 유지(Stitch 변형별 Geist/Courier Prime은 채택하지 않음). Stitch가 base body 14px·Bold 600/700 강조·label 12px 트래킹을 확정한 점은 우리 스케일과 일치한다. 단 Stitch 데이터 리스트 행 높이는 40px였으나, 우리는 접근성·터치 타깃 위해 **44px(웹)/48px(모바일)를 권위값**으로 유지한다.
|
||
|
||
### 1-4. 컴포넌트 원칙
|
||
|
||
- **상태 배지(StatusBadge)**: 신청 흐름 `작성중(회색)→제출됨(파랑)→AI검토(보라)→승인(녹색)→반려(빨강)→시공중→검수완료`. 모든 목록·카드에 동일 배지 사용.
|
||
- **D-데이 칩(DdayChip)**: `D-25`, `D-7` 등 마감 역산 칩. D-3 이내 `warning`, 초과 `error`.
|
||
- **AI 라벨**: 보라(`ai-accent`) 외곽선 칩 "AI 초안", "AI 생성 이미지". 생성 이미지는 카드 하단에 고지문 "AI 생성 예상 이미지 — 실제 시공 결과와 다를 수 있음"을 항상 노출(제거 불가).
|
||
- **위반 플래그(ViolationFlag)**: 심각도 2단계 — 차단(빨강, 제출 불가)·경고(주황, 확인 후 진행). 도면 위에는 같은 색 하이라이트 + 번호 핀으로 목록과 1:1 연결.
|
||
- **캔버스 화면 공통**: 좌측 도구 패널(240px) + 중앙 캔버스 + 우측 속성/견적 패널(320~360px) 3열. 캔버스 하단에 줌 컨트롤·축척·좌표 표시.
|
||
- 로딩: 이미지 생성은 비동기(RenderJob 큐) — 스켈레톤 + 진행 배지("생성 중… 평균 40초"), 완료 시 WebSocket 푸시로 교체. 실패 시 카드 내 재시도 버튼.
|
||
|
||
**라운드·엘리베이션·그리드 토큰 (Stitch 3변형 만장일치 — v1.1 신설, 이전 스펙에 누락됐던 항목)**
|
||
|
||
- **라운드(radius)**: 버튼·인풋·작은 요소 `4px(0.25rem)` · 카드·모달·섹션 블록 `8px(0.5rem)` · 상태/AI 칩은 pill(`9999px`). 산업·건축 톤 유지 위해 **8px를 최대 라운드로 제한**(그 이상 금지).
|
||
- **엘리베이션**: 무거운 그림자 대신 **톤 레이어 + 1px 테두리**(`neutral-200 #E4E7EC`). Level 0 배경 → Level 1 카드(흰색+1px 테두리, 그림자 없음) → Level 2 모달·드롭다운(소프트 앰비언트 그림자 Y4 Blur12 10% + backdrop-blur 8px). **AI 구동 카드는 좌측 4px 보라(`ai-accent`) 테두리 액센트**로 사람 산출물과 구분(상태 카드는 좌측 4px 상태색 액센트).
|
||
- **그리드·간격**: 12컬럼 · 컨테이너 최대 `1440px` · 4px 베이스 · 거터 24px · 데스크톱 페이지 마진 48px(태블릿 32px, 모바일 16px). 속성/견적 패널 등 고밀도 영역 패딩은 8~12px로 타이트하게.
|
||
- **데이터 테이블**: 긴 목록은 지브라 스트라이프(홀수행 `neutral-050 #F9FAFB`), 헤더는 sticky + `label` 타이포 + 옅은 회색 배경, 행 hover `#F1F5F9`. 복잡 테이블은 컬럼 숨김보다 가로 스크롤 우선.
|
||
|
||
### 1-5. 반응형 기준·다크모드
|
||
|
||
- **웹 1440px**(설계·에디터·대시보드 기준 해상도) / **모바일 390px**(조회·승인·현장 시나리오). 태블릿은 웹 레이아웃 축소 대응.
|
||
- 배치 에디터·배선 뷰 등 캔버스 편집은 **데스크톱 전용**, 모바일에서는 읽기 전용 뷰어 + 승인 액션만 제공.
|
||
- **다크모드: Phase 1 미지원 (라이트 모드 단일).** 단, 에디터의 도면 캔버스 영역만 다크 서피스(`canvas-bg`)를 사용해 부스 폴리곤·배선·위반 하이라이트의 대비를 확보한다. 전면 다크모드는 Phase 3 검토.
|
||
|
||
---
|
||
|
||
## 2. 정보 구조 (IA)
|
||
|
||
행사(Event) 단위 워크스페이스. 로그인 → 행사 선택 → 역할별 홈. (권한: 주최자=owner, 참가업체=부스 단위 멤버, 장치업체=참가업체 초대(등록업체만), 홀매니저=킨텍스 내부 계정 전체 열람+승인)
|
||
|
||
### 2-1. 역할별 사이트맵
|
||
|
||
```
|
||
공통
|
||
└─ 로그인 / 행사 워크스페이스 선택 (SCR-01)
|
||
|
||
주최자 (Organizer)
|
||
├─ 대시보드 — D-데이 마일스톤 타임라인 (SCR-02)
|
||
├─ 플로어플랜 스튜디오 [M2]
|
||
│ ├─ 부스 배치 에디터 (SCR-03)
|
||
│ └─ 배치안 비교 (S7 조감) (SCR-04)
|
||
├─ 참가업체 관리 (초대 링크·신청 현황) — SCR-02 내 탭
|
||
├─ 서류·마일스톤 [M6, P1] — Phase 2
|
||
└─ 홀 배정·견적 [M1, P1] — Phase 2
|
||
|
||
참가업체 (Exhibitor)
|
||
├─ 내 부스 홈 — 진행 상태·마감 리마인더 (SCR-05)
|
||
├─ 부스 설계 스튜디오 [M3] (SCR-06)
|
||
├─ 유틸리티 신청 [M4]
|
||
│ ├─ 배선 뷰 (전기/네트워크/급배수) (SCR-07)
|
||
│ └─ 신청 요약·위치표시도 (SCR-08)
|
||
└─ 시각화 갤러리 [M5] (SCR-12)
|
||
|
||
장치·시공업체 (Contractor)
|
||
├─ 수주 부스 목록 → 부스 설계 스튜디오 (SCR-06 공유)
|
||
├─ 규정 검증 리포트 — 제출 전 자동 플래깅 (SCR-09)
|
||
└─ 현장 체크리스트 (모바일, SCR-M1)
|
||
|
||
홀매니저 (Hall Manager, 킨텍스 내부)
|
||
├─ 승인 큐 — AI 사전심사 플래그 (SCR-10)
|
||
├─ 검수 상세 (도면+위반 오버레이) (SCR-11)
|
||
├─ 홀 유틸리티 부하 집계 — SCR-10 내 위젯
|
||
└─ 현장 검수 (모바일, SCR-M2)
|
||
```
|
||
|
||
### 2-2. 내비게이션 (MDI 셸 기준 — v1.2)
|
||
|
||
- **웹(업무 포털)**: **MDI(다중 문서 인터페이스) 셸**을 표준 AppShell로 채택한다. 좌측 고정 사이드바(240px) + **상단 문서 탭바** + 중앙 활성 문서 영역의 3영역 구조다.
|
||
- 좌측 사이드바(240px): 상단 행사 전환 드롭다운(행사명+기간+홀), 역할별 메뉴, 하단 사용자 메뉴. **메뉴 클릭은 라우트 이동이 아니라 "문서 탭 열기/활성 전환"**이다.
|
||
- 상단: 탭바 위에 얇은 유틸리티 바 — 브레드크럼(활성 탭 경로) + 알림 벨(마감·승인 이벤트) + "D-31" 행사 카운트다운 칩 상시 노출.
|
||
- **단일 라우트 SPA → 탭 호스트로 전환**: 기존 "한 번에 한 화면" 라우팅을 폐기하고, 여러 문서(대시보드·배치 에디터·설계 스튜디오·배선 뷰·갤러리·승인 큐·검수 상세 등)를 탭으로 동시에 열어 상태를 보존한 채 전환한다. 상세 표준은 **§2.7 MDI 셸**을 따른다.
|
||
- **웹(공개/관람객 사이트)**: **MDI 비적용.** 공개 홍보 사이트(`www/expo.`)·관람객 사전등록은 SEO·딥링크·공유가 목적이므로 전통적 페이지 내비(헤더 GNB + 단일 라우트)를 유지한다.
|
||
- **모바일**: 하단 탭 바 4개 — 홈 / 내 부스(또는 승인 큐) / 알림 / 더보기. 화면 전환은 네이티브 스택 내비(모바일은 MDI 미적용 — 단일 화면 포커스). 캔버스 화면은 뷰어 모드.
|
||
|
||
---
|
||
|
||
## 2.5 Stitch 산출물 ↔ SCR 매핑 (구현 이식 기준)
|
||
|
||
`stitch_kintex_ai_system_architect/`의 18개 Stitch 생성 화면 중 **우리 P0/P1 범위(부스 시공 중심)에 해당하는 14개**를 아래 SCR과 1:1로 매핑한다. **kintex-frontend-dev는 이식 시 이 표를 권위로 따른다** — Stitch 화면의 시각 언어(Precision Enterprise AI 팔레트 `#0066B3`/`#1C2536`/`#6D4AFF`)를 참조하되, 상충 시 본 `docs/design.md`가 단일 출처다.
|
||
|
||
| Stitch 화면 디렉터리 | SCR ID | 화면명 | 대상 역할 | 플랫폼 |
|
||
|---|---|---|---|---|
|
||
| `login_workspace_selection_kintex_ai_system` | SCR-01 | 로그인 & 행사 워크스페이스 선택 | 공통 | 웹 |
|
||
| `organizer_dashboard_kintex_ai_system` | SCR-02 | 주최자 대시보드 | 주최자 | 웹 |
|
||
| `booth_layout_editor_kintex_ai_system` | SCR-03 | 부스 배치 에디터 | 주최자 | 웹 |
|
||
| `layout_comparison_kintex_ai_system` | SCR-04 | 배치안 비교(S7 조감) | 주최자 | 웹 |
|
||
| `exhibitor_home_kintex_ai_system` | SCR-05 | 참가업체 부스 홈 | 참가업체 | 웹 |
|
||
| `booth_design_studio_kintex_ai_system` | SCR-06 | 부스 설계 스튜디오 | 참가·장치업체 | 웹 |
|
||
| `utility_wiring_view_kintex_ai_system` | SCR-07 | 유틸리티 배선 뷰 | 참가·장치업체 | 웹 |
|
||
| `utility_order_summary_kintex_ai_system` | SCR-08 | 유틸리티 신청 요약·위치표시도 | 참가업체 | 웹 |
|
||
| `compliance_report_kintex_ai_system` | SCR-09 | 규정 검증 리포트 | 장치업체 | 웹 |
|
||
| `manager_approval_queue_kintex_ai_system` | SCR-10 | 홀매니저 승인 큐 | 홀매니저 | 웹 |
|
||
| `review_details_kintex_ai_system` | SCR-11 | 홀매니저 검수 상세 | 홀매니저 | 웹 |
|
||
| `visualization_gallery_kintex_ai_system` | SCR-12 | 시각화 갤러리 | 전 역할 | 웹 |
|
||
| `contractor_on_site_checklist_kintex_ai_system` | SCR-M1 | 시공업체 현장 체크리스트 | 장치업체 현장 | 모바일 |
|
||
| `manager_field_inspection_kintex_ai_system` | SCR-M2 | 홀매니저 현장 검수 | 홀매니저 | 모바일 |
|
||
|
||
각 SCR의 상세 레이아웃·상태·Stitch 프롬프트는 아래 §3(웹)·§4(모바일)에 정의돼 있다. Stitch 화면은 시각 참조(screen.png)로만 사용하고, 프론트 토큰·컴포넌트 계약은 본 문서를 따른다.
|
||
|
||
## 2.6 범위 게이트 — P2 후보 (기획 반영 전 이식 금지)
|
||
|
||
`docs/PLANNING.md`가 **범위 권위**다(부스 신청→설계→유틸리티→규정검증→승인→시공→검수 파이프라인 중심). Stitch `kintex_ai_system_proposal.md`와 아래 4개 Stitch 화면은 PLANNING 범위 밖 비전(AI 컨시어지·CCTV 혼잡도·에너지 최적화·비즈니스 매칭·AR 내비 등)이므로 **P2 후보로만 분류**한다. **P0/P1으로 끌어오지 않으며, 승격하려면 먼저 planner에 기획 반영을 요청해야 한다(designer 임의 승격 금지).**
|
||
|
||
| Stitch 화면 디렉터리 | 성격 | PLANNING 근거 | 처리 |
|
||
|---|---|---|---|
|
||
| `business_intelligence_kintex_ai_system` | 비즈니스 매칭·성과 분석·트렌드 리포트 | 범위 밖(참가업체 매칭·바이어 분석은 부스 시공 파이프라인 아님) | P2 후보 — 기획 반영 필요 |
|
||
| `hall_operations_kintex_ai_system` | 실시간 혼잡도·에너지·주차 예측(CCTV/센서) | 범위 밖(현장 운영 IoT/CV, PLANNING 미정의) | P2 후보 — 기획 반영 필요 |
|
||
| `exhibition_schedule_kintex_ai_system` | 전시 세션/일정 편성·개인화 추천 | 범위 밖(방문객 대상 서비스) | P2 후보 — 기획 반영 필요 |
|
||
| `admin_dashboard_kintex_ai_system` | 플랫폼 전역 관리자(시스템 운영) | 범위 밖(Phase 1 역할=주최자/참가/장치/홀매니저에 미포함) | P2 후보 — 기획 반영 필요 |
|
||
|
||
> 위 4개 Stitch 화면의 시각 자산은 참고만 하고 프론트 구현에 착수하지 않는다. `kintex_ai_system_proposal.md`는 Stitch가 자동 생성한 확장 비전 문서로, 우리 PLANNING과 별개다.
|
||
|
||
---
|
||
|
||
## 2.7 MDI 셸 (다중 문서 인터페이스) — AppShell 표준 (v1.2 신설)
|
||
|
||
> **엔터프라이즈 전시관리 실무자는 여러 문서(부스·행사·도면·승인건)를 동시에 열어 오가며 작업한다.** 배치 에디터에서 위반을 확인하다가 승인 큐로, 다시 설계 스튜디오로 이동해도 각 화면의 미저장 편집·스크롤·폼 값이 유지돼야 한다. 따라서 업무 포털의 AppShell을 **단일 라우트 SPA → MDI 탭 호스트**로 전환한다. 이 절이 `kintex-frontend-dev`의 AppShell 전환 기준(단일 출처)이다. 모든 치수·색상은 §1 디자인 토큰을 사용한다.
|
||
|
||
### 2.7-1. 셸 레이아웃
|
||
|
||
3영역 고정 그리드(웹 1440px 기준):
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────┐
|
||
│ [유틸리티 바] 브레드크럼(활성 탭) · 알림벨 · D-데이 칩 · 사용자 │ 높이 48px
|
||
├──────────┬─────────────────────────────────────────────────┤
|
||
│ │ [탭바] ▸ 대시보드 │ 부스 에디터 ● │ 승인 큐 │ + │ 높이 40px
|
||
│ 사이드바 ├─────────────────────────────────────────────────┤
|
||
│ 240px │ │
|
||
│ (메뉴) │ DocumentHost (활성 탭 문서) │
|
||
│ │ 비활성 탭은 언마운트하지 않고 │
|
||
│ │ display:none 로 상태 보존 │
|
||
│ │ │
|
||
└──────────┴─────────────────────────────────────────────────┘
|
||
```
|
||
|
||
- **사이드바(240px)**: 기존 역할별 메뉴 유지. 항목 클릭 → 해당 문서 탭 열기(중복 방지 시 기존 탭 활성). 활성 문서에 해당하는 메뉴 항목은 `primary-100 #D9EAF7` 배경으로 하이라이트.
|
||
- **탭바(높이 40px)**: 사이드바 우측 상단, 유틸리티 바 아래 전폭. 문서 탭이 좌→우로 나열되고, 우측 끝 `+`(빠른 열기 팔레트). 탭바 배경 `neutral-050 #F9FAFB`, 하단 1px 테두리 `neutral-200`.
|
||
- **DocumentHost(중앙)**: 활성 탭의 문서만 시각적으로 표시. **비활성 탭은 DOM에서 언마운트하지 않고 `display:none`(또는 offscreen)으로 유지**해 스크롤·폼·에디터 상태를 보존한다(§2.7-3). 배경은 화면별(대시보드=`neutral-050`, 에디터/배선 뷰 캔버스 영역=`canvas-bg #1C2536`).
|
||
- **엘리베이션**: 탭바·문서 경계는 그림자 대신 §1-4 규칙대로 1px 테두리로 구분. 활성 탭만 문서 영역과 같은 흰색 서피스로 "연결"된 느낌(활성 탭 하단 테두리 제거).
|
||
|
||
### 2.7-2. 탭(Tab) 시각·상호작용 규격
|
||
|
||
- **탭 구성**: `[아이콘] 문서 라벨 [dirty ●] [x]`. 라벨 최대폭 200px(초과 시 말줄임 `…`, 툴팁 전체 표시). 상태 배지가 있는 문서(승인건 등)는 라벨 앞에 §1-4 StatusBadge 소형 점.
|
||
- **활성 탭**: 흰색 배경 + 상단 2px `primary-600 #0066B3` 인디케이터 + `neutral-900` 텍스트. **비활성 탭**: `neutral-050` 배경 + `neutral-500` 텍스트, hover 시 `#F1F5F9`.
|
||
- **dirty(미저장) 표시**: 미저장 변경이 있으면 `x` 자리에 채워진 점 **●**(`warning #B45309`) 표시, hover 시 `x`로 전환. **닫기 시 미저장이면 확인 다이얼로그**("저장하지 않은 변경이 있습니다 — 닫으시겠습니까? / 저장 후 닫기 · 저장 안 함 · 취소").
|
||
- **동작 규격**:
|
||
| 동작 | 트리거 | 결과 |
|
||
|---|---|---|
|
||
| 열기 | 사이드바 메뉴 · 화면 내 링크 · 딥링크 URL 진입 | 새 탭 생성 후 활성. **중복 방지**: 같은 문서키(§2.7-6)가 이미 열려 있으면 새로 만들지 않고 기존 탭을 활성·포커스 |
|
||
| 활성 전환 | 탭 클릭 · Ctrl+Tab | URL 동기화(§2.7-4), DocumentHost가 해당 문서 표시 |
|
||
| 닫기 | `x` 클릭 · 미들클릭 · Ctrl+W | dirty면 확인 다이얼로그. 활성 탭 닫으면 오른쪽(없으면 왼쪽) 인접 탭 활성 |
|
||
| 재정렬 | 탭 드래그(HTML5 DnD/포인터) | 순서 변경, 세션 저장 반영 |
|
||
| 컨텍스트 메뉴 | 우클릭 | 닫기 · 다른 탭 모두 닫기 · 오른쪽 탭 모두 닫기 · 새 창으로 분리(딥링크 복제) |
|
||
- **최대 탭 수**: 기본 **12개**. 초과 시 새 탭 열기 요청이 오면 토스트("탭이 12개를 초과했습니다 — 사용하지 않는 탭을 닫아주세요") + LRU(가장 오래 비활성·非dirty) 탭 닫기 제안. dirty 탭은 자동 닫기 대상에서 제외.
|
||
- **오버플로우**: 탭 총 폭이 탭바를 넘으면 ① 탭 폭 축소(최소 120px)까지 우선 → ② 그 이상은 **가로 스크롤**(마우스 휠·좌우 셰브론) + 우측 **오버플로우 드롭다운(▾)**(전체 탭 목록, dirty·상태 배지 포함, 검색 가능). 활성 탭은 항상 보이도록 자동 스크롤 인.
|
||
- **핀 고정(선택)**: 대시보드/승인 큐 등 홈 성격 문서는 핀 고정 가능(아이콘만·닫기 숨김·항상 최좌측). 역할 진입 시 홈 탭 1개는 기본 핀 고정으로 자동 오픈.
|
||
|
||
### 2.7-3. 탭별 상태 보존
|
||
|
||
- **보존 대상**: ① 에디터 미저장 편집(부스 폴리곤 위치·설계 스펙 폼) ② 스크롤 위치 ③ 폼 입력·필터·선택 행 ④ 캔버스 줌·팬·레이어 토글.
|
||
- **구현 원칙**: 비활성 탭은 **언마운트 금지**(`display:none` 유지) — React 컴포넌트 인스턴스와 로컬/스토어 상태를 살려둔다. 무거운 캔버스(SCR-03 배치 에디터, SCR-07 배선 뷰)는 활성일 때만 렌더 루프·WebGL 컨텍스트를 활성화하고 비활성 시 일시정지(freeze)하되 상태 객체는 메모리에 유지.
|
||
- **메모리 가드**: 최대 탭 수(12) + freeze로 상한을 두되, 캔버스 문서는 동시 3개 초과 시 가장 오래된 비활성 캔버스의 WebGL 컨텍스트만 파기(상태 스냅샷은 유지 → 재활성 시 복원). 이는 §1-5 "캔버스 편집=데스크톱 전용" 제약과 정합.
|
||
- **dirty 판정**: 각 문서는 자신의 dirty 여부를 탭 스토어에 보고한다(저장 성공 시 false). 브라우저 이탈(`beforeunload`) 시 dirty 탭이 하나라도 있으면 네이티브 확인 경고.
|
||
|
||
### 2.7-4. 세션 복원 & 딥링크 ↔ 탭 URL 동기화
|
||
|
||
- **각 탭은 라우트를 가진다.** 활성 탭 전환 시 브라우저 URL이 그 문서의 딥링크로 동기화(`history.replaceState`), 탭 열기/닫기는 push. 예:
|
||
- `/o/{eventId}/dashboard` → 주최자 대시보드(SCR-02)
|
||
- `/o/{eventId}/floorplan/{layoutId}` → 부스 배치 에디터(SCR-03)
|
||
- `/e/{eventId}/booth/{boothId}/studio` → 설계 스튜디오(SCR-06)
|
||
- `/e/{eventId}/booth/{boothId}/utility` → 배선 뷰(SCR-07)
|
||
- `/m/{eventId}/approvals` · `/m/{eventId}/review/{submissionId}` → 승인 큐·검수 상세(SCR-10/11)
|
||
- `/gallery/{scope}` → 시각화 갤러리(SCR-12)
|
||
- **딥링크 진입**: 외부에서 위 URL로 진입하면 셸이 부팅되며 **해당 문서 탭 1개를 열고 활성화**(중복 방지 규칙 적용). 알림·메일 링크는 이 경로를 사용.
|
||
- **세션 복원**: 열린 탭 목록(문서키·라우트·순서·핀·활성 인덱스)을 `localStorage`(키 `kintex.mdi.{role}.{eventId}`)에 디바운스 저장. 새로고침·재접속 시 복원하되 **미저장 편집 내용 자체는 복원 대상 아님**(탭은 되살아나지만 서버에 저장되지 않은 편집은 "이어서 편집" 초안 API가 있을 때만). 복원 실패 시 홈 탭만 열고 토스트.
|
||
- **행사 전환**: 사이드바에서 행사(eventId)를 바꾸면 현재 행사 탭 세션을 저장하고 대상 행사의 세션을 로드(행사별로 탭 셋 분리). dirty 탭이 있으면 전환 전 확인.
|
||
|
||
### 2.7-5. 단축키 & 접근성
|
||
|
||
- **단축키**: `Ctrl+W` 활성 탭 닫기 · `Ctrl+Tab` / `Ctrl+Shift+Tab` 다음/이전 탭 · `Ctrl+1~9` N번째 탭 · `Ctrl+클릭`(사이드바 메뉴/링크) 백그라운드 새 탭 · `Ctrl+Shift+T` 마지막 닫은 탭 복원 · `Alt+←/→` 탭 재정렬. dirty 탭 `Ctrl+W`는 확인 다이얼로그를 거친다. 텍스트 입력·에디터 포커스 중에는 편집 단축키가 우선(충돌 방지).
|
||
- **접근성(ARIA)**: 탭바는 `role="tablist"`(수평, `aria-orientation="horizontal"`), 각 탭 `role="tab"`(`aria-selected`, `aria-controls`가 문서 패널 id 참조), 문서 영역 `role="tabpanel"`(`aria-labelledby`가 탭 id). **키보드 로빙 탭 인덱스**: 좌우 화살표로 탭 간 이동, Enter/Space로 활성, Delete로 닫기(dirty 확인 경유). 닫기 `x`는 `aria-label="{문서명} 탭 닫기"`. dirty ● 는 스크린리더용 `aria-label="저장되지 않음"` 텍스트 병기. 포커스 링은 `primary-600` 2px, 명도 대비 WCAG AA 이상.
|
||
|
||
### 2.7-6. 역할별 적용
|
||
|
||
| 역할 | 포털 | MDI | 비고 |
|
||
|---|---|---|---|
|
||
| 관리자(Admin) | `admin.` 백오피스 | **적용** | 사용자·RBAC·감사로그·룰셋 등 다수 관리 문서 병행 |
|
||
| 주최자(Organizer) | `organizer.` 콘솔 | **적용** | 대시보드·배치 에디터·비교·참가업체 관리 병행(SCR-02·03·04) |
|
||
| 참가업체(Exhibitor) | `exhibitor.` 포털 | **적용** | 부스 홈·설계 스튜디오·배선 뷰·갤러리 병행(SCR-05·06·07·08·12) |
|
||
| 장치·시공업체(Contractor) | 참가업체 포털 공유 | **적용** | 수주 부스별 설계 스튜디오·규정 리포트 다중 오픈(SCR-06·09) |
|
||
| 홀매니저(Hall Manager) | `ops.` 운영 | **적용** | 승인 큐 + 검수 상세 여러 건 동시 검토(SCR-10·11) |
|
||
| 관람객/일반 대중(Visitor/Public) | 공개 사이트 `www/expo.` | **비적용** | SEO·공유·딥링크 목적 전통 페이지 내비 유지 |
|
||
|
||
- **모바일 전 역할**: MDI 비적용(단일 화면 포커스 + 네이티브 스택 내비). 현장·조회·승인 시나리오는 한 화면 집중이 안전(오조작 방지).
|
||
- 6개 역할 포털은 각자 독립 번들이지만 **동일한 MDI 셸 컴포넌트·탭 스토어를 공유 라이브러리로 상속**한다(§2.7-7). 역할별 차이는 사이드바 메뉴·허용 문서 라우트·홈 핀 탭뿐이다.
|
||
|
||
### 2.7-7. 컴포넌트 & 상태 스토어 표준
|
||
|
||
프론트 공유 라이브러리에 다음 컴포넌트·스토어를 신설한다(§1 토큰 사용, 로직은 kintex-frontend-dev 소관 — 여기서는 계약만 정의).
|
||
|
||
- **`<AppShell>`**: 사이드바 + `<UtilityBar>` + `<TabBar>` + `<DocumentHost>` 조립. 역할·eventId를 props로 받아 메뉴·세션키·허용 라우트를 주입.
|
||
- **`<TabBar>`**: 탭 목록 렌더·드래그 재정렬·오버플로우(스크롤+드롭다운)·`+` 팔레트. `role="tablist"`. props: `tabs`, `activeId`, `onActivate`, `onClose`, `onReorder`, `maxTabs=12`.
|
||
- **`<Tab>`**: 단일 탭 프레젠테이션(아이콘·라벨·dirty ●·닫기). `role="tab"`. 상태: 활성/비활성/hover/dirty/pinned.
|
||
- **`<DocumentHost>`**: 열린 문서들을 keep-alive로 렌더(활성만 표시, 비활성 `display:none`). 문서키→라우트→컴포넌트 매핑(문서 레지스트리)을 통해 lazy 로드. `role="tabpanel"`.
|
||
- **탭 상태 스토어(`useMdiStore`)** — 문서 인스턴스의 단일 진실:
|
||
- `DocumentInstance { id, docKey, route, title, icon, params, dirty, pinned, status?, createdAt, lastActiveAt }`
|
||
- `docKey` = 문서 정체성(중복 방지 키). 예: `floorplan:{layoutId}`, `booth-studio:{boothId}`, `review:{submissionId}`. **같은 docKey는 탭 1개**로 강제.
|
||
- `params`: 문서 복원용 파라미터(스크롤·필터 등 경량 상태 스냅샷은 문서가 자체 스토어로 관리, 스토어에는 식별·라우팅·dirty만 보관해 비대화 방지).
|
||
- 액션: `openTab(docKey, route, meta)` / `activateTab(id)` / `closeTab(id, {force})` / `reorder(from,to)` / `setDirty(id,bool)` / `pinTab(id)` / `restoreSession()` / `persistSession()`.
|
||
- **직렬화 규칙**: `localStorage`에는 `{id, docKey, route, title, icon, pinned, order, activeId}`만 저장(dirty·휘발 상태 제외). 복원 시 문서는 라우트로 재구성.
|
||
|
||
**MDI 셸 Stitch 프롬프트** (셸 크롬 생성용 — 문서 콘텐츠는 각 SCR 프롬프트로 별도 생성):
|
||
|
||
```
|
||
An enterprise MDI (multiple document interface) application shell for "KINTEX AI 전시관리", a Korean B2B exhibition management web app. Desktop 1440px, light theme, primary blue #0066B3, backgrounds #F9FAFB, 1px borders #E4E7EC, Korean sans-serif (Pretendard style). All UI text in Korean. Layout: a slim 48px top utility bar with a breadcrumb "부스 배치 에디터 · 배치안 B", a notification bell, a countdown chip "개장 D-31", and a user avatar on the right. A fixed left sidebar 240px with an event switcher dropdown "2026 스마트팩토리 코리아 ▾" and a vertical menu ("대시보드, 플로어플랜 스튜디오, 참가업체 관리, 승인 큐, 시각화 갤러리"), the "플로어플랜 스튜디오" item highlighted with a light blue #D9EAF7 background. To the right of the sidebar, below the utility bar, a horizontal document TAB BAR 40px tall on #F9FAFB with a bottom border: several browser-style tabs in a row — a pinned home tab with only a dashboard icon, then "부스 배치 에디터" as the ACTIVE tab (white background, 2px blue #0066B3 top indicator, connected to the content below, with a small close × ), then "장치 도면 검수" tab showing an amber unsaved dot ● instead of ×, then "승인 큐" tab, then a truncated tab "유틸리티 배선…", and a right-side overflow chevron ▾ and a small "+" button. Below the tab bar, a large central document area showing the active document (a dark navy #1C2536 floor-plan editor canvas with small blue booth rectangles), so it's clear each tab hosts an independent document. Clean, dense, professional enterprise tool aesthetic — emphasize the browser-like tab strip and the sidebar-to-tab relationship.
|
||
```
|
||
|
||
---
|
||
|
||
## 3. 화면별 스펙
|
||
|
||
> P0 모듈(M2·M3·M4·M5) 중심 총 14개 화면(웹 12 + 모바일 2). 각 Stitch 프롬프트는 화면 1개를 1회 생성하는 기준으로 작성했다.
|
||
|
||
---
|
||
|
||
### SCR-01 로그인 & 행사 워크스페이스 선택
|
||
|
||
- **대상**: 전 역할 공통 · **진입 경로**: 최초 접속 / 초대 링크 클릭
|
||
- **레이아웃 (위→아래)**:
|
||
1. 좌우 분할: 좌측 55% 브랜드 패널 — 나노바나나 생성 부스 예상 사진 배경 + 카피 "신청서를 내는 순간, 시공 후 사진을 먼저 봅니다" + AI 이미지 고지 캡션
|
||
2. 우측 45% 로그인 카드: 이메일/비밀번호, 이메일 인증 로그인, 킨텍스 내부 계정(SSO) 버튼 분리
|
||
3. 로그인 후: 행사 워크스페이스 카드 그리드(행사명, 기간, 홀, 내 역할 배지, D-데이 칩) + 초대 코드 입력 필드
|
||
- **핵심 컴포넌트/상태**: 역할 배지(주최자/참가업체/장치업체/홀매니저) · 빈 상태: "참여 중인 행사가 없습니다 — 초대 링크를 확인하세요" · 에러: 미등록 장치업체 초대 수락 시 차단 모달("킨텍스 등록업체만 참여할 수 있습니다").
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A B2B SaaS login page for "KINTEX AI 전시관리", a Korean exhibition management platform. Desktop web, 1440px, light theme. All UI text in Korean. Split layout: left 55% is a brand panel with a photorealistic AI-rendered exhibition booth photo as background, dark blue gradient overlay (#004C86), large white headline "신청서를 내는 순간, 시공 후 사진을 먼저 봅니다" and a small caption "AI 생성 예상 이미지". Right 45% is a white card on #F9FAFB background: KINTEX wordmark logo in blue #0066B3, title "로그인", email and password inputs with Korean labels "이메일", "비밀번호", a primary blue #0066B3 button "로그인", divider, and a secondary outlined button "킨텍스 내부 계정으로 로그인". Below the card, small text link "초대 코드로 참여하기". Font is a clean Korean sans-serif (Pretendard style). Professional, trustworthy, enterprise tone.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-02 주최자 대시보드 (히어로: D-데이 마일스톤 타임라인)
|
||
|
||
- **대상**: 주최자 · **진입 경로**: 로그인 → 행사 선택 (주최자 기본 홈)
|
||
- **레이아웃**:
|
||
1. 상단 행사 헤더: 행사명 "2026 스마트팩토리 코리아", 기간·홀(홀7), 대형 카운트다운 "개장까지 D-31"
|
||
2. **히어로 — 마일스톤 타임라인 (가로 전폭)**: D-150 홀 배정 → D-30 사전업무협의 → D-25 유틸리티 신청 마감 → D-7 신고서류 제출 → D-0 개장. 완료 노드는 녹색 체크, 현재 구간은 파란 진행 바, 임박 노드는 주황 펄스. 각 노드 아래 카드에 잔여 항목 수("신고서류 3/7 완료")
|
||
3. KPI 카드 4개: 참가업체 신청 128/160 · 부스 배치 확정률 92% · 유틸리티 신청 완료 74% (D-25 임박 경고) · 규정 위반 미해결 5건
|
||
4. 좌측 2/3: 참가업체 현황 테이블(부스번호, 업체명, 설계 상태 배지, 유틸리티 상태, 예상 사진 썸네일) / 우측 1/3: 알림 피드(승인·반려·마감 이벤트) + "홀 전경 조감(S7)" 미니 이미지 카드
|
||
- **상태**: 로딩 — KPI 스켈레톤 · 빈 상태 — 참가업체 0명 시 "초대 링크 발급" CTA · 에러 — 데이터 로드 실패 배너+재시도.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
An enterprise dashboard for an exhibition organizer, part of "KINTEX AI 전시관리" B2B web app. Desktop 1440px, light theme, white cards on #F9FAFB, primary blue #0066B3, Korean sans-serif (Pretendard style). All UI text in Korean. Left sidebar 240px with menu items "대시보드, 플로어플랜 스튜디오, 참가업체 관리, 서류·마일스톤, 정산". Main area top: event header "2026 스마트팩토리 코리아 · 킨텍스 제2전시장 홀7 · 2026.08.11–08.14" with a large countdown chip "개장 D-31". Hero section: a horizontal milestone timeline across full width with 5 nodes labeled "D-150 홀 배정", "D-30 사전협의", "D-25 유틸리티 마감", "D-7 신고서류", "D-0 개장" — first two nodes green with check icons, third node highlighted orange with badge "D-6 남음", progress bar in blue between nodes, each node has a small card below showing counts like "신고서류 3/7 완료". Below: 4 KPI stat cards ("참가업체 128/160", "배치 확정률 92%", "유틸리티 신청 74%", "규정 위반 5건" in red). Bottom split: left 2/3 a dense data table of exhibitors with columns 부스번호, 업체명, 설계 상태 (colored status badges 승인/작성중/반려), 유틸리티, 예상 사진 (small photo thumbnails); right 1/3 a notification feed list and a small card with an isometric exhibition hall overview image labeled "홀 전경 조감 · AI 생성". Dense, professional, data-rich layout.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-03 부스 배치 에디터 (히어로: 드래그앤드롭 + AI 자동배치 + 규정 위반 오버레이) [M2]
|
||
|
||
- **대상**: 주최자 (홀매니저 읽기 전용) · **진입 경로**: 대시보드 → 플로어플랜 스튜디오 / 배치안 비교에서 "이 안 편집"
|
||
- **레이아웃**:
|
||
1. 상단 툴바: 배치안 버전 드롭다운("배치안 B v3"), 저장 상태, **보라색 AI 버튼 "AI 자동배치"**, "규정 검증 실행", "홀 전경 생성(S7)", 공유
|
||
2. 좌측 도구 패널(240px): 부스 팔레트(기본 3×3m / 프리미엄 6×3m / 아일랜드), 시설 요소(무대·라운지·주출입구), 레이어 토글(트렌치 그리드 / 기둥·셔터·비상구 / 위반 오버레이)
|
||
3. **중앙 캔버스(다크 `#1C2536`)**: 홀7 도면(126×90m, 축척 표시) 위 부스 폴리곤 드래그앤드롭. 부스는 파란 채움+부스번호, 선택 시 핸들. 트렌치 그리드는 점선, 비상구는 녹색 아이콘. **위반 오버레이**: 통로 폭 미달 구간 빨간 반투명 밴드 + 번호 핀, 바닥하중 초과 부스 주황 빗금
|
||
4. 우측 패널(360px) 탭 2개: [속성] 선택 부스 좌표·크기·타입·배정 업체 / [검증] 위반 목록 카드(핀 번호, 규정 근거 "피난 통로 3m 미만", 심각도, "위치 보기") + 요약 "차단 2 · 경고 3"
|
||
5. 하단 상태 바: 부스 수 486/510 · 판매 면적 · 줌 컨트롤
|
||
- **상태**: AI 자동배치 실행 중 — 캔버스 위 진행 오버레이("제약조건 풀이 중… 복수 안 생성") · 검증 통과 시 녹색 배너 "위반 0건 — 제출 가능" · 빈 캔버스 — "조건을 입력하고 AI 자동배치로 시작하세요" CTA.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A professional floor plan editor screen for exhibition booth layout, in a Korean B2B web app "KINTEX AI 전시관리". Desktop 1440px. All UI text in Korean. Three-column editor layout. Top toolbar: version dropdown "배치안 B · v3", autosave label "저장됨", a distinctive purple #6D4AFF button with sparkle icon "AI 자동배치", outlined buttons "규정 검증 실행" and "홀 전경 생성". Left tool panel 240px on white: booth palette items with small square previews ("기본 부스 3×3m", "프리미엄 6×3m", "아일랜드 부스"), facility items ("무대", "라운지", "주출입구"), and layer toggles with switches ("트렌치 그리드", "기둥·비상구", "위반 오버레이" turned on). Center: large dark navy canvas #1C2536 showing a top-down exhibition hall floor plan (hall outline 126×90m with scale ruler), dozens of small blue booth rectangles arranged in rows with white booth numbers like "A-101", dashed grid lines for floor trenches, green emergency-exit icons on walls; overlay violations: two semi-transparent red bands across an aisle with numbered red pins "1", "2", and one booth hatched in orange with pin "3". Right panel 360px with two tabs "속성 | 검증", showing the 검증 tab: summary chips "차단 2 · 경고 3", a list of violation cards each with pin number, red or orange severity dot, Korean text like "피난 통로 폭 3m 미만 (규정 §4.2)" and a small link "위치 보기". Bottom status bar: "부스 486 / 510 · 판매면적 4,374㎡ · 100%" with zoom controls. Dense engineering-tool aesthetic, light UI chrome around a dark canvas.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-04 배치안 비교 (S7 홀 전경 조감) [M2+M5]
|
||
|
||
- **대상**: 주최자 · **진입 경로**: AI 자동배치 완료 → "생성된 배치안 비교" / 스튜디오 탭
|
||
- **레이아웃**:
|
||
1. 헤더: "AI 생성 배치안 3건 — 조건: 목표 510부스, 프리미엄 15%, 무대 1" + 조건 수정 버튼
|
||
2. 배치안 카드 3열 그리드: 각 카드에 **S7 아이소메트릭 조감 이미지(AI 생성 라벨+워터마크)**, 지표(부스 수·판매면적·통로 폭 최소값·위반 수), 라디오 선택
|
||
3. 하단 비교 테이블(지표 나란히) + 우측 고정 CTA "이 안으로 편집 시작"
|
||
- **상태**: S7 생성 중 — 카드 이미지 영역 스켈레톤+"조감 생성 중…" · 실패 — 도면 탑뷰 래스터로 대체 표시 + 재시도.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A comparison screen showing 3 AI-generated exhibition floor layout options, Korean B2B web app, desktop 1440px, light theme, blue #0066B3 primary, purple #6D4AFF for AI labels. All UI text in Korean. Header: title "AI 배치안 비교", subtitle "조건: 목표 510부스 · 프리미엄 15% · 무대 1개소", outlined button "조건 수정". Three large cards in a row, each card contains: an isometric 3D-style rendering of an exhibition hall filled with rows of white booths (bird's-eye view), a small purple chip "AI 생성" and a faint diagonal watermark "AI 생성 예상 이미지" on the image, card title "배치안 A/B/C", metric rows "부스 510개 · 판매면적 4,420㎡ · 최소 통로폭 3.2m · 위반 0건" (option C shows "위반 2건" in red), and a radio button "선택". Below the cards: a compact comparison table with the same metrics side by side. Bottom right: primary blue button "이 안으로 편집 시작". Clean, decision-focused layout.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-05 참가업체 부스 홈 (진행 상태 + 마감 리마인더)
|
||
|
||
- **대상**: 참가업체 · **진입 경로**: 초대 링크 수락 → 기본 홈
|
||
- **레이아웃**:
|
||
1. 부스 요약 헤더: "부스 A-102 · 6×3m 독립부스 · 홀7" + 미니 위치 맵(홀 도면에 내 부스 하이라이트)
|
||
2. **진행 스테퍼(신청→승인→시공→검수)**: 현재 "설계 승인 대기" 강조
|
||
3. 할 일 카드 리스트(D-데이 칩): "유틸리티 신청 마감 D-6 — 인터넷은 현장 추가신청 불가" (warning 강조) / "장치업체 초대" / "설계 컨펌 대기 1건"
|
||
4. 내 부스 예상 사진 카드(S1 최신본, AI 고지) + "설계 스튜디오 열기" / "유틸리티 신청" 두 CTA
|
||
5. 신청·견적 요약: 전기 5kW ₩275,000 · 인터넷 1회선 ₩150,000 · 상태 배지
|
||
- **상태**: 설계 전 빈 상태 — S1 자리 일러스트+"설계를 시작하면 시공 예상 사진이 생성됩니다" · 마감 초과 — 할 일 카드 빨강 잠금("마감 경과 — 주최자 문의").
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A home screen for an exhibitor company in a Korean exhibition management web app, desktop 1440px, light theme, blue #0066B3, Korean sans-serif. All UI text in Korean. Top header card: "부스 A-102 · 독립부스 6×3m · 홀7" with company name "(주)한빛로보틱스", and a small floor-plan thumbnail with one booth highlighted in blue. Below: a horizontal 4-step progress stepper labeled "신청 → 승인 → 시공 → 검수", second step "승인" active in blue with note "설계 승인 대기중". Middle section "해야 할 일": vertical task cards each with a D-day chip — an orange-highlighted card "유틸리티 신청 마감 D-6" with warning subtext "인터넷 회선은 현장 추가 신청이 불가합니다", a normal card "장치업체 초대하기", a card "설계 컨펌 대기 1건". Right column: a large card titled "내 부스 예상 사진" containing a photorealistic exhibition booth render with faint watermark text "AI 생성 예상 이미지 — 실제 시공 결과와 다를 수 있음", below it two buttons: primary "부스 설계 스튜디오" and outlined "유틸리티 신청". Bottom: a compact cost summary table "전기 5kW ₩275,000 · 신청됨", "인터넷 1회선 ₩150,000 · 작성중" with status badges. Friendly but professional B2B tone.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-06 부스 설계 스튜디오 (히어로: 스펙 입력 → 나노바나나 4샷 그리드 + before/after 슬라이더) [M3+M5]
|
||
|
||
- **대상**: 참가업체(조립부스 옵션·컨펌), 장치업체(독립부스 편집) · **진입 경로**: 부스 홈 → 설계 스튜디오
|
||
- **레이아웃**:
|
||
1. 상단: 부스 컨텍스트("A-102 · 독립부스 6×3m · 높이 제한 5m"), 설계 버전 드롭다운, **보라 버튼 "예상 사진 생성"**
|
||
2. 좌측 스펙 패널(360px, 아코디언): ① 기본(업종, 전시품, 예산) ② 레이아웃 존(안내데스크/시연존/상담존/창고 토글+비율) ③ 구조(벽체 높이 슬라이더 max 5m, 간판 문구 입력, 트러스/리깅 토글 — 켜면 인라인 경고 "리깅 6.5~8.5m: 구조계산서 D-7 제출 필요") ④ 자재(마감 선택, 방염 체크 필수) ⑤ 조명(주간/야간 프리셋 — M4a 연동)
|
||
3. **중앙 히어로 — 샷 그리드 2×2**: S1 부스 정면 / S2 야간 점등 / S3 통로 뷰 / S4 부스 내부. 각 타일에 샷 라벨+AI 워터마크, 클릭 시 라이트박스
|
||
4. 그리드 하단 — **Before/After 슬라이더(S5)**: 좌 "시공 전(빈 홀 바닥)" ↔ 우 "시공 후(S1)", 중앙 드래그 핸들
|
||
5. 우측 하단 고정 바: 규정 사전 검증 요약 칩("통과 11 · 경고 1") + "장치업체에 컨펌 요청" CTA. 컨펌 모달에는 "시공 기준은 도면입니다" 동의 체크(필수)
|
||
- **상태**: 생성 중 — 타일별 스켈레톤+진행 배지("S2 생성 중… 평균 40초"), S3·S4는 온디맨드("클릭해 생성") · 실패 — 타일 내 재시도 · 한글 간판 오탈자 검수 실패 시 타일에 주황 배지 "간판 문구 확인 필요".
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A "booth design studio" screen in a Korean exhibition-tech web app where users input booth specs and see AI-generated construction preview photos. Desktop 1440px, light theme, blue #0066B3 primary, purple #6D4AFF for AI actions. All UI text in Korean. Top bar: context text "부스 A-102 · 독립부스 6×3m · 높이 제한 5m", version dropdown "설계 v2", and a prominent purple button with sparkle icon "예상 사진 생성". Left panel 360px: accordion form sections in Korean — "기본 정보" (업종 select showing "로봇/제조", 예산 input), "공간 구성" (toggle chips 안내데스크/시연존/상담존/창고 with percentage sliders), "구조" (벽체 높이 slider at 4.2m with max mark "5m 제한", text input "간판 문구" filled with "한빛로보틱스", a toggle "리깅 사용" ON with an inline orange warning "구조계산서 D-7 제출 필요"), "자재" (finish swatches, a required checkbox "방염 자재 사용 확인"), "조명" (segmented control 주간/야간). Center hero: a 2×2 grid of large photorealistic booth preview images labeled with small chips "S1 부스 정면", "S2 야간 점등", "S3 통로 뷰", "S4 부스 내부" — S2 shows a dramatic night-lit booth; each image has a faint watermark "AI 생성 예상 이미지"; the S4 tile is an empty placeholder with a button "클릭해 생성". Below the grid: a wide before/after comparison slider — left half shows an empty concrete exhibition hall floor, right half the finished booth photo, with a draggable vertical handle in the middle and labels "시공 전 / 시공 후". Bottom right sticky bar: validation summary chips "통과 11 · 경고 1" and a primary button "장치업체에 컨펌 요청". Visual-first, image-dominant layout.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-07 유틸리티 배선 뷰 (히어로: 트렌치 오버레이 + 자동 견적 패널) [M4a+M4b]
|
||
|
||
- **대상**: 참가업체(신청), 장치업체(검토) · **진입 경로**: 부스 홈 → 유틸리티 신청
|
||
- **레이아웃**:
|
||
1. 상단: 부스 컨텍스트 + 마감 배너 "유틸리티 신청 마감 D-6 · 인터넷은 현장 추가신청 불가" (warning) + 유틸리티 탭(전기 / 네트워크·전화 / 급배수·압축공기)
|
||
2. 좌측 패널(320px) — [전기 탭] 기기 목록 빌더: 행 추가(기기명, 수량, 소비전력) → 합산 "필요 용량 4.8kW → 신청 5kW" + 분전반 자동 산출("50A 1식"). [네트워크 탭] 단말 유형 선택 후 "도면에서 위치 클릭" 안내
|
||
3. **중앙 캔버스(다크)**: 부스+주변 트렌치 그리드 탑뷰. 최근접 트렌치→부스 내 단말까지 **자동 배선 경로** — 전기 빨강 실선, 네트워크 파랑 파선, 급배수 녹색 점선. 경로 위 라벨(kW·회선). 범례 우상단. 단말 위치는 드래그로 미세 조정 → 경로 실시간 재계산
|
||
4. 우측 **자동 견적 패널(340px)**: 항목 라인 — "전기 220V 단상 5kW ₩275,000", "분전반 50A 추가 1식 ₩100,000", "인터넷 유선 1회선 ₩150,000", "급배수 1구 ₩150,000" → 합계 ₩675,000. 하단 고지 "공시가 기준, 최종가는 킨텍스 확정" + CTA "위치표시도 생성 및 신청"
|
||
- **상태**: 경로 계산 중 — 캔버스 경로 펄스 애니메이션 · 트렌치 데이터가 가정 그리드일 때 캔버스 좌상단 배지 "가정 트렌치 좌표(실측 대기)" · 마감 경과 — 신청 CTA 비활성+빨강 안내.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A utility wiring planner screen for an exhibition booth (electricity, network, plumbing) in a Korean B2B web app. Desktop 1440px. All UI text in Korean. Top: context "부스 A-102 · 홀7", an orange warning banner "유틸리티 신청 마감 D-6 — 인터넷 회선은 현장 추가 신청 불가", and tabs "전기 | 네트워크·전화 | 급배수·압축공기" with 전기 active. Left panel 320px: a device list builder titled "사용 기기 입력" with table rows (기기명 "로봇 시연장비", 수량 2, 소비전력 1.5kW; "LED 스포트 조명" 6개 0.3kW; "노트북/모니터" 3개), a computed summary card "필요 용량 4.8kW → 신청 용량 5kW" and "분전반 50A × 1식 자동 산출". Center: dark navy canvas #1C2536 with a top-down technical drawing of one booth rectangle and surrounding floor trench grid (dashed gray lines); an auto-routed solid red line from the nearest trench point to a power outlet symbol inside the booth labeled "5kW", a dashed blue line to a LAN port symbol labeled "유선 1회선", a dotted green line to a water symbol; a legend box top-right "전기 / 네트워크 / 급배수"; small badge top-left "가정 트렌치 좌표". Right panel 340px titled "자동 견적": line items "전기 220V 단상 5kW — ₩275,000", "분전반 50A 추가 — ₩100,000", "인터넷 유선 1회선 — ₩150,000", "급배수 1구 — ₩150,000", divider, bold total "합계 ₩675,000", fine print "공시가 기준이며 최종 금액은 킨텍스 확정 시 안내됩니다", and a full-width primary blue button "위치표시도 생성 및 신청". Precise engineering-CAD feel with a clean commerce-style quote panel.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-08 유틸리티 신청 요약 & 위치표시도 [M4b]
|
||
|
||
- **대상**: 참가업체 · **진입 경로**: SCR-07 → "위치표시도 생성 및 신청"
|
||
- **레이아웃**:
|
||
1. 스테퍼: 배선 설계 → **신청 확인** → 제출 완료
|
||
2. 좌측: **자동 생성 위치표시도 미리보기**(A4 문서 프레임 — 부스 도면+배선+치수+범례, "수기 작도 대체 공식 서식" 캡션) + 다운로드(PDF)
|
||
3. 우측: 신청 내역 요약 테이블(항목·수량·금액·공급 시점 "장치 마지막 날 오후"), 신청자 정보 확인, 고지 체크 2개("마감 후 변경 불가 확인", "공시가 기준 동의") → CTA "신청 제출"
|
||
4. 제출 완료 화면: 녹색 체크 + 접수번호 + "주최자 사무국/킨텍스 릴레이 안내"(kxwp 수동 릴레이 안내문)
|
||
- **상태**: 문서 생성 중 스켈레톤 · 체크 미완료 시 CTA 비활성 · 제출 실패 — 재시도+임시저장 안내.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A submission review screen for exhibition utility orders in a Korean web app, desktop 1440px, light theme, blue #0066B3. All UI text in Korean. Top: 3-step stepper "배선 설계 → 신청 확인 → 제출 완료" with step 2 active. Left half: a document preview card showing an A4-format technical location diagram — booth outline with red/blue/green wiring paths, dimension labels in meters, a legend, document title "유틸리티 시공 위치표시도 (자동 생성)" — with a caption "수기 작도를 대체하는 공식 제출 서식입니다" and an outlined button "PDF 다운로드". Right half: a summary panel titled "신청 내역" with a table (항목, 수량, 금액): "전기 5kW ₩275,000", "분전반 50A ₩100,000", "인터넷 유선 ₩150,000", "급배수 1구 ₩150,000", total row "₩675,000", info row "공급 시점: 장치 마지막 날 오후"; applicant info block; two required checkboxes "마감(D-25) 이후 변경이 불가함을 확인했습니다" and "공시가 기준 견적에 동의합니다"; large primary button "신청 제출" (disabled style until checked). Clean document-workflow layout.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-09 장치업체 규정 검증 리포트 (제출 전 자동 플래깅) [M3]
|
||
|
||
- **대상**: 장치업체 · **진입 경로**: 설계 스튜디오 → "규정 검증" / 도면 업로드
|
||
- **레이아웃**:
|
||
1. 헤더: 부스·설계 버전 + 결과 요약 배너 — "차단 1 · 경고 2 · 통과 14" (차단 존재 시 빨강)
|
||
2. 업로드 존: 기존 도면(PDF/이미지) 업로드 → 비전 추출 시 결과에 **"참고용 검증" 라벨** 필수
|
||
3. 좌측: 검증 항목 체크리스트(그룹: 높이·리깅·복층·방염·금지작업) — 각 행: 상태 아이콘, 규정 원문 요약("장치물 높이 5m 이하"), 측정값("5.4m — 0.4m 초과"), 심각도
|
||
4. 우측: 도면 미니 뷰어 — 선택 항목의 위반 위치 하이라이트. 리깅 항목에는 자동 부속 플래그 "구조계산서 D-7 제출 필요" 칩
|
||
5. 하단: 면책 문구("본 검증은 사전 필터이며 최종 승인은 킨텍스·구조기술사 판단") + 룰셋 버전 표기 + CTA "검증 리포트 첨부하여 제출" (차단 존재 시 비활성)
|
||
- **상태**: 검증 실행 중 프로그레스 리스트 · 도면 추출 실패 — "치수 인식 불가 — 수동 입력으로 진행" 안내.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A compliance validation report screen for exhibition booth construction drawings, Korean B2B web app, desktop 1440px, light theme. All UI text in Korean. Header: "부스 A-102 · 설계 v2 · 규정 검증 결과" with a red summary banner "차단 1건 · 경고 2건 · 통과 14건 — 차단 항목 해결 전 제출 불가". Below header, a small file-upload zone "기존 도면 업로드 (PDF/이미지)" with note chip "참고용 검증". Left 60%: a grouped checklist titled with group headers "높이 규정, 리깅, 복층, 방염, 금지작업"; each row has a status icon (red X, orange !, green check), rule text like "장치물 높이 5m 이하", measured value "측정 5.4m — 0.4m 초과" in red, and severity tag "차단"; one rigging row shows an extra purple chip "구조계산서 D-7 제출 필요". Right 40%: a small drawing viewer card showing a booth elevation drawing with the violating top section highlighted in red and a dimension callout "5.4m". Bottom: gray disclaimer text "본 검증은 사전 필터이며, 최종 승인은 킨텍스 및 구조기술사의 판단에 따릅니다 · 룰셋 v1.0", and a disabled primary button "검증 리포트 첨부하여 제출". Audit-report aesthetic, high information density.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-10 홀매니저 승인 큐 (히어로: AI 사전심사 플래그) [M2+M3+M6]
|
||
|
||
- **대상**: 홀매니저 · **진입 경로**: 킨텍스 내부 계정 로그인 → 기본 홈
|
||
- **레이아웃**:
|
||
1. 헤더: 담당 홀 필터 칩(홀6·홀7·홀8) + 검색 + 요약 KPI(대기 23 · 오늘 마감 5 · AI 차단 플래그 4)
|
||
2. **히어로 — 승인 큐 테이블(전폭)**: 열 = 행사/부스, 유형(부스 배치도·장치 도면·유틸리티·신고서류), 제출자, 제출일, D-데이, **AI 사전심사 열**(칩: "통과" 녹 / "경고 2" 주황 / "차단 1" 빨강 — 호버 시 위반 요약 툴팁), 상태, [검수] 버튼. AI 차단 행은 좌측 빨간 엣지 바. 정렬 기본: 차단→마감 임박순
|
||
3. 우측 사이드(접이식): **홀 유틸리티 부하 집계 위젯** — 홀7 전기 신청 총합 게이지(신청 412kW / 경고 임계), 인터넷 회선 수
|
||
- **상태**: 빈 큐 — "검수 대기 항목이 없습니다" · 로딩 — 테이블 행 스켈레톤 · 일괄 처리: 통과 항목 다중 선택 → "일괄 승인" (차단 플래그 항목은 선택 불가).
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
An approval queue dashboard for a venue hall manager at KINTEX exhibition center, Korean B2B internal tool, desktop 1440px, light theme, blue #0066B3, purple #6D4AFF for AI elements. All UI text in Korean. Header: filter chips "홀6 · 홀7 · 홀8" (홀7 selected), a search input, and 3 KPI chips "검수 대기 23", "오늘 마감 5", "AI 차단 플래그 4" (last one red). Hero: a full-width dense data table with columns 행사/부스, 서류 유형, 제출자, 제출일, 마감, AI 사전심사, 상태, 액션. Rows include: "스마트팩토리 코리아 · A-102 / 장치 도면 / (주)공간디자인 / 07.10 / D-6 / red chip '차단 1' / 검토 대기 / [검수] button" with a red left edge bar; "B-201 / 유틸리티 위치표시도 / 한빛로보틱스 / green chip '통과' / [검수]"; "부스 배치도 v3 / 주최자 / orange chip '경고 2'". AI 사전심사 column uses small colored chips with counts. Checkboxes on rows and a toolbar button "일괄 승인". Right collapsible sidebar: a widget "홀7 유틸리티 부하" with a semicircular gauge showing "전기 신청 412kW", a threshold marker, and a stat "인터넷 128회선". Efficient, triage-oriented enterprise UI.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-11 홀매니저 검수 상세 (도면 + 위반 오버레이 + 승인/반려)
|
||
|
||
- **대상**: 홀매니저 · **진입 경로**: SCR-10 → [검수]
|
||
- **레이아웃**:
|
||
1. 헤더: 제출물 컨텍스트(행사·부스·유형·버전·제출자) + 이전/다음 큐 이동 화살표
|
||
2. 좌측 70% — 도면 뷰어(다크 캔버스): 제출 도면 + AI 위반 오버레이 토글, 위반 핀 클릭 ↔ 우측 목록 동기 하이라이트. 상단 보조 탭: [도면] [예상 사진(참고용 — 심사 근거 아님 라벨)] [이전 버전 비교]
|
||
3. 우측 30% — 검수 패널: AI 사전심사 요약 카드(플래그 목록, 각 항목에 "확인함" 체크), 협의 이력 스레드(코멘트 입력), 결정 버튼 그룹 — **[승인](녹)** / **[조건부 승인]** / **[반려](빨)** — 반려 시 사유 템플릿 선택+자유 입력 모달
|
||
- **상태**: 모든 차단 플래그에 "확인함" 체크 전 승인 버튼 비활성 · 결정 완료 후 헤더에 결과 배지+다음 항목 자동 이동 토스트.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A document review detail screen for a hall manager inspecting a booth construction drawing, Korean B2B internal tool, desktop 1440px. All UI text in Korean. Header: breadcrumb "승인 큐 > 스마트팩토리 코리아 > 부스 A-102", context chips "장치 도면 v2 · 제출 (주)공간디자인 · 07.10", prev/next arrows. Left 70%: a dark navy #1C2536 drawing viewer showing a booth floor plan and elevation with red violation pins numbered 1–3 and a red highlighted zone, a toggle "AI 위반 오버레이" ON, zoom controls, and tabs above the viewer "도면 | 예상 사진 (참고용) | 버전 비교". Right 30% panel: card "AI 사전심사" listing flags — "1. 장치물 높이 5.4m 초과 — 차단" with a checkbox "확인함", "2. 방염 확인서 누락 — 경고" checked, "3. 리깅 구조계산서 미제출 — 경고"; below, a comment thread "협의 이력" with two short Korean messages and an input field; bottom action group: large green button "승인" (disabled style), gray button "조건부 승인", red outlined button "반려". Split reviewer layout, serious inspection tool tone.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-12 시각화 갤러리 (S1~S7 렌더 관리) [M5]
|
||
|
||
- **대상**: 참가업체·주최자·장치업체 · **진입 경로**: 부스 홈/스튜디오 → "시각화 갤러리"
|
||
- **레이아웃**:
|
||
1. 헤더: 부스/행사 스코프 전환 + 샷 필터 칩(S1 정면 · S2 야간 · S3 통로 · S4 내부 · S5 Before/After · S6 배선 오버레이 · S7 홀 전경) + 정렬(최신)
|
||
2. 마소너리 이미지 그리드: 카드 = 이미지(워터마크 상시), 샷 배지, 설계 버전 태그("설계 v2"), 생성일, 상태(완료/생성 중/실패). 생성 중 카드는 진행 배지, 실패는 재시도
|
||
3. 라이트박스: 원본 + 메타데이터(생성일·스키마 해시·모델 버전) + 다운로드 + "이 컷 다시 생성". S5는 라이트박스에서 슬라이더로 열림
|
||
4. 상단 고정 안내 바: "생성 이미지는 계약·심사 서류에 사용할 수 없습니다 (시공 기준은 도면)"
|
||
- **상태**: 빈 상태 — "아직 생성된 이미지가 없습니다 — 설계 스튜디오에서 예상 사진을 생성하세요" · 쿼터 도달 — 생성 버튼에 "행사 생성 쿼터 소진" 툴팁.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
An AI-render gallery screen for exhibition booth visualizations in a Korean web app, desktop 1440px, light theme, purple #6D4AFF AI accents. All UI text in Korean. Top: scope selector "부스 A-102", filter chips "S1 정면 · S2 야간 · S3 통로 · S4 내부 · S5 비교 · S6 배선 · S7 홀 전경", sort dropdown "최신순". A slim persistent info bar: "AI 생성 이미지는 계약·심사 서류에 사용할 수 없습니다 — 시공 기준은 도면입니다". Main: a masonry grid of image cards — photorealistic booth photos (front view, night lighting view, aisle view), one top-down wiring overlay diagram with red/blue/green lines, one isometric hall overview; every image has a faint watermark "AI 생성 예상 이미지"; each card shows a shot badge like "S2 야간", version tag "설계 v2", date "07.11", and status — one card is a loading skeleton with badge "생성 중… 평균 40초", another shows a red "실패" state with a "다시 생성" button. Visual, image-forward gallery with strict labeling.
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 모바일 대응 (390px)
|
||
|
||
모바일은 **조회·승인·현장** 시나리오 전용(PLANNING.md §8). 캔버스 편집(SCR-03, 07)과 스펙 편집(SCR-06 좌패널)은 모바일 미제공 — 뷰어+승인 액션만. 아래 두 화면은 **모바일 전용 신규 화면**, 나머지는 반응형 축소.
|
||
|
||
| 웹 화면 | 모바일 변화 |
|
||
|---|---|
|
||
| SCR-05 부스 홈 | 1열 스택. 할 일 카드가 최상단, 예상 사진 카드는 가로 스와이프 캐러셀 |
|
||
| SCR-06 스튜디오 | 읽기 전용: 4샷 그리드 → 세로 캐러셀 + before/after 슬라이더(터치 드래그). "컨펌 승인/수정 요청" 버튼만 활성 |
|
||
| SCR-10 승인 큐 | 테이블 → 카드 리스트(AI 플래그 칩 유지), 스와이프 액션 없음(오승인 방지 — 반드시 상세 진입) |
|
||
| SCR-12 갤러리 | 2열 그리드, 라이트박스 핀치 줌 |
|
||
|
||
---
|
||
|
||
### SCR-M1 [모바일] 시공업체 현장 체크리스트 [M3 규정 + 현장 공정]
|
||
|
||
- **대상**: 장치업체 현장 인력 · **진입 경로**: 모바일 로그인 → 수주 부스 → "현장 체크리스트" (장치 기간 중 기본 홈)
|
||
- **레이아웃**:
|
||
1. 상단 고정: 부스 A-102 · 홀7 · "장치 1일차" + 도면/예상사진(S1) 토글 썸네일(참고용 라벨)
|
||
2. 체크리스트 그룹(아코디언): ① 반입 전(방염 확인서 지참, 안전모) ② 시공 중 — 금지작업 경고 카드 상시 노출("전기톱·용접·페인트 작업 장내 금지", 소음 70~75dB 한도) ③ 구조(높이 실측 5m 이하 확인 — 수치 입력, 리깅 구조계산서 제출 확인) ④ 완료(사진 업로드 → 홀매니저 검수 요청)
|
||
3. 각 항목: 큰 체크박스(48px 터치), 사진 첨부 버튼, 미완료 필수 항목 수 배지
|
||
4. 하단 고정 CTA: "검수 요청 보내기" (필수 항목 완료 시 활성)
|
||
- **상태**: 오프라인 — 로컬 저장+"연결 시 동기화" 배지 · 위반 항목 체크 시 즉시 빨간 안내("홀매니저에게 자동 통지됩니다").
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A mobile on-site checklist app screen for a booth construction crew at KINTEX exhibition center, 390px width, light theme, blue #0066B3, large touch targets. All UI text in Korean. Sticky top header: "부스 A-102 · 홀7 · 장치 1일차" with two small thumbnail toggles "도면 | 예상 사진" (예상 사진 marked 참고용). Body: accordion checklist groups — "반입 전" (checked items "방염 확인서 지참", "안전모 착용" with green checks), an always-visible red warning card "장내 금지 작업: 전기톱 · 용접 · 페인트 / 소음 한도 70~75dB", group "시공 중" with items having large 48px checkboxes and camera attach buttons, group "구조 확인" containing a numeric input row "장치물 최고 높이 실측" with value "4.2 m" and helper "5m 이하", and item "리깅 구조계산서 제출 확인" with an orange D-day chip "D-7". A badge near top "필수 항목 3개 남음". Sticky bottom: full-width primary button "검수 요청 보내기" in disabled state, and a small offline badge "오프라인 — 연결 시 동기화". Rugged, glanceable field-work UI with big tap areas.
|
||
```
|
||
|
||
---
|
||
|
||
### SCR-M2 [모바일] 홀매니저 현장 검수
|
||
|
||
- **대상**: 홀매니저 · **진입 경로**: 모바일 홈(승인 큐 카드 리스트) → 검수 요청 알림 탭
|
||
- **레이아웃**:
|
||
1. 상단: 부스 컨텍스트 + 승인 도면 썸네일(탭 시 전체 화면 뷰어, 핀치 줌)
|
||
2. **비교 카드**: 승인 도면 vs 현장 사진(시공업체 업로드) 좌우 스와이프 비교, "AI 사전심사 플래그 3건" 요약 칩 — 탭 시 바텀시트로 플래그 목록(각 "현장 확인함" 체크)
|
||
3. 현장 검수 항목 리스트: 높이·방염 라벨·통로 침범·소음 — 각 항목 [적합]/[부적합] 세그먼트 + 부적합 시 사진 촬영 필수+메모
|
||
4. 하단 고정: [검수 승인](녹) / [시정 요청](빨) — 시정 요청 시 위반 항목 자동 첨부되어 시공업체에게 푸시
|
||
- **상태**: 플래그 미확인 시 승인 비활성 · 시정 요청 발송 완료 토스트+큐 다음 항목 제안.
|
||
- **Stitch 프롬프트**:
|
||
|
||
```
|
||
A mobile field inspection screen for a KINTEX hall manager verifying booth construction, 390px width, light theme, blue #0066B3, purple #6D4AFF AI chips. All UI text in Korean. Top: header "현장 검수 · 부스 A-102 · 홀7" with an approved drawing thumbnail. Below: a side-by-side comparison card — left half labeled "승인 도면" showing a booth plan drawing, right half labeled "현장 사진" showing a photo of a partially built booth, with swipe dots; under it a purple chip "AI 사전심사 플래그 3건" that suggests a tappable bottom sheet. Middle: inspection item list with segmented controls — rows "장치물 높이 (5m 이하)", "방염 라벨 부착", "통로 침범 여부", "소음 (70~75dB)", each with two-button segmented control [적합 | 부적합]; the "통로 침범 여부" row is set to 부적합 in red with an attached photo thumbnail and a memo field "통로 0.3m 침범". Sticky bottom: two large buttons side by side — green "검수 승인" (disabled) and red "시정 요청". Fast, one-hand-operation mobile inspection UI.
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Stitch 사용 가이드 (요약)
|
||
|
||
1. stitch.withgoogle.com에서 새 프로젝트 생성 → 플랫폼은 웹 화면(SCR-01~12)은 Desktop, SCR-M1/M2는 Mobile 선택.
|
||
2. 화면당 위 코드블록 프롬프트 1개를 그대로 붙여넣어 생성 — 프롬프트에 색상·레이아웃·예시 데이터가 포함되어 있어 추가 지시 없이 1회 생성이 기준.
|
||
3. 결과 보정은 짧은 추가 지시로: 예) "Make the right quote panel 340px and sticky". 한국어 텍스트가 깨지면 "Keep all labels in Korean exactly as given" 재지시.
|
||
4. 생성 화면은 Figma로 내보내 디자인 시스템 토큰(§1)과 대조 후 조정한다.
|
||
|
||
---
|
||
|
||
## 6. 변경 이력
|
||
|
||
| 버전 | 일자 | 작성자 | 내용 |
|
||
|---|---|---|---|
|
||
| v1.0 | 2026-07-11 | designer | 최초 작성 — PLANNING.md v1.0 기반. 디자인 시스템·IA·P0 중심 14화면(웹 12 + 모바일 2) Stitch 프롬프트 포함. 다크모드는 Phase 1 미지원(캔버스 다크 서피스만) 결정 |
|
||
| v1.0.1 | 2026-07-11 | reviewer 반영 | 화면 수 표기 정정(13→14). 잔여 지적사항은 docs/BACKLOG.md 참조 |
|
||
| v1.1 | 2026-07-11 | designer | **Stitch 산출물 학습·정합화.** `stitch_kintex_ai_system_architect/` 18화면 code.html + DESIGN.md 3변형(Intelligence·Nexus·Precision) 학습. ①§1-2 컬러: Precision Enterprise AI 변형이 우리 토큰(#0066B3·#1C2536·#6D4AFF·#D92D20·#F9FAFB·#101828·StatusBadge 진행) 실증 확인 — 우리 팔레트를 단일 출처로 유지, #0059A6·#00427D는 짙은 대체 톤으로만 허용, ai-surface #F5F3FF AI 카드 배경 채택. ②§1-3 타이포: Pretendard 권위 유지, Inter를 라틴/tabular 보조로 허용(Stitch가 Hanken Grotesk/Inter 채택), 행 높이 44/48px 권위값 유지. ③§1-4 라운드(4/8px·pill)·엘리베이션(톤레이어+1px 테두리+AI 좌측 보라 액센트)·그리드(12컬럼·1440px·4px 베이스)·지브라 테이블 토큰 신설(이전 누락분). ④§2.5 Stitch 화면↔SCR 매핑표 신설(14화면). ⑤§2.6 범위 게이트 — proposal.md 및 범위 밖 4화면(business_intelligence·hall_operations·exhibition_schedule·admin_dashboard)을 P2 후보로 분류(PLANNING이 범위 권위, designer 임의 승격 금지). PLANNING.md·타 문서 무수정 |
|
||
| v1.2 | 2026-07-11 | designer | **MDI(다중 문서 인터페이스) 셸 표준 신설.** 업무 포털 AppShell을 단일 라우트 SPA → 탭 호스트로 전환하는 표준을 §2.7로 정의(kintex-frontend-dev AppShell 전환 기준). ①§2-2 내비게이션을 MDI 기준으로 갱신(사이드바+상단 문서 탭바+중앙 DocumentHost, 메뉴 클릭=탭 열기, 공개/관람객 사이트·모바일은 MDI 비적용). ②§2.7 신설 — 2.7-1 셸 레이아웃(3영역 그리드) · 2.7-2 탭 규격(열기/활성/닫기·미들클릭·드래그 재정렬·중복방지·최대 12탭·오버플로우 스크롤+드롭다운·dirty ● 및 닫기 확인·핀 고정) · 2.7-3 탭별 상태 보존(비활성 언마운트 금지 display:none·캔버스 freeze·WebGL 메모리 가드·beforeunload) · 2.7-4 세션 복원 & 딥링크↔탭 URL 동기화(라우트 예시·localStorage 세션·행사 전환 분리) · 2.7-5 단축키(Ctrl+W/Tab/1~9/Shift+T·Ctrl+클릭 새 탭)+접근성(ARIA tablist/tab/tabpanel·로빙 탭인덱스·WCAG AA) · 2.7-6 역할별 적용(관리자·주최자·참가·장치·홀매니저=적용, 관람객/공개=비적용, 모바일 전역 비적용) · 2.7-7 컴포넌트·스토어 표준(AppShell·TabBar·Tab·DocumentHost·useMdiStore/DocumentInstance/docKey 중복방지·직렬화 규칙) + MDI 셸 Stitch 프롬프트(영어). §1 토큰 재사용, 신규 토큰 0. PLANNING.md·src/·타 문서 무수정 |
|