# 회의록 서비스 스타일 가이드 ## 1. 디자인 철학 ### 핵심 원칙 - **Mobile First**: 모바일 환경 우선 설계 - **깔끔한 미니멀리즘**: 정보의 명확한 계층 구조와 여백 활용 - **직관적 UX**: 사용자가 생각 없이 사용 가능한 인터페이스 - **일관성**: 모든 화면에서 동일한 디자인 패턴 적용 --- ## 2. 컬러 시스템 ### Primary Colors (주요 색상) ```css --primary: #4DD5A7; /* 민트 그린 - 메인 액션, CTA */ --primary-dark: #3DBD95; /* 민트 그린 (진하게) - 호버, 액티브 */ --primary-light: #E8F9F3; /* 민트 그린 (연하게) - 배경, 하이라이트 */ ``` ### Semantic Colors (의미 색상) ```css --success: #4DD5A7; /* 성공, 완료 */ --warning: #FFB74D; /* 경고, 임박 */ --error: #FF6B6B; /* 에러, 긴급 */ --info: #64B5F6; /* 정보, 알림 */ --ongoing: #FF9800; /* 진행 중 (주황) */ ``` ### Neutral Colors (중립 색상) ```css --gray-900: #212121; /* 제목, 강조 텍스트 */ --gray-700: #616161; /* 본문 텍스트 */ --gray-500: #9E9E9E; /* 보조 텍스트 */ --gray-300: #E0E0E0; /* 구분선, 테두리 */ --gray-100: #F5F5F5; /* 배경 (연한 회색) */ --white: #FFFFFF; /* 카드, 모달 배경 */ ``` ### 색상 사용 가이드 - **Primary**: 주요 액션 버튼, 활성 탭, FAB - **Success**: 완료 상태, 체크박스 체크됨 - **Warning**: 마감 임박 Todo, 경고 배지 - **Error**: 에러 메시지, 마감 지연 Todo - **Gray**: 텍스트, 구분선, 비활성 요소 --- ## 3. 타이포그래피 ### 폰트 패밀리 ```css --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Roboto", sans-serif; ``` ### 폰트 크기 (Mobile First) ```css /* Mobile (320px~768px) */ --font-h1: 24px; /* 페이지 제목 */ --font-h2: 20px; /* 섹션 제목 */ --font-h3: 18px; /* 서브 타이틀 */ --font-body: 16px; /* 본문 */ --font-small: 14px; /* 보조 정보 */ --font-caption: 12px; /* 캡션, 메타 정보 */ /* Tablet/Desktop (768px+) */ --font-h1-desktop: 32px; --font-h2-desktop: 24px; --font-h3-desktop: 20px; --font-body-desktop: 16px; ``` ### 폰트 굵기 ```css --font-weight-regular: 400; --font-weight-medium: 500; --font-weight-bold: 700; ``` ### 사용 예시 - **제목 (H1)**: font-size: 24px, font-weight: 700, color: --gray-900 - **본문 (Body)**: font-size: 16px, font-weight: 400, color: --gray-700, line-height: 1.6 - **보조 정보 (Small)**: font-size: 14px, font-weight: 400, color: --gray-500 --- ## 4. 간격 시스템 (Spacing) ### 기본 단위 (8px 그리드 시스템) ```css --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px; --space-xxl: 48px; ``` ### 사용 가이드 - **컴포넌트 내부 패딩**: 16px (--space-md) - **카드 간격**: 16px (--space-md) - **섹션 간격**: 24px (--space-lg) - **페이지 여백**: 16px (Mobile), 24px (Tablet/Desktop) --- ## 5. 레이아웃 & 그리드 ### 브레이크포인트 ```css --breakpoint-mobile: 320px; --breakpoint-tablet: 768px; --breakpoint-desktop: 1024px; ``` ### 컨테이너 Max-Width ```css --container-mobile: 100%; --container-tablet: 768px; --container-desktop: 1200px; ``` ### 그리드 시스템 - **Mobile**: 4 columns (16px gutter) - **Tablet**: 8 columns (16px gutter) - **Desktop**: 12 columns (24px gutter) --- ## 6. 카드 디자인 ### 카드 스타일 ```css .card { background: var(--white); border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); padding: 16px; transition: box-shadow 0.2s ease; } .card:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); } ``` ### 카드 변형 - **기본 카드**: 배경 흰색, 그림자 있음 - **강조 카드**: 배경 primary-light, 좌측 4px primary 보더 - **진행 중 카드**: 배경 흰색, 좌측 4px ongoing 보더 --- ## 7. 버튼 디자인 ### Primary Button (주요 액션) ```css .btn-primary { background: var(--primary); color: var(--white); padding: 12px 24px; border-radius: 8px; font-size: 16px; font-weight: 500; border: none; transition: background 0.2s ease; } .btn-primary:hover { background: var(--primary-dark); } ``` ### Secondary Button (보조 액션) ```css .btn-secondary { background: transparent; color: var(--primary); padding: 12px 24px; border-radius: 8px; font-size: 16px; font-weight: 500; border: 1px solid var(--primary); } .btn-secondary:hover { background: var(--primary-light); } ``` ### Ghost Button (최소 강조) ```css .btn-ghost { background: transparent; color: var(--gray-700); padding: 8px 16px; border-radius: 8px; font-size: 14px; border: none; } .btn-ghost:hover { background: var(--gray-100); } ``` ### FAB (Floating Action Button) ```css .fab { width: 56px; height: 56px; background: var(--primary); color: var(--white); border-radius: 50%; box-shadow: 0 4px 12px rgba(77, 213, 167, 0.4); position: fixed; bottom: 24px; right: 24px; } ``` --- ## 8. 배지 (Badges) ### 상태 배지 ```css /* 완료 */ .badge-complete { background: var(--success); color: var(--white); padding: 4px 8px; border-radius: 12px; font-size: 12px; } /* 진행중 */ .badge-ongoing { background: var(--ongoing); color: var(--white); padding: 4px 8px; border-radius: 12px; font-size: 12px; animation: pulse 1.5s ease-in-out infinite; } /* 예정 */ .badge-scheduled { background: var(--info); color: var(--white); padding: 4px 8px; border-radius: 12px; font-size: 12px; } /* 지연 */ .badge-overdue { background: var(--error); color: var(--white); padding: 4px 8px; border-radius: 12px; font-size: 12px; } ``` ### 우선순위 배지 ```css /* 높음 */ .badge-high { background: #FFEBEE; color: #D32F2F; border: 1px solid #EF9A9A; } /* 보통 */ .badge-medium { background: #FFF3E0; color: #F57C00; border: 1px solid #FFCC80; } /* 낮음 */ .badge-low { background: #E8F5E9; color: #388E3C; border: 1px solid #A5D6A7; } ``` --- ## 9. 아이콘 ### 아이콘 라이브러리 - **Material Icons** 또는 **Feather Icons** 권장 - 일관된 스타일 유지 (Outlined 또는 Rounded) ### 아이콘 크기 ```css --icon-sm: 16px; /* 인라인 아이콘 */ --icon-md: 24px; /* 기본 아이콘 */ --icon-lg: 32px; /* 강조 아이콘 */ ``` ### 주요 아이콘 매핑 - **회의**: 📅 calendar - **Todo**: ✅ check-circle - **녹음**: 🎙️ mic - **참석자**: 👤 user - **설정**: ⚙️ settings - **검색**: 🔍 search - **알림**: 🔔 bell - **링크**: 🔗 link --- ## 10. 네비게이션 ### 하단 네비게이션 (Mobile) ```css .bottom-nav { height: 64px; background: var(--white); border-top: 1px solid var(--gray-300); box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08); } .nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--gray-500); } .nav-item.active { color: var(--primary); } ``` ### 탭 네비게이션 ```css .tab { padding: 12px 16px; color: var(--gray-500); border-bottom: 2px solid transparent; transition: all 0.2s ease; } .tab.active { color: var(--primary); border-bottom: 2px solid var(--primary); font-weight: 500; } ``` --- ## 11. 폼 요소 ### Input Field ```css .input { width: 100%; padding: 12px 16px; border: 1px solid var(--gray-300); border-radius: 8px; font-size: 16px; background: var(--white); transition: border-color 0.2s ease; } .input:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 3px rgba(77, 213, 167, 0.1); } .input::placeholder { color: var(--gray-500); } ``` ### Checkbox ```css .checkbox { width: 20px; height: 20px; border: 2px solid var(--gray-300); border-radius: 4px; transition: all 0.2s ease; } .checkbox:checked { background: var(--primary); border-color: var(--primary); } ``` --- ## 12. 모달 & 다이얼로그 ### 모달 오버레이 ```css .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(4px); z-index: 1000; } ``` ### 모달 콘텐츠 ```css .modal { background: var(--white); border-radius: 16px 16px 0 0; /* Mobile: Bottom Sheet */ max-width: 480px; padding: 24px; box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.16); } /* Desktop: Centered Modal */ @media (min-width: 768px) { .modal { border-radius: 16px; margin: auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } } ``` --- ## 13. 애니메이션 ### 트랜지션 ```css --transition-fast: 0.15s ease; --transition-normal: 0.2s ease; --transition-slow: 0.3s ease; ``` ### 주요 애니메이션 #### Fade In ```css @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } ``` #### Slide Up (Bottom Sheet) ```css @keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } } ``` #### Pulse (진행 중 배지) ```css @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } ``` --- ## 14. 접근성 (Accessibility) ### 색상 대비 - **WCAG 2.1 Level AA** 준수 - 텍스트와 배경 대비율: 최소 4.5:1 - 큰 텍스트(18px+) 대비율: 최소 3:1 ### 포커스 스타일 ```css :focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; } ``` ### 터치 타겟 - 최소 크기: 44x44px (iOS), 48x48px (Android) - 터치 타겟 간 최소 간격: 8px --- ## 15. 반응형 디자인 ### Mobile First 접근 ```css /* Mobile (기본) */ .container { padding: 16px; } /* Tablet (768px+) */ @media (min-width: 768px) { .container { padding: 24px; } } /* Desktop (1024px+) */ @media (min-width: 1024px) { .container { padding: 32px; } } ``` --- ## 참조 이미지 분석 결과 ### 확인된 디자인 특징 (reference/sampleimg 기반) 1. **Primary Color**: #4DD5A7 (민트 그린) - 모든 액션 버튼과 강조 요소에 사용 2. **카드 디자인**: 흰색 배경, 12px 둥근 모서리, 미세한 그림자 3. **타이포그래피**: 명확한 계층 구조, 충분한 여백 4. **아바타**: 원형, 다양한 색상 배경 (팀원 구분) 5. **배지**: 둥근 모서리, 명확한 색상 코딩 (진행 중=주황, 완료=민트) 6. **간격**: 16px 기본 간격 일관 적용 7. **섹션 구분**: 미세한 구분선 또는 배경색 차이로 구분 --- ## 변경 이력 | 버전 | 날짜 | 작성자 | 변경 내용 | |------|------|--------|----------| | 1.0 | 2025-10-21 | 최유진 | 최초 작성 - reference/sampleimg 샘플 이미지 기반 스타일 가이드 작성 |