Repository navigation
FrontEnd‐Components
LeeSongMi edited this page Oct 9, 2026
·
3 revisions
본 프로젝트의 UI 컴포넌트는 Figma 컴포넌트와 코드 컴포넌트를 1:1로 대응시킨다.
Figma에서 먼저 컴포넌트를 만들고, 모든 화면은 그 컴포넌트의 인스턴스로 조합했다. 코드에서도 같은 이름 · 같은 속성(텍스트, 상태)으로 구현해 디자인과 구현이 어긋나지 않게 한다.
- 디자인 수정이 컴포넌트 한 곳에서 모든 화면으로 전파되도록 한다.
- 색 · 모서리 · 그림자 값은 하드코딩하지 않고 디자인 토큰에 연결한다.
- 반복 UI(Dialog, Select, Table 등)는 shadcn/ui를 바탕으로 만들고 스타일만 토큰으로 맞춘다.
- 공통
- 데스크톱 · 모바일에서 함께 쓰는 컴포넌트
- 데스크톱 전용 / 모바일 전용
- 같은 역할이라도 화면 크기에 맞게 구조가 다른 컴포넌트 (예: Header ↔ MobileHeader + BottomTabBar)
| Component | 속성 | Description |
|---|---|---|
| Button | Type = Primary · Secondary · Inverse · Disabled | Primary는 주요 행동(장바구니 담기, 주문하기), Inverse는 어두운 배너 위, Disabled는 준비 중 기능(카카오 로그인) |
| Badge | Label | 장바구니 개수, 주문 상태, 신상품 표시 |
| Chip | State = Default · Selected | 카테고리 필터, 결제 수단 선택. 선택 상태는 primary-600 |
| Input | Label, Placeholder | 주문서 · 주문조회 입력 |
| SearchBar | Placeholder | 검색 모달 · 검색 페이지 |
| QuantityStepper | Quantity | 상품 상세 · 장바구니 수량 조절 |
| ProductCard | Name, Subtitle, Price | 상품 목록 카드. 이미지는 카드 폭을 따라가며 정사각형 유지 |
| OrderSummary | Subtotal, Shipping, Total | 장바구니 · 주문서 금액 요약 |
| OrderCard | Date, Items, OrderNo, Amount | 주문 내역(회원) 목록 카드 |
| OrderItemRow | Name, Detail, LineTotal | 주문 상세의 상품 행 |
| Icon | bag, search, arrow-right, minus, plus, x, lock, check, user, grid, menu, more, pencil, trash, chevron-down, arrow-left, image, inbox | 24px, 선 1.5px. 색은 토큰에 연결 (more부터는 관리자에서 추가) |
| Component | 속성 | Description |
|---|---|---|
| Header | — | 로고 · 카테고리 메뉴(All, Bread, Cake, Cookie, Beverage) · 검색 · 장바구니 · 마이페이지 · 관리자 페이지 버튼 |
| Footer | — | 3단 구성 (쇼핑 · 고객 안내 · 연락처) |
| CategoryCard | Title, Description | 홈 카테고리 카드. 카테고리 색 배경 + 배경 없는 오브젝트 + 한 줄 설명 + 화살표 |
| CartItem | Name, Subtitle, UnitPrice, LineTotal | 장바구니 상품 행 |
| Component | 속성 | Description |
|---|---|---|
| MobileHeader | — | 로고만 표시 |
| BottomTabBar | Active = None · Search · Cart · MyPage · Admin · Products-Open | 하단 고정 탭 바. 가운데 상품 버튼을 누르면 Products-Open 상태 |
| CategoryTab | State = Default · Selected, Label | 원형 카테고리 아이콘 탭. 상품 버블 메뉴의 버블로도 사용 |
| MobileCartItem | Name, UnitPrice, LineTotal | 장바구니 상품 행 (이름 · 삭제 / 수량 · 합계 2줄) |
| MobileFooter | — | 1단 구성 |
관리자 전용 컴포넌트는 Components 페이지의 Admin Components 보드에 모았다. 쇼핑몰과 공유하는 컴포넌트(Button, Chip, Input, SearchBar)는 수정하지 않고 그대로 쓴다.
| Component | 속성 | Description |
|---|---|---|
| CategoryBadge | Category = Bread · Cake · Cookie · Beverage | 상품 테이블의 카테고리 표시. 배경은 카테고리 색 토큰 |
| StatusBadge | Status = 주문 접수 · 배송 준비중 · 배송중 · 배송 완료 · 주문 취소 | 주문 상태. 취소는 배경 없이 테두리만 |
| Checkbox | State = Unchecked · Checked · Indeterminate | 일괄 선택. 선택 색은 primary |
| AdminSelect · AdminTextarea | Label, Placeholder | Input과 같은 모양의 선택 · 여러 줄 입력 |
| ImageOption | State = Default · Selected | 상품 이미지 선택지. 고정 이미지 12장 중 하나를 고름 |
| PasswordDialog | Title, Description | 데이터 변경 전 관리자 비밀번호 확인 |
| Component | 속성 | Description |
|---|---|---|
| AdminSidebar | Active = Products · Orders | 사이드바(상품 · 주문). 하단에 쇼핑몰로 돌아가기 |
| AdminNavItem | State = Default · Active, Label | 사이드바 메뉴 항목. Active는 primary-200 배경 |
| AdminHeader | Title | 경로 + 오른쪽에 "조회는 누구나 가능 · 변경은 비밀번호 확인 후 실행" 안내 |
| ProductTableHeader · ProductRow | Name, Subtitle, Price | 상품 테이블. 썸네일(사각), 카테고리 배지, 행 끝 … 버튼 |
| OrderTableHeader · OrderRow | OrderNo, Date, Name, Phone, Address, Items, Amount | 주문 테이블. 체크박스 열 + 마스킹된 이름 · 연락처 · 주소 + 상태 배지 ▾ |
| RowActionMenu | — | 상품 행 … 메뉴(수정 · 삭제) |
| StatusMenu | — | 주문 1건의 상태 변경 메뉴. 현재 상태에 체크 |
| BulkActionBar | Count | 주문을 선택하면 화면 하단에 뜨는 바 (n건 선택됨 · 상태 일괄 변경 · 선택 해제) |
| BulkStatusMenu | Caption | 선택한 주문들을 맞출 상태 메뉴 |
| Component | 속성 | Description |
|---|---|---|
| AdminMobileHeader | — | 로고 + ADMIN 태그 |
| AdminTabBar | Active = Products · Orders · Received | 하단 고정 탭 바(상품 · 주문 · 접수 · 쇼핑몰). 접수 탭에 새 주문 건수 배지 |
| MobileProductItem | Name, Price | 원형 썸네일 + 이름 + 카테고리 배지 + 가격, 끝에 … 버튼 |
| MobileOrderCard | State = Default · Unselected · Selected, OrderNo, Date, Customer, Address, Items, Amount | 주문 카드. 선택 모드에서는 체크박스가 붙고 상태 ▾는 숨김 |
| MobileStatusTabs | Active = 전체 · 접수 | 주문 상태 필터. 화면 폭을 나눈 밑줄 탭 |
| MobileActionSheet | Name, Meta | 상품 … 버튼의 하단 액션 시트(수정 · 삭제) |
| MobileStatusSheet | OrderNo | 주문 1건의 상태 변경 시트 |
| MobileBulkBar | — | 선택 모드의 하단 바(전체 선택 · n건 상태 변경). 탭 바 자리를 대신함 |
| MobileBulkStatusSheet | — | 일괄 상태 변경 시트. 상태 하나를 고르고 버튼으로 확정 |
| MobilePasswordSheet | Title, Description | 비밀번호 확인 하단 시트 |
- 🎨 Colors
- ✏️ Design
- 🧩 Components
- 🔀 State
- 🏗️ Architecture
- 🗃️ Data
- ⏱️ Time
- 🤖 Figma MCP
- 🧪 Testing
- 🚀 Performance
- 🛠️ Troubleshooting