일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍
- 정보처리기사
- 프로그래머스 알고리즘
- js
- 프로그래머스 Lv.0
- 프로그래머스 코딩테스트
- 자바스크립트
- next.js
- 프로그래머스코딩테스트
- 프로그래머스알고리즘
- mysql
- 프로그래머스 레벨0
- 코딩
- 알고리즘스터디
- 개발자
- 코테스터디
- CSS
- 프로그래머스
- 코테준비
- 1일1코테
- Redux-Toolkit
- html
- 알고리즘문제
- 알고리즘공부
- 정처기기출
- 코테공부
- 프로그래머스코테
- 코딩테스트
- 프로그래머스 코테
- next.js 에러
- Today
- Total
계발하는 개발자
[Material-UI] 아이콘 사용하기 본문
Material UI는 현재 가장 많이 쓰이는 React UI 컴포넌트 라이브러리다.
페이지 디자인할때 이미 잘 만들어진 ui 라이브러리를 가져다쓰면 빠르게 웹페이지를 설계할 수 있는데, 그런 의미에서 MUI(Material UI)는 이전에 썼던 부트스트랩보다 다양한 디자인 요소를 가지고 있어 좋았다.
현재 @mui/icons-material 패키지를 통해서 1,000 여종의 SVG 아이콘을 제공하고 있다.
패키지 설치
Material UI는 core, system, utils, icons 이렇게 여러 개의 패키지로 구성되어 있다.
여기서는 아이콘만을 사용할 것이므로 @mui/icons-material 패키지로 받아주겠다.
(각 패키지에 따른 차이는 다음과 같다.)
1. @mui/core: Material-UI의 기본 패키지로, React 컴포넌트와 스타일링 도구를 포함한다.
주요 Material-UI 컴포넌트와 스타일링을 사용하려면 주로 이 패키지를 가져와야 한다.
2. @mui/system: 컴포넌트 디자인을 보다 간단하게 하기 위한 패키지로, CSS-in-JS의 기본 원칙을 기반으로 한 스타일 시스템을 제공한다. 이 패키지는 스타일링을 더 쉽게 관리할 수 있도록 도와준다.
3. @mui/utils: Material-UI와 관련된 유틸리티 및 도우미 함수를 제공하는 패키지다.
예를 들어, 컬러 팔레트 및 테마 설정과 관련된 도우미 함수를 포함한다.
4. @mui/icons-material: Material-UI의 아이콘 라이브러리로, 여러 아이콘을 제공한다.
이 패키지는 Material Design에 따른 아이콘을 포함하며, @mui/core와 함께 사용하여 아이콘을
Material-UI 컴포넌트와 함께 쉽게 사용할 수 있다.
$ npm i @mui/icons-material
참고로 위 패키지만 설치하면, 서버 접속시 갑자기 아래같은 에러메시지가 뜰거다.
@mui/material의 종속성 중 하나인 Emotion 라이브러리와 관련된 오류인데, 아래 Emotion 관련 패키지들을 추가로 설치하면 해결할 수 있다.
(Emotion은 CSS-in-JS 라이브러리로, Material-UI 내부에서 스타일을 관리하는 데 사용된다.)
$ npm i @emotion/react @emotion/styled
아이콘 불러오기
아래 Material Icons 페이지에서 원하는 아이콘을 검색해준다.
https://mui.com/material-ui/icons/
음악 재생버튼이 필요해서 검색창에 play 뭐시기라고 쳐준다.
검색결과로 맘에 드는 아이콘을 선택한다.
그러면 위와 같이 나오는데
여기서 import ~ 코드 부분을 복사해준다.
아이콘을 띄울 페이지 파일에서 방금 복사한 코드를 붙여넣기하고
IconButton 태그 안에 넣어준다.
(그냥 넣어도 상관없는데 복사해온 아이콘이 svg여서 버튼 요소로 감싸주는게 훨씬 더 시맨틱하다.)
그러면 이렇게 화면에 잘 출력되는걸 볼 수 있다.
빨간색 표시 부분이 가져온 PlayCircleIcon 이다.
컴포넌트 제어
다음 같은 색상 prop 방식으로 색상 제어도 할 수 있다.
primary 색상은 주로 사용되는 파란색, secondary는 보라색이다.
fontSize 제어는 비슷한 방식으로 prop하려니까 적용이 잘 안되서 그냥 id 부여해서 css로 입혔다.
<SkipNextIcon color="primary"/>
<SkipNextIcon color="secondary"/>
마치며
공식문서가 잘 되어있어서 사용이 어렵진 않았다.
좀더 편하게 다룰 수 있는 수준이 되도록 가능한 많이 써봐야할 것 같다.
'👟 Etc' 카테고리의 다른 글
[savefrome] 유튜브 동영상 다운 및 음원(mp3) 추출 방법 (1) | 2023.10.12 |
---|---|
[Material-UI] 버튼 컴포넌트클릭시 물결 퍼짐 효과 없애기 (0) | 2023.10.12 |
[Vue + Kakao map API] 쇼핑몰 프로젝트 - 카카오맵 API 연동으로 웹에 지도 및 마커 표시하기 (1) | 2023.10.01 |
[JDK] JDK 17 설치 & 환경 변수 설정하기 (0) | 2023.09.18 |
[Netlify] Netlify로 웹사이트 배포하기 | 무료 웹 호스팅(feat. 약간의 후기) (0) | 2023.09.16 |
dev_genie
@dev_genie
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!