🐬

Mantineでradiusを一括変更する方法

2022/10/02に公開

環境

  • Mantine 5.5.0

やりたいこと

Mantineではデフォルトのradius(丸み)はsmに設定されている。

こんな感じ

ちなみに最小のxsだとこんな感じ

個人的にはあんまり丸みのあるデザインは好きじゃないのでxsに変更しているのだが、毎回

<Button radius="xs">
  ログイン
</Button>

と記述するわけにはいかない。そこでやり方をメモ

方法1

コンポーネント別にradiusを設定する方法

MantineProviderでコンポーネントごとにデフォルトのpropsを設定できる。

<MantineProvider
  theme={{
    components: {
      Button: {
        defaultProps: {
          radius: 'xs'
        }
      }
    }
  }}
>
...
</MantineProvider>

こうすることで全ボタンのradiusはデフォルトxsになる。

方法2

defaultRadiusを使う方法。いちいちコンポーネントごとに設定していられない、一括で変更したい場合はこっち

<MantineProvider
  theme={{
    defaultRadius: 'xs',
  }}
>
...
</MantineProvider>

これは若干公式ドキュメントが悪くて、Theme objectのページに記載されている。

蛇足

完全に丸みを消して角張ったデザインにしたい場合はpropsの値を「0」にすればおk。

これはradiusがMantineNumberSize型で定義されており、xs〜xlのいずれかまたは数値を許可しているため0で完全無効にできるってわけ

Discussion