# POP 크기 프리셋 가이드 ## 컴포넌트별 기본 크기 컴포넌트를 만들면 자동으로 적용되는 크기입니다. --- ## 버튼 (PopButton) | 사이즈 | 높이 | 최소 너비 | 폰트 | 용도 | |-------|------|----------|------|-----| | sm | 32px | 60px | 12px | 보조 버튼 | | md | 40px | 80px | 14px | 일반 버튼 | | **lg** | **48px** | **100px** | **16px** | **POP 기본** | | xl | 56px | 120px | 18px | 주요 액션 | | industrial | 60px | 140px | 20px | 장갑 착용 | ```typescript // POP에서는 lg가 기본 확인 // 산업현장 작업 완료 ``` --- ## 입력창 (PopInput) | 사이즈 | 높이 | 폰트 | 용도 | |-------|------|------|-----| | md | 40px | 14px | 일반 | | **lg** | **48px** | **16px** | **POP 기본** | | xl | 56px | 18px | 강조 입력 | ```typescript // 입력창 너비는 항상 부모 채움 (fill) ``` --- ## 리스트 행 (PopListItem) | 사이즈 | 높이 | 폰트 | 용도 | |-------|------|------|-----| | compact | 40px | 14px | 많은 데이터 | | **normal** | **48px** | **16px** | **POP 기본** | | spacious | 56px | 18px | 여유로운 | | industrial | 64px | 20px | 장갑 착용 | ```typescript 작업지시 #1234 ``` --- ## 아이콘 (PopIcon) | 사이즈 | 크기 | 터치 영역 | 용도 | |-------|-----|----------|-----| | sm | 16px | 32px | 뱃지 안 | | md | 20px | 40px | 텍스트 옆 | | **lg** | **24px** | **48px** | **POP 기본** | | xl | 32px | 56px | 강조 | ```typescript // 아이콘만 있는 버튼 // 텍스트 + 아이콘 저장 ``` --- ## 카드 (PopCard) | 요소 | 크기 | |------|-----| | 패딩 | 16px | | 제목 폰트 | 18px (heading) | | 본문 폰트 | 16px (body) | | 모서리 | 8px | | 최소 높이 | 100px | ```typescript 작업지시 내용 ``` --- ## 숫자패드 (PopNumberPad) | 요소 | 크기 | |------|-----| | 버튼 크기 | 60px x 60px | | 버튼 간격 | 8px | | 전체 너비 | 240px | | 폰트 | 24px | ``` ┌─────────────────────┐ │ [ 123 ] │ ← 디스플레이 48px ├─────┬─────┬─────────┤ │ 7 │ 8 │ 9 │ ← │ ← 각 버튼 60x60 ├─────┼─────┼─────────┤ │ 4 │ 5 │ 6 │ C │ ├─────┼─────┼─────────┤ │ 1 │ 2 │ 3 │ │ ├─────┼─────┼─────│ OK│ │ 0 │ . │ +- │ │ └─────┴─────┴─────────┘ ``` --- ## 상태 표시 (PopStatusBox) | 사이즈 | 너비 | 높이 | 아이콘 | 용도 | |-------|-----|------|-------|-----| | sm | 80px | 60px | 24px | 여러 개 나열 | | **md** | **120px** | **80px** | **32px** | **POP 기본** | | lg | 160px | 100px | 40px | 강조 | ```typescript ``` --- ## KPI 게이지 (PopKpiGauge) | 사이즈 | 너비 | 높이 | 용도 | |-------|-----|------|-----| | sm | 120px | 120px | 여러 개 나열 | | **md** | **180px** | **180px** | **POP 기본** | | lg | 240px | 240px | 강조 | --- ## 간격 (Gap/Padding) | 이름 | 값 | 용도 | |------|---|-----| | xs | 4px | 아이콘-텍스트 | | sm | 8px | 요소 내부 | | **md** | **16px** | **컴포넌트 간** | | lg | 24px | 섹션 간 | | xl | 32px | 영역 구분 | --- ## 반응형 조절 화면 크기에 따라 자동 조절되는 값들: | 요소 | 8인치 태블릿 | 12인치 태블릿 | |------|------------|--------------| | 본문 폰트 | 14px | 18px | | 제목 폰트 | 18px | 28px | | 컨테이너 패딩 | 12px | 24px | | 카드 간격 | 12px | 16px | **고정되는 값들 (변하지 않음)**: - 버튼 높이: 48px - 입력창 높이: 48px - 리스트 행 높이: 48px - 터치 최소 영역: 48px --- ## 적용 예시 ```typescript // 컴포넌트 내부에서 자동 적용 function PopButton({ size = "lg", ...props }) { const sizeStyles = { sm: { height: 32, minWidth: 60, fontSize: 12 }, md: { height: 40, minWidth: 80, fontSize: 14 }, lg: { height: 48, minWidth: 100, fontSize: 16 }, // POP 기본 xl: { height: 56, minWidth: 120, fontSize: 18 }, industrial: { height: 60, minWidth: 140, fontSize: 20 }, }; return (