📑

Mantineでtransitionやanimationが聞かない時の対処法

2022/08/30に公開

経緯

Next.jsでMantineを使ってみて、transitionが効かなくて少し詰まってしまったのでメモ

結論

MantineProviderのthemeプロパティのrespectReducedMotionfalseにする。

_app.tsx
import { MantineProvider } from "@mantine/core";
// ...

function MyApp({ Component, pageProps }: any) {
  // ...
  return(
	<MantineProvider
	  withGlobalStyles
	  withNormalizeCSS
	  theme={{ respectReducedMotion: false }}
	>
	// ...
	</MantineProvider>
  )
}

解説

Mantineはデフォルトではユーザー設定のアニメーション制限がかかるようになっている。
ユーザーの方でアニメーション制限をかけている場合があるので、Mantineのtransitionやanimationを使いたい場合はrespectReducedMotionfalseにすることで、その設定をオフにできる

参考

https://mantine.dev/theming/theme-object/#respectreducemotion

https://github.com/mantinedev/mantine/issues/2166

Discussion