# 아이콘
---
## 라이브러리
**Lucide React** 사용. 일관된 선 굵기(strokeWidth=1.5)와 스타일로 전체 UI의 시각적 통일성을 유지한다.
```bash
npm install lucide-react
```
```tsx
import { ChevronRight, Search, Bell } from 'lucide-react';
```
---
## 사이즈
| 이름 | px | Tailwind 클래스 | 용도 |
|------|----|----------------|------|
| xs | 12px | `size-3` | 배지 내부, 인라인 보조 |
| sm | 16px | `size-4` | 버튼 내부, 레이블 |
| md | 20px | `size-5` | 기본 UI 아이콘 |
| lg | 24px | `size-6` | 네비게이션, 강조 |
| xl | 32px | `size-8` | 상태 표시, 빈 상태 일러스트 |
기본값은 `md` (20px). 별도 지정이 없으면 `size-5` 사용.
---
## strokeWidth
| 컨텍스트 | strokeWidth |
|----------|-------------|
| 기본 UI | 1.5 (Lucide 기본값) |
| 굵은 강조 | 2 |
| 가는 장식 | 1 |
기본값 그대로 사용. 의도적인 경우에만 override.
---
## 색상 규칙
아이콘에 직접 color HEX를 지정하지 않는다. 부모 텍스트 색상을 상속하거나 CSS 변수를 사용한다.
| 상황 | 클래스 |
|------|--------|
| 본문과 함께 | `text-[var(--color-text-primary)]` 상속 |
| 보조 아이콘 | `text-[var(--color-text-secondary)]` |
| 비활성 | `text-[var(--color-text-tertiary)]` |
| 강조 (Primary) | `text-[var(--color-primary)]` |
| 성공 | `text-[var(--color-success)]` |
| 경고 | `text-[var(--color-warning)]` |
| 오류 | `text-[var(--color-danger)]` |
| 정보 | `text-[var(--color-info)]` |
---
## 사용 패턴
### 버튼 내 아이콘
```tsx
```
### 텍스트와 인라인 정렬
```tsx
2시간 전
```
### 아이콘 전용 버튼
```tsx
```
### 상태 아이콘
```tsx
```
---
## 접근성
- 장식용 아이콘: `aria-hidden="true"` 필수
- 의미 있는 아이콘: `aria-label` 또는 시각적으로 숨긴 텍스트 제공
```tsx
// 장식용
// 의미 있는 아이콘 버튼
```
---
## 자주 쓰는 아이콘 목록
| 용도 | 아이콘 |
|------|--------|
| 검색 | `Search` |
| 알림 | `Bell` |
| 설정 | `Settings` |
| 사용자 | `User`, `Users` |
| 메뉴 | `Menu`, `MoreVertical`, `MoreHorizontal` |
| 닫기 | `X` |
| 확인 | `Check`, `CheckCircle` |
| 오류 | `XCircle`, `AlertCircle` |
| 경고 | `AlertTriangle` |
| 정보 | `Info` |
| 편집 | `Pencil`, `Edit2` |
| 삭제 | `Trash2` |
| 추가 | `Plus`, `PlusCircle` |
| 이동 | `ChevronRight`, `ChevronDown`, `ArrowRight` |
| 새로고침 | `RefreshCw` |
| 다운로드 | `Download` |
| 업로드 | `Upload` |
| 링크 | `ExternalLink` |
| 복사 | `Copy` |
| 필터 | `Filter`, `SlidersHorizontal` |
| 정렬 | `ArrowUpDown` |
| 로그 | `FileText`, `ClipboardList` |
| 차트 | `BarChart2`, `LineChart`, `PieChart` |
| 서버 | `Server`, `Database` |
| API | `Zap`, `Code2` |
| 시간 | `Clock`, `Calendar` |