Vivid AI Frontend Design System
이 문서는 Vivid AI의 프론트엔드 개발을 위한 디자인 시스템, 컬러 팔레트, 타이포그래피 및 공통 컴포넌트 가이드라인을 정의합니다.
1. Design Philosophy
Vivid AI의 디자인은 **"Vivid Pop & Pure"**라는 아이덴티티와 "4-Level Visual Hierarchy" 원칙을 따릅니다.
Core Principles
- Vivid Pop & Pure: 생동감 넘치는 컬러(#FF3366, #7000FF)와 깨끗한 배경(#F8F9FA)의 조화.
- Super Rounded:
rounded-[2rem]이상의 둥근 모서리를 사용하여 친근하고 몰입감 있는 UI 제공. - Borderless & Soft: 딱딱한 경계선(Border) 대신 여백(Whitespace)과 그림자(Soft Shadow)로 계층 구분.
- 4-Level Hierarchy: 정보의 중요도에 따라 시각적 강약을 철저히 구분.
2. Design Tokens (Tailwind Config)
🎨 Color Palette
| Token Name | Hex Code | Usage |
|---|---|---|
| Primary | #FF3366 | 핵심 액션, 브랜드 강조 (Vivid Pink) |
| Secondary | #7000FF | 그라디언트 보조, 깊이감 (Deep Purple) |
| Background | #F8F9FA | 메인 배경 (Soft Gray) |
| Surface | #FFFFFF | 카드, 모달 배경 |
| Text-Primary | #1A1A1A | 본문, 제목 |
| Text-Secondary | #868E96 | 설명, 보조 텍스트 (Level 3) |
| Text-Tertiary | #ADB5BD | 비활성 텍스트, 플레이스홀더 |
🔠 Typography
- Font Family:
Pretendard, system-ui, sans-serif - Logo Font:
Pretendard Black Italic(커스텀 로고용)
| Scale | Class | Size | Weight | Usage |
|---|---|---|---|---|
| H1 | text-3xl | 30px | Black (900) | 페이지 타이틀 (Level 1) |
| H2 | text-2xl | 24px | Bold (700) | 섹션 타이틀 |
| H3 | text-xl | 20px | Bold (700) | 카드 타이틀 |
| Body | text-base | 16px | Medium (500) | 기본 본문 |
| Small | text-sm | 14px | Medium (500) | 설명, 버튼 텍스트 |
| Tiny | text-xs | 12px | Bold (700) | 태그, 메타 정보 |
🌑 Shadows & Radius
- Shadow-Soft:
0 20px 40px -10px rgba(0,0,0,0.05)(기본 카드) - Shadow-Hover:
0 25px 50px -12px rgba(112, 0, 255, 0.15)(호버 시 Secondary 컬러 발광) - Radius-Large:
2.5rem(40px) - 메인 컨테이너, 카드 - Radius-Medium:
1rem(16px) - 내부 버튼, 입력창
3. Component Hierarchy System
모든 컴포넌트는 아래 4단계 위계에 따라 디자인되어야 합니다.
Level 1: Core Focus (주인공)
- 대상: 생성된 이미지, 선택된 페르소나 카드.
- 스타일:
- 가장 큰 영역 차지.
- 가장 선명한 컬러 및 고해상도 이미지.
shadow-2xl등 강한 그림자 사용 가능.
Level 2: Active Tools (조연)
- 대상: Generate 버튼, 프롬프트 입력창, 주요 태그 선택.
- 스타일:
- Primary Button:
bg-gradient-to-r from-primary to-secondary+text-white. - Input:
bg-gray-50+hover:bg-gray-100(Border 없이 배경색으로 구분). - Selection: 선택 시 Primary 컬러 테두리 또는 배경색 적용.
- Primary Button:
Level 3: Passive Context (배경)
- 대상: Top Bar(로고, 프로필), 내비게이션, 크레딧 잔액.
- 스타일:
- Borderless: 경계선 없이 배경과 자연스럽게 어우러짐.
- Top Bar: 스크롤 시
bg-white/80 backdrop-blur-md적용. - Text:
text-gray-400~text-gray-500.
Level 4: Hidden / On-Demand (무대 뒤)
- 대상: 고급 설정(Seed, Sampler), 부가 정보, 삭제 버튼.
- 스타일:
- 기본적으로 숨김 처리 (Accordion, Modal, Hover).
- 노출 시에도 가장 작은 폰트(
text-xs)와 연한 컬러 사용.
4. Common Components Guide
1. Top Bar (Global Header)
- 모든 페이지 상단에 고정적으로 노출.
- 구성: 좌측
Vivid.로고(Gradient Text) + 우측 프로필/크레딧. - 스타일: 배경색 투명 혹은 흰색 블러,
border-none.
2. Action Button (Primary)
// Tailwind Classes
<button class="bg-black text-white px-6 py-3 rounded-full font-bold
hover:bg-gradient-to-r hover:from-primary hover:to-secondary
transition-all duration-300 shadow-lg hover:shadow-primary/40">
Generate
</button>
3. Glass Card (Container)
<div class="bg-white rounded-[2.5rem] p-8 shadow-soft card-hover border border-white/50">
<!-- Content -->
</div>
4. Tag / Chip (Toggle)
- Inactive:
bg-gray-100 text-gray-400 hover:bg-gray-200 - Active:
bg-black text-white(또는 Primary Gradient)
5. Implementation Strategy (Next.js + Tailwind)
- Tailwind Config:
tailwind.config.ts에 위 컬러와 폰트, 쉐도우를theme.extend로 등록. - Base Layer:
globals.css에 기본 배경색(bg-[#F8F9FA])과 폰트 적용. - Components:
src/components/common디렉토리에Button.tsx,Card.tsx,TopBar.tsx등으로 원자(Atomic) 단위 컴포넌트화.