hgzero/design/uiux/style-guide.md
yabo0812 2b081eede7 스타일 가이드에 D-day 배지 스타일 문서화
- D-day 배지 섹션 추가 (8. 배지 섹션 내)
- 5가지 D-day 상태별 배지 스타일 정의
  * .badge-dday (D-Day 오늘 마감)
  * .badge-warning (D-1~3 임박)
  * .badge-primary (D-4~7 여유)
  * .badge-secondary (D-8+ 충분)
  * .badge-overdue (D+N 지연)
- CSS 코드 예시 및 색상 체계 설명 포함

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 19:33:11 +09:00

29 KiB

회의록 서비스 스타일 가이드

1. 디자인 철학

핵심 원칙

  • Mobile First: 모바일 환경 우선 설계
  • 깔끔한 미니멀리즘: 정보의 명확한 계층 구조와 여백 활용
  • 직관적 UX: 사용자가 생각 없이 사용 가능한 인터페이스
  • 일관성: 모든 화면에서 동일한 디자인 패턴 적용

2. 컬러 시스템

Primary Colors (주요 색상)

--primary: #4DD5A7;           /* 민트 그린 - 메인 액션, CTA */
--primary-dark: #3DBD95;      /* 민트 그린 (진하게) - 호버, 액티브 */
--primary-light: #E8F9F3;     /* 민트 그린 (연하게) - 배경, 하이라이트 */

Semantic Colors (의미 색상)

--success: #4DD5A7;           /* 성공, 완료 */
--warning: #FFB74D;           /* 경고, 임박 */
--error: #FF6B6B;             /* 에러, 긴급 */
--info: #64B5F6;              /* 정보, 알림 */
--ongoing: #FF9800;           /* 진행 중 (주황) */

Neutral Colors (중립 색상)

--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. 타이포그래피

폰트 패밀리

--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
               "Noto Sans KR", "Roboto", sans-serif;

폰트 크기 (Mobile First)

/* 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;

폰트 굵기

--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 그리드 시스템)

--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. 레이아웃 & 그리드

브레이크포인트

--breakpoint-mobile: 320px;
--breakpoint-tablet: 768px;
--breakpoint-desktop: 1024px;

컨테이너 Max-Width

--container-mobile: 100%;
--container-tablet: 768px;
--container-desktop: 1200px;

그리드 시스템

  • Mobile: 4 columns (16px gutter)
  • Tablet: 8 columns (16px gutter)
  • Desktop: 12 columns (24px gutter)

2열 레이아웃 (회의 진행 화면)

/* Mobile: 단일 열 (스크롤 가능) */
.two-column-layout {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

.editor-panel {
  flex: 1;
  padding: 16px;
  overflow-y: auto;
}

.info-panel {
  height: 50vh;
  border-top: 1px solid var(--gray-300);
}

/* Desktop: 2열 구조 (왼쪽 60-70%, 오른쪽 30-40%) */
@media (min-width: 768px) {
  .two-column-layout {
    flex-direction: row;
  }

  .editor-panel {
    flex: 0 0 65%;
    border-right: 1px solid var(--gray-300);
  }

  .info-panel {
    flex: 0 0 35%;
    height: 100vh;
    border-top: none;
  }
}

사용 시나리오:

  • 회의 진행 화면 (05-회의진행.html)
    • 왼쪽: 텍스트 에디터 (툴바 + contentEditable 영역)
    • 오른쪽: 탭 패널 (참석자/AI 제안/용어 사전/관련 자료)

6. 카드 디자인

카드 스타일

.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 (주요 액션)

.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 (보조 액션)

.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 (최소 강조)

.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)

.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)

상태 배지

/* 완료 */
.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;
}

우선순위 배지

/* 높음 */
.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;
}

D-day 배지

Todo 마감일 표시를 위한 D-day 배지 스타일입니다.

/* D-Day (오늘 마감) */
.badge-dday {
  background: #E8F5E9;
  color: #2E7D32;
  border: 1px solid #81C784;
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 12px;
}

/* D-1 ~ D-3 (임박) */
.badge-warning {
  background: #FFF3E0;
  color: #F57C00;
  border: 1px solid #FFCC80;
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 12px;
}

