React MUI에서 SvgIcon 사용법 완벽 정리
✅ SvgIcon이란?
SvgIcon
은 React에서 SVG 이미지를 MUI 스타일 시스템과 함께 사용할 수 있게 해주는 컴포넌트입니다. 기본 Material Icons 외에 디자인팀에서 제공한 SVG나 외부에서 가져온 SVG를 커스터마이징하여 사용하고 싶을 때 유용합니다.
✅ 기본 사용 방법
import SvgIcon from "@mui/material/SvgIcon";
function HomeIcon(props) {
return (
<SvgIcon {...props}>
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
</SvgIcon>
);
}
SvgIcon
은 기본적으로viewBox="0 0 24 24"
설정이 포함되어 있으며, MUI 시스템 색상과 크기 적용이 가능합니다.
사용 예시
<HomeIcon color="primary" fontSize="large" />
✅ 외부 SVG 파일을 SvgIcon으로 변환하기
Figma 등에서 export한 SVG 파일을 사용할 수 있습니다.
SVG 예시 코드:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/>
</svg>
React SvgIcon으로 변환:
import SvgIcon from "@mui/material/SvgIcon";
function CustomCircleIcon(props) {
return (
<SvgIcon {...props} viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z" />
</SvgIcon>
);
}
✅ 기본 아이콘 vs 커스텀 SvgIcon
항목 | 설명 |
---|---|
@mui/icons-material |
MUI가 제공하는 기본 아이콘. 바로 import해서 사용 가능. |
SvgIcon |
path를 직접 정의하여 사용하는 커스텀 아이콘 컴포넌트. |
✅ TypeScript에서 사용하기
import { SvgIcon, SvgIconProps } from "@mui/material";
const MyIcon = (props: SvgIconProps) => (
<SvgIcon {...props}>
<path d="..." />
</SvgIcon>
);
✅ 예제: GitHub 아이콘 만들기
import SvgIcon from "@mui/material/SvgIcon";
function GitHubIcon(props) {
return (
<SvgIcon {...props}>
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.44 9.8 8.2 11.4..." />
</SvgIcon>
);
}
<GitHubIcon color="action" fontSize="small" />
✅ 언제 SvgIcon을 사용해야 할까?
- 디자인팀에서 만든 고유 아이콘이 필요한 경우
- SVG 파일을 직접 가져와야 하는 경우
- MUI 테마 색상, 크기, hover 등 스타일 시스템을 그대로 활용하고 싶은 경우
✅ 마무리
MUI의 SvgIcon
을 사용하면 커스터마이징된 SVG 아이콘도 MUI 스타일 시스템 안에서 통일감 있게 사용할 수 있습니다.
외부에서 가져온 아이콘도 간단한 코드 변환만으로 프로젝트에 바로 사용할 수 있어 매우 유용하니, 꼭 익혀두시길 추천합니다! 😎
Leave a comment