# 아이콘 --- ## 라이브러리 **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 // 장식용