/* D-4 ~ D-7 (여유) */
.badge-primary {
  background: #E3F2FD;
  color: #1976D2;
  border: 1px solid #90CAF9;
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 12px;
}

/* D-8+ (충분) */
.badge-secondary {
  background: #F5F5F5;
  color: #616161;
  border: 1px solid #E0E0E0;
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 12px;
}

D-day 배지 색상 체계

  • 지연 (D+N): .badge-overdue - 빨간색 배경, 흰색 글씨
  • 오늘 (D-Day): .badge-dday - 연한 녹색 배경, 진한 녹색 글씨, 테두리
  • 임박 (D-1~3): .badge-warning - 연한 주황 배경, 진한 주황 글씨, 테두리
  • 여유 (D-4~7): .badge-primary - 연한 파랑 배경, 진한 파랑 글씨, 테두리
  • 충분 (D-8+): .badge-secondary - 연한 회색 배경, 진한 회색 글씨, 테두리

9. 아이콘

아이콘 라이브러리

  • Material Icons 또는 Feather Icons 권장
  • 일관된 스타일 유지 (Outlined 또는 Rounded)

아이콘 크기

--icon-sm: 16px;              /* 인라인 아이콘 */
--icon-md: 24px;              /* 기본 아이콘 */
--icon-lg: 32px;              /* 강조 아이콘 */

주요 아이콘 매핑

  • 회의: 📅 calendar
  • Todo: check-circle
  • 녹음: 🎙️ mic
  • 참석자: 👤 user
  • 설정: ⚙️ settings
  • 검색: 🔍 search
  • 알림: 🔔 bell
  • 링크: 🔗 link

10. 네비게이션

반응형 네비게이션 전략

  • Mobile (< 768px): 하단 네비게이션 바 (3개 메뉴)
  • Desktop (≥ 768px): 왼쪽 사이드바 (240px 고정폭)

하단 네비게이션 (Mobile)

.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 64px;
  background: var(--white);
  border-top: 1px solid var(--gray-300);
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  display: flex;
  justify-content: space-around;
  z-index: 100;
}

.nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--gray-500);
  font-size: 12px;
  cursor: pointer;
  transition: color 0.2s ease;
}

.nav-item.active {
  color: var(--primary);
}

.nav-item-icon {
  font-size: 24px;
}

/* Desktop에서 하단 네비게이션 숨김 */
@media (min-width: 768px) {
  .bottom-nav {
    display: none;
  }
}

메뉴 항목:

  • 홈 (🏠) → 대시보드
  • 회의록 (📋) → 회의록목록조회
  • Todo () → Todo관리
  • 프로필 (👤) → 사용자 프로필 및 설정

사이드바 네비게이션 (Desktop)

.sidebar {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 240px;
  background: var(--white);
  border-right: 1px solid var(--gray-300);
  display: none;
  flex-direction: column;
  z-index: 100;
}

@media (min-width: 768px) {
  .sidebar {
    display: flex;
  }

  .main-content {
    margin-left: 240px;
  }
}

/* 사이드바 로고 영역 */
.sidebar-logo {
  padding: 24px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--gray-300);
}

.sidebar-logo-icon {
  width: 40px;
  height: 40px;
  background: var(--primary);
  color: var(--white);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
}

.sidebar-logo-text {
  font-size: 18px;
  font-weight: 700;
  color: var(--gray-900);
}

/* 사이드바 메뉴 */
.sidebar-nav {
  flex: 1;
  padding: 16px 8px;
  overflow-y: auto;
}

.sidebar-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 4px;
  border-radius: 8px;
  color: var(--gray-700);
  font-size: 16px;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

.sidebar-nav-item:hover {
  background: var(--gray-100);
}

.sidebar-nav-item.active {
  background: var(--primary-light);
  color: var(--primary);
  font-weight: 500;
}

.sidebar-nav-icon {
  font-size: 20px;
  width: 24px;
  text-align: center;
}

/* 사이드바 사용자 정보 영역 */
.sidebar-user {
  padding: 16px;
  border-top: 1px solid var(--gray-300);
  display: flex;
  align-items: center;
  gap: 12px;
}

