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