260715_0
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: page-frontend-detail
|
||||
status: stable
|
||||
page_id: A01_Home
|
||||
related_pages: ["[[A01_Home/A01_frontend]]", "[[ui_templates]]", "[[a00_app_shell_framework]]"]
|
||||
last_updated: 2026-07-12
|
||||
source: 상위 프로젝트 A01_Home 코드 인제스트 보완 (2026-07-12)
|
||||
---
|
||||
|
||||
# A01_Home — 세부 구현
|
||||
|
||||
## 스타일
|
||||
| 항목 | 역할 |
|
||||
|---|---|
|
||||
| `.a01-home`, `.a01-hero` | 페이지 래퍼·히어로 배경 |
|
||||
| `.a01-news-list`, `.a01-news-row` | 뉴스 목록과 행 레이아웃 |
|
||||
| `.a01-feature-grid`, `.a01-feature-card` | 3열 기능 카드 그리드 |
|
||||
| 900px 이하 | 기능 그리드 1열·히어로 제목 축소 |
|
||||
|
||||
## 의존성
|
||||
| 항목 | 역할 |
|
||||
|---|---|
|
||||
| [[a00_app_shell_framework]] | `navigateTo()` 라우팅 |
|
||||
| `config_frontend.ts` | `ROUTES` 상수 |
|
||||
| [[ui_templates]] | 공통 버튼·카드·태그·다국어 |
|
||||
|
||||
## 데이터 흐름
|
||||
| 단계 | 흐름 |
|
||||
|---|---|
|
||||
| 1 | `renderA01Home(root)` → `buildHero()`·`buildNews()`·`buildFeatures()` |
|
||||
| 2 | `buildNews()`는 현재 `MOCK_NEWS` 사용 |
|
||||
| 3 | CTA 클릭 → A07_Register 또는 A02_ProgDetail 이동 |
|
||||
|
||||
## 미해결
|
||||
| 항목 | 상태 |
|
||||
|---|---|
|
||||
| `GET /api/a01/news` | 백엔드 미구현; 현재 뉴스는 하드코딩 |
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
status: stable
|
||||
page_id: A01_Home
|
||||
related_pages: ["[[A02_ProgDetail/A02_frontend]]", "[[A04_NewsHistory/A04_frontend]]", "[[a00_app_shell_framework]]", "[[ui_templates]]"]
|
||||
last_updated: 2026-07-12
|
||||
---
|
||||
|
||||
# A01_Home — Frontend
|
||||
|
||||
로그인 전 01: 홈 페이지. 소개 히어로 + 최신 소식 + 주요 기능 3가지를 showcase하는 정적 소개 페이지. 백엔드 없음.
|
||||
|
||||
## 파일 구조
|
||||
|
||||
| 파일 | 위치 | 역할 |
|
||||
|---|---|---|
|
||||
| `A01_Home_UI_Page.ts` | `A01_Home/A01_Home_UI_Page.ts:1-157` | 페이지 렌더링 로직 |
|
||||
| `A01_Home_UI_Style.css` | `A01_Home/A01_Home_UI_Style.css:1-113` | 스타일 (theme.css 변수만 사용) |
|
||||
|
||||
## 컴포넌트
|
||||
|
||||
### Hero 섹션
|
||||
- **함수:** `buildHero()` (A01_Home_UI_Page.ts:52-85)
|
||||
- **구성:** 제목 + 부제목 + 2개 CTA 버튼 (회원가입/프로그램 상세)
|
||||
- **색상:** 라벤더 그라디언트 배경 (`--color-mist-violet` → `--color-canvas`)
|
||||
|
||||
### 최신 소식 섹션
|
||||
- **함수:** `buildNews()` (A01_Home_UI_Page.ts:87-116)
|
||||
- **데이터:** MOCK_NEWS 배열 (A01_Home_UI_Page.ts:32-36, 백엔드 연결 전)
|
||||
- **각 항목:** 태그 + 뉴스 제목 + 날짜
|
||||
|
||||
### 주요 기능 섹션
|
||||
- **함수:** `buildFeatures()` (A01_Home_UI_Page.ts:118-146)
|
||||
- **레이아웃:** 3열 그리드 (반응형: 900px 이하 1열)
|
||||
- **카드:** createCard 공통 컴포넌트 사용
|
||||
|
||||
## 이벤트 핸들러
|
||||
|
||||
| 함수 | 위치 | 동작 |
|
||||
|---|---|---|
|
||||
| `onA01_Home_GetStarted_Click()` | A01_Home_UI_Page.ts:41-43 | 회원가입(A07_REGISTER) 이동 |
|
||||
| `onA01_Home_Explore_Click()` | A01_Home_UI_Page.ts:45-47 | 프로그램 상세(A02_PROG_DETAIL) 이동 |
|
||||
|
||||
## 로컬라이제이션
|
||||
|
||||
모든 텍스트는 `ui_locales[key][currentLanguageIndex]` 형식으로 [[ui_templates]] 에서 로드.
|
||||
하드코딩 금지.
|
||||
|
||||
| UI 요소 | 로케일 키 |
|
||||
|---|---|
|
||||
| 제목 | `A01_Home_Title` |
|
||||
| 히어로 부제목 | `A01_Home_Hero_Subtitle` |
|
||||
| CTA 버튼 (Primary/Secondary) | `A01_Home_Hero_CtaPrimary`, `A01_Home_Hero_CtaSecondary` |
|
||||
| 소식 섹션 제목 | `A01_Home_News_SectionTitle` |
|
||||
| 소식 태그 | `A01_Home_News_Tag` |
|
||||
| 기능 섹션 제목 | `A01_Home_Features_SectionTitle` |
|
||||
| 기능 카드 1~3 | `A01_Home_Feature{1..3}_Title`, `A01_Home_Feature{1..3}_Desc` |
|
||||
|
||||
## 세부 구현
|
||||
|
||||
스타일 구조·의존성·데이터 흐름·미해결 사항은 [[A01_Home/A01_components]]에 분리했다.
|
||||
Reference in New Issue
Block a user