.sidebar-user-info {
  flex: 1;
}

.sidebar-user-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--gray-900);
}

.sidebar-user-email {
  font-size: 12px;
  color: var(--gray-500);
  margin-top: 2px;
}

메뉴 항목:

  • 📊 대시보드 (active)
  • 📋 회의 목록 → 회의록목록조회
  • Todo 관리 → Todo관리

탭 네비게이션

.tab-nav {
  display: flex;
  border-bottom: 1px solid var(--gray-300);
  background: var(--white);
}

.tab {
  padding: 12px 16px;
  color: var(--gray-500);
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  transition: all 0.2s ease;
}

.tab:hover {
  color: var(--gray-700);
}

.tab.active {
  color: var(--primary);
  border-bottom: 2px solid var(--primary);
  font-weight: 500;
}

사용 예시:

  • 회의록 상세 화면: 회의록 / 대시보드 (2개 탭)
  • 회의 진행 화면 (오른쪽 패널): 참석자 / AI 제안 / 용어 사전 / 관련 자료 (4개 탭)

우측 사이드바 탭 (회의 진행 화면)

레이아웃

/* 메인 레이아웃 */
.main-layout {
  display: flex;
  gap: 16px;
}

.main-content {
  flex: 1;
  min-width: 0;
}

.right-sidebar {
  display: none; /* 모바일에서는 숨김 */
}

@media (min-width: 768px) {
  .right-sidebar {
    display: block;
    width: 320px;
    flex-shrink: 0;
    border-left: 1px solid var(--gray-300);
    padding-left: 16px;
  }
}

사이드바 탭 스타일

.sidebar-tabs {
  display: flex;
  border-bottom: 2px solid var(--gray-300);
  margin-bottom: 16px;
  overflow-x: auto;
  gap: 4px;
}

.sidebar-tab {
  flex: 1;
  padding: 8px 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: var(--gray-500);
  transition: all 0.2s ease;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  text-align: center;
}

.sidebar-tab.active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}

.sidebar-panel {
  display: none;
}

.sidebar-panel.active {
  display: block;
  animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

참석자 리스트

.participant-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border-bottom: 1px solid var(--gray-100);
}

.participant-item:last-child {
  border-bottom: none;
}

.participant-status {
  font-size: 10px;
  color: var(--gray-500);
}

AI 제안 카드

.ai-suggestion-card {
  background: var(--primary-light);
  border: 1px dashed var(--primary);
  border-radius: 8px;
  padding: 8px;
  margin-bottom: 8px;
}

.ai-suggestion-title {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 4px;
}

.ai-suggestion-content {
  font-size: 12px;
  color: var(--gray-700);
  line-height: 1.4;
  margin-bottom: 8px;
}

.ai-suggestion-actions {
  display: flex;
  gap: 4px;
}

용어 사전 리스트

.term-item {
  padding: 8px;
  border-radius: 4px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  margin-bottom: 8px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.term-item:hover {
  background: var(--gray-100);
}

.term-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--gray-900);
  margin-bottom: 2px;
}

.term-definition {
  font-size: 12px;
  color: var(--gray-600);
  line-height: 1.3;
}

.term-badge {
  display: inline-block;
  font-size: 10px;
  padding: 2px 6px;
  background: var(--warning);
  color: var(--white);
  border-radius: 8px;
  margin-left: 4px;
}

관련 자료 리스트

.related-doc-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px;
  border-radius: 4px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  margin-bottom: 8px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.related-doc-item:hover {
  background: var(--gray-100);
}

.related-doc-icon {
  font-size: 24px;
  flex-shrink: 0;
}

.related-doc-info {
  flex: 1;
  min-width: 0;
}

