Files
Aislo/.agent/test/04_Frontend_and_UI.md
T

27 lines
1.7 KiB
Markdown

---
document_type: frontend
priority: HIGH
---
# 프론트엔드 및 UI 제어 명세
## 🎨 테마 및 디자인 규약
- **[DON'T]** 하드코딩된 Hex 색상 코드나 임의의 스타일 직접 입력 금지.
- **[MUST]** 테마(라이트/다크) 전환 호환을 위해 `ui_template/ui_template_theme.css`에 선언된 CSS 변수(`var(--color-...)`)만 참조.
- **공통 레이아웃 (3단 분리 준수):**
1. 상단 영역: 페이지 타이틀 및 진행 상태 (헤더)
2. 좌측 패널: 데이터 입력 폼 및 제어 설정 창 (고정 너비)
3. 우측 영역: WebCAD 도면 뷰어 (Canvas/WebGL) 또는 데이터 그리드 (가변 너비)
## 🌐 다국어 지원 (i18n)
- **[DON'T]** UI 문자열(라벨, 버튼 명, 툴팁, 안내 메시지 등)의 코드 내 하드코딩 절대 금지.
- **[MUST]** 동시 수정 프로토콜:
1. 신규 텍스트 발생 시 `ui_template/ui_template_locale.ts` 최하단에 키(Key)와 번역 배열(`[한국어, 영어]`) 선 등록.
2. 컴포넌트 내에서는 `ui_locales.키값[현재언어인덱스]` 형태로만 호출한다.
3. UI 수정 PR시 다국어 업데이트 내역 누락은 심각한 에러로 취급한다.
## ⚙️ TypeScript 및 로직 제어
- **이벤트 핸들러 명명법:** `on[페이지명]_[기능명]_[액션]` 규칙 준수.
- 예: `onB04_Surface_Calculate_Click`
- **상태 제어 피드백:** API 비동기 호출 시작 시 전체 로딩 스피너(Overlay) 활성화, 통신 완료(성공/에러) 시 반드시 해제 보장.
- **1차 검증:** 백엔드 전송 전 빈 값, 최대 길이, 숫자 범위 검증은 프론트엔드(`common_util_validate.ts`)에서 우선 처리하며, 에러 시 입력창 주변에 명시한다.