BoxIcon
아이콘을 표시하는 읽기 전용 디스플레이 컴포넌트
개요
Cals BoxIcon은 원본 Vue QSBoxIcon 컴포넌트를 React로 재구현한 것으로, 아이콘을 스타일 커스텀과 함께 표시합니다.
주요 특징
- ✅ 아이콘 표시: ReactNode로 모든 아이콘 컴포넌트 지원
- ✅ 커스텀 스타일: backgroundColor, color, fontSize, borderWidth, borderColor 개별 지정
- ✅ 가시성 제어: visible prop으로 선언적 표시/숨김
- ✅ children 지원: icon 대신 커스텀 콘텐츠 렌더링
- ✅ 접근성: aria-label로 의미 있는 아이콘 이름 제공
기본 사용
icon prop으로 아이콘을 표시합니다.
Preview
children 사용
children을 지정하면 icon 대신 커스텀 콘텐츠를 표시합니다.
Preview
아이콘 색상 (color)
color prop으로 아이콘 색상을 변경합니다.
Preview
배경색 (backgroundColor)
Preview
아이콘 크기 (fontSize)
fontSize prop으로 아이콘 크기를 조절합니다.
Preview
테두리 (borderWidth, borderColor)
borderWidth, borderColor를 지정하면 자동으로 border-style: solid가 적용됩니다.
Preview
가시성 제어 (visible)
visible prop으로 선언적으로 표시/숨김을 제어합니다.
Preview
API Reference
Props
| Prop | Type | Default | Description |
|---|---|---|---|
icon | ReactNode | - | 표시할 아이콘 |
visible | boolean | true | 표시 여부 (false면 렌더링 안 함) |
backgroundColor | string | - | 아이콘 영역 배경색 |
color | string | - | 아이콘 색상 |
fontSize | string | - | 아이콘 크기 (font-size) |
borderWidth | string | - | 아이콘 영역 테두리 두께 |
borderColor | string | - | 아이콘 영역 테두리 색상 |
className | string | - | 컨테이너에 적용할 CSS 클래스 |
style | CSSProperties | - | 인라인 스타일 (스타일 오버라이드와 병합) |
aria-label | string | - | 의미 있는 아이콘의 접근성 이름 |
children | ReactNode | - | icon 대신 표시할 커스텀 콘텐츠 |
접근성
권장 사항
- ✅ 의미 있는 아이콘에는
aria-label제공 - ✅ 장식용 아이콘은 자동으로
aria-hidden="true"적용 - ❌ 중요 정보를 color만으로 전달하지 않기 (색맹 고려)
Last updated on