kanachi-blog

notionでの公開記事をastro-notion-blogを使って公開するよ

chakra-UIの導入方法

※注意

Chakra UIはReactだけではなくVueでも利用することができますが、本文書ではReactを利用して動作確認を行なっているのでReactの知識があることを前提としています。

インストール方法

プロダクトのnode_moduleを配置している(する)フォルダ直下で以下のコマンドを打つ

  • chakraUIはemotionというcssをtypescript上で記述することのできるライブラリに依存しているのでemotion関連も同時にインストールします。
npm i @chakra-ui/react @emotion/react @emotion/styled framer-motion

インストール完了後、アプリケーション全体でChakra UIを利用できるようにルートコンポーネントをChakra ProviderでWrapする必要があります。

import ReactDOM from "react-dom/client";
import { BrowserRouter } from "react-router-dom";
import { Provider } from "react-redux";
import { ChakraProvider } from "@chakra-ui/react";

import "./main.scss";
import App from "./app/App";
import { store } from "./shared/store";

const root = ReactDOM.createRoot(
  document.getElementById("root") as HTMLElement
);
root.render(
  <BrowserRouter>
    <Provider store={store}>
      <ChakraProvider>
        <App />
      </ChakraProvider>
    </Provider>
  </BrowserRouter>
);
ts configに追記

divなどHTMLタグに対してcss prop形式の記法をする上で必要

{
  "compilerOptions": {
    /* Adding Emotion types */
    "types": ["@emotion/react/types/css-prop"]
	}
}
使用方法

各コンポーネント内でchakra-UIは以下のように使うことができます

//コンポーネント(chakra-UIから利用するコンポーネントをimportする)
import { Heading, Button, Box } from "@chakra-ui/react";


export function HelloWorld() {

	//chakra-UIはemotionのようにオブジェクトスタイルで独自cssを記述することができる
  const buttonStyle = {
    backgroundColor: "green",
    color: "white",
    fontSize: "1.2rem",
  };

	//reactのJSX内で利用するコンポーネントをタグ形式で記述する
  return (
    <Box w="100%">
      <Heading>
        <div>Hello chakra UI!</div>
      </Heading>
			//独自CSSをカスタマイズしたい場合は sx というクラスにjson形式で記述したcssを代入する
      <Button sx={buttonStyle}>Button</Button>
    </Box>
  );
}

利用できるコンポーネント一覧