3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Chakra UIテーマのカスタマイズ方法

Last updated at Posted at 2021-09-11

Chakra UIとは

Chakra UI

Chakra UIとは、React用のコンポーネントライブラリです。
React用のコンポーネントライブラリの中で、多分一番使われていると思われるのがGoogoleが提唱する「Material Design」というガイドに沿って作成っされたMaterial-UIでは無いかと思います。
今回は、Chakra UIを利用させて頂きました。選んだ理由としては、Githubのスター数、コンポーネントの豊富さ、コンポーネントに手を入れなくても比較的そのままで使えるか、ドキュメントが整ってるかなどです。
しかし、いざChakra UIを導入して、テーマのを変更するのにかなり苦戦したので、同じ所でハマっている方がいれば参考にしていただければ幸いです。

themeファイルでテーマのをカスタマイズ

Chakra UIはドキュメントがしっかりしているので、問題なく利用できると思いますが、コンポーネントをオーバーライドする場合の説明があまりなく、苦戦しました。
こちらのページにコンポーネントのオーバーライド方法が記載されてはいるのですが、ボタン以外のコンポーネントで期待通りに動かない結果になりました。

記載されているButtonコンポーネントを参考に、他コンポーネントも設定しましたが、全然適用されませんでした。調べていくとどうやら、コンポーネント事に微妙に記述の違いがある様です。

結果的に動いたファイルは下記

// theme.js
import { extendTheme } from "@chakra-ui/react"
const theme = extendTheme({
    styles: {
    	global: {
	    	body: {
	    		fontFamily: "'游ゴシック体', YuGothic, '游ゴシック', 'Yu Gothic', 'メイリオ', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', sans-serif",
	    		fontSize: "0.8125rem",
	    		lineHeight: "1.5",
	    	},
    	},
    },
    components: {
    	Heading: {
    		baseStyle: {
    			fontWeight: 'normal',
    		},
    		sizes: {
    			sm: {
    				fontSize: '1.125fem',
    			},
    			md: {
    				fontSize: '1.375fem',
    			},
    			lg: {
    				fontSize: '1.625fem',
    			},
    			xl: {
    				fontSize: '1.875fem',
    			},
    		},
    	},
    	Text: {
    		sizes: {
    			xs: {
    				fontSize: '0.625rem',
    			},
    			sm: {
    				fontSize: '0.8125rem',
    			},
    			md: {
    				fontSize: '0.8125rem',
    			},
    			lg: {
    				fontSize: '0.625rem',
    			},
    			xl: {
    				fontSize: '1.125rem',
    			},
    		},
    	},
    	Table: {
    		baseStyle: {
    			table: {
    				color: 'gray.400',
    			},
    			th: {
    				fontWeight: 'normal',
    				bgColor: 'gray.100',

    			},
    		},
    	},
    },
})
export default theme

上記のthemeファイルをappファイルに読み込めば、適用されました。

components→コンポーネント名→baseStyleで動くコンポーネントもあれば、components→コンポーネント名→baseStyle→要素名で動く場合もあり、そこが苦戦しました。

是非上記を参考にしていただければ幸いです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?