.related-doc-title {
  font-size: 14px;
  font-weight: 500;
  color: var(--gray-900);
  margin-bottom: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.related-doc-meta {
  font-size: 12px;
  color: var(--gray-500);
}

.related-doc-relevance {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 12px;
  color: var(--warning);
  flex-shrink: 0;
}

사용 위치:

  • 회의 진행 화면 (05-회의진행.html)
  • 데스크톱/태블릿 (768px+)에서만 표시
  • 모바일에서는 하단 시트로 변환 (향후 구현)

구성 요소:

  1. 참석자 탭: 현재 회의 참석자 목록 및 상태
  2. AI 제안 탭: 회의록 요약 및 Todo 자동 추출 제안
  3. 용어 사전 탭: 회의에서 언급된 전문용어 설명
  4. 관련 자료 탭: AI가 찾은 관련 회의록 목록

11. 폼 요소

Input Field

.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

.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. 모달 & 다이얼로그

모달 오버레이

.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;
}

모달 콘텐츠

.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. 애니메이션

트랜지션

--transition-fast: 0.15s ease;
--transition-normal: 0.2s ease;
--transition-slow: 0.3s ease;

주요 애니메이션

Fade In

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

Slide Up (Bottom Sheet)

@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

Pulse (진행 중 배지)

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

14. 접근성 (Accessibility)

색상 대비

  • WCAG 2.1 Level AA 준수
  • 텍스트와 배경 대비율: 최소 4.5:1
  • 큰 텍스트(18px+) 대비율: 최소 3:1

포커스 스타일

:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

터치 타겟

  • 최소 크기: 44x44px (iOS), 48x48px (Android)
  • 터치 타겟 간 최소 간격: 8px

15. 반응형 디자인

Mobile First 접근

/* 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. 섹션 구분: 미세한 구분선 또는 배경색 차이로 구분

16. 회의 진행 화면 우측 사이드바 카드 디자인

공통 디자인 원칙 (통일성)

모든 우측 사이드바 카드는 일관된 디자인 시스템을 따릅니다:

/* 공통 카드 베이스 스타일 */
.sidebar-card {
  background: #FAFAFA;            /* 연한 회색 배경 */
  border: 1px dashed #D0D0D0;     /* 회색 점선 테두리 */
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
}

/* 공통 카드 타이틀 */
.sidebar-card-title {
  font-size: var(--font-body);    /* 16px */
  font-weight: var(--font-weight-bold);
  color: var(--primary);          /* 민트 그린 */
  margin-bottom: var(--space-xs);
}

/* 공통 카드 본문 */
.sidebar-card-text {
  font-size: var(--font-small);   /* 14px */
  color: var(--gray-700);
  line-height: 1.6;
}

/* 공통 호버 */
.sidebar-card:hover {
  background: #F0F0F0;            /* 조금 더 진한 회색 */
  border-color: var(--primary);   /* 민트 그린 테두리 */
}

AI 제안 카드

.ai-suggestion-card {
  background: #FAFAFA;
  border: 1px dashed #D0D0D0;
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
}

.ai-suggestion-header {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--font-body);    /* 16px */
  font-weight: var(--font-weight-bold);
  color: var(--primary);
  margin-bottom: var(--space-sm);
}

.ai-suggestion-text {
  font-size: var(--font-small);   /* 14px */
  color: var(--gray-700);
  line-height: 1.6;
}

구성 요소:

  • 헤더: (아이콘) + 제목 (16px Bold, 민트 그린)
  • 본문: 제안 내용 (14px, gray-700)
  • 액션 버튼: Primary 버튼 + Ghost 버튼

용어 사전 카드

.term-item {
  background: #FAFAFA;            /* 기본: 연한 회색 배경 */
  border: 1px dashed #D0D0D0;
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
}

.term-item.highlight {
  background: var(--primary-light); /* 하이라이트: 민트 연한 배경 */
  border: 1px dashed var(--primary); /* 민트 그린 점선 테두리 */
}

.term-item:hover {
  background: #F0F0F0;
  border-color: var(--primary);
}

.term-name {
  font-size: var(--font-body);    /* 16px */
  font-weight: var(--font-weight-bold);
  color: var(--primary);          /* 민트 그린 */
  margin-bottom: var(--space-xs);
}

.term-definition {
  font-size: var(--font-small);   /* 14px */
  color: var(--gray-700);
  line-height: 1.6;
}

.term-context {
  font-size: 11px;
  color: var(--gray-500);
  padding-top: var(--space-xs);
  border-top: 1px dashed #D0D0D0; /* 점선 구분선 */
  margin-top: var(--space-xs);
}

