Suzuki Blog Written by Yuki Suzuki

Chakra UIの基本的な使い方

CSS React

スポンサードサーチ

Chakra UIとは

UIコンポーネントライブラリです。

Chakra UIで用意されたコンポーネントを組み合わせることでUIを作成します。

そのため、以下のようなメリットがあります。

  • 1からCSSを書かなくてもUI作成できる
  • 一貫性のあるUI作成ができる

用意されたものでスタイリングするため、SassやTailwindCSSと比べて自由度は低いですが、それが許容できるのであればオススメできると思います。

Chakra UIの導入

公式ドキュメントに従ってChakra UIを導入します。(Next.jsを前提とします)

まずはターミナルで以下のコマンドを実行します。

yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motion

続いてルートのファイル(_app.tsx)にChakraProviderをセットします。

import type { AppProps } from 'next/app'
// 1. ChakraProviderをimportする
import { ChakraProvider } from '@chakra-ui/react'

export default function App({ Component, pageProps }: AppProps) {
  // 2. ChakraProviderでWrapする
  return (
    <ChakraProvider>
      <Component {...pageProps} />
    </ChakraProvider>
  )
}

これで基本的な導入は完了です。

スポンサードサーチ

使用例

以下のかんたんなカード風コンポーネントをChakra UIで作成してみます。

カード風コンポーネント

コード例

// Chakra UIのコンポーネントをimportする
import { Box, Image, VStack, Text, HStack, Link } from '@chakra-ui/react'
import cat from 'public/cat.jpg'

export default function Home() {
  return (
    <VStack m={'30px'} maxW={'300px'} boxShadow={'xl'}>
      <Box>
        <Image src={cat.src} />
      </Box>
      <VStack>
        <Text fontSize={'2xl'} fontWeight={'bold'}>
          カードタイトル
        </Text>
        <Text p={'0px 10px'} color={'gray.500'}>
          あなた方は、どちらからおいでですかジョバンニは胸をおどらせて言いました。みんなほんとうに別れが惜しそうで、そのマジェランの星雲だ。
        </Text>
      </VStack>
      <HStack color={'blue.400'}>
        <Link href='/'>HOME</Link>
        <Link href='faq'>FAQ</Link>
      </HStack>
    </VStack>
  )
}

今回使用したコンポーネントについて補足していきます。

Box

  • 汎用性が高く、wrapperとして使用することが多い
  • div要素として出力される
  • asを用いることで、指定した要素で出力できる
  • 使用例:as={‘span’}とすることで、span要素として出力される
  • Box

Image

  • 画像を用いる際に使用する
  • srcでパスを指定できる
  • Image

Text

  • テキストを用いる際に使用する
  • p要素として出力される
  • Text

Link

  • リンクを用いる際に使用する
  • hrefでパスを指定できる
  • Link

Stack,VStack,HStack

  • 子要素を横並びもしくは縦並びにすることができる
  • また子要素間のスペースも追加してくれる
  • Stack→縦並び/左寄せ
  • HStack→横並び/中央寄せ
  • VStack→縦並び/中央寄せ
  • Stack

Default Color

  • コード中のgray.500などはデフォルトのカラーを使用
  • オリジナルで設定もできる
  • colors

まとめ

今回紹介した機能はほんの一部です。

他にも便利なコンポーネントがあったり、レスポンシブ対応できたり、様々な機能があります。

自分も勉強して紹介できればと思います。

Chakra UI

webエンジニア転職を目指している方はこちら

webエンジニア転職のロードマップ