https://blog.logrocket.com/top-10-react-ui-libraries-kits/
https://kinsta.com/blog/react-components-library/
MUI System
Box
, Container
와 같은 wrapper 컴포넌트 제공, sx
prop로 빠르게 커스터마이징 가능unstable_styleFunctionSx
를 사용해 MUI System 사용 가능 (참고: https://mui.com/system/getting-started/custom-components/)sx
propnpm install @mui/system @emotion/react @emotion/styled
Base UI
npm install @mui/base
Material UI
리액트 기반 UI 라이브러리 중 가장 인기 있고 성숙한 라이브러리
Material Design UI 가이드라인을 바탕으로 하여 UI 개발에 필요한 컴포넌트와 디자인 템플릿 제공
모바일과 데스크톱 모두 지원하는 반응형 UI
모바일과 터치 사용자에 최적화 되어 있음
Material Deign 가이드를 준수하기 위해 컴포넌트가 무겁고 복잡하게 구성되어 있음
스타일 커스터마이징
@material-ui/styles
에서 컴포넌트의 스타일을 지정할 수 있는 CSS-in-JS
방식을 채택하여 styled-components
와 같이 빠르고 확장 가능설치
npm install @mui/material @emotion/react @emotion/styled
usage
import React from 'react';
import ReactDOM from 'react-dom';
import Button from '@material-ui/core/Button';
function App() {
return (
<Button variant="contained" color="primary">
Hello World
</Button>
);
}
ReactDOM.render(<App />, document.querySelector('#app'));
Joy UI
npm install @mui/joy @emotion/react @emotion/styled
MUI X
react-bootstrap 사용시 클래스로 작업된 형태인 bootstrap 공통스타일로드
기존의 부트스트랩을 리액트 스타일의 컴포넌트로 압축하여 코드가 간단해짐
Bootstrap은 상태값과 클래스를 사용 / React-Bootstrap은 function과 hooks를 사용
가독성 면에서 React-bootstrap이 좋고 애니메이션 구현시 React-bootstrap이 더 유용
몇몇 스타일들은 Bootstrap css파일을 요구하는 경우가 있기에 그럴때를 대비해서 css파일(https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.css)을 import 해둬야 함
Introduction
Importing Components
import Button from 'react-bootstrap/Button';
// or less ideally
import { Button } from 'react-bootstrap';
<Stack direction="horizontal" gap={2}>
<Button as="a" variant="primary">
Button as link
</Button>
<Button as="a" variant="success">
Button as link
</Button>
</Stack>
Customize Bootstrap(https://getbootstrap.com/docs/5.3/customize/overview/)
스타일파일 오버라이딩으로 커스텀 가능, 기존 스타일 리셋 속성도 제공
React-Bootstrap은 Bootstrap의 JavaScript를 완전히 재구현하기 때문에 기본 JavaScript 동작을 확장하는 테마와 자동으로 호환되지 않습니다.