원래 MUI를 작은 프로젝트로 적용해 본 적이 있었는데, 이번에 Chakra UI라는 것을 듣게 되어, 현재 하고 있는 프로덕트에 적용해보려고 한다. (docs만 읽어봤을 때 꽤나 괜찮아 보였다.)
Chakra UI
'Ease of Modification'
Chakra makes it easier to customize components to be entirely your own - 컴포넌트 커스텀을 보다 더 쉽게 제공한다.
Material UI vs Chakra UI
Material UI
반응형 스타일들을 제어하기 위해서 별도의 코드가 필요하다.
만약 사용자가 css를 커스텀을 하려면 별도의 코드가 비교적 많이 추가된다. : 즉, 커스터마이징이 적을수록 사용하는 것이 좋다.
Chakra UI
기본적으로 반응형 스타일들을 지원한다. 따라서 반응형을 위한 별도의 css 작업은 필요하지 않다.
사용자가 css를 커스텀하기에 적은 코드만으로도 구현이 가능하다. : 즉, 커스터마이징이 있으면 용이하다.
설치
npm i @chakra-ui/react @emotion/react @emotion/styled framer-motion
Index.js
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import { BrowserRouter } from "react-router-dom";
import { ChakraProvider } from "@chakra-ui/react"; //추가
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<ChakraProvider> //추가
<BrowserRouter>
<App />
</BrowserRouter>
</ChakraProvider> //추가
);
reportWebVitals();
이렇게 3 부분 추가 해주면 된다.
extendTheme
chakra-ui에서는 theme이라는 것을 제공해서 provider에게 넘겨주면, ui costomizing이 가능하다. chakra-ui에서 제공해 주는 default color 말고, 지금 만들고 있는 웹사이트의 퍼스널 컬러를 적용하기 위해서 아래와 같이 적용해 주었다.
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { BrowserRouter } from "react-router-dom";
import { ChakraProvider, extendTheme } from "@chakra-ui/react"; //추가
//추가
const colors = {
personal: "",
diabled: "",
};
const theme = extendTheme({ colors }); //추가
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<ChakraProvider theme={theme}> //추가
<BrowserRouter>
<App />
</BrowserRouter>
</ChakraProvider>
);
reportWebVitals();
간단하게 적용
import { Button } from "@chakra-ui/react"; //import
<Button colorScheme="blue">로그인</Button> //Use
더 사용해 보고 체감되는 장점들을 작성해 봐야겠다.
'개발 공부 > 웹' 카테고리의 다른 글
[Error] is missing one or more architectures required by this target: x86_64. (1) | 2022.08.03 |
---|---|
SublimeText로 php연동하기 (0) | 2021.10.06 |
[JSP] 게시판 만들기-2 (0) | 2021.05.10 |
[JSP] 게시판 만들기 (0) | 2021.05.10 |
[Java/Spring] Spring Boot (0) | 2021.05.03 |