구성 요소:

  • 용어명: Bold (16px, 민트 그린) + 카테고리 배지 + 언급 아이콘 (💬, 14px)
  • 정의: 일반 텍스트 (14px, gray-700)
  • 컨텍스트: 작은 텍스트 (11px, gray-500, 상단 점선 구분선)
    • "회의에서 N회 언급됨"
    • "관련 회의록에서 언급됨"
    • "회의에서 언급됨 (HH:MM)"
    • "{관련 회의록명} (날짜)에서 {컨텍스트 정보}"

하이라이트 조건:

  • 현재 진행 중인 회의에서 언급된 용어
  • 민트 그린 연한 배경 (#E8F9F3)
  • 민트 그린 점선 테두리

인터랙션:

  • 호버 시: 조금 더 진한 회색 배경 (#F0F0F0) + 민트 그린 테두리

관련 회의록 카드

.related-doc-item {
  background: #FAFAFA;            /* 연한 회색 배경 */
  border: 1px dashed #D0D0D0;     /* 회색 점선 테두리 */
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
}

.related-doc-item:hover {
  background: #F0F0F0;            /* 조금 더 진한 회색 */
  border-color: var(--primary);   /* 민트 그린 테두리 */
}

.related-doc-header {
  font-size: var(--font-body);    /* 16px */
  font-weight: var(--font-weight-bold);
  color: var(--primary);          /* 민트 그린 */
  margin-bottom: var(--space-xs);
}

.related-doc-text {
  font-size: var(--font-small);   /* 14px */
  color: var(--gray-700);
  line-height: 1.6;
}

.related-doc-meta {
  font-size: var(--font-caption); /* 12px */
  color: var(--gray-600);
}

.related-doc-relevance {
  color: var(--success);          /* 관련도는 초록색 */
  font-weight: var(--font-weight-medium);
}

구성 요소:

  • 제목: Bold (16px, 민트 그린)
  • 메타정보: 날짜 | 관련도 (12px, gray-600)
    • 관련도는 초록색 (success, font-weight-medium)
  • 본문: 요약 텍스트 (14px, gray-700, line-height 1.6)

인터랙션:

  • 호버 시: 조금 더 진한 회색 배경 (#F0F0F0) + 민트 그린 테두리

통일성 체크리스트

모든 사이드바 카드는 다음을 준수합니다:

  • 배경: #FAFAFA (연한 회색)
  • 테두리: 1px dashed #D0D0D0 (회색 점선)
  • 타이틀 색상: var(--primary) (민트 그린)
  • 타이틀 크기: 16px (var(--font-body))
  • 타이틀 굵기: Bold (var(--font-weight-bold))
  • 본문 색상: var(--gray-700)
  • 본문 크기: 14px (var(--font-small))
  • 호버 배경: #F0F0F0 (더 진한 회색)
  • 호버 테두리: var(--primary) (민트 그린)

변경 이력

버전 날짜 작성자 변경 내용
1.0 2025-10-21 최유진 최초 작성 - reference/sampleimg 샘플 이미지 기반 스타일 가이드 작성
1.0.1 2025-10-21 이미준 네비게이션 간소화 및 인터랙션 개선
- 설정 메뉴를 프로필 메뉴로 통합 (사이드바, 하단 네비게이션)
- 로그아웃 및 개인 설정 기능은 프로필 영역에서 접근
- Todo 항목 클릭 시 회의록 상세 화면으로 이동하는 인터랙션 추가
- 네비게이션 메뉴 항목: 대시보드, 회의 목록, Todo 관리, 프로필 (4개 항목)
1.1 2025-10-21 이미준 반응형 네비게이션 및 2열 레이아웃 패턴 추가
- 반응형 네비게이션 전략: Mobile (하단 네비게이션), Desktop (왼쪽 사이드바 240px)
- 사이드바 네비게이션 (Desktop): 로고 영역, 메뉴 항목 (대시보드/회의 목록/Todo 관리), 사용자 정보 영역
- 하단 네비게이션 (Mobile): 홈/회의록/Todo/프로필 (4개 메뉴)
- 2열 레이아웃 패턴: 회의 진행 화면용 (왼쪽 65% 에디터, 오른쪽 35% 탭 패널)
- 탭 네비게이션 사용 예시: 회의록 상세 (2개 탭), 회의 진행 (4개 탭)
1.1.1 2025-10-21 도그냥 회의 진행 화면 개선
- 메모 기능 제거: 하단 액션바에서 메모 버튼 제거 (일시정지, 회의종료만 유지)
- AI 제안 적용 기능 개선:
- 논의사항 제안: "논의사항에 적용" 버튼으로 논의사항 섹션에 직접 추가
- 결정사항 제안: "결정사항에 적용" 버튼으로 결정사항 섹션에 직접 추가
- 액션아이템 제안: "액션아이템에 적용" 버튼으로 중복 제거 후 액션아이템 섹션에 추가
- 적용 시 해당 섹션 탭으로 자동 이동 및 성공 토스트 표시
1.1.2 2025-10-21 도그냥 우측 사이드바 탭 디자인 개선 (gappa 프로토타입 기반)
- AI 제안 카드: 회색 배경(#F5F5F5), 민트 그린 점선 테두리, 헤더 (/📋 아이콘 + 제목), 본문, 액션 버튼
- 용어 사전 카드:
- 흰색 배경, 회색 실선 테두리
- 하이라이트 카드: 민트 그린 연한 배경(#E8F9F3), 민트 그린 테두리 (현재 회의에서 언급된 용어)
- 용어명 + 카테고리 배지 + 언급 아이콘 (💬)
- 하단 컨텍스트: "회의에서 N회 언급됨" 또는 "관련 회의록에서 언급됨"
- 호버 시: 민트 그린 테두리 + 그림자
- 관련 회의록 카드: 회색 배경(#F5F5F5), 회색 점선 테두리, 제목 + 메타정보 (날짜, 관련도) + 요약 텍스트
1.1.3 2025-10-21 도그냥 용어 사전 및 관련 회의록 탭 디자인 통일성 개선
- 용어 사전 카드 디자인 개선:
- 기본 상태: 민트 배경에서 화이트 배경 + 회색 테두리로 변경
- 하이라이트 상태: 민트 연한 배경 + 민트 테두리 (현재 회의 언급 용어만)
- 용어명: 16px Semibold
- 배지: 민트 연한 배경, 테두리 제거
- 언급 아이콘: 14px
- 컨텍스트: 상단 회색 구분선, 11px
- 호버: 민트 테두리 + 그림자
- 관련 회의록 카드 타이틀 강조:
- 제목 폰트: Semibold → Bold (16px)
- 호버 시: 더 진한 회색 배경
- 사이드바 패널 타이틀 통일:
- h3: 14px Bold (섹션 타이틀)
- h4: 14px Semibold (서브 타이틀)
1.1.4 2025-10-21 도그냥 우측 사이드바 3개 탭 (AI제안, 용어사전, 관련회의록) 디자인 통일성 개선
- 공통 디자인 원칙 수립: 모든 카드가 일관된 디자인 시스템을 따르도록 개선
- 배경: #FAFAFA (연한 회색)
- 테두리: 1px dashed #D0D0D0 (회색 점선)
- 타이틀: 16px Bold, 민트 그린 (var(--primary))
- 본문: 14px, gray-700
- 호버 상태: 진한 회색 배경 (#F0F0F0) + 민트 그린 테두리
- AI 제안 카드: 헤더 폰트 Bold (16px)
- 용어 사전 카드: 배경 회색(#FAFAFA), 점선 테두리, 타이틀 민트 그린, 컨텍스트 구분선 점선으로 변경
- 관련 회의록 카드: 타이틀 민트 그린으로 변경, 호버 시 민트 테두리 추가
- 통일성 체크리스트 추가: 9가지 디자인 규칙 명시
1.2 2025-10-22 이미준 프로토타입 기반 스타일 가이드 업데이트
- 하단 네비게이션 복원: 4개 메뉴 (홈/회의록/Todo/프로필) - 프로토타입 구현 기준 반영
- 프로필 메뉴 기능: 사용자 정보, 개인 설정, 로그아웃 접근
- 일관성 개선: 프로토타입과 스타일 가이드 통일