--- 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]]에 분리했다.