프로젝트에 들어가기 앞서, 아이콘을 먼저 공통화 할일이 생길거야.
1️⃣ 폴더 구조 설정
피그마에서 내보낸 아이콘과 로고 파일을 재사용 가능하고 유지보수하기 쉽게 관리하려면
다음과 같은 폴더 구조를 추천해.
src/
├── assets/
│ ├── icons/
│ │ ├── search.svg
│ │ ├── user.svg
│ │ └── home.svg
│ ├── logos/
│ │ ├── main-logo.svg
│ │ └── secondary-logo.svg
│ └── index.ts
2️⃣ 피그마에서 내보내기
아이콘 및 로고 정리
피그마에서 아이콘 및 로고를 선택:
사용하는 모든 아이콘과 로고를 한 곳에 모아 프레임(Frame)으로 그룹화.
각 아이콘/로고에 의미 있는 이름을 부여하세요(예: search, home, main-logo).
SVG 형식으로 내보내기:
아이콘과 로고를 벡터 형식(SVG)으로 내보내면 화면 크기에 상관없이 선명하게 유지해.
피그마 내보내기 설정
아이콘과 로고를 선택:
내보낼 아이콘 또는 로고 선택.
Export 설정:
오른쪽 패널에서 Export 섹션 클릭.
SVG 형식으로 설정.
내보내기 실행:
내보내기를 실행하면, 선택한 아이콘/로고를 .svg 파일로 저장할 수 있어.
SVG 최적화 (선택 사항):
내보낸 SVG 파일이 불필요하게 큰 경우 SVGO와 같은 도구로 최적화할 수 있어.
3️⃣ VSCode에 아이콘 및 로고 추가
아이콘: src/assets/icons/
로고: src/assets/logos/
// src/assets/index.ts
// 아이콘
export { default as SearchIcon } from './icons/search.svg';
export { default as UserIcon } from './icons/user.svg';
export { default as HomeIcon } from './icons/home.svg';
// 로고
export { default as MainLogo } from './logos/main-logo.svg';
export { default as SecondaryLogo } from './logos/secondary-logo.svg';
import { SearchIcon, MainLogo } from '../assets';
const Header = () => {
return (
<header className="flex items-center p-4">
<MainLogo className="w-32 h-auto" />
<SearchIcon className="w-6 h-6 ml-auto" />
</header>
);
};
export default Header;
import Image from 'next/image';
import MainLogo from '../assets/logos/main-logo.png';
const Header = () => {
return (
<header className="flex items-center p-4">
<Image src={MainLogo} alt="Main Logo" width={128} height={64} />
</header>
);
};
export default Header;
- 피그마에서 SVG 형식으로 아이콘과 로고를 내보내기.
- VSCode에서 assets/icons와 assets/logos 폴더로 관리.
- index.ts를 활용해 한 곳에서 import/export 관리.
- 컴포넌트에서 쉽게 가져다 사용.
이 방식으로 작업하면 아이콘과 로고를 체계적으로 관리하고, 프로젝트의 일관성을 유지할 수 있어!
//src/assets/logos/index.ts
import MainLogo from './main-logo.svg';
import SecondaryLogo from './secondary-logo.svg';
export { MainLogo, SecondaryLogo };
//index.ts 파일에서 로고 파일들을 import하고, 다시 export하여, 다른 파일에서는 index.ts를 통해 로고를 가져올 수 있어.
import MainLogo from '@/assets/logos/main-logo.svg';
import SecondaryLogo from '@/assets/logos/secondary-logo.svg';
import { MainLogo, SecondaryLogo } from '@/assets/logos';
🙌 경로가 짧아지고 관리하기 쉬워져!