docs: 프론트엔드 게임 UI 구현 트러블슈팅 문서 추가
This commit is contained in:
parent
ce2c2c9ee9
commit
a1c4e6705a
155
troubleshooting/250729_happybell80_프론트엔드게임UI구현.md
Normal file
155
troubleshooting/250729_happybell80_프론트엔드게임UI구현.md
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
# 프론트엔드 게임 UI 구현 및 Magic UI 적용
|
||||||
|
|
||||||
|
**날짜**: 2025-07-29
|
||||||
|
**작업자**: happybell80 & Claude
|
||||||
|
**관련 프로젝트**: frontend-customer
|
||||||
|
|
||||||
|
## 오후 10시 30분
|
||||||
|
|
||||||
|
### 프론트엔드 모바일 게임화 준비
|
||||||
|
|
||||||
|
**배경**:
|
||||||
|
- 기존 문서에서 Merge Restaurant 스타일 모바일 게임 UI로 개편 계획
|
||||||
|
- frontend-customer 프로젝트 평가 및 개선 방향 설정
|
||||||
|
|
||||||
|
**현재 상태 분석**:
|
||||||
|
1. 기술 스택
|
||||||
|
- React 18 + TypeScript + Vite
|
||||||
|
- Tailwind CSS + shadcn/ui (이미 설치)
|
||||||
|
- Framer Motion (이미 설치)
|
||||||
|
|
||||||
|
2. 문제점
|
||||||
|
- character-dashboard.css로 별도 스타일링 (Tailwind 미활용)
|
||||||
|
- 게임 UI라고 하기엔 애니메이션/인터랙션 부족
|
||||||
|
- Magic UI/shadcn 컴포넌트 활용도 0%
|
||||||
|
|
||||||
|
**Magic UI MCP 평가**:
|
||||||
|
- 완전 무료 (MIT 라이선스)
|
||||||
|
- API 키 불필요
|
||||||
|
- 게임 UI에 적합한 컴포넌트 다수 보유
|
||||||
|
|
||||||
|
## 오후 10시 45분
|
||||||
|
|
||||||
|
### 3분할 레이아웃 설계 및 구현
|
||||||
|
|
||||||
|
**레이아웃 구조**:
|
||||||
|
1. 데스크톱: 1200px 고정 (400px × 3)
|
||||||
|
2. 모바일: 터치시에만 헤더/푸터 표시
|
||||||
|
3. 헤더: 1024px 고정 너비
|
||||||
|
|
||||||
|
**GameLayout 컴포넌트 작성**:
|
||||||
|
- 모바일 브라우저 주소창/네비게이션바 대응
|
||||||
|
- 터치 인터랙션으로 UI 토글 (3초 후 자동 숨김)
|
||||||
|
- 반응형 처리 (데스크톱 3분할, 모바일 단일 뷰)
|
||||||
|
|
||||||
|
**CSS 최적화**:
|
||||||
|
```css
|
||||||
|
/* iOS Safari 대응 */
|
||||||
|
height: 100vh;
|
||||||
|
height: -webkit-fill-available;
|
||||||
|
height: 100dvh; /* Dynamic viewport height */
|
||||||
|
|
||||||
|
/* Safe Area 대응 */
|
||||||
|
padding: env(safe-area-inset-top) env(safe-area-inset-right)
|
||||||
|
env(safe-area-inset-bottom) env(safe-area-inset-left);
|
||||||
|
```
|
||||||
|
|
||||||
|
## 오후 11시 00분
|
||||||
|
|
||||||
|
### Magic UI 컴포넌트 설치 및 적용
|
||||||
|
|
||||||
|
**설치된 컴포넌트**:
|
||||||
|
1. **버튼 컴포넌트**
|
||||||
|
- shimmer-button: 빛나는 효과
|
||||||
|
- pulsating-button: 맥동 효과
|
||||||
|
- ripple-button: 물결 효과
|
||||||
|
|
||||||
|
2. **애니메이션 컴포넌트**
|
||||||
|
- confetti: 레벨업 효과
|
||||||
|
- animated-circular-progress-bar: 원형 프로그레스바
|
||||||
|
- number-ticker: 숫자 카운터 애니메이션
|
||||||
|
|
||||||
|
**GameCharacterCard 구현**:
|
||||||
|
- Magic UI 버튼들로 액션 버튼 교체
|
||||||
|
- 원형 프로그레스바로 스탯 표시
|
||||||
|
- 레벨업시 Confetti 효과
|
||||||
|
- NumberTicker로 숫자 애니메이션
|
||||||
|
|
||||||
|
## 오후 11시 15분
|
||||||
|
|
||||||
|
### 색상 시스템 정리 및 디자인 개선
|
||||||
|
|
||||||
|
**문제점**:
|
||||||
|
- 너무 많은 색상 사용 (보라, 핑크, 파랑, 초록, 노랑 등)
|
||||||
|
- 과도한 그라데이션과 애니메이션
|
||||||
|
|
||||||
|
**해결 방안**:
|
||||||
|
1. **색상 팔레트 단순화**
|
||||||
|
- Primary: Violet-600 (#7c3aed)
|
||||||
|
- Accent: Amber-400 (#facc15)
|
||||||
|
- 배경: Slate-900 (단색)
|
||||||
|
- 텍스트: white/90, white/70, white/50
|
||||||
|
|
||||||
|
2. **레이아웃 재구성**
|
||||||
|
- 가운데: ChatInterface (채팅창)
|
||||||
|
- 왼쪽: SimpleStatsPanel (스탯)
|
||||||
|
- 오른쪽: ActivityPanel (활동)
|
||||||
|
|
||||||
|
3. **컴포넌트 작성**
|
||||||
|
- ChatInterface: 로빙과의 대화 인터페이스
|
||||||
|
- SimpleStatsPanel: 미니멀한 스탯 표시
|
||||||
|
- ActivityPanel: 최근 활동 및 빠른 액션
|
||||||
|
|
||||||
|
## 오후 11시 30분
|
||||||
|
|
||||||
|
### 모바일 화면 비율 최적화
|
||||||
|
|
||||||
|
**문제점**:
|
||||||
|
- 모바일에서 세로 비율이 너무 길어 게임답지 않음
|
||||||
|
|
||||||
|
**조사 결과**:
|
||||||
|
- 모바일 웹게임은 주로 16:9 비율 사용
|
||||||
|
- Safe Zone 개념으로 노치/홈 인디케이터 대응
|
||||||
|
|
||||||
|
**구현**:
|
||||||
|
1. **16:9 고정 비율 적용**
|
||||||
|
```css
|
||||||
|
.aspect-video {
|
||||||
|
aspect-ratio: 16 / 9;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **방향별 최적화**
|
||||||
|
- 세로 모드: 너비 100%, 높이 자동
|
||||||
|
- 가로 모드: 높이 100%, 너비 자동
|
||||||
|
|
||||||
|
3. **viewport-fit=cover 추가**
|
||||||
|
```html
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, viewport-fit=cover" />
|
||||||
|
```
|
||||||
|
|
||||||
|
**최종 수정사항**:
|
||||||
|
- 모바일에서 좌우 패널 제거 (채팅창만 표시)
|
||||||
|
- 모든 구분선(border) 제거로 깔끔한 UI
|
||||||
|
- 푸터 간소화 (ro-being.com © 2025 All rights reserved)
|
||||||
|
|
||||||
|
## 교훈
|
||||||
|
|
||||||
|
1. **디자인 시스템의 중요성**
|
||||||
|
- 색상은 2-3개로 제한하여 일관성 유지
|
||||||
|
- 그라데이션과 애니메이션은 최소화
|
||||||
|
|
||||||
|
2. **모바일 우선 설계**
|
||||||
|
- 16:9 비율로 게임 같은 느낌 구현
|
||||||
|
- Safe Area 고려한 레이아웃
|
||||||
|
|
||||||
|
3. **컴포넌트 라이브러리 활용**
|
||||||
|
- Magic UI 같은 무료 라이브러리 적극 활용
|
||||||
|
- 직접 구현보다 검증된 컴포넌트 사용
|
||||||
|
|
||||||
|
4. **Sequential Thinking의 효과**
|
||||||
|
- 체계적인 색상 정리로 산만함 해결
|
||||||
|
- 단계별 구현으로 복잡도 관리
|
||||||
|
|
||||||
|
---
|
||||||
|
**작성 완료**: 2025-07-29 23:23
|
||||||
Loading…
x
Reference in New Issue
Block a user